function listCategories() { global $toC_Json, $osC_Language, $osC_Database; $start = empty($_REQUEST['start']) ? 0 : $_REQUEST['start']; $limit = empty($_REQUEST['limit']) ? MAX_DISPLAY_SEARCH_RESULTS : $_REQUEST['limit']; $Qcategories = $osC_Database->query('select c.categories_id, cd.categories_name, c.categories_image, c.parent_id, c.sort_order, c.categories_status, c.date_added, c.last_modified from :table_categories c, :table_categories_description cd where c.categories_id = cd.categories_id and cd.language_id = :language_id'); $Qcategories->appendQuery('and c.parent_id = :parent_id'); if (isset($_REQUEST['categories_id']) && !empty($_REQUEST['categories_id'])) { $Qcategories->bindInt(':parent_id', $_REQUEST['categories_id']); } else { $Qcategories->bindInt(':parent_id', 0); } if (isset($_REQUEST['search']) && !empty($_REQUEST['search'])) { $Qcategories->appendQuery('and cd.categories_name like :categories_name'); $Qcategories->bindValue(':categories_name', '%' . $_REQUEST['search'] . '%'); } $Qcategories->appendQuery('order by c.sort_order, cd.categories_name'); $Qcategories->bindTable(':table_categories', TABLE_CATEGORIES); $Qcategories->bindTable(':table_categories_description', TABLE_CATEGORIES_DESCRIPTION); $Qcategories->bindInt(':language_id', $osC_Language->getID()); $Qcategories->setExtBatchLimit($start, $limit); $Qcategories->execute(); $records = array(); $osC_CategoryTree = new osC_CategoryTree(); while ($Qcategories->next()) { $records[] = array('categories_id' => $Qcategories->value('categories_id'), 'categories_name' => $Qcategories->value('categories_name'), 'status' => $Qcategories->valueInt('categories_status'), 'path' => $osC_CategoryTree->buildBreadcrumb($Qcategories->valueInt('categories_id'))); } $response = array(EXT_JSON_READER_TOTAL => $Qcategories->getBatchSize(), EXT_JSON_READER_ROOT => $records); echo $toC_Json->encode($response); }