Алексей Ерохин

Алексей Ерохин

С нами с 23 сентября 2013; Место в рейтинге пользователей: #160
30 мая 2017, 17:22
+1
&titleField=`longtitle`
30 мая 2017, 17:22
0
$modx->mail->set(modMail::MAIL_FROM,'emailsender');
Это неверно
$modx->mail->set(modMail::MAIL_FROM,$modx->getOption('emailsender'));
docs.modx.com/revolution/2.x/developing-in-modx/advanced-development/modx-services/modmail
30 мая 2017, 15:38
+1
Мы присоединяем к выборке еще одну таблицу (она определяется по «class»:«msProductOption») и даем ей алиас для удобства («size_h»). Условия присоединения: «on»:«size_h.product_id = msProduct.id AND size_h.key = 'size_h'» (то есть ищем совпадение по id продукта и по названию опции).
&select=`{
            "size_h":"COALESCE(size_h.value, 0) as size_h"
        }`,
Здесь указываем что дополнительно нужно выбрать колонку COALESCE(size_h.value, 0) (функция вернет либо значение, либо 0 — если данных нет) с алиасом size_h, по которому она будет доступна в выборке.
LEFT JOIN означает, что мы получим все данные из основной таблицы (msProduct) и данные из присоединенной таблицы (либо NULL если данных нет)
30 мая 2017, 13:45
1
+1
&leftJoin=`{
            "size_h":{
                "class":"msProductOption",
                "on":"size_h.product_id = msProduct.id AND size_h.key = 'size_h'"
            }
        }`
      &select=`{
            "size_h":"COALESCE(size_h.value, 0) as size_h"
        }`,
&sortby=`size_h`
примерно так
26 мая 2017, 17:39
+1
Напишите там нужную ссылку, к сожалению, не могу подсказать как сгенерировать по id
window.open('http://site.ru/contacts')
26 мая 2017, 17:34
1
0
Настройки-Меню-Добавить пункт
Заполняем ключ словаря и обработчик — это javascript, пишем
window.open(MODx.config.site_url)
Открывает в новой вкладке (в современных браузерах) главную страницу
26 мая 2017, 13:22
+1
Store — это хранилище данных. Данные можно получать, записывать, удалять, сортировать
В гридах в modx, данные получаются через JsonStore
Вот параметры remote store в гриде:
url: crm.config.connector_url
		,baseParams: {
			action: 'mgr/user/getlist',
			sort: 'id',
			dir: 'desc'
		}
		,fields: ['id','username', 'fullname', 'email']
		,remoteSort: true
А вот например локальный

var typeofattachment = new Ext.data.ArrayStore({
    ,fields: [{name: 'name', type: 'string'}]
    ,data: [['C/CS'],['M12']]
});


26 мая 2017, 13:12
+1
Попробуйте на событие рендера повесить простановку значения, либо валидация

validateOnBlur: true, //валидация при потере фокуса
validator: function(value) {
	if (value.length == 0) {
	//ставим значение в поле	если оно пусто	
	}			
}
26 мая 2017, 12:46
+1
Странно, в документации написано, что отправляется на сервер
The default text to place into an empty field (defaults to null). Note: that this value will be submitted to the server if this field is enabled and configured

У вас value 2 раза, может в этом дело?
26 мая 2017, 12:08
+1
1) Получайте название в своем процессоре, который заполняет этот грид, и не нужен будет рендерер (не забудьте поменять dataIndex и добавить получение в Store)
2) В базе данных по умолчанию 10, в mysql map тоже самое, можно в процессоре, а можно и в extjs: emptyText
19 мая 2017, 17:22
0
WHERE u.id REGEXP CONCAT('[[:<:]]', '{$var}', '[[:>:]]')
Означает начало и конец слова.
11 мая 2017, 12:13
0
modx.pro/help/10348/

Еще где-то был пример на fenom, не могу найти
27 апреля 2017, 15:55
+1
&tpl_nN Имя чанка для каждого N-го ресурса, например, &tpl_n4=`tplEvery4th` будет применено к каждому 4-му ресурсу.
26 апреля 2017, 11:33
+1
Если значение одно, то оно не массив, а строка. Сам недавно столкнулся с этим.
Доработайте чанк на fenom
25 апреля 2017, 15:38
0
Вынесите все чанки в отдельные файлы и у вас не будет пересечения плейсхолдеров.
25 апреля 2017, 15:20
0
github.com/bezumkin/miniShop2/pull/265
Возможно, будет поправлено в следующих версиях
21 апреля 2017, 11:36
0
еще можно использовать 1 чанк и outputSeparator