Тимур

Тимур

С нами с 16 апреля 2019; Место в рейтинге пользователей: #554
Тимур
22 февраля 2020, 13:31
+1
Можно проверять на true так:
if($test->save())
Если объект сохранится, то вернется true. А если вернется true, то if сработает
Тимур
05 февраля 2020, 18:20
0
Вы можете и сами посмотреть в логах, что при сохранении документа, даже с пустым alias, modx подставляет pagetitle в alias и передает объект плагину на событие уже с заполненным alias. То есть проверить alias на пустоту нельзя. Даже если посмотреть объект на событие OnBeforeDocFormSave, то там alias тоже уже сгенерирован.
Тимур
05 февраля 2020, 17:53
0
Видимо в момент создания документа он и так пустой. Проверьте поля объекта через отладку.
$modx->log(MODX_LOG_LEVEL_DEBUG, print_r($resource->toArray()));
В журнал ошибок выведет объект
$resource
Тимур
05 февраля 2020, 15:08
0
Объект
$resource
хранит в себе все данные о странице, в том числе и шаблон.
$resource->get('template')
Тимур
05 февраля 2020, 14:24
1
0
if ($modx->event->name == 'OnDocFormSave') {
    if (empty($resource->get('alias'))) {
        if (!empty($resource->get('menutitle'))) {
            $resource->set('alias',$resource->get('menutitle'));
        }
        else {
            $resource->set('alias',$resource->get('pagetitle'));
        }
        $resource->save();
    }
}
Тимур
05 февраля 2020, 13:34
1
0
Потому что при сохранении документа плагин получает объект сохраненного документа. Поэтому ваш код будет выглядеть следующим образом:
if ($modx->event->name == 'OnDocFormSave') {
    if (!empty($resource->get('menutitle'))) {
        $resource->set('alias',$resource->get('menutitle'));
    }
    else {
        $resource->set('alias',$resource->get('pagetitle'));
    }
    $resource->save();
}
Тимур
04 февраля 2020, 16:44
0
Спасибо за полезную информацию
Тимур
28 января 2020, 15:24
0
Почта в профиле есть, можешь туда написать
Тимур
28 января 2020, 15:05
0
Напиши в вк, чтобы тут не флудить
Тимур
28 января 2020, 15:00
0
Можешь вытащить любое значение через:
'tpl' => '@CODE {$pagetitle}'
Получишь список заголовков например
Тимур
28 января 2020, 14:54
0
foreach работает с массивами. А переменная $newproduct является строкой.
А в чем проблема использования чанков?
Тимур
28 января 2020, 14:38
0
После работы сниппета переменная $items является строкой, а не массивом. Поэтому foreach и не работает. Сейчас напишу решение
Тимур
28 января 2020, 14:33
0
{set $items = '!msProducts' | snippet : [
    'parents' => 3,
    'includeThumbs' => 'small,mobilesmall',
    'showHidden' => 0,
    'showUnpublished' => 0,
    'limit' => 4
    ......
]}

{foreach $items as $item}
    {$item.pagetitle}
{/foreach}
Тимур
26 января 2020, 11:26
0
Вызов на fenom:
{'!mSearchForm' | snippet : [
    'pageId' => 3550,
    'element' => 'msProducts',
    'tplForm' => 'tpl.mSearch2.form.Custom',
    'tpl' => 'tpl.mSearch2.ac.Custom',
    'limit' => 0,
    'autocomplete' => 0
]}

<div class="ms2_product">
    <form method="post" class="ms2_form">
        <input type="hidden" name="id" value="{$id}">
        <input type="hidden" name="count" value="1">
        <input type="hidden" name="options" value="[]">
        
        <div class="prod_tab img col-md-2">
            {if $image}
                <img src="{$image}" class="mw-100" alt="{$pagetitle}" title="{$pagetitle}"/>
            {else}
                <img src="/assets/images/no-image.png" class="mw-100" alt="{$pagetitle}" title="{$pagetitle}"/>
            {/if}
        </div>
        
        {if $article}
            <div class="prod_tab art col-md-1">
                <span>{$article}</span>
            </div>
        {/if}
       
        <a href="{$id | url}" class="ajax-popup-link">{$pagetitle}</a>
        
        <div class="prod_tab vendor col-md-1">
            {$_pls['vendor.name']}      
        </div>
        
        <div class="prod_tab price col-md-1">
            {$price} {'ms2_frontend_currency' | lexicon}
        </div>
        
        <div class="prod_tab pack col-md-1">
            <span style="text-align: center;width: 100%;">{$_pls['pack-norm.value']} </span>
        </div>
        
        <div class="prod_tab total col-md-1">
            <span class='number-wrapper'>              
                <input type="number" name="count" class="product_count form-control" value=""/>
            </span>
        </div>
        
        <div class="prod_tab buy col-md-2">
            <button class="btn btn-primary" type="submit" name="ms2_action" value="cart/add" style="width:100%;">
                {'ms2_frontend_add_to_cart' | lexicon}
            </button>
        </div>
    </form>
</div>
Тимур
26 января 2020, 10:36
0
Вы целенаправленно и осознанно используете fenom и вызовы modx вместе?
Тимур
22 января 2020, 20:15
+1
{foreach $products as $product}
    {$product['measure_unit.value']}
{/foreach}
Тимур
14 января 2020, 16:03
0
Так же прикручивал к стандартной форме комментирования tickets смайлики. Но я еще и встроенный редактор заменял. При желании все можно под задачу адаптировать ;)
Тимур
30 декабря 2019, 10:41
+1
Вы можете использовать fenom и находить значение tv родителя очень просто.
У каждого ресурса есть поле
parent
, к нему и обращайтесь:
{$_modx->resource.parent | resource : 'tv-name'}
Можете все это сохранить в переменную и подставлять ее в вызов сниппета:
{var $tv = $_modx->resource.parent | resource : 'tv-name'}
{'!pdoResources' | snippet : [
    ....
    'where' => ['tags' => $tv]
    ...
]}
Тимур
02 декабря 2019, 15:37
0
В компоненте mSearch2 есть фильтр по TV полям. Работает все быстро, на ajax. И кучи лишнего кода не будет.