/**
  * @param array $args
  */
 public function save($args)
 {
     $args = $args + ['fID' => 0, 'fOnstateID' => 0, 'maxWidth' => 0, 'maxHeight' => 0, 'constrainImage' => 0, 'linkType' => 0, 'externalLink' => '', 'internalLinkCID' => 0];
     $args['fID'] = $args['fID'] != '' ? $args['fID'] : 0;
     $args['fOnstateID'] = $args['fOnstateID'] != '' ? $args['fOnstateID'] : 0;
     $args['maxWidth'] = intval($args['maxWidth']) > 0 ? intval($args['maxWidth']) : 0;
     $args['maxHeight'] = intval($args['maxHeight']) > 0 ? intval($args['maxHeight']) : 0;
     if (!$args['constrainImage']) {
         $args['maxWidth'] = 0;
         $args['maxHeight'] = 0;
     }
     switch (intval($args['linkType'])) {
         case 1:
             $args['externalLink'] = '';
             break;
         case 2:
             $args['internalLinkCID'] = 0;
             break;
         default:
             $args['externalLink'] = '';
             $args['internalLinkCID'] = 0;
             break;
     }
     // This doesn't get saved to the database. It's only for UI usage.
     unset($args['linkType']);
     parent::save($args);
     $this->tracker->track($this);
 }
 public function save($args)
 {
     $args += array('timeout' => 4000, 'speed' => 500);
     $args['timeout'] = intval($args['timeout']);
     $args['speed'] = intval($args['speed']);
     $args['noAnimate'] = isset($args['noAnimate']) ? 1 : 0;
     $args['pause'] = isset($args['pause']) ? 1 : 0;
     $args['maxWidth'] = isset($args['maxWidth']) ? intval($args['maxWidth']) : 0;
     $db = Database::get();
     $db->execute('DELETE from btImageSliderEntries WHERE bID = ?', array($this->bID));
     parent::save($args);
     if (isset($args['sortOrder'])) {
         $count = count($args['sortOrder']);
         $i = 0;
         while ($i < $count) {
             $linkURL = $args['linkURL'][$i];
             $internalLinkCID = $args['internalLinkCID'][$i];
             switch (intval($args['linkType'][$i])) {
                 case 1:
                     $linkURL = '';
                     break;
                 case 2:
                     $internalLinkCID = 0;
                     break;
                 default:
                     $linkURL = '';
                     $internalLinkCID = 0;
                     break;
             }
             if (isset($args['description'][$i])) {
                 $args['description'][$i] = LinkAbstractor::translateTo($args['description'][$i]);
             }
             $db->execute('INSERT INTO btImageSliderEntries (bID, fID, title, description, sortOrder, linkURL, internalLinkCID) values(?, ?, ?, ?,?,?,?)', array($this->bID, intval($args['fID'][$i]), $args['title'][$i], $args['description'][$i], $args['sortOrder'][$i], $linkURL, $internalLinkCID));
             ++$i;
         }
     }
     $this->tracker->track($this);
 }
 /**
  * Tell the tracker to forget us when we are deleted
  */
 public function delete()
 {
     parent::delete();
     $this->tracker->forget($this);
 }