Exemple #1
0
 /**
  * Render albums with link to album photos
  *
  * @param array $data
  */
 public function renderAlbums($data = array())
 {
     $output = '';
     if (!empty($data)) {
         $output .= '<h1>Albums for ' . $data['author']['name'] . '</h1>';
         if (!empty($data['entry'])) {
             if (!isset($data['entry'][0])) {
                 $data['entry'][0] = $data['entry'];
             }
             foreach ($data['entry'] as $album) {
                 $output .= '<div class="album">';
                 $output .= '<h2 class="album-title">' . $this->Html->link($album['title'], array('action' => 'album', $this->_pullIdFromHref($album['link'][0]['href']))) . '</h2>';
                 $output .= '<img src="' . $album['group']['thumbnail']['url'] . '" height="50" alt="" style="float:left; margin:0 1em 1em 0;" />';
                 $output .= '<p class="summary">' . nl2br($album['summary']) . '</p>';
                 $output .= '<p class="meta">' . $album['numphotos'] . ife($album['numphotos'] <= 1, ' Photo', ' Photos') . ' | Published: ' . date('m-d-Y', strtotime($album['published'])) . ' | Location(s): ' . $album['location'] . '</p>';
                 if ($album['numphotos'] > 0) {
                     // render photos?
                 }
                 $output .= '</div>';
             }
         } else {
             $output .= 'There are no albums available.';
         }
     }
     return $this->output($output);
 }
Exemple #2
0
/**
 * Displays a list of flags
 * 
 * @param array $options Options with the following possible keys
 * 	- basePath: Base path for the flag images, with a trailing slash
 * 	- class: Class of the <ul> wrapper
 * 	- id Id of the wrapper
 * @return void
 */
	public function flagSwitcher($options = array()) {
		$_defaults = array(
			'basePath' => $this->basePath,
			'class' => 'languages');
		$options = array_merge($_defaults, $options);
		$langs = Configure::read('Config.languages');
		if (defined('DEFAULT_LANGUAGE')) {
			array_unshift($langs, DEFAULT_LANGUAGE);
		}
		
		$out = '';
		if (!empty($langs)) {
			$out .= '<ul class="' . $options['class'] . '"' . ife(empty($options['id']), '', ' id="' . $options['id'] . '"') . '>';
			foreach($langs as $lang) {
				$class = $lang;
				if ($lang == Configure::read('Config.language')) {
					$class .= ' selected';
				}
				$url = array_merge($this->params['named'], $this->params['pass'], compact('lang'));
				$out .= 
				'<li class="' . $class . '">' .
					$this->Html->link($this->flagImage($lang, $options), $url, array('escape' => false)) .
				'</li>';
			}
			$out .= '</ul>';
		}
		
		return $out;
	}
Exemple #3
0
 /**
  * Updates the sum and counter cache of belongsTo associations after a save or delete operation
  *
  * @param array $keys Optional foreign key data, defaults to the information $this->data
  * @param boolean $created True if a new record was created, otherwise only associations with
  *                                  'counterScope' defined get updated
  * @return void
  * @access public
  */
 function updateCounterCache($keys = array(), $created = false)
 {
     parent::updateCounterCache($keys);
     if (empty($keys)) {
         $keys = $this->data[$this->alias];
     }
     foreach ($this->belongsTo as $parent => $assoc) {
         if (!empty($assoc['sumCache'])) {
             if ($assoc['sumCache'] === true) {
                 $assoc['sumCache'] = Inflector::underscore($this->alias) . '_sum';
             }
             if ($this->{$parent}->hasField($assoc['sumCache'])) {
                 $conditions = array($this->escapeField($assoc['foreignKey']) => $keys[$assoc['foreignKey']]);
                 if (isset($assoc['sumScope'])) {
                     $conditions = array_merge($conditions, (array) $assoc['sumScope']);
                 }
                 if (!isset($assoc['sumField'])) {
                     $assoc['sumField'] = 'amount';
                 }
                 $fields = 'SUM(' . $assoc['sumField'] . ') AS ' . $assoc['sumField'] . '';
                 $recursive = -1;
                 list($edge) = array_values($this->find('first', compact('conditions', 'fields', 'recursive')));
                 $sum = ife(empty($edge[$assoc['sumField']]), 0, $edge[$assoc['sumField']]);
                 $this->{$parent}->updateAll(array($assoc['sumCache'] => $sum), array($this->{$parent}->escapeField() => $keys[$assoc['foreignKey']]));
             }
         }
     }
 }
