====== Полезные мелочи ====== ==== Настройка 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. === Добавить картинку в автокомплитер === Данный функционал реализуется подобно добавлению ссылки в автокомплитер.