Всем давно известно о существование такого компонента интернет-магазина как VirtueMart, его функциональные возможности давно зарекомендовали себя с очень хорошей стороны, и на сегодняшний день можно спокойно говорить о том, что этот компонент является самым лучшим в своем классе. Но все таки существует один момент, с которым столкнулся сам и не раз встречал на форумах где рассуждали о схожей проблеме, а именно вопрос о не возможности внесения в данное расширение мета данных, таких как meta-description и meta-keywords в описание категории и описание товаров, хоть уже давно известно, что вышеуказанные мета-данные практически не участвуют в формировании рейтинга сайта, но авось да абы. Для решения этой проблемы я находил разные каверзные и недоработанные способы которые казались мне не совсем уместными в тех объемах в которых они предоставлялись и было решено найти самый оптимальный метод в самые сжатые сроки и как оказалось это стоило дела 20 минут. Ниже приведенный способ является очень бедным и простым но он полностью рабочий:
Для категорий VirtueMart
1. Идем к файловой системе своей Joomla 1.5 и находим там файл по адресу administrator/com_virtuemart/html/shop.browse.php
2. Открываем любым текстовым редактором, можно специальным и находим строчки отродясь этим:
if( $category_id ) {
/**
* CATEGORY DESCRIPTION
*/
$db->query( "SELECT category_id, category_name FROM #__{vm}_category WHERE category_id='$category_id'");
$db->next_record();
$category_name = shopMakeHtmlSafe( $db->f('category_name') );
// Set Dynamic Page Title
$vm_mainframe->setPageTitle( $db->f("category_name") );
$desc = $ps_product_category->get_description($category_id);
$desc = vmCommonHTML::ParseContentByPlugins( $desc );
// Prepend Product Short Description Meta Tag "description" when applicable
$mainframe->prependMetaTag( "description", substr(strip_tags($desc ), 0, 255) );
}
меняем на
if( $category_id ) {
/**
* CATEGORY DESCRIPTION
*/
$db->query( "SELECT category_id, category_name FROM #__{vm}_category WHERE category_id='$category_id'");
$db->next_record();
$category_name = shopMakeHtmlSafe( $db->f('category_name') );
$desc = $ps_product_category->get_description($category_id);
$desc = vmCommonHTML::ParseContentByPlugins( $desc );
// Prepend Product Short Description Meta Tag "description" when applicable
// !!!!!!!!!!!!!Патерн для мета-ключевых слов заключеных в тег спан со стилем display:none;
$regex = '#<span class="keywords" style="display: none;">.*</span>#iU';
// !!!!!!!!!!!!!Патерн для мета-описания заключенный в тег спан со стилем display:none;
$regex_d = '#<span class="desc" style="display: none;">.*</span>#iU';
// !!!!!!!!!!!!!Патерн для тайтла который не должен быть названием категории заключенный в тег спан со стилем display:none;
$regex_b = '#<span class="title" style="display: none;">.*</span>#iU';
if(preg_match($regex_b, $desc, $title_a))
{
$desc = preg_replace($regex_b,"",$desc);
$vm_mainframe->setPageTitle( $title_a[0] );
}
else
{
$vm_mainframe->setPageTitle( $db->f("category_name") );
}
$keywords = preg_match($regex, $desc, $maches);
$mainframe->prependMetaTag( "keywords", strip_tags($maches[0]));
$desc = preg_replace($regex,"",$desc);
if(preg_match($regex_d, $desc, $descrip_a))
{
$desc = preg_replace($regex_d,"",$desc);
$mainframe->prependMetaTag( "description", strip_tags($descrip_a[0]) );
}
else
{
$mainframe->prependMetaTag( "description", strip_tags($desc));
}
}
3. Сохраняем и перезаписываем на сервере.
4. Далее идем в Административную панель Joomla и находим любую категорию VirtueMart, и там в поле описания категории открываем исходный код или же выключаем редактор и пишем такие строчки:
<span class="keywords" style="display: none;">здесь мета ключевые слова</span>
<span class="desc" style="display: none;">здесь мета описание</span>
<span class="title" style="display: none;">здесь альтернативный тайтл</span>
обратите !!!внимание, что в данной реализации нужно строго придерживаться шаблона то есть написание самого тега SPAN - кавычки, пробелы. Между открывающим и закрывающим тегом может быть любое содержимое.
5. Сохраняем категорию и если мы вновь откроем ее, то должны будем увидеть в исходном коде выше представленные строки, если нет то выключаем редактор в общих настройка Joomla и сами плагины редакторов, повторяем процедуру.
6. Идем на сайт смотрим все должно работать. Вопросы в контакты на e-mail.
Данный пример для реализации в товарах магазина опишу в след. статье.
Комментарии
И добавить до этой страницы description и keywords, которые будут появляться только на этой страницы, как сделано у Вас в статье для категорий.
PS: очень крутая статья...день потратил на оптимизацию страничек категории, так ничего и не получилось...пока не нашел Вашу статью - она меня порадовала.....
не судите строго новичка в этом деле, просто люблю пробывать делать, что то сам? даже по чьим то инструкциям - это полезен опыт)
Спасибо за ответ!
А насчетЦитирую Сергей:
Я не кого не сужу - сам когда то таким был!
а куда можно вписать в коде слово/слова которые будут автоматом отображаться УЖЕ в теге:
здесь мета ключевые слова
Простите не могу найти ? Или она еще не готова ?
Я реализовал все получилось.
Joomla Версия 1.5.22 VirtueMart 1.1.7
Полезности - приветствуются!
Спасибо!
Долго бился с этим долбаным виртумартом, а тут прям в точку.
Огромное человеческое спасибо автору.