Exemple #4
0
 /**
  * Setup
  *
  * @param AppModel $Model
  * @param array $settings
  */
 public function setup(&$Model, $settings = array())
 {
     if (!isset($this->settings[$Model->alias])) {
         $this->settings[$Model->alias] = $this->defaults;
     }
     $this->settings[$Model->alias] = array_merge($this->settings[$Model->alias], ife(is_array($settings), $settings, array()));
 }
Exemple #5
0
 /**
  * Initiate behavior for the model using specified settings. Available settings:
  *
  * - recursive: (boolean, optional) set to true to allow containable to automatically
  * 				determine the recursiveness level needed to fetch specified models,
  * 				and set the model recursiveness to this level. setting it to false
  * 				disables this feature. DEFAULTS TO: true
  *
  * - notices:	(boolean, optional) issues E_NOTICES for bindings referenced in a
  * 				containable call that are not valid. DEFAULTS TO: true
  *
  * - autoFields: (boolean, optional) auto-add needed fields to fetch requested
  * 				bindings. DEFAULTS TO: true
  *
  * @param object $Model Model using the behavior
  * @param array $settings Settings to override for model.
  * @access public
  */
 function setup(&$Model, $settings = array())
 {
     if (!isset($this->settings[$Model->alias])) {
         $this->settings[$Model->alias] = array('recursive' => true, 'notices' => true, 'autoFields' => true);
     }
     $this->settings[$Model->alias] = array_merge($this->settings[$Model->alias], ife(is_array($settings), $settings, array()));
 }
Exemple #6
0
 /**
  * Initiate behavior for the model using settings.
  *
  * @param object $Model Model using the behaviour
  * @param array $settings Settings to override for model.
  * @access public
  */
 function setup(&$Model, $settings = array())
 {
     $defaults = array('createdField' => 'created_by', 'modifiedField' => 'modified_by', 'model' => 'User');
     if (!isset($this->__settings[$Model->alias])) {
         $this->__settings[$Model->alias] = $defaults;
     }
     $this->__settings[$Model->alias] = am($this->__settings[$Model->alias], ife(is_array($settings), $settings, array()));
 }
Exemple #7
0
 /**
  * Initiate behavior for the model using settings.
  *
  * @param object $Model Model using the behavior
  * @param array $settings Settings to override for model.
  * @access public
  */
 function setup(&$Model, $settings = array())
 {
     $defaults = array('field' => 'continuous_id', 'offset' => '1');
     if (!isset($this->__settings[$Model->alias])) {
         $this->__settings[$Model->alias] = $defaults;
     }
     $this->__settings[$Model->alias] = am($this->__settings[$Model->alias], ife(is_array($settings), $settings, array()));
 }
 /**
  * Initiate behaviour for the model using settings.
  *
  * @param object $Model Model using the behaviour
  * @param array $settings Settings to override for model.
  * @access public
  */
 function setup(&$Model, $settings = array())
 {
     $default = array('field' => 'deleted', 'field_date' => 'deleted_date', 'delete' => true, 'find' => true);
     if (!isset($this->__settings[$Model->alias])) {
         $this->__settings[$Model->alias] = $default;
     }
     $this->__settings[$Model->alias] = array_merge($this->__settings[$Model->alias], ife(is_array($settings), $settings, array()));
 }
Exemple #9
0
 /**
  * Initiate behaviour for the model using specified settings.
  *
  * @param object $model    Model using the behaviour
  * @param array $settings    Settings to override for model.
  *
  * @access public
  */
 function setup(&$model, $settings = array())
 {
     $default = array('fieldName' => 'url');
     if (!isset($this->settings[$model->name])) {
         $this->settings[$model->name] = $default;
     }
     $this->settings[$model->name] = Set::merge($this->settings[$model->name], ife(is_array($settings), $settings, array()));
 }
 function setup(&$Model, $settings = array())
 {
     $default = array('saveto' => 'ChangeLog');
     if (!isset($this->__settings[$Model->alias])) {
         $this->__settings[$Model->alias] = $default;
     }
     $this->__settings[$Model->alias] = am($this->__settings[$Model->alias], ife(is_array($settings), $settings, array()));
 }
