コード例 #1
0
/**
 * xtc_set_groups()
 *
 * @param mixed $categories_id
 * @param mixed $permission_array
 * @return
 */
function xtc_set_groups($categories_id, $permission_array)
{
    // get products in categorie
    $products_query = xtc_db_query("SELECT products_id FROM " . TABLE_PRODUCTS_TO_CATEGORIES . " where categories_id='" . $categories_id . "'");
    while ($products = xtc_db_fetch_array($products_query)) {
        xtc_db_perform(TABLE_PRODUCTS, $permission_array, 'update', 'products_id = \'' . $products['products_id'] . '\'');
    }
    // set status of categorie
    xtc_db_perform(TABLE_CATEGORIES, $permission_array, 'update', 'categories_id = \'' . $categories_id . '\'');
    // look for deeper categories and go rekursiv
    $categories_query = xtc_db_query("SELECT categories_id FROM " . TABLE_CATEGORIES . " where parent_id='" . $categories_id . "'");
    while ($categories = xtc_db_fetch_array($categories_query)) {
        xtc_set_groups($categories['categories_id'], $permission_array);
    }
}
コード例 #2
0
 function insert_category($categories_data, $dest_category_id, $link, $action = 'insert')
 {
     $categories_id = xtc_db_prepare_input($categories_data['categories_id']);
     $sort_order = xtc_db_prepare_input($categories_data['sort_order']);
     $categories_status = xtc_db_prepare_input($categories_data['status']);
     $customers_statuses_array = xtc_get_customers_statuses();
     $permission = array();
     for ($i = 0, $n = sizeof($customers_statuses_array); $i < $n; $i++) {
         if (isset($customers_statuses_array[$i]['id'])) {
             $permission[$customers_statuses_array[$i]['id']] = 0;
         }
     }
     if (isset($categories_data['groups'])) {
         foreach ($categories_data['groups'] as $dummy => $b) {
             $permission[$b] = 1;
         }
     }
     // build array
     if (isset($permission['all']) && $permission['all'] == 1) {
         $permission = array();
         end($customers_statuses_array);
         for ($i = 0, $n = key($customers_statuses_array); $i < $n + 1; $i++) {
             if (isset($customers_statuses_array[$i]['id'])) {
                 $permission[$customers_statuses_array[$i]['id']] = 1;
             }
         }
     }
     $permission_array = array();
     // set pointer to last key
     end($customers_statuses_array);
     for ($i = 0, $n = key($customers_statuses_array); $i < $n + 1; $i++) {
         if (isset($customers_statuses_array[$i]['id'])) {
             $permission_array = array_merge($permission_array, array('group_permission_' . $customers_statuses_array[$i]['id'] => $permission[$customers_statuses_array[$i]['id']]));
         }
     }
     $sql_data_array = array('sort_order' => $sort_order, 'categories_status' => $categories_status, 'products_sorting' => xtc_db_prepare_input($categories_data['products_sorting']), 'products_sorting2' => xtc_db_prepare_input($categories_data['products_sorting2']), 'categories_template' => xtc_db_prepare_input($categories_data['categories_template']), 'listing_template' => xtc_db_prepare_input($categories_data['listing_template']));
     if (trim(ADD_CATEGORIES_FIELDS) != '') {
         $sql_data_array = array_merge($sql_data_array, $this->add_data_fields(ADD_CATEGORIES_FIELDS, $categories_data));
     }
     $sql_data_array = array_merge($sql_data_array, $permission_array);
     if ($action == 'insert') {
         $insert_sql_data = array('parent_id' => $dest_category_id, 'date_added' => 'now()');
         $sql_data_array = xtc_array_merge($sql_data_array, $insert_sql_data);
         xtc_db_perform(TABLE_CATEGORIES, $sql_data_array);
         $categories_id = xtc_db_insert_id();
     } elseif ($action == 'update') {
         $update_sql_data = array('last_modified' => 'now()');
         $sql_data_array = xtc_array_merge($sql_data_array, $update_sql_data);
         xtc_db_perform(TABLE_CATEGORIES, $sql_data_array, 'update', 'categories_id = \'' . $categories_id . '\'');
     }
     xtc_set_groups($categories_id, $permission_array);
     $languages = xtc_get_languages();
     foreach ($languages as $lang) {
         if (isset($categories_data['name'])) {
             $categories_name_array = $categories_data['name'];
         }
         $sql_data_array = array('categories_name' => xtc_db_prepare_input($categories_data['categories_name'][$lang['id']]), 'categories_heading_title' => xtc_db_prepare_input($categories_data['categories_heading_title'][$lang['id']]), 'categories_description' => xtc_db_prepare_input($categories_data['categories_description'][$lang['id']]), 'categories_meta_title' => xtc_db_prepare_input($categories_data['categories_meta_title'][$lang['id']]), 'categories_meta_description' => xtc_db_prepare_input($categories_data['categories_meta_description'][$lang['id']]));
         if (trim(ADD_CATEGORIES_DESCRIPTION_FIELDS) != '') {
             $sql_data_array = array_merge($sql_data_array, $this->add_data_fields(ADD_CATEGORIES_DESCRIPTION_FIELDS, $categories_data, $lang['id']));
         }
         if ($action == 'insert') {
             $insert_sql_data = array('categories_id' => $categories_id, 'language_id' => $lang['id']);
             $sql_data_array = xtc_array_merge($sql_data_array, $insert_sql_data);
             xtc_db_perform(TABLE_CATEGORIES_DESCRIPTION, $sql_data_array);
         } elseif ($action == 'update') {
             //BOF - web28 - 2010-07-11 - BUGFIX no entry stored for previous deactivated languages
             $category_query = xtc_db_query("select * from " . TABLE_CATEGORIES_DESCRIPTION . " where language_id = '" . $lang['id'] . "' and categories_id = '" . $categories_id . "'");
             if (xtc_db_num_rows($category_query) == 0) {
                 xtc_db_perform(TABLE_CATEGORIES_DESCRIPTION, array('categories_id' => $categories_id, 'language_id' => $lang['id']));
             }
             //EOF - web28 - 2010-07-11 - BUGFIX no entry stored for previous deactivated languages
             xtc_db_perform(TABLE_CATEGORIES_DESCRIPTION, $sql_data_array, 'update', 'categories_id = \'' . $categories_id . '\' and language_id = \'' . $lang['id'] . '\'');
         }
     }
     $accepted_categories_image_files_extensions = array("jpg", "jpeg", "jpe", "gif", "png", "bmp", "tiff", "tif", "bmp");
     $accepted_categories_image_files_mime_types = array("image/jpeg", "image/gif", "image/png", "image/bmp");
     if ($categories_image = xtc_try_upload('categories_image', DIR_FS_CATALOG_IMAGES . 'categories_org/', '777', $accepted_categories_image_files_extensions, $accepted_categories_image_files_mime_types)) {
         $cname_arr = explode('.', $categories_image->filename);
         $cnsuffix = array_pop($cname_arr);
         $categories_image_name = $categories_id . '.' . $cnsuffix;
         @unlink(DIR_FS_CATALOG_IMAGES . 'categories_org/' . $categories_image_name);
         rename(DIR_FS_CATALOG_IMAGES . 'categories_org/' . $categories_image->filename, DIR_FS_CATALOG_IMAGES . 'categories_org/' . $categories_image_name);
         xtc_db_query("UPDATE " . TABLE_CATEGORIES . "\n                                     SET categories_image = '" . xtc_db_input($categories_image_name) . "'\n                                   WHERE categories_id = '" . (int) $categories_id . "'");
         require DIR_WS_INCLUDES . 'category_image.php';
     }
     if (isset($categories_data['del_cat_pic']) && $categories_data['del_cat_pic'] == 'yes') {
         @unlink(DIR_FS_CATALOG_IMAGES . 'categories/' . $categories_data['categories_previous_image']);
         xtc_db_query("UPDATE " . TABLE_CATEGORIES . "\n                                     SET categories_image = ''\n                                   WHERE categories_id    = '" . (int) $categories_id . "'");
     }
     //web28 2012-11-30 new redirect
     if ($action == 'insert') {
         xtc_redirect(xtc_href_link(FILENAME_CATEGORIES, xtc_get_path($categories_id) . '&cID=' . $categories_id));
     }
 }