if ($limitToItems) { $search->addWhereCondition("items", $limitToItems); } elseif ($limitToOrderedItems) { //If we must limit to some specific items ordered (usually used for polymod multi_poly_object field) $search->addWhereCondition("itemsOrdered", $limitToOrderedItems); } else { // Params : paginate limit $search->setAttribute('itemsPerPage', $limit); $search->setAttribute('page', $start / $limit); // Params : set default direction direction if (!CMS_session::getSessionVar('direction_' . $object->getID())) { CMS_session::setSessionVar('direction_' . $object->getID(), 'desc'); } // Params : order if (CMS_session::getSessionVar('sort_' . $object->getID())) { $search->addOrderCondition(CMS_session::getSessionVar('sort_' . $object->getID()), CMS_session::getSessionVar('direction_' . $object->getID())); } else { $search->addOrderCondition('objectID', CMS_session::getSessionVar('direction_' . $object->getID())); } } //launch search $search->search(CMS_object_search::POLYMOD_SEARCH_RETURN_INDIVIDUALS_OBJECTS); // Vars for lists output purpose and pages display, see further $itemsDatas['total'] = $search->getNumRows(); //Get parsed result definition if ($resultsDefinition) { $definitionParsing = new CMS_polymod_definition_parsing($resultsDefinition, true, CMS_polymod_definition_parsing::PARSE_MODE); } //loop on results items while ($item = $search->getNextResult()) { //Process actions on item if any