Exemple #11
0
 /**
  * Initiate behavior for the model using specified settings. Available settings:
  *
  * - incrementFieldName: (string) The name of the field which needs to be incremented
  * 
  *
  * @param object $Model Model using the behaviour
  * @param array $settings Settings to override for model.
  * @access public
  */
 function setup(&$Model, $settings = array())
 {
     $default = array('incrementFieldName' => array('views'));
     if (!isset($this->__settings[$Model->alias])) {
         $this->__settings[$Model->alias] = $default;
     }
     $this->__settings[$Model->alias] = am($this->__settings[$Model->alias], ife(is_array($settings), $settings, array()));
 }
/**
 * @param string $curdir
 */
function browseforfolder($curdir)
{
    global $maxlevel, $root, $brlist;
    $maxlevel = 0;
    $brlist = array(array("dir" => "/", "level" => 0, "put" => ife($curdir == "/", "", "/")));
    _subbrowse($curdir, 0, 1);
    return $brlist;
}
Exemple #13
0
 /**
  * Initiate behavior for the model using settings.
  *
  * @param object $Model Model using the behaviour
  * @param array $settings Settings to override for model.
  * @access public
  */
 function setup(&$Model, $settings = array())
 {
     $defaults = array('field' => 'serial', 'length' => 5);
     if (!isset($this->__settings[$Model->alias])) {
         $this->__settings[$Model->alias] = $defaults;
     }
     $this->__settings[$Model->alias] = am($this->__settings[$Model->alias], ife(is_array($settings), $settings, array()));
 }
Exemple #14
0
 /**
  * Initiate behavior for the model using specified settings.
  * Available settings:
  *
  * - view_counter: string :: the field in the table that has the count
  *
  * @param object $Model Model using the behaviour
  * @param array $settings Settings to override for model.
  * @access public
  */
 function setup(&$Model, $settings = array())
 {
     $default = array('view_counter' => 'views');
     if (!isset($this->__settings[$Model->alias])) {
         $this->__settings[$Model->alias] = $default;
     }
     $this->__settings[$Model->alias] = am($this->__settings[$Model->alias], ife(is_array($settings), $settings, array()));
 }
Exemple #15
0
 function setup(&$model, $settings = array())
 {
     $default = array('field' => 'content', 'doctype' => 'XHTML 1.0 Strict');
     if (!isset($this->settings[$model->name])) {
         $this->settings[$model->name] = $default;
     }
     $this->settings[$model->name] = array_merge($this->settings[$model->name], ife(is_array($settings), $settings, array()));
 }
Exemple #16
0
 /**
  * Initiate behaviour for the model using specified settings.
  *
  * @param object $model    Model using the behaviour
  * @param array $settings    Settings to override for model.
  *
  * @access public
  */
 function setup(&$model, $settings = array())
 {
     $default = array('table_label' => 'tags', 'tag_label' => 'tag', 'separator' => ',');
     if (!isset($this->settings[$model->name])) {
         $this->settings[$model->name] = $default;
     }
     $this->settings[$model->name] = array_merge($this->settings[$model->name], ife(is_array($settings), $settings, array()));
 }
 function setup(&$model, $settings = array())
 {
     $default = array('start_column' => 'begin_publishing', 'end_column' => 'end_publishing');
     if (!isset($this->__settings[$model->alias])) {
         $this->__settings[$model->alias] = $default;
     }
     $this->__settings[$model->alias] = am($this->__settings[$model->alias], ife(is_array($settings), $settings, array()));
     $this->_checkColumn($model, $this->__settings[$model->alias]['start_column']);
     $this->_checkColumn($model, $this->__settings[$model->alias]['end_column']);
 }
