有谁用过Ceon URI Mapping这个插件的,谁知道怎么让它自动批量生成静态链接,网上查了一下说在admin/ceon_uri_mapping_config.php 代码的前部,require(‘includes/application_top.php’);之后增加一些代码就可以,可是我试了不行,谁能帮我解决一下,谢谢···以下是我按网上说的添加的代码
- 代码: 全选
function zen_get_categories_name($who_am_i,$languageid) {
global $db;
$the_categories_name_query= "select categories_name from " . TABLE_CATEGORIES_DESCRIPTION . " where categories_id= '" . $who_am_i . "' and language_id= '" . $languageid . "'";
$the_categories_name = $db->Execute($the_categories_name_query);
return $the_categories_name->fields['categories_name'];
}
if(defined(CEON_URI_MAPPING_ENABLED) && CEON_URI_MAPPING_ENABLED=='1') {
$languages = zen_get_languages();
$sql="delete from ".TABLE_CEON_URI_MAPPINGS." where main_page='index' and associated_db_id not in (select categories_id from ".TABLE_CATEGORIES.")";
$db->Execute($sql);
$sql="select categories_id from ".TABLE_CATEGORIES." where categories_id not in (select associated_db_id from ".TABLE_CEON_URI_MAPPINGS." where main_page='index') and categories_status=1";
$category_products = $db->Execute($sql);
while (!$category_products->EOF) {
// BEGIN CEON URI MAPPING 1 of 3
for ($i = 0, $n = sizeof($languages); $i < $n; $i++) {
$uri_mapping = ceon_uri_mapping_autogen_category_or_product_uri($category_products->fields['categories_id'], 'category',
null, zen_get_categories_name($category_products->fields['categories_id'],$languages[$i]['id']),
$languages[$i]['code'], $languages[$i]['id']);
if (strlen($uri_mapping) > 1) {
// Make sure URI mapping is relative to root of site and does not have more than one
// trailing slash or any illegal characters
$uri_mapping = ceon_uri_mapping_cleanup_uri_mapping($uri_mapping);
}
$sql_data_array = array(
'uri' => zen_db_prepare_input($uri_mapping),
'language_id' => (int) $languages[$i]['id'],
'current_uri' => 1,
'main_page' => FILENAME_DEFAULT,
'associated_db_id' => (int) $category_products->fields['categories_id'],
'date_added' => date('Y-m-d H:i:s')
);
zen_db_perform(TABLE_CEON_URI_MAPPINGS, $sql_data_array);
}
$category_products->MoveNext();
}
$languages = zen_get_languages();
$sql= "delete from ".TABLE_CEON_URI_MAPPINGS." where main_page<>'index' and main_page<>'page' and associated_db_id not in (select products_id from ".TABLE_PRODUCTS.")";
$db->Execute($sql);
$sql="select products_id from ".TABLE_PRODUCTS." where products_id not in (select associated_db_id from ".TABLE_CEON_URI_MAPPINGS." where main_page<>'index' and main_page<>'page') and products_status=1";
$products_list = $db->Execute($sql);
// BEGIN CEON URI MAPPING 1 of 1
while (!$products_list->EOF) {
for ($i = 0, $n = sizeof($languages); $i < $n; $i++) {
$uri_mapping = $uri_mapping = ceon_uri_mapping_autogen_category_or_product_uri(
$products_list->fields['products_id'], 'product', null, null, $languages[$i]['code'],
$languages[$i]['id']);
if (strlen($uri_mapping) > 1) {
// Make sure URI mapping is relative to root of site and does not have more than one
// trailing slash or any illegal characters
$uri_mapping = ceon_uri_mapping_cleanup_uri_mapping($uri_mapping);
}
$product_type = zen_get_products_type($products_list->fields['products_id']);
// Add the new URI mapping
$insert_sql_data = array(
'main_page' => $zc_products->get_handler($product_type) . '_info',
'associated_db_id' => (int) $products_list->fields['products_id'],
'language_id' => (int) $languages[$i]['id'],
'uri'=>zen_db_prepare_input($uri_mapping),
'current_uri' => 1
);
$sql_data_array = $insert_sql_data;
zen_db_perform(TABLE_CEON_URI_MAPPINGS, $sql_data_array);
// Avoid possibility of old duplicate URI mappings for the same product
ceon_uri_mapping_remove_product_mapping_duplicates($uri_mapping, $products_list->fields['products_id']);
// Now add the URI mappings for the review pages/tell-a-friend page for this product
if (substr($uri_mapping, -1) != '/') {
$uri_mapping .= '/';
}
$sql_data_array['uri'] = zen_db_prepare_input($uri_mapping . CEON_URI_MAPPING_URI_PART_PRODUCT_REVIEWS);
$sql_data_array['main_page'] = zen_db_prepare_input(FILENAME_PRODUCT_REVIEWS);
zen_db_perform(TABLE_CEON_URI_MAPPINGS, $sql_data_array);
$sql_data_array['uri'] = zen_db_prepare_input($uri_mapping .
CEON_URI_MAPPING_URI_PART_PRODUCT_REVIEWS_INFO);
$sql_data_array['main_page'] =
zen_db_prepare_input(FILENAME_PRODUCT_REVIEWS_INFO);
zen_db_perform(TABLE_CEON_URI_MAPPINGS, $sql_data_array);
$sql_data_array['uri'] = zen_db_prepare_input($uri_mapping .
CEON_URI_MAPPING_URI_PART_PRODUCT_REVIEWS_WRITE);
$sql_data_array['main_page'] =
zen_db_prepare_input(FILENAME_PRODUCT_REVIEWS_WRITE);
zen_db_perform(TABLE_CEON_URI_MAPPINGS, $sql_data_array);
$sql_data_array['uri'] = zen_db_prepare_input($uri_mapping .
CEON_URI_MAPPING_URI_PART_TELL_A_FRIEND);
$sql_data_array['main_page'] =
zen_db_prepare_input(FILENAME_TELL_A_FRIEND);
zen_db_perform(TABLE_CEON_URI_MAPPINGS, $sql_data_array);
}
$products_list->MoveNext();
}
$sql="delete from ".TABLE_CEON_URI_MAPPINGS." where main_page='page' and associated_db_id not in (select pages_id from ".TABLE_EZPAGES_TEXT.")";
$db->Execute($sql);
$languages = zen_get_languages();
for ($i = 0, $n = sizeof($languages); $i < $n; $i++) {
$sql="select pages_title,pages_id from ".TABLE_EZPAGES_TEXT." where pages_id not in (select associated_db_id from ".TABLE_CEON_URI_MAPPINGS." where main_page='page') and languages_id=".$languages[$i]['id'];
$ezpage_linkdata = $db->Execute($sql);
while (!$ezpage_linkdata->EOF) {
$uri_mapping = ceon_uri_mapping_autogen_ez_page_uri(null, $ezpage_linkdata->fields['pages_title'],$languages[$i]['code'], $languages[$i]['id']);
if (strlen($uri_mapping) > 1) {
// Make sure URI mapping is relative to root of site and does not have more than one
// trailing slash or any illegal characters
$uri_mapping = ceon_uri_mapping_cleanup_uri_mapping($uri_mapping);
}
$sql_data_array = array(
'uri' => zen_db_prepare_input($uri_mapping),
'language_id' => (int) $languages[$i]['id'],
'current_uri' => 1,
'main_page' => FILENAME_EZPAGES,
'associated_db_id' => (int) $ezpage_linkdata->fields['pages_id'],
'date_added' => date('Y-m-d H:i:s')
);
zen_db_perform(TABLE_CEON_URI_MAPPINGS, $sql_data_array);
$ezpage_linkdata->MoveNext();
}
}
}