/** * Assign package data. * * @param array $data Package data. * @param array|null $columnMap Column map. * * @return $this */ public function assign($data, $columnMap = null) { $events = !empty($data['events']) ? $data['events'] : []; $widgets = !empty($data['widgets']) ? $data['widgets'] : []; unset($data['events']); unset($data['widgets']); parent::assign($data, $columnMap); if ($data['type'] == Manager::PACKAGE_TYPE_PLUGIN || $data['type'] == Manager::PACKAGE_TYPE_MODULE) { $this->data = ['events' => $events, 'widgets' => $widgets]; } if (!empty($data['module'])) { $this->addData('module', $data['module']); } return $this; }
/** * Create Paginator Object for products Listing * * @param [array] $formData Store condition, order, select column to prepare for query * @param [int] $limit Record per page * @param [int] $offset Current Page * @return [object] $paginator Phalcon Paginator Builder Object */ public static function getList($formData, $limit, $offset) { $modelName = get_class(); $whereString = ''; $bindParams = []; $bindTypeParams = []; if (is_array($formData['conditions'])) { if (isset($formData['conditions']['keyword']) && strlen($formData['conditions']['keyword']) > 0 && isset($formData['conditions']['searchKeywordIn']) && count($formData['conditions']['searchKeywordIn']) > 0) { /** * Search keyword */ $searchKeyword = $formData['conditions']['keyword']; $searchKeywordIn = $formData['conditions']['searchKeywordIn']; $whereString .= $whereString != '' ? ' OR ' : ' ('; $sp = ''; foreach ($searchKeywordIn as $searchIn) { $sp .= ($sp != '' ? ' OR ' : '') . $searchIn . ' LIKE :searchKeyword:'; } $whereString .= $sp . ')'; $bindParams['searchKeyword'] = '%' . $searchKeyword . '%'; } /** * Optional Filter by tags */ if (count($formData['conditions']['filterBy']) > 0) { $filterby = $formData['conditions']['filterBy']; foreach ($filterby as $k => $v) { if ($v) { $whereString .= ($whereString != '' ? ' AND ' : '') . $k . ' = :' . $k . ':'; $bindParams[$k] = $v; switch (gettype($v)) { case 'string': $bindTypeParams[$k] = \PDO::PARAM_STR; break; default: $bindTypeParams[$k] = \PDO::PARAM_INT; break; } } } } if (strlen($whereString) > 0 && count($bindParams) > 0) { $formData['conditions'] = [[$whereString, $bindParams, $bindTypeParams]]; } else { $formData['conditions'] = ''; } } $params = ['models' => $modelName, 'columns' => $formData['columns'], 'conditions' => $formData['conditions'], 'order' => [$modelName . '.' . $formData['orderBy'] . ' ' . $formData['orderType'] . '']]; return parent::runPaginate($params, $limit, $offset); }
/** * Add entity. * * @param AbstractModel $entity Entity object. * @param string|null $name Entity name. * * @return $this */ public function addEntity($entity, $name = null) { if ($entity) { $this->_entities[$name] = $entity; $this->setValues($entity->toArray()); } return $this; }