Exemple #18
0
 /**
  * Setup method
  *
  * @param object $model
  * @param array $settings The array key 'on' can take 3 values : 'create', 'update' or 'both'
  */
 function setup(&$model, $settings = array())
 {
     $default = array('on' => 'create');
     if (!isset($this->__settings[$model->alias])) {
         $this->__settings[$model->alias] = $default;
     }
     $this->__settings[$model->alias] = am($this->__settings[$model->alias], ife(is_array($settings), $settings, array()));
     // Twitter model
     $this->Twitter = ClassRegistry::init('Twitter.Twitter');
 }
 /**
  * Setup
  *
  * @param AppModel $model
  * @param array $settings
  * @access public
  */
 public function setup(&$model, $settings = array())
 {
     if (!isset($this->settings[$model->alias])) {
         $this->settings[$model->alias] = $this->defaults;
     }
     $this->settings[$model->alias] = am($this->settings[$model->alias], ife(is_array($settings), $settings, array()));
     $cfg = $this->settings[$model->alias];
     $model->bindModel(array('hasMany' => array('Comment' => array('className' => $cfg['commentModel'], 'foreignKey' => 'foreign_key', 'unique' => true, 'conditions' => '', 'fields' => '', 'dependent' => true, 'order' => '', 'limit' => '', 'offset' => '', 'exclusive' => '', 'finderQuery' => '', 'counterQuery' => ''))), false);
     $model->Comment->bindModel(array('belongsTo' => array($model->name => array('className' => $model->name, 'foreignKey' => 'foreign_key', 'unique' => true, 'conditions' => '', 'fields' => '', 'dependent' => false))), false);
     $model->Comment->bindModel(array('belongsTo' => array($cfg['userModelAlias'] => array('className' => $cfg['userModelClass'], 'foreignKey' => 'user_id', 'conditions' => '', 'fields' => '', 'counterCache' => true, 'order' => ''))), false);
 }
Exemple #20
0
 /**
  * Method called automatically by model's constructor
  *
  * @param object $model Object of model
  * @param array $settings Settings for behavior
  */
 function setup(&$model, $settings = array())
 {
     // Initialize behavior's default settings
     $default = array('s3_access_key' => '', 's3_secret_key' => '', 'formfield' => '', 's3_path' => '', 'allowed_ext' => array('jpg', 'jpeg', 'png', 'gif'), 's3_request_headers' => array('Expires' => 'Fri, 30 Oct 2030 14:19:41 GMT', 'Cache-control' => 'public'), 's3_meta_headers' => array(), 's3_acl' => 'public-read', 'append_salt' => false, 's3_bucket' => '', 'required' => false, 'unique' => true);
     foreach ($settings as $field => $options) {
         // Merge behavior's default settings and model field's settings
         $settings = am($default, ife(is_array($options), $options, array()));
         // Put the settings in class variable
         $this->settings[$model->name][$field] = $settings;
     }
 }
 /**
  * Initialize the fixture.
  *
  */
 function init()
 {
     if (isset($this->import) && (is_string($this->import) || is_array($this->import))) {
         $import = array();
         if (is_string($this->import) || is_array($this->import) && isset($this->import['model'])) {
             $import = am(array('records' => false), ife(is_array($this->import), $this->import, array()));
             $import['model'] = ife(is_array($this->import), $this->import['model'], $this->import);
         } elseif (isset($this->import['table'])) {
             $import = am(array('connection' => 'default', 'records' => false), $this->import);
         }
         if (isset($import['model']) && (class_exists($import['model']) || loadModel($import['model']))) {
             $model =& new $import['model']();
             $db =& ConnectionManager::getDataSource($model->useDbConfig);
             $db->cacheSources = false;
             $this->table = $this->useTable;
             $schema = $model->schema(true);
             $this->fields = $schema->value;
             $this->fields[$model->primaryKey]['key'] = 'primary';
         } elseif (isset($import['table'])) {
             $model =& new Model(null, $import['table'], $import['connection']);
             $db =& ConnectionManager::getDataSource($import['connection']);
             $db->cacheSources = false;
             $model->name = Inflector::camelize(Inflector::singularize($import['table']));
             $model->table = $import['table'];
             $model->tablePrefix = $db->config['prefix'];
             $schema = $model->schema(true);
             $this->fields = $schema->value;
         }
         if ($import['records'] !== false && isset($model) && isset($db)) {
             $this->records = array();
             $query = array('fields' => array_keys($this->fields), 'table' => $db->name($model->table), 'alias' => $model->name, 'conditions' => array(), 'order' => null, 'limit' => null);
             foreach ($query['fields'] as $index => $field) {
                 $query['fields'][$index] = $db->name($query['alias']) . '.' . $db->name($field);
             }
             $records = $db->fetchAll($db->buildStatement($query, $model), false, $model->name);
             if ($records !== false && !empty($records)) {
                 $this->records = Set::extract($records, '{n}.' . $model->name);
             }
         }
     }
     if (!isset($this->table)) {
         $this->table = Inflector::underscore(Inflector::pluralize($this->name));
     }
     if (!isset($this->primaryKey) && isset($this->fields['id'])) {
         $this->primaryKey = 'id';
     }
     if (isset($this->fields)) {
         foreach ($this->fields as $index => $field) {
             if (empty($field['default'])) {
                 unset($this->fields[$index]['default']);
             }
         }
     }
 }
 function setup(&$model, $settings = array())
 {
     $default = $this->defaults;
     if (!isset($this->__settings[$model->alias])) {
         $this->__settings[$model->alias] = $default;
     }
     $this->__settings[$model->alias] = array_merge($this->__settings[$model->alias], ife(is_array($settings), $settings, array()));
     $this->AssocType = ClassRegistry::init('Management.Relation');
     if ($this->__settings[$model->alias]['active']) {
         $this->__autoBind();
         $this->__autoUnbindBind();
     }
 }
