private:koding:hostcms:modules:shop:useful:poleznye_melochi

This is an old revision of the document!


Полезные мелочи

Настройка 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();

Автоопределение местоположения: страны, города, улицы и т.д.

Что-то случилось с версткой, код одинаковый, но стили разные, хотя и 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();

private/koding/hostcms/modules/shop/useful/poleznye_melochi.1498466144.txt.gz · Last modified: 26.06.17 в 11:35 by maximzasorin_gmail.com