You are here

class RotatingBanner in Rotating Banner 7.2

Same name and namespace in other branches
  1. 7 rotating_banner.classes.inc \RotatingBanner

Hierarchy

Expanded class hierarchy of RotatingBanner

2 string references to 'RotatingBanner'
RotatingBanner::get in ./rotating_banner.classes.inc
Get by Id
RotatingBanner::getAll in ./rotating_banner.classes.inc

File

./rotating_banner.classes.inc, line 134

View source
class RotatingBanner extends SimpleActiveRecord {
  public $rbid;
  public $title;
  public $machine_name;
  public $settings;
  protected function dbFields() {
    return array(
      'title',
      'machine_name',
      'settings',
    );
  }
  public function initialize() {
    if (is_string($this->settings)) {
      $this->settings = unserialize($this->settings);
    }
  }
  public static function create($title, $machine_name = NULL, $settings = NULL) {
    $defaults = RotatingBanner::getDefaultSettings();
    if ($settings) {
      $settings = array_merge($defaults, $settings);
    }
    else {
      $settings = $defaults;
    }
    $rb = new RotatingBanner();
    $rb->title = $title;
    $rb->machine_name = $machine_name ? $machine_name : uniqid('rb_');
    $rb->settings = $settings;
    $rb
      ->save();
    return $rb;
  }
  public static function getDefaultSettings($key = NULL) {

    //@todo: add variables here.
    static $defaults = array(
      'controls' => 'buttons',
      'prev_next' => 0,
      'width' => '',
      'height' => '',
      'fluid' => TRUE,
      'cycle' => array(
        'fx' => 'scrollDown',
        'timeout' => 8000,
        'fit' => 0,
      ),
    );
    if ($key) {
      return $defaults[$key];
    }
    return $defaults;
  }

  /**
   * Get by Id
   * @param int $rbid
   * @return RotatingBanner
   */
  public static function get($rbid) {
    $result = db_select('rotating_banners', 'rb')
      ->fields('rb')
      ->condition('rbid', $rbid)
      ->range(0, 1)
      ->execute()
      ->fetchAll(PDO::FETCH_CLASS, 'RotatingBanner');
    if (!count($result)) {
      return FALSE;
    }
    SimpleActiveRecord::runInitialize($result);
    return array_shift($result);
  }
  public static function getAll() {
    $result = db_select('rotating_banners', 'rb')
      ->fields('rb')
      ->execute()
      ->fetchAll(PDO::FETCH_CLASS, 'RotatingBanner');
    if (!count($result)) {
      return FALSE;
    }
    SimpleActiveRecord::runInitialize($result);
    return $result;
  }
  public function getSlides() {
    return RotatingBannerSlide::getByRotatingBanner($this->rbid);
  }
  function save() {
    if (!$this->title) {
      throw new Exception('Unable to save rotating banner, title is required');
    }
    foreach ($this
      ->dbFields() as $field_name) {
      $fields[$field_name] = $this->{$field_name};
    }
    if (!is_string($fields['settings'])) {
      $fields['settings'] = serialize($fields['settings']);
    }
    if (!$this->rbid) {
      $rbid = db_insert('rotating_banners')
        ->fields($fields)
        ->execute();
      $this->rbid = $rbid;
      if ($this->rbid) {
        return TRUE;
      }
    }
    else {
      db_update('rotating_banners')
        ->condition('rbid', $this->rbid)
        ->fields($fields)
        ->execute();
      return TRUE;
    }
  }

}

Members

Namesort descending Modifiers Type Description Overrides
RotatingBanner::$machine_name public property
RotatingBanner::$rbid public property
RotatingBanner::$settings public property
RotatingBanner::$title public property
RotatingBanner::create public static function
RotatingBanner::dbFields protected function
RotatingBanner::get public static function Get by Id
RotatingBanner::getAll public static function
RotatingBanner::getDefaultSettings public static function
RotatingBanner::getSlides public function
RotatingBanner::initialize public function
RotatingBanner::save function
SimpleActiveRecord::runInitialize public static function Disclaimer: This is a hack. The PDO::FETCH_CLASS does not behave as documented. It is supposed to run the constructor *after* the properties have been assigned and in some versions of PHP, it does that.
SimpleActiveRecord::setValuesFromArray public function