示例#1
0
 /**
  * @param $partialName
  * @param $pageSize
  * @param null|string $moduleClassName
  * @param null|string $type
  * @return Array of SavedReport models
  */
 public static function getReportsByPartialName($partialName, $pageSize, $moduleClassName = null, $type = null)
 {
     assert('is_string($partialName)');
     assert('is_int($pageSize)');
     assert('is_string($moduleClassName) || $moduleClassName == null');
     assert('is_string($type) || $type == null');
     $searchAttributeData = array();
     $searchAttributeData['clauses'] = array(1 => array('attributeName' => 'name', 'operatorType' => 'contains', 'value' => $partialName));
     $clauseCount = 2;
     if ($moduleClassName != null) {
         $searchAttributeData['clauses'][$clauseCount] = array('attributeName' => 'moduleClassName', 'operatorType' => 'equals', 'value' => $moduleClassName);
         $clauseCount++;
     }
     if ($type != null) {
         $searchAttributeData['clauses'][$clauseCount] = array('attributeName' => 'type', 'operatorType' => 'equals', 'value' => $type);
     }
     if ($clauseCount == 1) {
         $searchAttributeData['structure'] = '(1)';
     } elseif ($clauseCount == 2) {
         $searchAttributeData['structure'] = '(1 and 2)';
     } else {
         $searchAttributeData['structure'] = '(1 and 2 and 3)';
     }
     $joinTablesAdapter = new RedBeanModelJoinTablesQueryAdapter('SavedReport');
     $where = RedBeanModelDataProvider::makeWhere('SavedReport', $searchAttributeData, $joinTablesAdapter);
     return SavedReport::getSubset($joinTablesAdapter, null, $pageSize, $where, 'name');
 }