Павел Гвоздь

Павел Гвоздь

С нами с 31 мая 2015; Место в рейтинге пользователей: #3
Павел Гвоздь
06 ноября 2015, 10:22
0
pdoTools надо ставить для работы с Феномом.
В работе с Феном много тонкостей. Например, скорей всего на твоём сайте, если ты поставишь pdoTools с включённым Феном, у тебя повываливаются ошибки и страница не отобразится, как надо. Это связано с тем, что Феном любой код (даже JS, даже JSON в параметрах сниппетов стандартным выводом) с фигурной скобой {, если после неё идёт какой-либо текст, а не пробел, таб или перенос строки, будет считать «за своего» и пытаться обработать. Естественно синтаксис его не устроит и он вывалит ошибку. Приведу пример:

Мы на странице вызываем код fancybox вот так:
$("a[rel='ajaxModal']").fancybox({'type':'iframe', 'arrows':false});
Феном видит это безобразие и в логе ошибок в бекенде сообщает нам, что он не понимает синтаксис, который мы указали для него на странице. Что нам надо сделать, чтобы удовлетворить потребность Фенома в корректном синтаксисе? Да просто после фигурной скобы поставить пробел, вот так:
$("a[rel='ajaxModal']").fancybox({ 'type':'iframe', 'arrows':false});

Или есть у нас сниппет вызываемый стандартными средствами MODX с параметром, в котором указана JSON строка вот так:
[[!pdoResources? &sortby=`{"id":"DESC"}`]]
Феном не устроит подобное отношение и он, как и в прошлом примере скажет нам, что синтаксис не уместен. Что мы делаем? Правильно! Просто ставим пробел после скобы:
[[!pdoResources? &sortby=`{ "id":"DESC"}`]]

И так со всем кодом на странице. Когда все подобные моменты на странице будут исправлены — Феном будет радовать нас своими возможностями и скоростью работы.
Павел Гвоздь
06 ноября 2015, 10:01
2
0
Извини, конечно, но меня давно не возбуждают эти стандартные методы и вдаваться в подробности этих ужасов снова нет никакого желания.

{if $_modx->config.cultureKey == 'ru'}
    культурКей Ru
{elseif $_modx->config.cultureKey == 'en'}
    культурКей En
{/if}

Либо проверить контексты:
{if $_modx->context.key == 'web'}
    контекст web
{elseif $_modx->context.key == 'en'}
    контекст en
{/if}

Либо твой пример:
{if $_modx->context.key == 'web'}
    {include 'menu'}
{elseif $_modx->context.key == 'en'}
    {include 'enmenu'}
{/if}

Присмотрись в сторону Fenom, уверяю тебя, ни грамма не пожалеешь об этом.
Павел Гвоздь
06 ноября 2015, 06:12
+1
Изучай Феном, чтобы сайт из-за подобных конструкций не превратился в «неповоротливую корову».
Павел Гвоздь
05 ноября 2015, 19:50
0
Может быть так будет заметнее? Прошу помощи, друзья.
Павел Гвоздь
04 ноября 2015, 07:29
0
… но так это только и решишь… :)
Павел Гвоздь
03 ноября 2015, 08:53
0
Компонент ещё дорабатывать надо. Это пока демонстрация текущих возможностей. Как сказал автор:
я фронт вывел за часик чтоб люди поняли о чем разговор
Павел Гвоздь
02 ноября 2015, 19:13
+1
Хорошее дополнение! Это гораздо универсальнее, чем было!

Переименовывай, меняй пару строк кода да публикуй на modstore.pro. Думаю Володя не будет против, да, Володь?)
Павел Гвоздь
02 ноября 2015, 19:06
0
Это интересно! Я однажды писал компонент, в котором есть синхронизация с одной базой товаров (около 5-7к шт). Товары выгружаются, привязываются в базе к определённому item созданному при выгрузке. А вот когда мы щёлкаем синхронизацию — открывается модальное окно, в котором указывается определённая информация для синхронизации (шаблон товаров, разделов, в какой контекст выгружать, на какое число умножить цену товаров, на какое число разделить цену). Так вот когда мы нажимаем «синхронизировать» — запускается процесс синхронизации. Сразу я столкнулся с проблемой таймаута php скриптов. Решил её постоянной отсылкой результатов скрипта обратно в админку, а с админки, если нет success=true — обратно в скрипт, и так по кругу, пока не будут выполнены определённые условия. Единственное, мне не удалось сделать так, чтобы после первой такой итерации не пропадало модальное окно. Всегда было интересно, что можно сделать в этой ситуации, чтобы модальное окно оставалось на месте до тех пор, пока не закончится синхронизация. Так к чему я это всё тут пишу: если будет возможность объяснить это или просто посмотреть код и попытаться объяснить, как это сделать — отпиши, пожалуйста, я бы выложил на гитхаб и показал, где какой момент находится.

А статьи очень полезные. Зря опускаешь руки. Не сейчас, так в будущем люди оценят!
Павел Гвоздь
02 ноября 2015, 18:52
+1
Очень зря, Сергей. Не знаю, как кому, но мне было очень интересно!
Павел Гвоздь
02 ноября 2015, 11:01
1
+1
И если уж используешь Fenom, то зачем вызывать настройки стандартом [[++site_name]], когда можно так:
{$_modx->config.site_name}
?

Тем более условия вроде этого:
[[*content:default=`<div class="uk-alert uk-alert-large">Страница не заполнена!</div>`]]

Лучше уж так:
{$_modx->resource.content?: 'пусто'}
Павел Гвоздь
02 ноября 2015, 10:59
0
У меня вопрос. На гите тут и далее по коду вот такие строчки присутствуют:
{$chunk = $_modx->getChunk....}
Разве присваивание срабатывает в таком случае? Насколько я помню, только так {var $chunk = ....}, а если не срабатывает, то зачем это: $chunk =?
Павел Гвоздь
02 ноября 2015, 10:53
+4
Хорошая тема. За такую цену вполне оправдано!
Павел Гвоздь
02 ноября 2015, 08:20
+7
А мож не надо, Василий? Очень тяжело будет без твоих разработок. Печально как-то стало. :(
Павел Гвоздь
01 ноября 2015, 19:55
0
Спасибо, Володя! Отличный пакет!
Павел Гвоздь
31 октября 2015, 23:54
0
«Дальше» это когда? После установки, чтоли?

По поводу функционального предназначения: данный компонент создаёт png файл QR кода любого текста. Этот код можно вывести на сайте. А далее уже считывать мобилой. А вообще сам не знаю, зачем такое людям надо. Я подобное на своих сайтах не использую. Писал для одного гос-сайта, госы — они причудливые… по крайней мере у нас…
Павел Гвоздь
31 октября 2015, 20:46
+1
Готово. Теперь называется getQRcode. Жду модерации.
Павел Гвоздь
31 октября 2015, 17:51
0
Василий, помоги, пожалуйста.
При загрузке дополнения на modstore.pro мне пишет «Пакет с таким именем уже существует в репозитории». Вот только ни на modstore, ни на офф репе я не нашёл такого. В чём моя оплошность? Имя пакета «QRcode».
Павел Гвоздь
30 октября 2015, 10:36
+1
Я думал над этим. Однако в таком случае у нас исключается возможность переназначить шаблон при создании.