Дмитрий

Дмитрий

С нами с 25 декабря 2019; Место в рейтинге пользователей: #3001

Создание правильных тем для MODx. Мой опыт.

Всем привет.

Данная статья может вызвать резкую вибрацию в районе точки G и полыхание седалищ у высококвалифицированных специалистов MODx и некоторых других людей по следующим причинам:

  1. Я не графоман и не жажду писать орфографически правильно, но и по албанский стараюсь не писать.
  2. Я не считаю себя великим разработчиком и каждый день стараюсь совершенствоваться.
  3. Я имею право на свое мнение и именно им хочу поделиться. Принять его или нет — ваш выбор.
  4. Я пишу MODx — потому что это красиво, а я хочу чтобы MODx был красивым.
  5. Будет много букв, осилят только самые стойкие.
Посему прошу отнестись к данной статье «с пониманием» и не разводить срач в комментах. Погнали!
iWatchYouFromAfar
17 июня 2020, 13:42
modx.pro
3
2 519
+28

Работаем на MacOS с Valet Plus

Привет, друзья!

Многие знают, что я всегда был против локальной разработки, и предпочитал использовать виртуальную машину с настоящим GNU/Linux, где всё работает точно так же, как и на хостинге. Никаких XAMPP, WAMP и прочих Denwer.

Но недавно меня познакомили с Valet Plus, и как-то очень уж он мне понравился. Внимание, Valet работает только на MacOS, поэтому дальше стоит читать исключительно обладателям этой ОС.

Итак, Valet Plus, это улучшенная версия обычного Laravel Valet, которым я ни разу не пользовался. Смысл в том, что вам на компьютер устанавливаются PHP, Nginx, DnsMasq и MySQL, а потом постоянно работают в фоне. И когда вы добавляете новый сайт, он просто сразу начинает работать по адресу типа new-project.test. Не нужно править /etc/hosts и колдовать с настройками Nginx, всё работает само.

И самое важное, что работает точно так же, как и на хостинге, потому что MacOS — это Unix-совместимая система, очень похожая на GNU/Linux и FreeBSD, которые крутят 99% всех shared-хостингов. И вы устанавливаете нормальные версии сервисов для неё, а не какие-то специально приготовленные.
Василий Наумкин
28 мая 2020, 07:10
modx.pro
6
4 820
+21

Проблемы с авторизацией через Яндекс в HybridAuth

Добрый день!

У всех нормально работает авторизация через Яндекс в HybridAuth?

У меня с сегодняшнего дня (07.05.2020) начала вываливаться ошибка в логах:
[HybridAuth] Provider returned an error: invalid_scope Не удалось определить список запрашиваемых доступов
Соответственно Яндекс пишет:
Не удалось определить список запрашиваемых доступов (invalid_scope)
Проблема, по всей видимости, с GET-параметром scope, сейчас в нем передаются пустые данные "scope=". В документации указано «Если параметры scope и optional_scope не переданы, то токен будет выдан с правами, указанными при регистрации приложения.». Проверил, права в приложении указаны, но авторизация не проходит. Если в GET-параметре вручную указать "scope=login:birthday login:email login:info login:avatar", то авторизация проходит норм.

PS Ну соответственно слетела авторизация через Яндекс на всех моих сайтах.
Sphinx
07 мая 2020, 10:23
modx.pro
1
1 526
0

[MODX/Laravel] DevDocker - удобная разработка под Linux

Всем приветики, в общем ни для кого не секрет что докер — это шикарная магическая штука и где то там его активно используют но не в modx конечно, где код до сих пор пишут в браузере. В общем 4 года я был в поиске оптимального решения как правильно и удобно вести разработку проектов (раньше на MODX, сейчас на фреймворках) и в итоге могу точно заявить, что я нашел идеальное решение! Под катом я расскажу все что я пробовал за 4 года и минусы каждого решения, ну а не терпеливые могут просто посмотреть видео сборки, которая решает их все или перейти сразу к гитхабу:

Видео

GitHub

Pavel Zarubin
21 апреля 2020, 02:12
modx.pro
7
1 942
+27

Теория выгрузок из 1С в MODX (часть 1 из 2)

