====== Полезные мелочи ======
==== Настройка SMTP ====
Отправка почты настраивается в файле /modules/core/config/mail.php
=== Gmail ===
Пример конфиг файла для gmail.
return array (
'default' => array (
'driver' => 'smtp',
),
'sendmail' => array (
'driver' => 'sendmail',
),
'smtp' => array (
'driver' => 'smtp',
'username' => 'steelsafeshop@gmail.com',
'port' => '465', // для SSL порт 465
'host' => 'ssl://smtp.gmail.com', // для SSL используйте ssl://smtp.gmail.com
'password' => 'PASSWORD'
)
);
Включите доступ к аккаунту для непроверенных приложений на странице https://www.google.com/settings/security/lesssecureapps
==== Не отображаются панели центра администрирования, админки ====
Для включения панелей:
* авторизуйтесь в ЦА
* перейдите к модулю Константы
* Отключите константу ALLOW_PANEL, если её значение равно false
* Удостоверьтесь, что домен ЦА и домен сайта одинаковы (не являются псевдонимами)
==== Не отображаются панели XML XSL ====
Если панели XML/XSL не отображаются в клиентской части, значит включено кэширование. Выключите модуль кэширования и перезагрузите страницу. Кэширование можно отключать для отдельных блоков. Для этого для всех контроллеров показа доступен метод ->cache(FALSE)
==== Не отображаются все товары/инфоэлементы в корне магазина/инфосистемы ====
Если требуется выводить в корне магазина или инфосистемы все элементы, то по идее достаточно в коде соответствующей ТДС перед выводом контроллера показа раскомментить следующую часть кода:
// В корне выводим из всех групп
/*if ($Informationsystem_Controller_Show->group == 0)
{
$Informationsystem_Controller_Show->group(FALSE);
}*/
Но иногда такое решение не помогает, и item'ы в корне не выводятся. В XML их нет. В таком случае необходимо при выводе контроллера показа установить свойство **limit**
$Informationsystem_Controller_Show
->xsl(
Core_Entity::factory('Xsl')->getByName($xslName)
)
->itemsProperties(TRUE)
->limit(999)
->show();
Кстати, на hostcms форуме внятного ответа по этой проблеме не нашел.
==== Отправка письма пользователю,который заполнил форму ====
Для отпавки писма пользователю в ТДС отображение формы вставляем код в контролере отправки формы
if ($result)
{
Core_Mail::instance()
->to($_POST['email'])//Почта пользователя
->from($email)//Почта администратора сайта
->subject($subject)//Тема писма
->message($sText)//Текст писма
->contentType('text/plain')
->send();
}
Для получения email модуля сайта ''$email=Core_Entity::factory('site')->find(CURRENT_SITE)->admin_email'' или ''Core_Entity::factory('site')->find(CURRENT_SITE)->getFirstEmail();''
Что бы получить текст писма из xsl файла
$sText = Xsl_Processor::instance()
->xml($oEmailFormControllerShow->getXml())
->xsl(Core_Entity::factory('Xsl')->getByName('$xsl'))
->process();
==== Автоопределение местоположения: страны, города, улицы и т.д. ====
http://test.strigo.ru/geoip/
==== Что-то случилось с версткой, код одинаковый, но стили разные, хотя и css тот же ====
Коварная проблема может появится в результате подключения файла, который кодирован в utf с bom меткой. Проверьте подключаемые файлы.
==== Часовой пояс по умолчанию ====
В HostCMS настройка часового пояса «По-умолчанию» означает, что будет использоваться часовой пояс из /modules/core/config/config.php, а не из настроек PHP, так как:
«Есть ситуации, когда сайт еще не определен, а временная зона нужна, при этом в php.ini временная зона не определена.»
===== Для товара =====
==== Получение url товара ====
$url = $oShopItem->Shop->Structure->getPath() . $oShopItem->getPath();
==== Получение url картинки товара ====
$image_url = $oShop_Item->getItemHref() . $oShopItem->image_large;
==== Получение url информационного элемента ====
$url = $oInformationsystem_Item->Informationsystem->Structure->getPath() . $oInformationsystem_Item->getPath();
==== Автокомплитер ====
=== Сделать ссылку на товар в автокомплитере ===
1. Переходим к ТДС поиска или другой ТДС к которой обращается автокомплитер. Находим строку, в которой происходит добавление элементов для передачи в автокомплитер ''$aJSON['suggestions'][]''. Добавляем в массив URL товара:
$aJSON['suggestions'][] = array(
'value' => $oShop_Item->name,
'price' => $oShop_Item->price,
'data' => $oShop_Item->id,
// Здесь нужно получить полный путь картинки
'image' => $image,
'url' => $oShop_Item->Shop->Structure->getPath() . $oShop_Item->getPath()
);
2. Затем переходим к скрипту автокомплитера, примерно строка 262 и находим там код, который выводит html во всплывающий блок автокомплитера. Окружаем его ссылкой и добавляем ссылку ''e.url''. ''e'' хранит все свойства, переданные в массив в п.1.
=== Добавить картинку в автокомплитер ===
Данный функционал реализуется подобно добавлению ссылки в автокомплитер.