Exemple #23
0
 /**
  * Run before a model is saved, used to set up slug for model.
  *
  * @param object $model Model about to be saved.
  *
  * @access public
  * @since 1.0
  */
 function beforeSave(&$model)
 {
     if (!is_array($this->settings[$model->name]['label'])) {
         $this->settings[$model->name]['label'] = array($this->settings[$model->name]['label']);
     }
     foreach ($this->settings[$model->name]['label'] as $field) {
         if (!$model->hasField($field)) {
             return;
         }
     }
     if ($model->hasField($this->settings[$model->name]['slug']) && ($this->settings[$model->name]['overwrite'] || empty($model->{$model->primaryKey}))) {
         $label = '';
         foreach ($this->settings[$model->name]['label'] as $field) {
             $label .= ife(!empty($label), ' ', '');
             $label .= $model->data[$model->name][$field];
         }
         if (empty($label)) {
             $label = 'slug';
         }
         // If the user submits a non-empty slug use that one, else generate a new one from the label field
         $slug = '';
         if (isset($model->data[$model->name][$this->settings[$model->name]['slug']]) && !empty($model->data[$model->name][$this->settings[$model->name]['slug']])) {
             $slug = $this->_getSlug($model->data[$model->name][$this->settings[$model->name]['slug']], $this->settings[$model->name]);
         } else {
             $slug = $this->_getSlug($label, $this->settings[$model->name]);
         }
         // Find out if such a slug exists
         $conditions = "{$model->name}.{$this->settings[$model->name]['slug']} = '{$slug}'";
         if (!empty($model->{$model->primaryKey})) {
             $conditions[$model->name . '.' . $model->primaryKey] = '!= ' . $model->{$model->primaryKey};
         }
         $result = $model->findAll($conditions, array($model->primaryKey, $this->settings[$model->name]['slug']), null, null, 1, 0);
         $sameUrls = null;
         if ($result !== false && !empty($result)) {
             $sameUrls = Set::extract($result, '{n}.' . $model->name . '.' . $this->settings[$model->name]['slug']);
         }
         if (!empty($sameUrls)) {
             $begginingSlug = $slug;
             $index = 1;
             while ($index > 0) {
                 if (!in_array($begginingSlug . $this->settings[$model->name]['separator'] . $index, $sameUrls)) {
                     $slug = $begginingSlug . $this->settings[$model->name]['separator'] . $index;
                     $index = -1;
                 }
                 $index++;
             }
         }
         $model->data[$model->name][$this->settings[$model->name]['slug']] = $slug;
     }
 }
 /**
  * Initiate behaviour for the model using settings.
  *
  * @param object $Model Model using the behaviour
  * @param array $settings Settings to override for model.
  * @access public
  */
 function setup(&$model, $settings = array())
 {
     $default = $this->defaults;
     $default['conditions'] = array('Comment.class' => $model->alias);
     if (!isset($this->__settings[$model->alias])) {
         $this->__settings[$model->alias] = $default;
     }
     $this->__settings[$model->alias] = array_merge($this->__settings[$model->alias], ife(is_array($settings), $settings, array()));
     //handles model binding to the model
     //according to the auto_bind settings (default true)
     if ($this->__settings[$model->alias]['auto_bind']) {
         $hasManyComment = array('Comment' => array('className' => $this->__settings[$model->alias]['class'], 'foreignKey' => $this->__settings[$model->alias]['foreign_key'], 'dependent' => $this->__settings[$model->alias]['dependent'], 'conditions' => $this->__settings[$model->alias]['conditions']));
         $commentBelongsTo = array($model->alias => array('className' => $model->alias, 'foreignKey' => $this->__settings[$model->alias]['foreign_key'], 'counterCache' => $this->__settings[$model->alias]['counter_cache']));
         $model->bindModel(array('hasMany' => $hasManyComment), false);
         $model->Comment->bindModel(array('belongsTo' => $commentBelongsTo), false);
     }
 }