И снова привет!
Выгрузка товаров на сайт — это самый, самый частый кейс моей мини-студии. Для реализации мелких-средних интернет-магазинов используем классическую и сверхпопулярную связку MODX+miniShop2, для крупых — нет, но я как-нибудь обязательно расскажу почему.
Павел Бигель
06 апреля 2020, 19:10
modx.pro
13
5 571
+17

TableOfContents

Компонент создаёт SEO-дружественное содержание для страниц.

Prihod
02 апреля 2020, 23:38
modx.pro
2
1 520
+8

Перебор массива в fenom

Друзья, сломал голову, как обернуть определенным тегом только первый элемент массива?

{foreach $files as $file}
        {if $file@first} <i>{$file['id']}</i>{/if}
        <b>{$file['id']}</b>
 {/foreach}
Но так в теге <i> оказываются все элементы.
Анатолий
10 марта 2020, 20:25
modx.pro
1
1 559
0

Шпаргалка на все случаи жизни

Полезные ссылки, которые Вам пригодятся в некоторых ситуациях.
Михаил
07 февраля 2020, 21:42
modx.pro
70
2 153
+35

Вывод изображений TV MIGX через FENOM

Друзья, изучаю FENOM и сразу сталкнулся с неприятной историей с путями к рисункам, есть TV MIGX indexgroup,
там используется рисунок, во кладках формы прописано так, использую простой TV с прописаным источником файлов от корня сайта /img/. в этой папке все остальные каталоги рисунков и рисунки.
{"field":"image","caption":"Фото","inputTV":"image"},
Если вывожу обычным способом через парсер MODx как раньше, то все хорошо.
[[getImageList? 
&tvname=`indexgroup` 
&tpl=`test`
]]
Чанк test
[[+image:phpthumbsup=`w=240&h=240&zc=1&q=100`]]
Результат от корня с папкой IMG, порядок:
/phpthumbsup/w/240/h/240/zc/1/q/100/src/img/catalog/Layer1.png
Роман
20 января 2020, 17:01
modx.pro
1
1 187
0

AjaxForm + Register

Нигде не нашел решения как сделать регистрацию из стандартного пакета Login через AjaxForm, ниже мое решение может кому пригодиться.

1 Размещаем сниппет AjaxForm где требуется (на странице, в попап окне и т.п.)

[[!AjaxForm?
    &snippet=`custRegister`
    &form=`tpl.register.form`
    &submitVar=`signup-btn`
    &activationResourceId=`9`
    &activationEmailTpl=`lgnActivateEmailTpl`
    &activationEmailSubject=`Thanks for Registering!`
    &usergroups=`Users`
    &usernameField=`email`
    &generatePassword=`1`
    &validate=`nospam:blank,
               fullname:required:minLength=^3^,
               email:required:email`
    &placeholderPrefix=`reg.`
]]
2 Создаем чанк tpl.register.form с формой

<form id="signup-form" action="[[~[[*id]]]]" method="post">
    <input type="hidden" name="nospam">
    <input type="hidden" name="password" value="11111111">
    <input type="text" name="fullname">
    <small class="alert-fullname"></small>
    <input type="email" name="email">
    <small class="alert-email"></small>
    <input type="submit" name="signup-btn" form="signup-form" value="Signup">
</form>
3 Создаем сниппет custRegister

<?php
$result = $modx->runSnippet('Register', $scriptProperties);
foreach($modx->placeholders as $key => $ph){
    if(strpos($key, $scriptProperties[placeholderPrefix].'error.') === 0) $placeholders[$key] = $ph;
}
if($modx->getPlaceholder($scriptProperties[placeholderPrefix].'validation_error')) return $AjaxForm->error('Form has errors', array('error' => $placeholders));
else return $AjaxForm->success('Form is valid');
4 На странице с формой добавляем скрипт, который заполнит алерты или сообщит об успехе или еще все что угодно

<script>
    $(document).on('af_complete', function(event, response){
        $.each(response.data.error, function(index, value){$(response.form).find('.alert-' + index.split(".").pop()).html(value);});
        response.message='';//jGrowl - off
    });
</script>
Вот и всё!
Рейтинга для размещения в разделе Решения не хватило, поэтому публикую здесь.
Greza
14 января 2020, 17:21
modx.pro
12
2 419
+2