Как убрать title категории/подкатегории из карточки товара ИМ?
pd-art
2 марта 2016 г.
Здравствуйте!Как убрать title категории/подкатегории из карточки товара ИМ и оставить только title товара?
Сейчас так "Товар | Подкатегория | Категория | Название сайта"
А нужно "Товар | Название сайта"
Замечу что в категориях/подкатегориях должен оставаться развернутый title и только в карточке товара сокращенный.
В ТДС Магазина правил эту строчку,но она отвечает и за категории/подкатегории и за карточку товара:
// формируем заголовок страницы
$new_title = to_str($tag_name) . $group_path . $item_name;
Может как-то можно условие задать что для категориий/подкатегорий выполняется так:
// формируем заголовок страницы
$new_title = to_str($tag_name) . $group_path;
А для товара так:
// формируем заголовок страницы
$new_title = to_str($tag_name) . $item_name;
Сейчас так "Товар | Подкатегория | Категория | Название сайта"
А нужно "Товар | Название сайта"
Замечу что в категориях/подкатегориях должен оставаться развернутый title и только в карточке товара сокращенный.
В ТДС Магазина правил эту строчку,но она отвечает и за категории/подкатегории и за карточку товара:
// формируем заголовок страницы
$new_title = to_str($tag_name) . $group_path . $item_name;
Может как-то можно условие задать что для категориий/подкатегорий выполняется так:
// формируем заголовок страницы
$new_title = to_str($tag_name) . $group_path;
А для товара так:
// формируем заголовок страницы
$new_title = to_str($tag_name) . $item_name;
hostcms
Модератор
2 марта 2016 г.
свои изменения по формированию логики включаете в условие
// Если товар
if ($Shop_Controller_Show->item)
{
// ...
}
if ($Shop_Controller_Show->item)
{
// ...
}
pd-art
2 марта 2016 г.
HostCMS,Не получается...
if ($Shop_Controller_Show->item) {
$new_title = $item_name;
} else {
$new_title = $item_name . $group_path ;
}
if ($Shop_Controller_Show->item) {
$new_title = $item_name;
} else {
$new_title = $item_name . $group_path ;
}
hostcms
Модератор
3 марта 2016 г.
а отладку вывести? что вы дальше с $new_title делаете?
pd-art
3 марта 2016 г.
HostCMS, $new_title выводит title страницы. Вот весь код ТДС ИМ: (там в середине выделил строки которые формируют тайтл)
<?php
/* Создаем экземпляр класса магазина (при создании устанавливаем флаг необходимости очистки cookie) */
$shop = new shop(true);
$kernel = & singleton('kernel');
$current_shop_id = to_int($GLOBALS['LA']['shop_id']);
// Обработка скачивания файла электронного товара
if (isset($_GET['download_file']))
{
$eitem_path = to_str($_GET['download_file']);
// Получаем заказанный товар с данным путем
if ($order_item_row = $shop->GetOrderItemByPath($eitem_path))
{
// Получаем информацию о заказе
$order_row = $shop->GetOrder($order_item_row['shop_order_id']);
if ($order_row)
{
$DateClass = new DateClass();
// Проверяем, доступна ли ссылка (Ссылка доступна в течение суток после оплаты)
if ($DateClass->DateSqlToUnix($order_row['shop_order_date_of_pay']) > time() - 24 * 60 * 60)
{
// Получаем информацию об электронной сущности заказанного товара
$eitem_row = $shop->GetEitem($order_item_row['shop_eitem_id']);
if ($eitem_row['shop_eitem_filename'] != '')
{
if (class_exists('File'))
{
$File = new File();
$ext = $kernel->GetExtension($eitem_row['shop_eitem_filename']);
$file_path = CMS_FOLDER . UPLOADDIR . "shop_{$current_shop_id}/eitems/item_catalog_{$eitem_row['shop_items_catalog_item_id']}/{$eitem_row['shop_eitem_id']}.{$ext}";
if (is_file($file_path))
{
$File->Download($file_path, $eitem_row['shop_eitem_filename'], array('content_disposition' => 'attachment'));
}
unset($File);
}
}
}
}
}
}
if(preg_match("^user-(.*)^", end($GLOBALS['URL_ARRAY']), $regs))
{
// Установка кукис для аффилиат-программы
setcookie('affiliate_name', $regs[1], time() + 31536000, '/');
$break_if_path_not_found = false;
}
else
{
$break_if_path_not_found = true;
}
// получаем для пути ассоциативный массив с id группы и id/url элемента
$GLOBALS['shop_item_path'] = $shop->GetItemPath($current_shop_id, '', $break_if_path_not_found);
/* Если путь существует */
if ($GLOBALS['shop_item_path'])
{
$group_path = '';
// получаем массив с деревом от текущей группы до корня
$mas_groups_to_root = $shop->GetShopGroupsToRoot($GLOBALS['shop_item_path']['group'], $current_shop_id);
$mas_groups_to_root = array_reverse($mas_groups_to_root);
// получаем данные о группе
$row_group = $shop->GetGroup($GLOBALS['shop_item_path']['group']);
// получаем данные из seo - полей для групп
$seo_title = trim($row_group['shop_groups_seo_title']);
$seo_description = trim($row_group['shop_groups_seo_description']);
$seo_keywords = trim($row_group['shop_groups_seo_keywords']);
// цикл по массиву с деревом для формирования пути по группам
$count_groups=count($mas_groups_to_root);
for ($i = $count_groups - 1; $i >= 0; $i--)
{
if ($i < $count_groups-1)
{
$group_path .= ' | ';
}
if (trim($mas_groups_to_root[$i]['shop_groups_seo_title'])=='')
{
$group_path .= $mas_groups_to_root[$i]['shop_groups_name'];
}
else
{
$group_path .= $mas_groups_to_root[$i]['shop_groups_seo_title'];
}
}
$item_name='';
// Если вывод информационного элемента
if ($GLOBALS['shop_item_path']['item'])
{
// получаем данные о товаре
$row_item = $shop->GetItem($GLOBALS['shop_item_path']['item']);
// имя элемента
$item_name = $row_item['shop_items_catalog_name'];
// проверяем если seo_title непустой, то в заголовок страницы подставляем его
if (trim($row_item['shop_items_catalog_seo_title'])!='')
{
$item_name = trim($row_item['shop_items_catalog_seo_title']);
}
if ($group_path != '')
{
//$item_name = $item_name . ' — ';
$item_name = $item_name . ' | ';
}
}
if (isset($GLOBALS['shop_item_path']['tag_name']) && class_exists('Tag'))
{
$oTag = new Tag();
$tag_row = $oTag->GetTagByPath($GLOBALS['shop_item_path']['tag_name']);
if ($tag_row)
{
$tag_name = "Метка: {$tag_row['tag_name']}. ";
}
}
// формируем заголовок страницы
//$new_title = to_str($tag_name) . $group_path . $item_name;
if ($Shop_Controller_Show->item) {
$new_title = $item_name;
} else {
$new_title = $item_name . $group_path ;
}
}
else
{
// Элемент/группа не найдены, возвращаем 404 ошибку.
ShowHeader404();
// Запрещаем отдавать 200-й заголовок
if (!defined('IS_ERROR_404'))
{
define('IS_ERROR_404', true);
}
$site = & singleton('site');
$site_row = $site->GetSite(CURRENT_SITE);
if ($site_row['site_error404'])
{
$structure = & singleton('Structure');
$structure_id = intval($site_row['site_error404']);
$structure_row = $structure->GetStructureItem($structure_id);
// Если тип - страница
if ($structure_row['structure_type'] == 0)
{
$document = & singleton('documents');
$documents_version_row = $document->GetCurrentDocumentVersion($structure_row['documents_id']);
$documents_version_id = $documents_version_row['documents_version_id'];
// Текущая страница
$kernel->set_current_page(PAGE_DIR . 'documents' . $documents_version_id . '.html');
}
elseif ($structure_row['structure_type'] == 1)
{
// Текущая страница - модуль
$kernel->set_current_page(CMS_FOLDER . 'structure/Modules/Module' . $structure_id . '.php');
}
else
{
/* типовая динамическая страница */
$lib_id = intval($structure_row['lib_id']);
/* Получаем параметры типовой динамической страницы */
$lib = new lib();
$GLOBALS['LA'] = $lib->LoadLibPropertiesValue($lib_id, $structure_id);
$kernel->set_current_page(CMS_FOLDER . "lib/lib_$lib_id/lib_$lib_id.php");
}
// Шаблон вывода для страницы
$kernel->set_current_page_data_template($structure_row['data_templates_id']);
}
elseif (to_str($_SERVER['REQUEST_URI']) != '/')
{
header('Location: /');
// Прекращаем выполнение
exit();
}
}
if (!empty($new_title))
{
// отображаем группу
if (!isset($row_item))
{
// Заголовок для группы задан
if (!empty($seo_title))
{
$kernel->set_title($seo_title);
}
else // Описание для группы не задано
{
$kernel->set_title($new_title);
}
// Описание для группы задано
if (!empty($seo_description))
{
$kernel->set_description($seo_description);
}
else // Описание для группы не задано
{
$kernel->set_description($new_title);
}
// Ключевые слова для группы заданы
if (!empty($seo_keywords))
{
$kernel->set_keywords($seo_keywords);
}
else // Ключевые слова для группы не заданы
{
$kernel->set_keywords($new_title);
}
}
else // отображаем элемент
{
// Описание для элемента задано
if (!empty($row_item['shop_items_catalog_seo_title']))
{
$kernel->set_title(trim($row_item['shop_items_catalog_seo_title']));
}
else // Описание для элемента не задано
{
$kernel->set_title($new_title);
}
// Описание для элемента задано
if (!empty($row_item['shop_items_catalog_seo_description']))
{
$kernel->set_description(trim($row_item['shop_items_catalog_seo_description']));
}
else // Описание для элемента не задано
{
$kernel->set_description($new_title);
}
// Ключевые слова для элемента заданы
if (!empty($row_item['shop_items_catalog_seo_keywords']))
{
$kernel->set_keywords(trim($row_item['shop_items_catalog_seo_keywords']));
}
else // Ключевые слова для элемента не заданы
{
$kernel->set_keywords($new_title);
}
}
}
/* Обработка сравнения товаров */
/* Десериализуем массив */
if (isset($_COOKIE['SHOPCOMPARE']))
{
$compare_items = @unserialize($shop->GetCookie('SHOPCOMPARE'));
$compare_items = to_array($compare_items);
}
else
{
$compare_items = array();
}
/* Добавление элементов */
foreach ($_GET as $key => $value)
{
/* Выбираем из запроса товары, которые нужно добавить в список для сравнения */
if (preg_match("/compare_id_(\d*)/", $key, $matches))
{
$compare_id = to_int($matches[1]);
/* Проверяем, есть ли этот товар в кукисах для сравнения */
if (!in_array($compare_id, $compare_items))
{
/*Добавляем в массив кукисов*/
$compare_items[] = $compare_id;
}
}
}
/* Удаление выбранного товара из сравнения */
if (isset($_GET['delete_compare']))
{
foreach ($_GET as $key => $value)
{
/* Извлекаем индекс товара, который нужно удалить из сравнения и кукиса */
if (preg_match("/del_compare_id_(\d*)/", $key, $matches))
{
$compare_id = to_int($matches[1]);
$i = array_search($compare_id, $compare_items);
if ($i !== false)
{
unset($compare_items[$i]);
}
}
}
}
/* Удаление всех сравнений */
if (isset($_GET['delete_all_compare']))
{
$compare_items = array();
}
/* Устанавливаем кукисы */
if (count($compare_items) > 0)
{
$shop->SetCookie("SHOPCOMPARE", serialize($compare_items), time() + 31536000, '/');
}
else
{
$shop->SetCookie("SHOPCOMPARE", '', 0, '/');
unset($_COOKIE['SHOPCOMPARE']);
}
?>
<?php
/* Создаем экземпляр класса магазина (при создании устанавливаем флаг необходимости очистки cookie) */
$shop = new shop(true);
$kernel = & singleton('kernel');
$current_shop_id = to_int($GLOBALS['LA']['shop_id']);
// Обработка скачивания файла электронного товара
if (isset($_GET['download_file']))
{
$eitem_path = to_str($_GET['download_file']);
// Получаем заказанный товар с данным путем
if ($order_item_row = $shop->GetOrderItemByPath($eitem_path))
{
// Получаем информацию о заказе
$order_row = $shop->GetOrder($order_item_row['shop_order_id']);
if ($order_row)
{
$DateClass = new DateClass();
// Проверяем, доступна ли ссылка (Ссылка доступна в течение суток после оплаты)
if ($DateClass->DateSqlToUnix($order_row['shop_order_date_of_pay']) > time() - 24 * 60 * 60)
{
// Получаем информацию об электронной сущности заказанного товара
$eitem_row = $shop->GetEitem($order_item_row['shop_eitem_id']);
if ($eitem_row['shop_eitem_filename'] != '')
{
if (class_exists('File'))
{
$File = new File();
$ext = $kernel->GetExtension($eitem_row['shop_eitem_filename']);
$file_path = CMS_FOLDER . UPLOADDIR . "shop_{$current_shop_id}/eitems/item_catalog_{$eitem_row['shop_items_catalog_item_id']}/{$eitem_row['shop_eitem_id']}.{$ext}";
if (is_file($file_path))
{
$File->Download($file_path, $eitem_row['shop_eitem_filename'], array('content_disposition' => 'attachment'));
}
unset($File);
}
}
}
}
}
}
if(preg_match("^user-(.*)^", end($GLOBALS['URL_ARRAY']), $regs))
{
// Установка кукис для аффилиат-программы
setcookie('affiliate_name', $regs[1], time() + 31536000, '/');
$break_if_path_not_found = false;
}
else
{
$break_if_path_not_found = true;
}
// получаем для пути ассоциативный массив с id группы и id/url элемента
$GLOBALS['shop_item_path'] = $shop->GetItemPath($current_shop_id, '', $break_if_path_not_found);
/* Если путь существует */
if ($GLOBALS['shop_item_path'])
{
$group_path = '';
// получаем массив с деревом от текущей группы до корня
$mas_groups_to_root = $shop->GetShopGroupsToRoot($GLOBALS['shop_item_path']['group'], $current_shop_id);
$mas_groups_to_root = array_reverse($mas_groups_to_root);
// получаем данные о группе
$row_group = $shop->GetGroup($GLOBALS['shop_item_path']['group']);
// получаем данные из seo - полей для групп
$seo_title = trim($row_group['shop_groups_seo_title']);
$seo_description = trim($row_group['shop_groups_seo_description']);
$seo_keywords = trim($row_group['shop_groups_seo_keywords']);
// цикл по массиву с деревом для формирования пути по группам
$count_groups=count($mas_groups_to_root);
for ($i = $count_groups - 1; $i >= 0; $i--)
{
if ($i < $count_groups-1)
{
$group_path .= ' | ';
}
if (trim($mas_groups_to_root[$i]['shop_groups_seo_title'])=='')
{
$group_path .= $mas_groups_to_root[$i]['shop_groups_name'];
}
else
{
$group_path .= $mas_groups_to_root[$i]['shop_groups_seo_title'];
}
}
$item_name='';
// Если вывод информационного элемента
if ($GLOBALS['shop_item_path']['item'])
{
// получаем данные о товаре
$row_item = $shop->GetItem($GLOBALS['shop_item_path']['item']);
// имя элемента
$item_name = $row_item['shop_items_catalog_name'];
// проверяем если seo_title непустой, то в заголовок страницы подставляем его
if (trim($row_item['shop_items_catalog_seo_title'])!='')
{
$item_name = trim($row_item['shop_items_catalog_seo_title']);
}
if ($group_path != '')
{
//$item_name = $item_name . ' — ';
$item_name = $item_name . ' | ';
}
}
if (isset($GLOBALS['shop_item_path']['tag_name']) && class_exists('Tag'))
{
$oTag = new Tag();
$tag_row = $oTag->GetTagByPath($GLOBALS['shop_item_path']['tag_name']);
if ($tag_row)
{
$tag_name = "Метка: {$tag_row['tag_name']}. ";
}
}
// формируем заголовок страницы
//$new_title = to_str($tag_name) . $group_path . $item_name;
if ($Shop_Controller_Show->item) {
$new_title = $item_name;
} else {
$new_title = $item_name . $group_path ;
}
}
else
{
// Элемент/группа не найдены, возвращаем 404 ошибку.
ShowHeader404();
// Запрещаем отдавать 200-й заголовок
if (!defined('IS_ERROR_404'))
{
define('IS_ERROR_404', true);
}
$site = & singleton('site');
$site_row = $site->GetSite(CURRENT_SITE);
if ($site_row['site_error404'])
{
$structure = & singleton('Structure');
$structure_id = intval($site_row['site_error404']);
$structure_row = $structure->GetStructureItem($structure_id);
// Если тип - страница
if ($structure_row['structure_type'] == 0)
{
$document = & singleton('documents');
$documents_version_row = $document->GetCurrentDocumentVersion($structure_row['documents_id']);
$documents_version_id = $documents_version_row['documents_version_id'];
// Текущая страница
$kernel->set_current_page(PAGE_DIR . 'documents' . $documents_version_id . '.html');
}
elseif ($structure_row['structure_type'] == 1)
{
// Текущая страница - модуль
$kernel->set_current_page(CMS_FOLDER . 'structure/Modules/Module' . $structure_id . '.php');
}
else
{
/* типовая динамическая страница */
$lib_id = intval($structure_row['lib_id']);
/* Получаем параметры типовой динамической страницы */
$lib = new lib();
$GLOBALS['LA'] = $lib->LoadLibPropertiesValue($lib_id, $structure_id);
$kernel->set_current_page(CMS_FOLDER . "lib/lib_$lib_id/lib_$lib_id.php");
}
// Шаблон вывода для страницы
$kernel->set_current_page_data_template($structure_row['data_templates_id']);
}
elseif (to_str($_SERVER['REQUEST_URI']) != '/')
{
header('Location: /');
// Прекращаем выполнение
exit();
}
}
if (!empty($new_title))
{
// отображаем группу
if (!isset($row_item))
{
// Заголовок для группы задан
if (!empty($seo_title))
{
$kernel->set_title($seo_title);
}
else // Описание для группы не задано
{
$kernel->set_title($new_title);
}
// Описание для группы задано
if (!empty($seo_description))
{
$kernel->set_description($seo_description);
}
else // Описание для группы не задано
{
$kernel->set_description($new_title);
}
// Ключевые слова для группы заданы
if (!empty($seo_keywords))
{
$kernel->set_keywords($seo_keywords);
}
else // Ключевые слова для группы не заданы
{
$kernel->set_keywords($new_title);
}
}
else // отображаем элемент
{
// Описание для элемента задано
if (!empty($row_item['shop_items_catalog_seo_title']))
{
$kernel->set_title(trim($row_item['shop_items_catalog_seo_title']));
}
else // Описание для элемента не задано
{
$kernel->set_title($new_title);
}
// Описание для элемента задано
if (!empty($row_item['shop_items_catalog_seo_description']))
{
$kernel->set_description(trim($row_item['shop_items_catalog_seo_description']));
}
else // Описание для элемента не задано
{
$kernel->set_description($new_title);
}
// Ключевые слова для элемента заданы
if (!empty($row_item['shop_items_catalog_seo_keywords']))
{
$kernel->set_keywords(trim($row_item['shop_items_catalog_seo_keywords']));
}
else // Ключевые слова для элемента не заданы
{
$kernel->set_keywords($new_title);
}
}
}
/* Обработка сравнения товаров */
/* Десериализуем массив */
if (isset($_COOKIE['SHOPCOMPARE']))
{
$compare_items = @unserialize($shop->GetCookie('SHOPCOMPARE'));
$compare_items = to_array($compare_items);
}
else
{
$compare_items = array();
}
/* Добавление элементов */
foreach ($_GET as $key => $value)
{
/* Выбираем из запроса товары, которые нужно добавить в список для сравнения */
if (preg_match("/compare_id_(\d*)/", $key, $matches))
{
$compare_id = to_int($matches[1]);
/* Проверяем, есть ли этот товар в кукисах для сравнения */
if (!in_array($compare_id, $compare_items))
{
/*Добавляем в массив кукисов*/
$compare_items[] = $compare_id;
}
}
}
/* Удаление выбранного товара из сравнения */
if (isset($_GET['delete_compare']))
{
foreach ($_GET as $key => $value)
{
/* Извлекаем индекс товара, который нужно удалить из сравнения и кукиса */
if (preg_match("/del_compare_id_(\d*)/", $key, $matches))
{
$compare_id = to_int($matches[1]);
$i = array_search($compare_id, $compare_items);
if ($i !== false)
{
unset($compare_items[$i]);
}
}
}
}
/* Удаление всех сравнений */
if (isset($_GET['delete_all_compare']))
{
$compare_items = array();
}
/* Устанавливаем кукисы */
if (count($compare_items) > 0)
{
$shop->SetCookie("SHOPCOMPARE", serialize($compare_items), time() + 31536000, '/');
}
else
{
$shop->SetCookie("SHOPCOMPARE", '', 0, '/');
unset($_COOKIE['SHOPCOMPARE']);
}
?>
Авторизация