Exemple #25
0
 /**
  * Connect to the memcached server(s)
  */
 function _connect()
 {
     if (defined('DISABLE_CACHE')) {
         return false;
     }
     $this->_Memcache =& new Memcache();
     // several servers - use addServer
     foreach ($this->servers as $server) {
         $parts = explode(':', $server);
         $host = $parts[0];
         $port = ife(isset($parts[1]), $parts[1], 11211);
         // default port
         if ($this->_Memcache->addServer($host, $port)) {
             $this->_connected = true;
         }
     }
     return $this->_connected;
 }
Exemple #26
0
 /**
  * Run before a model is saved, used to set up slug for model.
  *
  * @param object $model	Model about to be saved.
  *
  * @access public
  * @since 1.0
  */
 function beforeSave(&$model)
 {
     if (!is_array($this->settings[$model->name]['label'])) {
         $this->settings[$model->name]['label'] = array($this->settings[$model->name]['label']);
     }
     foreach ($this->settings[$model->name]['label'] as $field) {
         if (!$model->hasField($field)) {
             return;
         }
     }
     if ($model->hasField($this->settings[$model->name]['slug']) && ($this->settings[$model->name]['overwrite'] || empty($model->{$model->primaryKey}))) {
         $label = '';
         foreach ($this->settings[$model->name]['label'] as $field) {
             $label .= ife(!empty($label), ' ', '');
             $label .= $model->data[$model->name][$field];
         }
         if (empty($label)) {
             $label = 'slug';
         }
         $slug = $this->_slug($label, $this->settings[$model->name]);
         $conditions = array($model->name . '.' . $this->settings[$model->name]['slug'] => 'LIKE ' . $slug . '%');
         if (!empty($model->{$model->primaryKey})) {
             $conditions[$model->name . '.' . $model->primaryKey] = '!= ' . $model->{$model->primaryKey};
         }
         $result = $model->findAll($conditions, array($model->primaryKey, $this->settings[$model->name]['slug']), null, null, 1, 0);
         $sameUrls = null;
         if ($result !== false && !empty($result)) {
             $sameUrls = Set::extract($result, '{n}.' . $model->name . '.' . $this->settings[$model->name]['slug']);
         }
         if (!empty($sameUrls)) {
             $begginingSlug = $slug;
             $index = 1;
             while ($index > 0) {
                 if (!in_array($begginingSlug . $this->settings[$model->name]['separator'] . $index, $sameUrls)) {
                     $slug = $begginingSlug . $this->settings[$model->name]['separator'] . $index;
                     $index = -1;
                 }
                 $index++;
             }
         }
         $model->data[$model->name][$this->settings[$model->name]['slug']] = $slug;
     }
 }
Exemple #27
0
 /**
  * Initiate behaviour for the model using settings.
  *
  * @param object $Model Model using the behaviour
  * @param array $settings Settings to override for model.
  * @access public
  */
 function setup(&$model, $settings = array())
 {
     $default = $this->defaults;
     $default['conditions'] = array('Rating.class' => $model->alias);
     $default['requre_auth'] = Configure::read('Rating.require_auth');
     $ratingClass = isset($default['plugin']) ? $default['plugin'] . '.' . $default['class'] : $default['class'];
     if (!isset($this->__settings[$model->alias])) {
         $this->__settings[$model->alias] = $default;
     }
     $this->__settings[$model->alias] = array_merge($this->__settings[$model->alias], ife(is_array($settings), $settings, array()));
     // handles model binding to the model
     // according to the auto_bind settings (default true)
     if ($this->__settings[$model->alias]['auto_bind']) {
         $hasManyRating = array('Rating' => array('className' => $ratingClass, 'foreignKey' => $this->__settings[$model->alias]['foreign_key'], 'dependent' => $this->__settings[$model->alias]['dependent'], 'conditions' => $this->__settings[$model->alias]['conditions']));
         $ratingBelongsTo = array($model->alias => array('className' => $model->alias, 'foreignKey' => $this->__settings[$model->alias]['foreign_key'], 'counterCache' => $this->__settings[$model->alias]['counter_cache']));
         $model->bindModel(array('hasMany' => $hasManyRating), false);
         $model->Rating->bindModel(array('belongsTo' => $ratingBelongsTo), false);
     }
 }
