Олег Захаров

Олег Захаров

С нами с 14 октября 2017; Место в рейтинге пользователей: #134
Олег Захаров
23 апреля 2024, 11:30
+3
Совершенно другой уровень разработки.
Теперь придется переучиваться.
Нужен новый туториал для разработки на новом подходе.
Нужна новая документация.
Примеры разработки сайтов на новом принципе.
Т.к. пока многое не понятно.

Спасибо персональное Василию за огромный вклад в развитие MODX.
Олег Захаров
12 апреля 2024, 11:28
0
Поправил код выше. Столкнулся с тем что у меток выводился одинаковое содержимое для прикрепляемого справа от метки блока. Понял что по причине того что в карту выводится одна переменная MyIconContentLayout, а для разных меток она разная.
Исправил: вместо присвоения
MyIconContentLayout = ymaps.templateLayoutFactory.createClass(...
поставил
MyIconContentLayout{$dealerplace.MIGX_id} = ymaps.templateLayoutFactory.createClass(...
и вместо
e.get('target').options.set('iconContentLayout', MyIconContentLayout);
поставил
e.get('target').options.set('iconContentLayout', MyIconContentLayout{$dealerplace.MIGX_id});
Как итог будет правильно выводить текст справа от меток.
Олег Захаров
07 апреля 2024, 12:05
0
А как задать сортировку опций внутри категорий? Для тех кто не знает и чтобы сэкономить себе время и нервы подсказываю (сам долго тупил и не знал как настроить):
Чтобы опции внутри категории сортировались в нужном порядке, заходим в редактирование Категории товаров в Minishop и находим вкладку Настройки. Там должны быть опции категории. Перетаскиваем строки вверх вниз формируя нужную сортировку.
Поле rank у опций категории (таблица modx_ms2_category_options) по умолчанию стоит видимо 0, но после перетаскивания строк формируется последовательность сортировки.
Олег Захаров
06 апреля 2024, 22:31
+1
да правильно, поправил в ТС код.
Пример работы выложил тут https://dev445.gowindo.ru/dealers
Есть одна недоработка. Когда нажимаешь на метку, раскрывается всплывающая карточка организации (balloonContent). После закрытия карточки выведенный справа блок от метки iconContentLayout остается открытым (т.к. мышка оказывается за пределами границ иконки геометки myPlacemarkWithContent после закрытия balloonContent, но событие mouseleave не срабатывает). И показанный блок iconContentLayout не закрывается пока снова не наведешь мышку на метку и выйдешь за пределы метки (повторно вызвав срабатывание mouseenter и mouseleave). Надо бы доделать, повесить вызов кода либо событие на закрытие balloonContent, либо добавить событие потери фокуса после попадания мышки за пределы границ иконки геометки myPlacemarkWithContent. Пока лень думать над этим, т.к. пока Заказчику это не горит.
Олег Захаров
05 апреля 2024, 09:36
0
Круто! Вы молодец! Спасибо огромное Вам за Ваши труды. Хоть и принято на сайте общаться на ты, но пишу ВЫ с большой буквы, т.к. Вы человек с большой буквы. Благодаря Вашим стараниям и таким энтузиастам как Вы и всем участникам сообщества кто пишет и развивает MODX — живет MODX, живет сообщество.
Благодаря Вам всем уважаемые коллеги люди могут писать классные сайты в классной среде (пусть и не все идеально, но это не Wordpress с непонятным кодом и не Joomla с тормозами и недоделками и не 1C Битрикс (тяжелый движок)). MODX очень классный движок, гибкий, простой. Сколько благодаря сообществу людей могут заработать на хлеб с маслом не сосчитать.
Очень нужны понятные уроки для новичков. Особенно интересны подходы работы в среде разработки с подключением Github и прочих инструментов разработки как Compose и т.д. Интересны описание совместной работы нескольких человек над сайтом одновременно чтобы можно было в студиях для командной разработки применить. И тогда полк разработчиков увеличится.
Для себя я понял что Laravell + VUE.js это конечно круто, но разработка на нем должна начинаться от нескольких сотен тысяч рублей, или лучше от 1 миллиона и имеет смысл для сложных сервисов с большой нагрузкой и сложным интерфейсом и где есть бюджет большой. Для большинства же стандартных сайтов и простеньких интернет-магазинов MODX все еще очень даже не плох, кто бы что про него не говорил. Старичок, но надежный и простой.
Олег Захаров
05 апреля 2024, 03:14
0
Василий, а Вы сейчас на MODX что-то разрабатываете? Или полностью перешли на свой VESP? Насколько сложнее по Вашему мнению и опыту сделать например интернет-магазин на MODX (я все не решаюсь что-то делать на 3.0, пока только на 2.8.6) и на VESP разработчику не знакомому с VESP?
Вопрос не только к Василию, может кто бывалый поделится опытом?
Насколько будет сложнее делать на модных Laravell + Vue.js?
Олег Захаров
05 апреля 2024, 03:10
0
MODX старичок. На нем реальные проекты быстро можно сделать. А на laravell я например сам пока еще не решаюсь что-то серьезное делать, много изучать надо, есть постоянно возникающие вопросы что и как. Пока наф… г наф… г делаю на старичке и работает самое главное. Конечно многое хочется по другому чтобы было.
Олег Захаров
15 марта 2024, 02:33
0
Спасибо! Как раз что-то подобное нужно было сделать и Вы прям вовремя.
Олег Захаров
15 марта 2024, 02:14
1
0
Не совсем понял в чем проблема, покажу как я делал — и у меня все работает без проблем:
Настройки контекста (затер данные немного, без разрешения собственника не могу светить):
или ссылка на фото на Яндекс.Диск https://disk.yandex.ru/i/K_HAhwSm7znIbg
Название в Общей информации:
или или ссылка на фото на Яндекс.Диск
https://disk.yandex.ru/i/kbMoT84UJfDNWA
Как видно на картинке название контекста указываю домен кириллицей и абракадаброй преобразованных на латиницу непонятно нечелевочески названий, чтобы было легче ориентироваться в админке и при переключении контектстов.
Олег Захаров
09 марта 2024, 04:25
0
А описание языка description можно вывести в чанке через
{$languageDescription}
, добавив в сниппет getLanguages плейсхолдер
'languageDescription'=> $language->description,
Олег Захаров
09 марта 2024, 03:50
0
Все проще можно было сделать.
Можно было просто добавить еще один плейсхолдер 'languageName'=> $language->name (к имеющимся cultureKey, active и url) в сниппете getLanguages. В чанках подставлять просто {$languageName}
Олег Захаров
09 марта 2024, 02:05
0
оформил как заметку https://modx.pro/lessons/24602
Получилась такая панелька.
Олег Захаров
09 марта 2024, 01:47
0
Я нигде не нашел как можно вытащить название языка (локализации).
Сделал такой сниппет getLanguageName:
<?php
if (isset($keysearch) && $keysearch === '') {
    $scriptProperties['keysearch'] = $modx->localizator_key;
}

$output = "";
$clang = $keysearch;/*$modx->config.cultureKey;*/
/*$languages = $modx->getIterator('localizatorLanguage'/*, $c*//*);*/
$languages = $modx->getIterator('localizatorLanguage', ['active' => 1]);
foreach($languages as $language) {
    if ($language->key==$clang) { 
        $output .= $language->get('name');
        
    }
}
return $output;
В чанках сделал так:
чанк section-langs-1
<a href="#" class="nav-link dropdown-toggle {if $_modx->config.cultureKey == $cultureKey} {$active} {else} collapse {/if}  localizator_lang" data-toggle="dropdown" data-bs-toggle="dropdown"  role="button" aria-expanded="false" >{*'localizator_key' | option} - {$_modx->config.cultureKey*} 
<span class="{$cultureKey}_24" style="display: inline-block;"></span>
{$_modx->runSnippet('!getLanguageName', ['keysearch'=>$cultureKey])}
  {*<img class="imglang {$active}" src="/assets/img/flags/{$cultureKey}.png" alt="{$cultureKey}">*}{*картинка языка подбирается из assets/app/images/flags/flag_24.png исходя из локали по настройкам assets/app/css/flag_24.css*}
</a>
Чанк: section-langs-2:
{if $_modx->config.cultureKey != $cultureKey}
<li >
  {if $active != 'active'}
    <a class="{$active} localizator_lang" href="{$url}" class="dropdown-item">{*картинка языка подбирается из assets/app/images/flags/flag_24.png исходя из локали по настройкам assets/app/css/flag_24.css*}
      {*<img class="imglang {$active}" src="/assets/img/flags/{$cultureKey}.png" alt="{$cultureKey}">*}
        <span class="{$cultureKey}_24" style="display: inline-block;"></span>
        {$_modx->runSnippet('!getLanguageName', ['keysearch'=>$cultureKey])}
    </a>
  {else}
    <div class="{$active} {$cultureKey}_24 localizator_lang" class="dropdown-item">{*картинка языка подбирается из assets/app/images/flags/flag_24.png исходя из локали по настройкам assets/app/css/flag_24.css*}
      {*<img class="imglang {$active}" src="/assets/img/flags/{$cultureKey}.png" alt="{$cultureKey}">*}
        <span class="{$cultureKey}_24" style="display: inline-block;"></span>
        {$_modx->runSnippet('!getLanguageName', ['keysearch'=>$cultureKey])}
    </div>
  {/if}
</li>
{/if}
Чанк вывода панели выбора языков:
<ul class="nav nav-pills localizator-block babel-block">
  <li class="langs nav-item dropdown">
     {$_modx->runSnippet('!getLanguages', ['tpl' => 'section-langs-1'])}
     <ul class="dropdown-menu">
       {$_modx->runSnippet('!getLanguages', ['tpl' => 'section-langs-2'])}
    </ul>
  </li>
                                                    
 </ul>
Вывожу для Bootstrap 5, а не как в
Причем как видно я переделал отображение знака языка не через картинку а через flag_24.png.
Использовал пример под Babel с
Заменил в нем косяки (языки kg на самом деле ky (там ky вообще какой то левый флаг не понял что за страна), ir (Иранский) у меня оформлен как fa (персидский),
Добавил стили
.localizator_lang{
    color: black!important;
    background-color: unset!important;
    align-items: center;
    display: flex;
}
в настройках .htaccess добавил так:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(ru|en|fa|tk|ky|abkhazia|ad|ae|af|ag|ai|al|am|an|ao|aq|ar|as|at|au|aw|ax|az|ba|bb|bd|be|bf|bg|bh|bi|bj|bl|bm|bn|bo|br|bs|bt|bw|by|by_|bz|ca|cd|cf|cg|ch|ci|cl|cm|cn|co|cr|cu|cv|cy|cz|de|dj|dk|dm|do|dz|ec|ee|eg|eh|england|er|es|et|eu|fi|fiji|fk|fm|fo|fr|ga|gd|ge|gg|gh|gl|gm|gn|gq|gr|gs|gt|gu|gw|gy|hk|hn|hr|ht|hu|id|ie|il|im|in|iq|ir|is|it|je|jm|jo|jp|ke|kg|kh|ki|km|kn|kosovo|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|me|mf|mg|mh|mk|ml|mm|mn|mo|mp|mr|ms|mt|mu|mv|mw|mx|my|mz|na|nagorno-karabakh|nato|nf|ng|ni|ni_|nl|no|np|nr|nz|om|pa|pe|pg|ph|pk|pl|pn|pr|ps|pt|pw|py|qa|red_cross|ro|rs|ru|rw|sa|sb|sc|scotland|sd|se|sg|sh|si|sk|sl|sn|so|somaliland|south_ossetia|sr|ss|st|sv|sy|sz|tc|td|tg|th|tj|tm|tn|to|tp|tr|tt|turkish_republic_of_northern_cyprus|tv|tw|tz|ua|ug|uk|un|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wales|ws|ye|za|zm|zw)/assets(.*)$ assets$2 [L,QSA]
Получилась такая красота https://disk.yandex.ru/i/MG9-_uxLZDNTEA

Файл с иконками языка https://disk.yandex.ru/i/y-G8apn1dSooww
Файл css стилей https://disk.yandex.ru/d/R-eJsFVVQP5OmA
Олег Захаров
17 февраля 2024, 13:38
+1
во FRED попробовал вставлять код в элемент как чанк в формате [[$chunk]], а fenom прятать внутрь, вроде работает
Олег Захаров
16 февраля 2024, 23:05
+1
Попробовал Fred на тестовом сайте. Понравилась реализация. Но как только попробовал перенести чанки, оказалось что в элементах при добавлении кода на fenom он в редакторе элемента нормально добавляется, но при добавлении на фронтенде через fred код ломается — в коде меняется => на "=gt;". И итогом код fenom не работает. И как оказалось fenom во Fred не поддерживается. Как блин так!
И как оказалось с Fred много проблем и вопросовтут).
Печаль блин.
Так что ждем от вас ребят конструкторы тем, большую работу делаете.
Олег Захаров
16 февраля 2024, 23:05
0
Попробовал на тестовом сайте поставить mtDemo, но сил не хватило разобраться как все работает. Почему то у меня штуковины не добавляются.
А так идея классная. Очень нужна документация с примерами, пошагово как сделать свою тему и прикрутить ее к MagicThemes и сделать как пакет. Т.е. то что есть тяжело понять. Я 2 недели потратил пытаясь разобраться и понять что к чему, но сил уже нет, выгорел.
Попробовал Fred — классная штука, но не работает с fenom.
Если бы были такие классные штуки рабочие по темам, чтобы было понятно и работало — развитие MODx как мне кажется может оживиться.
Олег Захаров
09 февраля 2024, 00:10
0
А можно узнать на что пересели? И причины? Есть ли описание вашего мнения/опыта? Интересно мнение бывалых?