Любой движок можно накачать согласно собственным стандартам.
Материалы статьи подготовлены на основе практики применения на двух сайтах. В статье описаны ряд фрагментов «тюнинг-решений» для популярного движка интернет-магазина osCommerce (v/2.3), основная часть которых разрабатывалась по принципу экстремального программирования — в условиях лимитированных сроков и сразу «начисто». В связи с этим, указанные программные решения не претендуют на единственно возможные и правильные для исполнения описанных задач.
Статья может быть полезна разработчикам (описывается схема действий — где искать, что править и по какому принципу), однако не подойдет для новичков (практически исключены детальные «рецепты» — нужно владеть php и иметь некоторые знания по JS).
Статья может оказаться полезной для владельцев сайтов в качестве обзора требований и возможностей по накачке своего интернет-магазина для получения дополнительного конкурентного преимущества.
В публикации представлены темы:
- Тюнинг УРЛов
- Кейворды
- Маркировка текста — прикрутка визуального редактора
- Нанесение лого на картинки (подгрузка картинок в визуальный редактор)
- Автоуменьшение (авторесайз) картинок товаров и насение лого
- Создание описаний категорий
- Вывод кратких и полных описаний товаров
- Создание тегов (меток) товаров
Это некоторый фрагмент тюнинг-решений, которые были актуальны для меня в первую очередь. Для каждого отдельного интернет-проекта могут выделяться индивидуальные требования. Пишите — если будет время, можно подумать вместе.
Признаться, меня порадовала новая версия osCommerce. В отличие от популярной v 2.2, для которой, кстати, доступны большинство расширений (раньше я их юзала), — базовая комплектация получилась более осмысленной.
Как полагается, начало — с осмотра готовых решений (модулей/плагинов). Так уж повелось, что я довольно щепетильно отношусь к SEO-компоненте сайтов, поэтому для меня имело значение оптимизация системы под поисковики.
Тюнинг УРЛов
Для этой цели я взяла модуль Ultimate_SEO_URLSv22d_11 —> Скачать здесь
В инсталле (install.html из архива) подробно объясняется, что куда прикручивать, какие файлы изменять и какие sql-запросы отправлять.
Кейворды
Кейворды (meta keywords) отсутствовали. Сейчас поисковикам они не так въелись, как раньше, но, в любом случае, их лучше иметь, чем не иметь. Не ошибусь, если скажу, что большинство людей не любят дополнительных мелочей, осложняющих и без того рутинный процесс, поэтому я решила сделать образование кейвордов сразу автоматическим — скажем, использовать заголовок. Но чтобы в кейвордах не было лишних слов, я использовала константу — список ведущих ключевиков. В osCommerce, для этого мы будем работать в двух областях.
includes/modules/headers_tags/
— директория, в которой подключен инклюдинг для вывода в шапке страниц ( ht_category_title.php — напр., для категорий; ht_products_title.php — для товаров). Это была первая область.
Вторая область: файл шаблона — класс osc_template.php, находящийся в папке классов
includes/classes/
Основная аналогия, по которой нужно редактировать — строки, связанные с формированием title (если вы немного умеете читать чужой код, вы сразу поймете что дописывать и по какому шаблону). Я не буду подробно останавливаться на этом фрагменте. Дополнительную ф-цию, которую можно использовать для сопоставления слов из отдельного заголовка с перечнем главных ключевиков — ф-ция strpos(). Она определит нужные слова, и их уже можно устанавливать для внесения в шапку. По типичной схеме можно организовать Description.
Позже, на офф сайте появился специальный плагин для генерации мета-тегов Easy Meta Tags for 2.3X. Сама не пробовала, но для желающих иметь кейворды, может пригодиться.
Маркировка текста — прикручиваем визуальный редактор
Качаем Ckeditor for OsCommerce 2.3, в «README» получаем инструкции. На странице товара теперь мы можем видеть визуальный редактор.
визуальный редактор для oscommerce
Мне нравятся эти ребята (разработчики CKeditor). Была приятно удивлена, что нашла именно этот продукт в качестве WYSIWYG-редактора для osCommerce 2.3. Кроме того, что он предоставляет приятный интерфейс и удобные средства форматирования текста (ul, ol, strong, h1-h6 и т.д.), по опыту, я знала, что у него есть расширение для картинок.
Загрузка изображений для вставки в визуальный редактор
Раньше не доводилось прикручивать загрузку картинок, но здесь решилась. Продукт — CKfinder. По привычке, я перекачала файлы на сервер, но тест он прошел не сразу — не сразу сообразила, что в файле конфига нужно редактировать строку (правда, обширно помеченную комментариями) для безопасности системы.
function CheckAuthentication(){
// WARNING : DO NOT simply return
"true". By doing so, you are allowing
// "anyone" to upload and
list the files in your server. You must implement
// some kind of session validation
here. Even something very simple as...
// return
isset($_SESSION['IsAuthorized']) && $_SESSION['IsAuthorized'];
// ... where
$_SESSION['IsAuthorized'] is set to "true" as soon as the
// user logs in your system. To be
able to use session variables don't
// forget to add session_start() at
the top of this file.
return false;}
В этой функции нужно возвращать «true», а не «false». Вы можете определить настройки авторизованности доступа и вернуть «True», а только в противном случае (а не во всех) — «False».
После процедуры проверки на «истинность», тест прошел успешно. Однако для интеграции понадобится покопаться в файлах админки.
Файл 1. «Шапочный файл» (includes/template_top.php) для подключения js-скриптов в HEADER. Ищем в файле первые подключаемые js-скрипты и вставляем в их общую кучу:
Файл 2. Нам также понадобится файл, отвечающий за преобразование textarea формы нашего описания товара. Легко предположить что такие функции мы найдем в той же директории (includes), только в дополнительной поддиректории (functions). В гиде по установке CKeditor мы можем встретить его упоминание – catalog/admin/includes/functions/html_output.php.
Пишем код в ф-цию создания textarea формы
function tep_draw_textarea_field:
после завершаещего тега «$field .= ‘’ ; »,
инициализируя командную js-функцию «CKEDITOR.replace» по индикатору названия textarea (tep_output_string($name)). Этот реплейс будет следующего вида:
Теперь приурочиваем этот скрипт к общему “$field .= ”, чтобы он выводился вместе с textarea.
визуальный редактор + загрузка картинок для oscommerce
визуальный редактор + загрузка картинок для oscommerce
визуальный редактор + загрузка картинок для oscommerce
Нанесение лого на картинки
Нанесение лого (или, т.н. водяного знака) на картинки интересны не только с точки зрения имиджа или защиты от копирования, но и — для уникальности изображения (особенно, если исходник копирован с другого сайта). Только уникальный контент (начиная текстами и продолжая картинками) будет иметь вес в поисковиках. Благо, что для изображений, подгруженных с визуального редактора, у нас под рукой оказывается готовый плагин. Его мы допишем внизу того самого злосчастного конфига, — плагин, который я, возможно, не обнаружила бы, если бы не перекопала все папки из-за проблемки с ф-цией по безопасности.
По умолчанию, в конфиге используются следующие плагины:
include_once «plugins/imageresize/plugin.php»;include_once «plugins/fileeditor/plugin.php»;
Дописываем ПОСЛЕ строку:
include_once "plugins/watermark/plugin.php";
Не забываем перейти в саму папку watermark и заменить существующий файл “logo.gif” на собственный лого.
Автоуменьшение (авторесайз) картинок товаров и нанесение логотипа
Ресайз изображений каждый раз вручную — неблагодарное дело, если мы можем уменьшать их с помощью GD библиотек. На этот случай я использую несколько личных заготовок и просто подключаю функции в тот файл(ы), который отвечает за вывод изображений. Для osCommerce, это — product_listing.php (includes/modules/product_listing.php) и html_output.php (includes/functions/html_output.php).
Вы можете скачать ф-цию (или класс) ресайза (уменьшения) изображений из интернета, благо, что таких скриптов довольно много, и Yandex или Google с радостью их выдаст. Затем подключаем, вместе с классом watermark (плагин от CKfinder), — ф-цией include() — в includes/functions/html_output.php.
После этого, создаем функцию, аналогичную tep_image в файле “catalog/includes/functions/html_output.php”, и уже из нее вызываем ф-ции обработки изображений. Не забываем, что везде, где при выводе товара (а конкретно, catalog/includes/modules/ product_listing.php) использовалась ф-ция tep_image, ее нужно заменить по имени созданной нами ф-ции. Это важно.
На сервере у нас будет создаваться новая картинка с уменьшенными параметрами. Например, в рамках 500х500 px. Для новой картинки мы будем использовать новое название. Если вы имеете ограничения в дисковом пространстве на хостинге, лучше ограничиться константным префиксом (_myprefix или подобным). Если свободны кидать новое изображение при каждой смене названия товара — можно оптимизировать под поисковики, используя в качестве префикса заголовок товара. При UTF-8, нам необязательно переводить кириллицу в латиницу, однако, если вы работаете с другой кодировкой, или просто желаете использовать латиницу, вам понадобится дописать функцию транслита вместо $alt (тогда префикс будет запрашиваться, например, следующим образом: $prefix_name = strtr($alt, $alt_translate ) ; ). Иначе:
$prefix_name = $alt;
$new_name_file = eregi_replace( '\.([a-z]{3,4})$', "_" . $prefix_name . ".\\1", $src );
Вызов ф-ции уменьшения (скажем, она называется IMAGE_RESIZE) будет иметь примерно следующий вид:
IMAGE_RESIZE($src, $new_name_file, 500, 500);
Вызов ф-ции наложения логотипа:
$watermark = new Watermark();
$watermark->createWatermark($new_name_file, "logo.gif", 5, 5, 80, 60);
В нашей ф-ции, написанной по аналогу tep_image , мы будем вставлять картинку $new_name_file вместо $src. Фактически, происходит подмена картинки на ее отредактированный вариант.
Нанесение логотипа магазина на картинки-товары
Нанесение логотипа магазина на картинки-товары
Нанесение логотипа магазина на картинки-товары
Стоит обратить внимание, что ф-ции уменьшения и создания картинок будут работать при каждом запросе страницы категории. Это не нужно. Используем дополнительное условие, которое разместим ПОСЛЕ строки определения нового названия и ПЕРЕД ф-циями IMAGE_RESIZE и $watermark.
if (!file_exists($new_name_file)) {
//если условие выполнено, начнем преобразование изображение
IMAGE_RESIZE($src, $new_name_file, 500, 500);
$watermark = new Watermark();
$watermark->createWatermark($new_name_file, "logo.gif", 5, 5, 80, 60);
//и закроем ее после совершения ф-ций преобразованияизображений
}
—
Описания категорий
Создаем описания к категориям для osCommerce 2.3. Скачиваем модуль Subcategory textboxes for 2.3 , распаковываем архив и устанавливаем согласно инструкциям INSTALLATION.TXT. Управление описаниями готово. Бывает нужно разделить описание на две части — выводить некоторый текст (или картинку) сверху над товарами, другую часть — ниже после товаров. Для этого я использовала ф-цию explode(), определив параметр разделения «
описание категорий oscommerce-2-3 админка
описание категорий oscommerce-2-3 — текст сверху
описание категорий oscommerce-2-3 — текст снизу товаров
Теперь мы не только можем оптимизировать категории специально подготовленными текстами, но и достаточно свободны в дизайне. Например, вместо текста сверху линейки товаров можно вывести любой визуальный блок — как правило, в его роли выступает картинка на всю доступную ширину с призывом к действию. В моем случае, такая картинка только помешала бы видеть линейку товара, поэтому я от нее отказалась.
Вывод кратких и полных описаний товаров
Аналогичным образом я использовала вывод сокращенных описаний товаров (опять же используя explode и параметр разделения в виде линии «
Создание тегов (меток) для товаров
Использование тегов (меток) значительно улучшает показатели в поисковых системах по выбранным поисковым запросам. Практика показала, что применение тегов способна вдвое-втрое увеличить посещаемость сайта (и, соответственно, прибыль) благодаря охвату вспомогательных запросов, которыми на самом деле пользуются даже чаще, чем очевидными запросами.
Как это работает?
К каждому товару приписывается ряд тегов (меток), которые дополнительно характеризуют его. Например, «самокат для взрослых», «самокат с большими колесами» и т.д. Каждый из этих тегов, при клике, должен вести на отдельную страницу, специально оптимизированную для поисковиков и программированная на вывод всех товаров с аналогичными критериями. Равно посетителям сайта, на эту страницу заходит поисковик и считывает ее, а потом выдает в своих результатах поиска по аналогичному запросу. Теги — это очень удобно, с какой бы стороны мы не посмотрели: они полезны для покупателей, которые не хотят копаться во всей линейке товаров, а ищут исключительно «самокаты с большими колесами», они полезны для видимости сайта в поисковиках.
теги для товаров в интернет-магазине
Конечно, принципам тегирования наиболее соответствует страница внутреннего поиска, только поиск должен происходить не по запросу из формы поиска, а по затребованию определенного УРЛа. Также, нужно будет дописать в движке, в админской части, возможность привязки тегов к каждому из товаров.
Честно говоря, изначально устанавливая теги для товаров, я не ожидала особого наплыва по вспомогательным запросам, полагая, что их используют те же люди, которые ищут по основным ключевикам. Однако результат показал обратное: вспомогательные запросы могут принести ~ в 2 раза больше клиентов, чем основные запросы.