====== Стандарты интеграции сайтов ====== - Создание нового сайта: - Новый сайт создается отдельно, а не из Демо-сайта. - Пользователь должен быть перемещен из Демо-сайта в новосозданный. - Демо сайт должен быть удален. - Все существующие константы однократно должны быть помещены в отдельную группу «Конфигурация». - Качество jpg и png должно быть выставлено на максимум, PNG_QUALITY = 0, JPG_QUALITY = 100. - Модули «Типограф» и «Услуги раскрутки сайта» должны быть отключены. - Индексация сайта на время работ должна быть запрещена. - Интеграция: - Файлы: - Все файлы верстки, кроме файлов самих страниц (html или htm), должны быть перемещены в корневую папку сайта без изменений. В случае, если в верстке содержатся папки с именами «admin» или «modules» их нужно переименовать. - Запрещено вносить изменения в файлы верстки. Все изменения вносятся путем обновления верстки верстальщиком или путем копирования исходных файлов с их дальнейшим переименованием в случае, если связаться с верстальщиком нет возможности. - Структура: - Должно существовать меню с названием «Нет» для пунктов, которые нужно выводить в карте сайта, но не нужно выводить ни в одном меню. - Раздел интернет-магазина должен иметь путь «shop», а корзина «shop/cart», если иное не регламентировано техническим заданием. - Помимо основных элементов структуры должны быть добавлены: - Поиск, если поддерживается редакцией - Google sitemap с путем «sitemap». - Карта сайта с путем «map». - Страница ошибки 404. Должна быть привязана к сайту. - В карте сайта не должно быть ссылок на страницы: Корзины, Карты сайта, Google Sitemap, 404 ошибки, Сайт отключен. - Макеты: - Всегда существуют 2 макета – «Основной макет» и макет «Главная», вложенный в первый. - Шапка должна быть приведена к виду шапки сайта по-умолчанию(демо-сайта), скрипты и стили верстки должны остаться подключены. - Строку с вызовом метода «showCss()» необходимо подключать после подключения всех стилей верстки. - Все недочеты верстки при интеграции исправляются перекрывающими стилями в CSS основного макета или же с помощью обновления верстки, полученной от верстальщика. - Макетов должно быть как можно меньше, но в них не должно содержаться множество условий, привязанных к структуре. - Статичные элементы макета – телефон, адрес, социальные иконки и другие должны быть вынесены в «Страницы и документы». В случае, если элемент однострочный и не содержит html-тегов, он должен быть вынесен в константы. - В футере год должен изменяться на диапазон годов автоматически. - Все динамические блоки в макетах выводятся с помощью класса «Kad_Template». - Весь JS код и стили должны быть упакованы в файлы. - Javascript - JS код для конкретного раздела нужно подключать именно в этом разделе с помощью вкладки Макета Javascript или с помощью подключения внешнего JS файла. - XSL-шаблоны: - Все XSL- шаблоны, отличные от исходных, должны быть скопированы и именованы с префиксом из двух символов, полученным из домена сайта через «_», а также помещены в отдельную группу с названием домена сайта. - XSL шаблоны, предназначенные для использования в других XSL шаблонах, содержащие универсальный подшаблон, должны именоваться с дополнительным префиксом «_» - Исходные XSL-шаблоны должны оставаться без изменений. - Допустимо использование стандартных шаблонов при настройке структуры с ТДС. - Для картинок всех динамических элементов должен быть проставлен атрибут «alt», содержащий текст «Картинка для {name}», где «{name}» будет заменяться названием элемента. - Все xsl:include должен быть в самом начале XSL шаблона после закрытия тега xsl:stylesheet - ТДС: - Все ТДС, отличные от исходных, должны быть скопированы и именованы с постфиксом из двух символов, полученным из домена сайта, через пробел. - В случае, если требуется вывести статичный документ, структуру или динамический блок, формируемый отдельным XSL-шаблоном, в середине динамической страницы, то делается это путем добавления сущности в ТДС в контроллер показа текста документа и выводом этой сущности в XSL-шаблоне, привязанном к текущей структуре. - Страницы и документы: - Если не указан текст, то текст документа должен содержать “Текст страницы “[название_страницы]”. - Если требуется использовать несколько документов на одной странице, то их необходимо помещать в раздел с названием страницы. - Все блоки корневого макета, которые помещены в документы, необходимо размещать в корневом разделе. - Константы: - Все константы должны быть в верхнем регистре. - Доработки/нестандартный функционал. - Никогда не доверяйте данным от пользователя. Данные нужно проверять. - Если требуется отметить доп. свойство для отдельной выборки, например для отображения в списке товаров или на странице сравнения товаров, то делается это с помощью разделов дополнительных свойств или с помощью префиксов для tag_name доп. свойства. Например, “list.property1”. Можно использовать несколько префиксов, например, “list.compare.property1”. - Дополнительные свойства списком, например на странице товара, должны выводиться [[private:koding:hostcms:modules:shop:useful:sortirovka_dop._svojstv_na_stranice_tovara|через property]], а не через property_value. - Для любого меню, в том числе и в меню из разделов каталога, активный пункт должен быть подсвечен(выделен жирным), если иное не прописано в ТЗ. - Для всех информационных систем и интернет-магазинов, которые выводятся в клиентской части должен быть выбран тип формирования URl - Транслитерация. - Вся валидация должна быть реализована не только в клиентской части, но и в серверной. - Любой PHP-код должен быть написан и прокомментирован в соответствии со [[public:standarts:kod|стандартами оформления кода KAD :: Systems]] - Недопустимо: - Использование сторонних файлов и библиотек, находящихся за пределами папки «modules», а также в корне папки «modules». Такие библиотеки должны быть разработаны строго в соответствии с API HostCMS и размещаться в отдельной папке папки modules. - Изменение исходных файлов системы HostCMS, за исключением файла «bootstrap.php», а также конфигурационных файлов «config.php» и файлов находящихся в папке «config», кроме случаев, заранее оговоренных с заказчиком, частично или полностью исключающих дальнейшее обновление системы и техническую поддержку HostCMS.