Example #1
0
 function search($criteria = null, $limit = 0, $start = 0, $isCount = false)
 {
     if ($criteria == null) {
         $criteriaMapped = null;
     } else {
         if ($criteria instanceof Criterion) {
             $criteriaMapped = Criteria::mapCriteria($this->map, $criteria);
         } else {
             $criteriaMapped = $criteria->buildMappedCriteria($this->map);
         }
     }
     if ($isCount) {
         $query = $this->dialect->buildSearchCountQuery($this->map->getTableName(), $criteriaMapped);
     } else {
         $query = $this->dialect->buildSearchQuery($this->map->getTableName(), $criteriaMapped, $limit, $start);
     }
     if ($criteria instanceof Criterion) {
         $query = str_replace(":" . $criteriaMapped->getName(), $this->dialect->quote($criteriaMapped->getValue()), $query);
     } else {
         if ($criteria instanceof Criteria) {
             foreach ($criteriaMapped->getAllCriteriaFlat() as $criterionMapped) {
                 $query = str_replace(":" . $criterionMapped->getName(), $this->dialect->quote($criterionMapped->getValue()), $query);
             }
         }
     }
     //echo("<tt>" . $query . "</tt><hr/>");
     if ($isCount) {
         return $this->storage->invoke($query);
     } else {
         return $this->createObjectArray($this->storage->invoke($query));
     }
 }