Сергей Шлоков

Сергей Шлоков

С нами с 31 января 2013; Место в рейтинге пользователей: #3
Сергей Шлоков
06 апреля 2016, 15:37
0
Отдельный ресурс, что подразумевается под этим?
Отдельная страница для каждой квартиры или дома. Если делать всё на одной странице, то придется дописывать логику самому, чтобы при выборе квартиры показывались только соответствующие комнаты.
Если админку видят только админы и модераторы, то это нормально
Это как завести объекты. Если будет 5 записей «Комната 1», то даже админам будет сложно понять для какой квартиры каждая комната.
Сергей Шлоков
06 апреля 2016, 15:15
0
На данный момент разделения по гостиницам нет. Список номеров общий — или в описании указывать где находится или в названии объекта. Пока только так. На сайте разделить их не проблема — отдельных ресурс для каждого дома/квартиры. А вот в админке все номера в общем списке.
Сергей Шлоков
05 апреля 2016, 20:48
0
Все-таки вам нужна система онлайн записи. Это своя специфика — более строгое подтверждение записи, смс уведомления, бронирование услуги с привязкой мастера, другие интерфейсы.
Сергей Шлоков
04 апреля 2016, 22:32
0
Таблица же останется. Нужно запомнить настройки. И чанки потом в категорию Tickets запихать, потому как после удаления они в корень съедут.
Главное, бэкап сделать.
Сергей Шлоков
04 апреля 2016, 22:22
0
Ну у меня таких ошибок нет. Значит проблема на в тикетс. Кроме того, судя по логу, в инсёрте не хватает поля guest_key, из за которого и ругается mySql. Попробуй удалить и поставить заново.
Сергей Шлоков
04 апреля 2016, 19:37
0
В твоем случае вообще нет смысла включать уведомление хоть на почту, хоть в скайп, хоть куда. Зачем тебе в скайте эти мегабайты?
Надо сначала решить проблему. Для начала обновить тикетс.
Сергей Шлоков
03 апреля 2016, 15:17
+1
а выводятся и 36 и 41 id…
А выводятся они скорее всего потому, что для них срабатывает условие
FROM_UNIXTIME(publishedon, '%Y-%m-%d') = '2016-04-02'
т.е. дата публикации у них '2016-04-02'. Поэтому я в первом комментарии и сделал группировку условия, чтобы OR было в скобках.
Вот же как получается без группировки
WHERE  ( FROM_UNIXTIME(publishedon, '%Y-%m-%d') = '2016-04-02' OR FROM_UNIXTIME(publishedon, '%Y-%m-%d') = '2016-04-03' AND `modResource`.`parent` IN (3,27,28,29,30,31,34,33) AND `modResource`.`published` = 1 AND `modResource`.`hidemenu` = 0 AND `modResource`.`deleted` = 0 )
А чтобы ограничить parent, нужно указать depth=1 (или 0, точно не помню).
Сергей Шлоков
03 апреля 2016, 11:19
+1
Интересный поворот событий.
Сергей Шлоков
03 апреля 2016, 11:04
+1
&where=`["(FROM_UNIXTIME(publishedon, '%Y-%m-%d') = '[[!yesterday]]' OR FROM_UNIXTIME(publishedon, '%Y-%m-%d') = '[[!today]]')"]
Кроме того, этот код желательно оптимизировать. Вместо вызова 2-х сниппетов вызывать один с выставлением плейсхолдеров today и yesterday. Вызывать его перед pdoPage. Тогда условие будет выглядеть так
&where=`["(FROM_UNIXTIME(publishedon, '%Y-%m-%d') = '[[+yesterday]]' OR FROM_UNIXTIME(publishedon, '%Y-%m-%d') = '[[+today]]')"]
Есть еще вариант с использованием фенома. Тогда можно из без сниппета обойтись.

Совет. У pdoTools сниппетов есть замечательный параметр showLog. Советую его использовать при отладке.
Сергей Шлоков
03 апреля 2016, 10:16
0
Сделал, как посоветовал Илья. Повесил регистрацию js на OnDocFormPrerender
А разве в плагине в третье строчке не это событие указано?
Сергей Шлоков
03 апреля 2016, 10:12
0
Не успел, ниже уже ответили.
Событие OnManagerPageBeforeRender будет регистрировать скрипт для любого объекта (ресурса, чанка, сниппета), а нужно только для ресурса. Тут подойдет событие OnDocFormPrerender.
В примере моего плагина 2 javacript события — beforeSubmit и success. Если задействовать первое, то второе не нужно. Потому что, во-первых, изменения уже видны в интерфейсе (обновлять страницу не нужно) и, во-вторых, новые значения запишутся в базу (не надо их ловить в OnDocFormSave). Для знатоков яваскрипт не составит труда обработать и ТВшки. Этот вариант более интерактивный.
Ну а если таких знаний не хватает, то подойдет вариант ниже — в OnDocFormSave (можно в OnBeforeDocFormSave) меняются значения ТВ, а в яваскрипте, подключенным в OnDocFormPrerender, обновляется страница. Этот вариант проще.
Сергей Шлоков
02 апреля 2016, 13:14
1
0
Ну и наворочено. Не уверен, что пример рабочий. Вот простейший рабочий вариант с примером изменения поля
<?php
switch ($modx->event->name) {
    case 'OnDocFormPrerender':
        $modx->controller->addHTML('
	<script type="text/javascript">
		Ext.ComponentMgr.onAvailable("modx-panel-resource", function (e) {
		    var res = Ext.getCmp("modx-panel-resource");
		    res.on("beforeSubmit", function(){
			// Меняем зачение поля longtitle
		        Ext.getCmp("modx-resource-longtitle").setValue("Новое значение");
		    });
		    res.on("success", function(){ 
		        // Перезагрузка страницы после сохранения
		        location.reload();
		    });
		});
    </script>');
    break;
}
Сергей Шлоков
01 апреля 2016, 18:27
+1
Интересно, многие ли знают как расшифровывается MODX?
Сергей Шлоков
01 апреля 2016, 17:55
+5
Согласен. Нельзяограничиватьтворческихлюдей. Вотувасимянаписаносмаленькойбуквывопрекиправиламрусскогоязыка. НонадеюсьвынеобидитесьеслияназовувасАндрей. ;)
П.С.Мнепростоленьписатьпробелы.
Сергей Шлоков
31 марта 2016, 22:06
0
Тут в основном революционеры. Вот явка протестантов.
Сергей Шлоков
31 марта 2016, 17:34
+1
А, понятно. Тут только один вариант, засунуть адрес в плейсхолдер в шаблоне.
'tpl' => '@INLINE
	{set $dlink = $uri}
	{$_modx->setPlaceholder("dlink", $uri)}
	<div class="image-fixed-fill" style="background-image: url([[+1920x1080]]);"></div>
',
Сергей Шлоков
31 марта 2016, 16:39
0
Если утюгом погреть страницу про pdoTools, то можно заметить написанную молоком инструкцию.
Последнее обновление позволяет сделать это так
{$_modx->resource.id | url}