[videoGallery] 1.3.0 Поддержка MIGX


Давно хотел внедрить поддержку MIGX, тем более, что уже очень давно пользователь Гитхаб под ником
SintezCode отправил PR для этого. Единственное, у меня было несколько правок по его коду, поэтому никак не доходили руки, чтобы этим заняться.
Павел Гвоздь
16 марта 2022, 18:12
modx.pro
1 013
+8

[CurrencyCalc] 1.1.4 Новый источник Free Currency Rates API


В Гитхаб есть отличный бесплатный источник курсов валют – Free Currency Rates API. Там парень по имени Fawaz Ahmed на добровольной основе создал это бесплатное API, за что ему большое спасибо!

Прелесть данного источника в том, что в нём есть курс BTC, ETH и некоторых других криптовалют (например, хлам типа DOGE или XRP). Полный список всех валют данного источника смотреть так.

Я решил, что данное API стоит добавить в мой компонент CurrencyCalc. Также из компонента был удалён бесполезный рудимент – сто лет как устаревший YahooApis. На этом пока всё. =)

P.S. Давно я ничего не писал сюда… возвращаться оказалось сложнее, чем я думал. К слову, компонент не обновлялся аж с 2016 года – пусть это будет символом моего возвращения!
Павел Гвоздь
16 марта 2022, 12:49
modx.pro
1
1 178
+18

Не выводится своё значения из из своего словаря, как исправить?

Создал папку в core/components/sitetranslation/lexicon/ru/default.inc.php
папка «компонент» sitetranslation содержит только папку lexicon а в ней только папка ru а в ней только 1 файл default.inc.php
с таким значением
<?php

$files = scandir(dirname(__FILE__));
foreach ($files as $file) {
    if (strpos($file, 'msp.') === 0) {
        @include_once($file);
    }
}
$_lang['sts_modal_form_title'] = 'Хотите получить доступ? Заполните анкету';
Затем создал пространство имён в modx, в словаре всё появилось могу делать записи, те записи что делаю в файлах на хосте там отображаются, но при попытке вывести не выводит.
{'sts_modal_form_title' | lexicon}
Получаю просто sts_modal_form_title без перевода

cultureKey такой же как и название папки ru контекст web.
Vladimir
16 марта 2022, 08:45
modx.pro
450
0

Uncaught --> Smarty Compiler: Syntax error 2.8.3 только на хостинге hoster.kz, как исправить?

Перенёс сайт на паганый hoster.kz, версия modx 2.8.3, php 7.4 при заходе в админку выдаёт такую ошибку
Fatal error: Uncaught --> Smarty Compiler: Syntax error in template "eval:<li id="limenu-site" class="top"> <a hre..." on line 113 "});{/literal} ">Завершить все сеансы<span class="description">Завершить все сеансы работы пользователей и произвести принудительный выход из системы всех пользователей</span>" - Unexpected " MODx.msg.confirm({ title: _('flush_sessions') ,text: _('flush_sessions_confirm') ,url: MODx.config.connector_url ,params: { action: 'security/flush' } ,listeners: { 'success': {fn:function() { location.href = './'; },scope:this} } });", expected one of: LITERALEND <-- thrown in /var/www/vhosts/kippribor.kz/promanalyt.kz/core/model/smarty/sysplugins/smarty_internal_templatecompilerbase.php on line 113
Ставил такую вещь на manager/controlers/default/header.php 328 строка
if($menu["id"] == 'flush_sessions'){
	$menu['handler'] = "";
}
Админка работала а вот меню нет prnt.sc/1oeEMsHDSdkq
Vladimir
15 марта 2022, 09:11
modx.pro
569
0

Залогинен ли пользователь?

Всем доброго времени суток. Может, кто сталкивался или знает — ситуация такая: когда пользователь выходит из личного кабинета, должны удаляться его некоторые временные файлы. Если он сам нажимает «Выход», то плагин отлично с этим справляется, но проблема в том, что далеко не все этот «Выход» нажимают, а чаще просто закрывают вкладку. Решением было бы кроном запускать скрипт, который будет проверять закончена ли сессия пользователя по таймауту и если да, то удалять файлы. Отсюда вопрос — зная id пользователя, как узнать истекла ли его сессия?
Евгений Ц.
15 марта 2022, 01:22
modx.pro
708
0

Сделать лупу для Minishop2, Fotorama.

1 500
Нужно сделать лупу для Minishop2, Fotorama.
Вот пример codepen.io/saAction/pen/WaeKqG
Ivan
14 марта 2022, 12:32
modx.pro
410
0

Запомнить положение в списке при переходе на страницу товара

