Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”

Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Сообщения - e.ioffe

Страницы: 1 2 3 [4] 5 6 ... 25
46
Перейти на PHPMailer или другую библиотеку, которая возвращает ошибки.

Google говорит, что нельзя узнать ошибку, если mail вернула false

47
public $module;

public function __construct($module) {
 $this->module = $module;
}

public function some() {
  $this->module->otherMethod();
}

в файлах, подключаемых из папки ext __construct можно не указывать.

48
Установка UMI.CMS / Re: https в umi manager
« : 15 Ноября 2016, 22:32:54 »
Скорее всего, у вас настроен редирект с http на https. Добавьте в исключения запросы вида /admin/emarket/* и /admin/exchange/ (если обмениваетесь данными с 1С).

50
Цитировать
Но ничего не происходит

Добавьте в начало шаблона <xsl:variable name="desktopMode" select="document('udata://custom/setDesktopMode/')/udata" />

51
Цитировать
Когда Евгений сказал "Это не решается" - он имел в виду сохранение значения в сессии не решается с помощью шаблонов XSLT, а только с помощью кастомов. :-)

Задача разбивается на две:
- логика
- отображение

С точки зрения дальнейшей поддержки, логика по максимуму должна быть в кастоме. Поэтому сохранение значений в сессий и проверка их должна быть в кастоме, в шаблоне только разные теги, которые зависят от ответа кастома.

Можно извращаться и делать все в шаблоне, но поддерживать такой код занятие неприятное и дорогое.

52
Это решается не в шаблонизаторе, а на уровне кастомов.

В classes/modules/custom.php

public function checkDesktopMode() {
if($_GET['show_desktop_mode'] == 'true') {
$_SESSION['desktopmode'] = 'true';
} else {
$_SESSION['desktopmode'] = 'false';
}
}

public function getDesktopMode() {
return (int) getSession('desktopmode') == 'true';
}

в шаблоне
<xsl:choose>
<xsl:when test="document('udata://custom/getDesktopMode/')/udata = 1">
</xsl:when>
<xsl:otherwise>
</xsl:otherwise>
</xsl:choose>

53
Шаблоны XSLT / Re: Раздел бренда каталог
« : 29 Октября 2016, 00:34:52 »
А можно поподробнее, что в какой файл и как?

Код добавляете в файл custom.php (/classes/modules/custom.php или /classes/components/custom.php - в зависимости от версии php)

54
Шаблоны XSLT / Re: Раздел бренда каталог
« : 28 Октября 2016, 16:21:17 »
Я обычно использую кастомы до и после вызова каталога. Что-то вроде
<xsl:variable name="setRequestFilter" select="document(concat('udata://custom/setRequestFilter/brand_title/', $brand, '/'))/udata" />
<xsl:variable name="result" select=""document(concat('udata://catalog/getSmartCatalog//', $par, '/1000//2'))/udata" />
<xsl:variable name="unsetRequestFilter" select="document('udata://custom/unsetRequestFilter/brand_title/')/udata" />

В кастомах устанавливаю значение в $_REQUEST. Навскидку:
public function setRequestFilter($field, $value) {
if(!getRequest('filter')) {
$_REQUEST['filter'] = array();
}
$_REQUEST['filter'][$field]=$value;
}

public function unsetRequestFilter($field) {
$filter = getRequest('filter');
if(!getArrayKey($filter, $field)) {
return '';
}
unset($filter[$field]);
$_REQUEST['filter'] = $filter;
}

55
Цитировать
$itemObject->getPropByName($inpName)->getDataType();

Я бы добавил проверку:

$property = $itemObject->getPropByName($inpName);

if($property instanceof umiObjectProperty) {
$dataType = $property->getDataType();
}

56
Проблема в функции prepareContent модуля Блоги.

Варианты решения:

1) Напишите кастом postViewCustom (за основу возьмите postView) и кастом prepareContentCustom (за основу возьмите prepareContent). В последнем уберите "\n" и "br" в str_replace. Останется только корректно вызвать кастом в шаблоне (c tpl могут быть проблемы).

2) Напишите обработчик события на изменение элемента в админке, и в нем удалите все "\n" из текста.

57
br в базе данных или на сайте?

Если в базе, то нужно смотреть настройки tinymce и обработчики событий сохранения элемента.

58
Если редакция выше 2.8.5, то можно через /templates/название шаблона/classes/modules/emarket/class.php
Подробнее см. http://api.docs.umi-cms.ru/razrabotka_nestandartnogo_funkcionala/razrabotka_sobstvennyh_makrosov_i_modulej/novyj_format_rasshireniya_funkcionala/
В версиях до 2.8.5 вряд ли получится без внесения изменений в системные файлы.

59
В php 7 появилась возможность добавлять свои getDatasetConfiguration. На практике с этим еще не сталкивался.

В php 5.x и umi >= 2.9.7 можно создать файл /classes/modules/emarket/ext/common_emarket_admin.php с классом common_emarket_admin, в него скопировать стандартную функцию getDatasetConfiguration и внести свои изменения.

60
После отключения кеша в config.ini почистите папку /sys-temp/static-cache

Страницы: 1 2 3 [4] 5 6 ... 25