예제 #1
0
 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);
 }