Добрый день. Такая проблема появилась. Есть список товаров на сайте с подгрузкой ajaxMode=button. если пользователь перешёл на страницу товара, а потом нажал стрелку назад в браузере, надо чтобы подгружались аяксом все товары, которые были подгружены перед переходом к товару и страница прокручивалась к тому товару. Активация параметра ajaxHistory результатова не дала, только появилась пагинация в дополнение к кнопке «загрузить еще». Параметр cache тоже не приводит к нужному результату.

Сейчас список товаров выводится таким образом:
[[!pdoPage?
      &element=`msProducts`
      &tpl=`productMini--cost-per-square-meter`
      &parents=`26`
      &limit=`12`
      &sortby=`article`
      &ajax=`1`
      &ajaxMode=`button`
      &ajaxElemMore=`.load-more`
      &ajaxTplMore=`buttonLoadMore`
  ]]
Есть ли стандартный функционал для таких целей или может есть готовое решение?
Олег
14 марта 2022, 11:48
modx.pro
438
0

Вывод цветов msOptionsColor в меню pdoMenu конкретного родителя

Всем привет, при использовании компонента msOptionsColor, вывожу цвета в меню, в разделе Межкомнатные двери — но цвета выводятся и те, что в Входных дверях. Скриншот: prnt.sc/lZxjwY2D0fjk
Чанк вывода цветов: prnt.sc/SEiaEpuTiOZM
В параметр where добавлял «parent=»:75,
Так же добавлял сам параметр &parents=`75`
Но pdoResources игнорирует, та как выводит не ресурсы, а цвета «class»: «msProductOption»
Константин
14 марта 2022, 09:17
modx.pro
464
0

Создание большого количества ресурсов >100000 через MODX API

Здравствуйте!
Необходимо создать большое количество ресурсов через API, написал следующий скрипт:
<?php
$q = $modx->newQuery('modResource');
// условие по необходимости
$q->where(array('pagetitle:LIKE' => '%Ремонт двигателя%', 'template' => '5', 'id:>' => 0, 'id:<' => 1000));
$resources = $modx->getIterator('modResource', $q);
$array = [
 ['Замена клапана',1200,'zamena-klapana'],
['Замена клапанной крышки',3800,'zamena-klapannoj-kryishki'],
['Замена натяжителя цепи',6800,'zamena-natyazhitelya-czepi'],
['Замена опоры двигателя',2490,'zamena-oporyi-dvigatelya'],
['Замена коленчатого вала двигателя',4200,'zamena-kolenchatogo-vala-dvigatelya' ],
['Замена поддона картера двигателя',3800,'zamena-poddona-kartera-dvigatelya' ],
['Замена прокладок свечных колодцев',2400,'zamena-prokladok-svechnyix-kolodczev' ],
['Ремонт коленчатого вала двигателя',4200,'remont-kolenchatogo-vala-dvigatelya' ],
['Замена прокладки ГБЦ',3000,'zamena-prokladki-gbcz' ],
['Замена прокладки клапанной крышки',3800,'zamena-prokladki-klapannoj-kryishki' ],
['Замена радиатора охлаждения',4900,'zamena-radiatora-oxlazhdeniya' ],
['Регулировка клапанов',4100,'regulirovka-klapanov' ],
['Замена верхнего рычага подвески',800,'zamena-verxnego-ryichaga-podveski' ],
['Замена передней стойки стабилизатора',490,'zamena-perednej-stojki-stabilizatora' ],
['Замена сайлентблока заднего рычага',590,'zamena-sajlentbloka-zadnego-ryichaga' ],
['Замена сайлентблоков нижнего рычага',690,'zamena-sajlentblokov-nizhnego-ryichaga' ],
['Замена сайлентблоков переднего рычага',880,'zamena-sajlentblokov-perednego-ryichaga' ],
['Замена сайлентблоков продольного рычага',1200,'zamena-sajlentblokov-prodolnogo-ryichaga' ],
['Замена сайлентблоков развального рычага',1100,'zamena-sajlentblokov-razvalnogo-ryichaga' ],
['С/у двигателя',13900,'s/u-dvigatelya'],

['Замена ГБЦ',3900,'zamena-gbcz'],
['Замена маслосъемных колпачков',2400,'zamena-maslosemnyix-kolpachkov'],
['Ремонт клапанов',900,'remont-klapanov'],
['Ремонт форсунок',900,'remont-forsunok'],

['Замена вкладышей коленвала',4000,'zamena-vkladyishej-kolenvala'],
['Замена гидрокомпенсаторов',4900,'zamena-gidrokompensatorov' ],
['Замена головки блока цилиндров',3900,'zamena-golovki-bloka-czilindrov' ],
['Замена двигателя',14900,'zamena-dvigatelya'],
['Замена заднего сальника коленвала (при снятой КПП)',700,'zamena-zadnego-salnika-kolenvala-(pri-snyatoj-kpp)'],
['Замена направляющих втулок клапанов',3200,'zamena-napravlyayushhix-vtulok-klapanov' ],
['Замена переднего сальника коленвала',5500,'zamena-perednego-salnika-kolenvala' ],
['Замена поддона картера',900,'zamena-poddona-kartera' ],
['Замена подушек двигателя',1100,'zamena-podushek-dvigatelya'],
['Замена поршневой группы',2490,'zamena-porshnevoj-gruppyi'],
['Замена поршневых колец',1985,'zamena-porshnevyix-kolecz' ],
['Замена приводного ремня',980,'zamena-privodnogo-remnya' ],
['Замена распредвала',4990,'zamena-raspredvala' ],
['Замена сальника коленвала',4290,'zamena-salnika-kolenvala' ],
['Замена сальника распредвала',3290,'zamena-salnika-raspredvala'],
['Замена турбины',2990,'zamena-turbinyi' ],
['Замена цепи ГРМ',7800,'zamena-czepi-grm' ],
['Капитальный ремонт двигателя',39900,'kapitalnyij-remont-dvigatelya'],
['Переборка двигателя',12000,'pereborka-dvigatelya' ],
['Ремонт блока цилиндров',9890,'remont-bloka-czilindrov'],
['Ремонт ГБЦ',24900,'remont-gbcz'],
['Ремонт и замена коленчатого вала (коленвала)',4990,'remont-i-zamena-kolenchatogo-vala-(kolenvala)' ],
['Ремонт и замена масляного насоса',4990,'remont-i-zamena-maslyanogo-nasosa' ],
['Ремонт радиатора охлаждения',4990,'remont-radiatora-oxlazhdeniya'],
['Ремонт системы охлаждения',2000,'remont-sistemyi-oxlazhdeniya' ],
['Ремонт турбины',1000,'remont-turbinyi' ],
['Снятие/установка/замена форсунок высокого давления',1900,'snyatie/ustanovka/zamena-forsunok-vyisokogo-davleniya']
];
foreach($resources as $resource) {
    $id = $resource->get('id');
   foreach($array as $v){
       $resource2 = $modx->getObject ('modResource', array('pagetitle'=>$v['0'], 'parent' => $id));
    
if(!$resource2){
  $response = $modx->runProcessor('resource/create', array(
    'template' => 17,
    'isfolder' => 0,
    'tvs' => 1,
    'tv41' => $v[1]+round(rand(10, 90), -1),
    'published' => 0,
    'createdby' => 1,
    'parent' => $id,
    'pagetitle' => $v['0'],
    'createdon' => date("Y-m-d H:i:s" , 1646952099),
    'class_key' => 'modDocument',
  ));
  if ($response->isError()) {
      return $modx->error->failure($response->getMessage());
    }
    $modx->cacheManager->clearCache();
}
       
   }
}
суть скрипта в следующем, находим родительские ресурсы по условию и создаем в них дочерние из списка.

