3
Сообщений в теме: 7
#1
Отправлено 30 June 2017 - 12:32 AM
На сайте установлен модуль ЧПУ от badisoft из этой темы
Также установлено дополнение для расширенного экспорта с возможностью выбора подкатегорий для экспорта.
Хочу в файл экспорта добавить колонку со ссылкой чпу для категорий и товаров.
Может кто подскажет как надо подрихтовать файл catalog_excel_export.php (я так понимаю именно его надо править), чтобы такой экспорт состоялся?
Насколько я понял, например для таблицы категорий надо к выборке из таблицы "префикс_caterories" увязать выборку из таблицы "префикс_cpu" с проверкой categoryID=ID (т.е. сопоставления id категорий) и соблюдением условия type=0 (т.е. для соответствующего id брать именно урл категорий).
Ну и для товаров +- логика, я так понимаю, подобная.
Не получается это все правильно записать в файл((
Спасибо всем за ответы и помощь в решении.
Также установлено дополнение для расширенного экспорта с возможностью выбора подкатегорий для экспорта.
Хочу в файл экспорта добавить колонку со ссылкой чпу для категорий и товаров.
Может кто подскажет как надо подрихтовать файл catalog_excel_export.php (я так понимаю именно его надо править), чтобы такой экспорт состоялся?
Насколько я понял, например для таблицы категорий надо к выборке из таблицы "префикс_caterories" увязать выборку из таблицы "префикс_cpu" с проверкой categoryID=ID (т.е. сопоставления id категорий) и соблюдением условия type=0 (т.е. для соответствующего id брать именно урл категорий).
Ну и для товаров +- логика, я так понимаю, подобная.
Не получается это все правильно записать в файл((
Спасибо всем за ответы и помощь в решении.
#2
Отправлено 30 June 2017 - 10:12 AM
Вот инструкция по добавлению в CSV-файл обычной (штатной) ссылки на товар и категорию. Действуйте по аналогии.Может кто подскажет как надо подрихтовать файл catalog_excel_export.php (я так понимаю именно его надо править)
==============================
Дополнение добавляет в экспортируемый CSV-файл столбец "Ссылка" со ссылкой на категорию и товар соответственно.
В файле catalog_excel_export.php
1. в функции _exportCategoryLine
перед
fputcsvex($f,$lines,$delimiter);
вставляем
# BEGIN добавляем ссылку
$lines[] = CONF_FULL_SHOP_URL."category_".$cat_data['categoryID'].".html";
# END добавляем ссылку
2. в функции _exportProducts
перед
fputcsvex($f,$lines,$delimiter);
вставляем
# BEGIN добавляем ссылку
$lines[] = CONF_FULL_SHOP_URL."product_".$row1['productID'].".html";
# END добавляем ссылку
3. после строки
$extra_columns_count = $cnt;
вставляем
# BEGIN добавляем ссылку
$lines[] = "Ссылка";
# END добавляем ссылку
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)
#3
Отправлено 01 July 2017 - 09:36 AM
Спасибо, Дмитрий! Но я так понимаю поле cpu из таблицы cpu надо таки выбрать в массив cat_data для соответствующей категории??
#4
Отправлено 01 July 2017 - 11:20 AM
Естественно. Сама ЧПУ-ссылка волшебным образом ниоткуда не появится.Но я так понимаю поле cpu из таблицы cpu надо таки выбрать в массив cat_data для соответствующей категории??
Либо в п.1 и п.2 надо добавить запрос к таблице cpu для получения соответствующей категории/товару ссылки, либо где-то ранее за пределами цикла делать общий запрос, формировать массивы категорий и товаров, а потом уже из этих массивов брать ЧПУ-ссылки. Скорее всего, так будет намного быстрее (один SQL-запрос плюс его обработка вместо SQL-запроса и обработки для каждой категории/товара).
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)
#5
Отправлено 01 July 2017 - 11:31 AM
В этом то и завис)))
Я пытался добавить запрос сюда вот в таком виде, но 100 пудов, что неправильно получилось)) Потому как не работает
UPDATE
И так не пошло
Я пытался добавить запрос сюда вот в таком виде, но 100 пудов, что неправильно получилось)) Потому как не работает
$q = db_query("select categoryID, name, description, sort_order, picture, meta_keywords, meta_description, title, cpu from ". CATEGORIES_TABLE,CPU_TABLE." ON ID = categoryID AND type = 0 where categoryID=".(int)$categoryID);
UPDATE
И так не пошло
$q = db_query("select categoryID, name, description, sort_order, picture, meta_keywords, meta_description, title from ". CATEGORIES_TABLE." where categoryID=".(int)$categoryID); $cat_data = db_fetch_row($q); if (!$cat_data) return; $q = db_query("select ID, cpu from ".CPU_TABLE." on type = 0 where ID=".(int)$categoryID); $cpu_data = db_fetch_row($q); if (!$cpu_data) return; ************* # BEGIN добавляем ссылку $lines[] = CONF_FULL_SHOP_URL.$cpu_data['cpu']; # END добавляем ссылку
#6
Отправлено 02 July 2017 - 11:51 AM
Только обратил внимание, что название темы не указал. Ее нельзя отредактировать?
#7
Отправлено 02 July 2017 - 12:28 PM
Ээ...Уж извините, но Вы вообще хоть что-то работающее написали?И так не пошло
Не копируя по инструкции, а самостоятельно, из головы?
Там же бред написан, показывающий полное незнание того, что пишется.
Я же написал адгоритм, как ПРАВИЛЬНО сделать.
Один (один!) SQL-запрос, из которого получатся два массива - ЧПУ категорий и ЧПУ товаров, с индексом массива categoryID и productID соответственно. После чего ЧПУ категории в вышеприведенной инструкции берется как $category_array[$categoryID], ЧПУ товара аналогично.
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)
#8
Отправлено 04 July 2017 - 07:52 PM
Появилось время. Пишу из головы, т.е. не проверяя.
файл catalog_excel_export.php
ну а дальше
в п.2 инструкции используем $cpu[0][$cat_data['categoryID']] - это текст ЧПУ-ссылки на категорию.
в п.3 инструкции используем $cpu[1][$row1['productID']] - это текст ЧПУ-ссылки на товар.
В обеих функциях надо, естественно, сделать global $cpu;
файл catalog_excel_export.php
if (!strcmp($sub, "excel_export"))
{
# BEGIN добавляем ссылку
$cpu = array();
$data = db_query("SELECT type, ID, cpu FROM ".DB_PRFX."cpu WHERE type<=1"); // выборка ссылок только для категорий и товаров, т.е. с type=0 и type=1
where ($row=db_fetch_assoc($data)) $cpu[$row['type']][$row['ID']] = $row['cpu'];
# END добавляем ссылку
if ( CONF_BACKEND_SAFEMODE != 1 && (!isset($_SESSION["log"]) || !in_array(6,$relaccess))) //unauthorized
ну а дальше
в п.2 инструкции используем $cpu[0][$cat_data['categoryID']] - это текст ЧПУ-ссылки на категорию.
в п.3 инструкции используем $cpu[1][$row1['productID']] - это текст ЧПУ-ссылки на товар.
В обеих функциях надо, естественно, сделать global $cpu;
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)