コード例 #1
0
ファイル: categories.php プロジェクト: abhiesa-tolexo/loaded7
 public static function save($id = null, $data)
 {
     global $lC_Database, $lC_Language;
     $category_id = '';
     $error = false;
     $lC_Database->startTransaction();
     if (is_numeric($id)) {
         $Qcat = $lC_Database->query('update :table_categories set categories_image = :categories_image, parent_id = :parent_id, sort_order = :sort_order, categories_mode = :categories_mode, categories_link_target = :categories_link_target, categories_custom_url = :categories_custom_url, categories_status = :categories_status, categories_visibility_nav = :categories_visibility_nav, categories_visibility_box = :categories_visibility_box, last_modified = now() where categories_id = :categories_id');
         $Qcat->bindInt(':categories_id', $id);
     } else {
         $Qcat = $lC_Database->query('insert into :table_categories (categories_image, parent_id, sort_order, categories_mode, categories_link_target, categories_custom_url, categories_status, categories_visibility_nav, categories_visibility_box, date_added) values (:categories_image, :parent_id, :sort_order, :categories_mode, :categories_link_target, :categories_custom_url, :categories_status, :categories_visibility_nav, :categories_visibility_box, now())');
         $Qcat->bindInt(':parent_id', $data['parent_id']);
         $Qcat->bindValue(':date_added', $data['date_added']);
     }
     $Qcat->bindTable(':table_categories', TABLE_CATEGORIES);
     $Qcat->bindValue(':categories_image', $data['image']);
     $Qcat->bindInt(':parent_id', $data['parent_id']);
     $Qcat->bindInt(':sort_order', $data['sort_order']);
     $Qcat->bindValue(':categories_mode', $data['mode']);
     $Qcat->bindInt(':categories_link_target', $data['link_target']);
     $Qcat->bindValue(':categories_custom_url', $data['custom_url']);
     $Qcat->bindInt(':categories_status', $data['status']);
     $Qcat->bindInt(':categories_visibility_nav', $data['nav']);
     $Qcat->bindInt(':categories_visibility_box', $data['box']);
     $Qcat->setLogging($_SESSION['module'], $id);
     $Qcat->execute();
     if (!$lC_Database->isError()) {
         $category_id = is_numeric($id) ? $id : $lC_Database->nextID();
         $lC_CategoryTree = new lC_CategoryTree_Admin();
         $cPath = $data['parent_id'] != 0 ? $lC_CategoryTree->getcPath($data['parent_id']) . '_' . $category_id : $category_id;
         foreach ($lC_Language->getAll() as $l) {
             if (is_numeric($id)) {
                 $Qcd = $lC_Database->query('update :table_categories_description set categories_name = :categories_name, categories_menu_name = :categories_menu_name, categories_blurb = :categories_blurb, categories_description = :categories_description, categories_tags = :categories_tags where categories_id = :categories_id and language_id = :language_id');
             } else {
                 $Qcd = $lC_Database->query('insert into :table_categories_description (categories_id, language_id, categories_name, categories_menu_name, categories_blurb, categories_description, categories_tags) values (:categories_id, :language_id, :categories_name, :categories_menu_name, :categories_blurb, :categories_description, :categories_tags)');
             }
             $Qcd->bindTable(':table_categories_description', TABLE_CATEGORIES_DESCRIPTION);
             $Qcd->bindInt(':categories_id', $category_id);
             $Qcd->bindInt(':language_id', $l['id']);
             $Qcd->bindValue(':categories_name', $data['name'][$l['id']]);
             $Qcd->bindValue(':categories_menu_name', $data['menu_name'][$l['id']]);
             $Qcd->bindValue(':categories_blurb', $data['blurb'][$l['id']]);
             $Qcd->bindValue(':categories_description', $data['description'][$l['id']]);
             $Qcd->bindValue(':categories_tags', $data['tags'][$l['id']]);
             $Qcd->setLogging($_SESSION['module'], $category_id);
             $Qcd->execute();
             if ($lC_Database->isError()) {
                 $error = true;
                 break;
             }
             // added for permalink
             if (!empty($data['permalink'][$l['id']])) {
                 if ($data['permalink'][$l['id']] != 'no-permalink') {
                     if (is_numeric($id) && lC_Categories_Admin::validatePermalink(array($data['permalink'][$l['id']]), $category_id, 1, $l['id']) == 1) {
                         $Qpl = $lC_Database->query('update :table_permalinks set permalink = :permalink where item_id = :item_id and type = :type and language_id = :language_id');
                     } else {
                         $Qpl = $lC_Database->query('insert into :table_permalinks (item_id, language_id, type, query, permalink) values (:item_id, :language_id, :type, :query, :permalink)');
                     }
                     $Qpl->bindTable(':table_permalinks', TABLE_PERMALINKS);
                     $Qpl->bindInt(':item_id', $category_id);
                     $Qpl->bindInt(':language_id', $l['id']);
                     $Qpl->bindInt(':type', 1);
                     $Qpl->bindValue(':query', 'cPath=' . $cPath);
                     $Qpl->bindValue(':permalink', $data['permalink'][$l['id']]);
                     $Qpl->execute();
                     if ($lC_Database->isError()) {
                         $error = true;
                         break;
                     }
                 } else {
                     $Qpl = $lC_Database->query('delete from :table_permalinks where item_id = :item_id and type = :type and language_id = :language_id');
                     $Qpl->bindTable(':table_permalinks', TABLE_PERMALINKS);
                     $Qpl->bindInt(':item_id', $category_id);
                     $Qpl->bindInt(':language_id', $l['id']);
                     $Qpl->bindInt(':type', 1);
                     $Qpl->execute();
                 }
             }
         }
     }
     if ($error === false) {
         $lC_Database->commitTransaction();
         lC_Cache::clear('categories');
         lC_Cache::clear('category_tree');
         lC_Cache::clear('also_purchased');
         return $category_id;
         // used for the save_close buttons
     }
     $lC_Database->rollbackTransaction();
     return false;
 }
コード例 #2
0
ファイル: rpc.php プロジェクト: abhiesa-tolexo/loaded7
 public static function validatePermalink()
 {
     $data = str_replace('%5B', '[', $_GET);
     $data = str_replace('%5D', ']', $data);
     $validated = lC_Categories_Admin::validatePermalink($data['categories_permalink'], $data['cid'], $data['type']);
     echo json_encode($validated);
 }