Exemple #28
0
 /**
  * Before save method. Called before all saves
  *
  * Overriden to transparently manage setting the item position to the end of the list 
  *
  * @param AppModel $model
  * @return boolean True to continue, false to abort the save
  */
 function beforeSave(&$model)
 {
     extract($this->settings[$model->name]);
     if (empty($model->data[$model->name][$model->primaryKey])) {
     }
     $tempData = array();
     foreach ($fields as $key => $value) {
         $field = ife(is_numeric($key), $value, $key);
         if (isset($model->data[$model->name][$field])) {
             if ($this->__isUploadFile($model->data[$model->name][$field])) {
                 $tempData[$field] = $model->data[$model->name][$field];
                 $model->data[$model->name][$field] = $this->__getContent($model->data[$model->name][$field]);
             } else {
                 unset($model->data[$model->name][$field]);
             }
         }
     }
     $this->runtime[$model->name]['beforeSave'] = $tempData;
     return true;
 }
Exemple #29
0
 /**
  * Initiate behaviour for the model using settings.
  *
  * @param object $Model Model using the behaviour
  * @param array $settings Settings to override for model.
  * @access public
  */
 function setup(&$model, $settings = array())
 {
     $default = $this->defaults;
     $default['conditions'] = array('Review.class' => $model->alias);
     $default['blcklist_keywords'] = explode(',', Configure::read('Website.blacklist_keywords'));
     $default['blcklist_words'] = explode(',', Configure::read('Website.blacklist_words'));
     $reviewClass = isset($default['plugin']) ? $default['plugin'] . '.' . $default['class'] : $default['class'];
     if (!isset($this->__settings[$model->alias])) {
         $this->__settings[$model->alias] = $default;
     }
     $this->__settings[$model->alias] = array_merge($this->__settings[$model->alias], ife(is_array($settings), $settings, array()));
     // handles model binding to the model
     // according to the auto_bind settings (default true)
     if ($this->__settings[$model->alias]['auto_bind']) {
         $hasManyReview = array('Review' => array('className' => $reviewClass, 'foreignKey' => $this->__settings[$model->alias]['foreign_key'], 'dependent' => $this->__settings[$model->alias]['dependent'], 'conditions' => $this->__settings[$model->alias]['conditions']));
         $reviewBelongsTo = array($model->alias => array('className' => $model->alias, 'foreignKey' => $this->__settings[$model->alias]['foreign_key'], 'counterCache' => $this->__settings[$model->alias]['counter_cache'], 'counterScope' => $this->__settings[$model->alias]['counter_cache_scope']));
         $model->bindModel(array('hasMany' => $hasManyReview), false);
         $model->Review->bindModel(array('belongsTo' => $reviewBelongsTo), false);
     }
 }
Exemple #30
0
 function validFile($check, $settings)
 {
     $_default = array('required' => false, 'extensions' => array('jpg', 'jpeg', 'gif', 'png'));
     $_settings = array_merge($_default, ife(is_array($settings), $settings, array()));
     // Remove first level of Array
     $_check = array_shift($check);
     if ($_settings['required'] == false && $_check['size'] == 0) {
         return true;
     }
     // No file uploaded.
     if ($_settings['required'] && $_check['size'] == 0) {
         return false;
     }
     // Check for Basic PHP file errors.
     if ($_check['error'] !== 0) {
         return false;
     }
     // Use PHPs own file validation method.
     if (is_uploaded_file($_check['tmp_name']) == false) {
         return false;
     }
     // Valid extension
     return Validation::extension($_check, $_settings['extensions']);
 }