Проблема в том что приходится запускать несколько раз скрипт с условием отбора родительских ресурсов:
'id:>' => 0, 'id:<' => 1000
затем
'id:>' => 1000, 'id:<' => 1500
и тд так как если без этого условия скрипт просто зависает. Возможно ли как-то обойти это и оптимизировать скрипт, чтобы создать ресурсы за один проход?

PS скрипт запускаю через modx console, видимо происходит остановка скрипта из-за длительности его выполнения
Вячеслав Варов
12 марта 2022, 12:59
modx.pro
759
0

Sortby в pdomenu

Здравствуйте!

Вывожу список ресурсов в 1ом меню таким образом:
[[pdoMenu?
    &parents=`95`
    &showHidden=`0`
    &showUnpublished=`0`
    &useWeblinkUrl=`0`
    &outerClass=`child`
    &innerClass=`child`
    &parentClass=`has-child`
    &levelClass=`level-`
    &firstClass=`0`
    &lastClass=`0`
    &tplOuter=`@INLINE [[+wrapper]]`
    &tplCategoryFolder=`@INLINE <li [[+classes]]><span>[[+menutitle]]</span><span class="toggler"></span>[[+wrapper]]</li>`
    &tplParentRow=`@INLINE <li [[+classes]]><a href="[[+link]]" [[+attributes]]>[[+menutitle]]</a><span class="toggler"></span>[[+wrapper]]</li>`
    &resources=`114,106,121,2011,132,141,1335,128,137,1831,1965,1995,5093,5127,5160,5172,5218,5221,5224,5227,5261,5451,5601,5564,`
 ]]
steve.kon
11 марта 2022, 16:57
modx.pro
1 014
0