Andrey
Заработало так. Вдруг кто искать будет по чатику на тему commerce и 3.0 {!! $modx->runSnippet('Cart', [ 'instance' => 'products', 'tpl' => '@FILE: cart_row', 'ownerTPL' => '@FILE: cart_wrap', 'noneTPL' => '@FILE: cart_empty', ]) !!} Где в плагине в настройке "Path to custom templates" стоит views/commerce/front/
Andrey
потому что там жестко все притянуто за уши, делалось то для 1.4. для 3 надо переписывать
Спасибо. В общем не изобретать блейды внутри и юзать эти чанки спокойно, да?
Михаил
да
Alexander
да
но ведь можно сам вызов прокинуть из контроллера во вьюху?
Alexander
а чанки ужо юзать штатные
Михаил
можно
Михаил
но зачем?
Михаил
это в любом случае выглядит костыльно, что так что эдак
Andrey
Но тогда мы так и так получаем нужду переключать голову с Блейд шаблонов на обычные. Или не
Михаил
Но тогда мы так и так получаем нужду переключать голову с Блейд шаблонов на обычные. Или не
нет, просто те шаблоны, которые нужно модифицировать - сразу делать в блейде
Alexander
это в любом случае выглядит костыльно, что так что эдак
А есть в планах переписывать коммерс под 3.0 или он останется навсегда для 1.4 и юзайте как хотите?
Alexander
Разве не работает?
ну так работает в режиме 1.4 о чем и речь. Чтобы уйти от таких вызовов {!! $modx->runSnippet('Cart',
Михаил
т.е. 1. продублировать шаблоны из папки front в папку views/commerce 2. указать папку views/commerce в настройках плагина 3. те шаблоны, которые меняем - делаем в блейде
Камиль
И так
Alexander
И так
ну если перенатягивается то тада ладна
Alexander
Миша же сказал надо переписывать
Камиль
Или ты про режим апи какой нить?
Alexander
Или ты про режим апи какой нить?
что за апи? как у доклистера вызов в режиме апи?
Михаил
ну так работает в режиме 1.4 о чем и речь. Чтобы уйти от таких вызовов {!! $modx->runSnippet('Cart',
я для себя заменил {!! $modx->runSnippet() !!} на просто @run() и не парюсь
Andrey
т.е. 1. продублировать шаблоны из папки front в папку views/commerce 2. указать папку views/commerce в настройках плагина 3. те шаблоны, которые меняем - делаем в блейде
'noneTPL' => '@B_FILE: cart_empty', Файл он схавал. А как внутри достучаться до переменных? Вставил {{ hash }} для примера, ошибка.
Andrey
Соотв. файл тоже cart_empty.blade.php
Михаил
а нас научи
use Illuminate\Support\Facades\Blade; class AppServiceProvider extends ServiceProvider { public function boot() { Blade::directive('run', function($args) { return "<?php echo \$modx->runSnippet($args); ?>"; }); } }
Axenia
Grinyaha (1428.28) увеличил карму mnoskov (1680.33)
Andrey
{{ $data['hash'] }}
+ спасибо. {!! dump($data) !!} много интересного вытащил. Ну и разрешите доебаться ещё до lang: а эти вещи как вытащить? [%cart.no_items%]
Ramil
Как проверить, что тв создана уже? Делаю через isset($modx->getTemplateVar('commercePrice','*',$id,1)["value"]), но возвращает 1, хотя в базе этой тв нет
Ramil
Или я костылю, когда тв создаю через insert в таблицу?)
Andrey
Костылите
Andrey
include_once(MODX_BASE_PATH."assets/lib/MODxAPI/modResource.php"); $doc = new modResource($modx); $doc->edit(10); $doc->set('tvname', 'xxxxx'); $id = $doc->save(false, true);
Ramil
$doc->set('tvname', 'xxxxx'); без doc->save работает?
Ramil
У меня плагин на onDocSave, зациклится, думаю
Andrey
Где-то нарушена логика чего-то)
Ramil
Возможно) Есть цена у родителя товара, и цена может быть так же задана задана товару, и чтобы передать в корзину, при сохранении страницы пишу в тв рассчитанную цену.
Andrey
Если прям хочется 1 запрос, то гуглите INSERT or UPDATE'
Ramil
прямой запрос в базу к таблице site_tmplvars
Я смотрю в site_tmplvar_contentvalues, туда же insert/update делаю
Dmytro
а, так тебя проверить тв у документа....
Dmytro
лучше написать select, и если пусто - insert
Dmytro
но и через modresource тоже можно. Он сам создает запись тв, если ее нету
Ramil
Буду select'ом значит проверять) Спасибо)
Aliaksandr
+
Тебя 200 раз одному и тому же учи - все равно не запоминаешь ))
Aliaksandr
🙁не согалсен
https://github.com/webber12/start-evo3/blob/main/core/custom/packages/Main/src/MainServiceProvider.php#L41
Aliaksandr
Было уже и про @run и про @snippet
Aliaksandr
Но мне лично не нравится это в шаблон тыркать
Andrey
@mnoskov Трейси творит чудеса. Накопал {!! $DocLister->_customLang['cart.no_items'] !!} Где cart.no_items любой языковой плейсхолдер из файлика.
Pathologic
это ты накопал плохое
Pathologic
$DocLister->getMsg('cart.no_items', 'kek')
Andrey
Черт, уже всё позакрывал
Pathologic
хотя Commerce может не учитывает до сих пор изменения
Andrey
Он языковой файл не схавал, т.к. язык был прибит в сниппете Cart
Andrey
Но потом дамп {{dump($DocLister) }} дал только это.
Pathologic
значит Михаил не допилил
Антон
Alexander
😂😂😂😂
Am
О, сразу можно двоих блочить ((:
Anonymous🇺🇦
+++
Axenia
AnonymousAleks (0) увеличил карму sysuev (333.18)
Дмитрий
привет всем) можно ли как-то передать контент в переменную php?
Дмитрий
Дмитрий
задача заключается в том, чтобы определить примерное время на чтение статьи, но я не знаю, как можно передать контент в php и обработать его
Am
Доброго и Вам. Думается мне, что мысль у Вас бежит впереди понимания что и как сделать. От этого и вопрос про "передать" выглядит странным. Передать content в php на каком этапе желаете?
Am
Судя по скриншоту у Вас есть доступ в админку, а значит можно написать плагин на событие загрузки страницы и получить данные content из загружаемой страницы.
Дмитрий
Судя по скриншоту у Вас есть доступ в админку, а значит можно написать плагин на событие загрузки страницы и получить данные content из загружаемой страницы.
верно, есть у меня доступ к админке, а также вы верно подметили, что мысль 100% бежит впереди понимания того, как это можно реализовать
Am
А как Вы решили задачу определения примерного времени на чтение статьи что осталось только передать content в php?
Andrey
А в чем проблема? Пишем сниппет, который считает количество символов в контенте и делит на 100. И этот сниппет возвращает число. Вот и все
Дмитрий
и в переменную передавал контент с помощью get_content()
Andrey
Ну плюс минус так и есть)
Дмитрий
но как тут это можно реализовать - совсем пока мыслей нет, да и с modx пару дней как познакомился)
Am
Понятно. Тогда в зависимости от версии 1.4 или 3.0 можно почитать про сниппеты или в 3.0 напрямую в контролере делать.