/** * Build query from filter data * @param Query $query Query object * @param array $data Filter data ($this->request->query) * @return Query $query Query object */ public function queryFromFilter(Query $query, array $data = []) { $query = parent::queryFromFilter($query, $data); //"Name" field if (!empty($data['name']) && strlen($data['name']) > 2) { $query->where([sprintf('%s.tag LIKE', $this->alias()) => sprintf('%%%s%%', $data['name'])]); } return $query; }
/** * Initialize method * @param array $config The configuration for the table * @return void */ public function initialize(array $config) { parent::initialize($config); $this->table('users_groups'); $this->displayField('label'); $this->primaryKey('id'); $this->hasMany('Users', ['foreignKey' => 'group_id', 'className' => 'MeCms.Users']); $this->addBehavior('Timestamp'); }
/** * Initialize method * @param array $config The configuration for the table * @return void */ public function initialize(array $config) { parent::initialize($config); $this->table('banners_positions'); $this->displayField('title'); $this->primaryKey('id'); $this->hasMany('Banners', ['foreignKey' => 'position_id', 'className' => 'MeCms.Banners']); $this->addBehavior('Timestamp'); }
/** * Initialize method * @param array $config The configuration for the table * @return void */ public function initialize(array $config) { parent::initialize($config); $this->table('posts_tags'); $this->displayField('id'); $this->primaryKey('id'); $this->belongsTo('Tags', ['foreignKey' => 'tag_id', 'joinType' => 'INNER', 'className' => 'MeCms.Tags']); $this->belongsTo('Posts', ['foreignKey' => 'post_id', 'joinType' => 'INNER', 'className' => 'MeCms.Posts']); $this->addBehavior('CounterCache', ['Tags' => ['post_count']]); }
/** * Initialize method * @param array $config The configuration for the table * @return void */ public function initialize(array $config) { parent::initialize($config); $this->table('pages'); $this->displayField('title'); $this->primaryKey('id'); $this->belongsTo('Categories', ['foreignKey' => 'category_id', 'joinType' => 'INNER', 'className' => 'MeCms.PagesCategories']); $this->addBehavior('Timestamp'); $this->addBehavior('CounterCache', ['Categories' => ['page_count']]); }
/** * Build query from filter data * @param Query $query Query object * @param array $data Filter data ($this->request->query) * @return Query $query Query object * @uses \MeCms\Model\Table\AppTable::queryFromFilter() */ public function queryFromFilter(Query $query, array $data = []) { $query = parent::queryFromFilter($query, $data); //"Is spot?" field if (!empty($data['spot']) && $data['spot']) { $query->where([sprintf('%s.is_spot', $this->alias()) => true]); } return $query; }
/** * Build query from filter data * @param Query $query Query object * @param array $data Filter data ($this->request->query) * @return Query $query Query object * @uses \MeCms\Model\Table\AppTable::queryFromFilter() */ public function queryFromFilter(Query $query, array $data = []) { $query = parent::queryFromFilter($query, $data); //"Album" field if (!empty($data['album']) && preg_match('/^[1-9]\\d*$/', $data['album'])) { $query->where([sprintf('%s.album_id', $this->alias()) => $data['album']]); } return $query; }
/** * Build query from filter data * @param Query $query Query object * @param array $data Filter data ($this->request->query) * @return Query $query Query object * @uses \MeCms\Model\Table\AppTable::queryFromFilter() */ public function queryFromFilter(Query $query, array $data = []) { $query = parent::queryFromFilter($query, $data); //"Tag" field if (!empty($data['tag']) && strlen($data['tag']) > 2) { $query->matching('Tags', function ($q) use($data) { return $q->where([sprintf('%s.tag', $this->Tags->alias()) => $data['tag']]); }); } return $query; }
/** * Initialize method * @param array $config The configuration for the table * @return void */ public function initialize(array $config) { parent::initialize($config); $this->table('photos_albums'); $this->displayField('title'); $this->primaryKey('id'); $this->hasMany('Photos', ['foreignKey' => 'album_id', 'className' => 'MeCms.Photos']); $this->addBehavior('Timestamp'); }
/** * Build query from filter data * @param Query $query Query object * @param array $data Filter data ($this->request->query) * @return Query $query Query object * @uses \MeCms\Model\Table\AppTable::queryFromFilter() */ public function queryFromFilter(Query $query, array $data = []) { $query = parent::queryFromFilter($query, $data); //"Username" field if (!empty($data['username']) && strlen($data['username']) > 2) { $query->where([sprintf('%s.username LIKE', $this->alias()) => sprintf('%%%s%%', $data['username'])]); } //"Group" field if (!empty($data['group']) && preg_match('/^[1-9]\\d*$/', $data['group'])) { $query->where([sprintf('%s.group_id', $this->alias()) => $data['group']]); } //"Status" field if (!empty($data['status']) && in_array($data['status'], ['active', 'pending', 'banned'])) { switch ($data['status']) { case 'active': $query->where([sprintf('%s.active', $this->alias()) => true, sprintf('%s.banned', $this->alias()) => false]); break; case 'pending': $query->where([sprintf('%s.active', $this->alias()) => false]); break; case 'banned': $query->where([sprintf('%s.banned', $this->alias()) => true]); break; } } return $query; }
/** * Initialize method * @param array $config The configuration for the table * @return void */ public function initialize(array $config) { parent::initialize($config); $this->table('pages_categories'); $this->displayField('title'); $this->primaryKey('id'); $this->belongsTo('Parents', ['className' => 'MeCms.PagesCategories', 'foreignKey' => 'parent_id']); $this->hasMany('Childs', ['className' => 'MeCms.PagesCategories', 'foreignKey' => 'parent_id']); $this->hasMany('Pages', ['className' => 'MeCms.Pages', 'foreignKey' => 'category_id']); $this->addBehavior('Timestamp'); $this->addBehavior('MeCms.Tree'); }