示例#1
0
 /**
  * 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;
 }
示例#2
0
 /**
  * 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);
 }
示例#3
0
 /**
  * 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;
 }