Всего 123 798 комментариев

Артур Шевченко
04 сентября 2023, 23:10
0
Так а с чего бы он их начал парсить, если их нет или они в неподходящем для парсинга формате? У вас и ошибки не было, было предупреждение, что вы передаёте в функцию foreach не массив. Я показал как сделать проверку, чтобы предупреждение ушло, но цикл-то от этого не запустился. Надо разбираться что лежит в $node и исходя из этого корректировать код.
Дмитрий
04 сентября 2023, 21:55
0
Ошибка вроде ушла… все равно параметры не парсит ((
Артур Шевченко
04 сентября 2023, 21:24
0
if($key=='@attributes' && is_array($node)){
                foreach($node as $k => $v) {
                    $this->keys[1][] = '@attributes.'.$k;
                    $this->values[] = trim($v);
Дмитрий
04 сентября 2023, 21:18
0
Ошибка как раз показывает на фаил и в нем строка 1668 ошибка
//Атрибуты элемента
            if($key=='@attributes'){
                foreach($node as $k => $v) {
                    $this->keys[1][] = '@attributes.'.$k;
                    $this->values[] = trim($v);
Артур Шевченко
04 сентября 2023, 21:13
0
В описании ошибки должна быть ссылка на файл и сроку в нём.
Dan
Dan
04 сентября 2023, 17:02
0
Это же страница товара, а не карточка. И я ведь написал в комменте, почему вы его не прочитали? Нужно выводить не [[+article]] в шаблоне, ибо это плейсхолдер, а {$_modx->resource.article}
Артур Шевченко
04 сентября 2023, 16:58
0
Вообще мне кажется, что правильнее показывать уведомление об успешной отправке не в «тосте», а в самой форме.
Дизайнеры зачастую даже стили для отображения ошибок не рисуют, что уж говорить об успешной отправке, а у всплывашек из коробки приятный дизайн.

Кстати, компонент сессии использует?
Нет, не использует, но использует куки.

Есть ли стандартный шаблон для писем?
Есть три шаблона писем: для обычных форм и опросов, для подтверждения email, для сброса пароля.
Константин
04 сентября 2023, 16:52
0
Товар выводим шаблоном
<!DOCTYPE html>
<html lang="ru">
  <head>
    {$_modx->getChunk('meta')}
  </head>
  <body class="common-home res layout-4">
    <div id="wrapper" class="wrapper-fluid banners-effect-5">
      <!-- Header Container  -->
      <header id="header" class=" typeheader-4">
        {$_modx->getChunk('header')}
      </header>
      <!-- //Header Container  -->
      <!-- Main Container  -->
      <div class="main-container container">
        {$_modx->runSnippet('!pdoCrumbs', [
        'showHome' => '0',
        'exclude' => '24',
        'tplWrapper' => '@INLINE 
        <ul class="breadcrumb" itemscope="" itemtype="http://schema.org/BreadcrumbList">{$output}</ul>
        ',
        'tplHome' => '@INLINE 
        <li itemprop="itemListElement" itemscope="" itemtype="http://schema.org/ListItem">
          <a itemprop="item" title="{ $menutitle }" href="{$link}">
            <i class="fa fa-home"></i> <span itemprop="name" class="crumb-item">{$menutitle}</span>
            <meta itemprop="position" content="{ $idx }">
          </a>
        </li>
        ',
        'tplCurrent' => '@INLINE 
        <li class="mr-2" itemprop="itemListElement" itemscope="" itemtype="http://schema.org/ListItem">
          <span itemprop="item" class="current">
            <span itemprop="name">{$menutitle}</span>
            <meta itemprop="position" content="{ $idx }">
          </span>
        </li>
        ',
        'tpl' => '@INLINE 
        <li itemprop="itemListElement" itemscope="" itemtype="http://schema.org/ListItem">
          <a itemprop="item" title="{ $menutitle }" href="{$link}">
            <span itemprop="name" class="crumb-item">{$menutitle}</span>
            <meta itemprop="position" content="{ $idx }">
          </a>
        </li>
        ',
        ])}
        
          {$_modx->runSnippet('!addLooked', [
          'templates' => '3',
          'limit' => '15',
          ])}
          <div class="row">
              
          <div id="content" class="col-md-9 col-sm-8">
            <div class="product-view row">
              <div class="left-content-product">
                <div class="content-product-left class-honizol col-md-5 col-sm-12 col-xs-12">
                  {$_modx->runSnippet('!msGallery', [
                  'tpl' => 'msGalleryProductTpl',
                  ])}
                  {if $_modx->resource.new?}
                  <span class="abel-product label-new">{'ms2_frontend_new' | lexicon}</span>
                  {/if}
                  {if $_modx->resource.popular?}
                  <span class="label-product label-sale">{'ms2_frontend_popular' | lexicon}</span>
                  {/if}
                  {if $_modx->resource.favorite?}
                  <span class="label-product label-new">{'ms2_frontend_favorite' | lexicon}</span>
                  {/if}
                </div>
                <div class="content-product-right col-md-7 col-sm-12 col-xs-12"  itemtype="http://schema.org/AggregateOffer" itemprop="offers" itemscope>
                  <meta itemprop="category" content="{$_modx->resource.parent | resource: "pagetitle"}">
                  <meta itemprop="offerCount" content="1">
                  <meta itemprop="price" content="{$price | replace:" ":""}">
                  <meta itemprop="lowPrice" content="{$price | replace:" ":""}">
                  <meta itemprop="priceCurrency" content="RUR">
                  <div class="title-product">
                    <h1>{$_modx->resource.introtext ?: $_modx->resource.pagetitle}</h1>
                  </div>
                  <!-- Review ---->
                  <form class="form-horizontal ms2_form" method="post">
                    <input type="hidden" name="id" value="[[*id]]"/>
                    <div class="product-label" itemprop="offerDetails" itemscope="" itemtype="http://data-vocabulary.org/Offer">
                      <div class="product_page_price price" itemprop="offers" itemscope="" itemtype="http://schema.org/Offer">
                        <span class="price-new product-price" itemprop="price">{$price} {'ms2_frontend_currency' | lexicon}</span>
                        {if $old_price != 0}
                        <span class="old_price price-old">[[+old_price]] [[%ms2_frontend_currency]]</span>
                        {/if}
                        <meta itemprop="price" content="[[+price]]">
                        <meta itemprop="priceCurrency" content="RUB">
                        <meta itemprop="priceValidUntil" content="[[!+nowdate:default=`now`:strtotime:date=`%Y-%m-%d`]]">
                        <link itemprop="availability" href="http://schema.org/InStock">
                      </div>
                      {if $_modx->resource.available == 1}
                      <div class="stock"><span class="status-stock">В наличии</span></div>
                      {/if}
                      {if $_modx->resource.available == 2}
                      <div class="stock"><span class="status-stock">Нет в наличии</span></div>
                      {/if}
                      {if $_modx->resource.available == 3}
                      <div class="stock"><span class="status-stock">Под заказ</span></div>
                      {/if}
                    </div>
                    <div class="product-box-desc">
                      <div class="inner-box-desc">
                        [[getMarksAndModels]]
  
                        [[*longtitle:notempty=`
                        <div class="price-tax"><span>Примечание:</span> <span class="article">[[*longtitle]]</span></div>
                        `:else=``]]

{if $parent != 31 && $id != 31 && $parent != 29 && $id != 29}
  <div class="reward"><span>Артикул:</span> <span class="item">[[+article]]</span></div>
{/if}

                        [[-*article:gt=`0`:then=`<span>Артикул:</span> <span class="item">[[*article]]</span>`:else=``]]
                        [[msProductOptions?tpl=`msProductOptionsTpl` &onlyOptions=`orign_n`]]
                        [[msProductOptions?tpl=`msProductOptionsTpl` &onlyOptions=`dop_n`]]
                        [[+vendor.name:gt=`0`:then=`
                        <div class="price-tax"><span>Производитель:</span> <span class="article">[[+vendor.name]]</span></div>
                        `:else=``]]
                        [[+vendor.country:gt=`0`:then=`
                        <div class="price-tax"><span>Страна производителя:</span> <span class="article">[[+vendor.country]]</span></div>
                        `:else=``]]
                        <div class="vendor-status">
                          <div class="price-tax">
                            <span>Статус производителя:</span>
                            <span class="article">
                            {if $_pls['vendor.description']?}{$_pls['vendor.description']}{else}Неоригинал{/if}
                            </span>
                          </div>
                          {if $_pls['vendor.logo']?}
                          <div class="vendor-logo">
                            <img src="{$_pls['vendor.logo']}" title="{$_pls['vendor.description']}" class="img-responsive" data-toggle="tooltip"/>
                          </div>
                          {else}
                          <div class="vendor-logo">
                            <img src="assets/images/vendors/no orign_2.png" title="Неоригинал" class="img-responsive" data-toggle="tooltip"/>
                          </div>
                          {/if}
                        </div>
                        [[msProductOptions?tpl=`msProductOptionsTpl` &onlyOptions=`synonym`]]
                      </div>
                    </div>
                    <div id="product">
                      <div class="box-info-product">
                        <button type="submit" class="btn btn-mega btn-lg" name="ms2_action" value="cart/add">
                        {'ms2_frontend_add_to_cart' | lexicon}
                        </button>
                        <div class="input-group">
                          <input type="number" name="count" id="product_price" class="form-control col-md-6" value="1"/>
                          <div class="input-group-append">
                            <span class="input-group-text">{'ms2_frontend_count_unit' | lexicon}</span>
                          </div>
                        </div>
                        [[!msOneClick?
                        &tplBtn=`msoneclickBtnTpl`
                        &tplForm=`msOneClickFormTpl`
                        ]]
                      </div>
                    </div>
                </div>
                <!-- end box info product -->
                </form>
              </div>
            </div>
          </div>
          
          <div class="producttab ">
            <div class="tabsslider horizontal-tabs  col-xs-12">
              <ul class="nav nav-tabs">
                <li class="active"><a data-toggle="tab" href="#tab-1">Описание</a></li>
                <li class="item_nonactive"><a data-toggle="tab" href="#tab-2">Доставка и оплата</a></li>
                <li class="item_nonactive"><a data-toggle="tab" href="#tab-review">Задать вопрос</a></li>
              </ul>
              <div class="tab-content col-xs-12">
                <div id="tab-1" class="tab-pane fade active in">
                  [[*content:default=`
                  <h2>[[*description]] в наличии в магазине Рио</h2>
                  `]]
                </div>
                <div id="tab-2" class="tab-pane fade">
                  [[#41.content]]
                </div>
                <div id="tab-review" class="tab-pane fade">
                  <h3>Запрос по VIN, задать вопрос</h3>
                  [[#815.content]]
                  [[!AjaxForm? 
                  &form=`questionFormTpl` 
                  &snippet=`FormIt` 
                  &hooks=`validate,FormItSaveForm,email`
                  &formName=`Сообщение с сайта`
                  &emailSubject=`Сообщение с сайта`
                  &emailTo=`ekbsanteh@mail.ru`
                  &emailFrom=`no-reply@ekb-santeh.ru`
                  &emailTpl=`tpl.email`
                  &validate=`name:minLength=^2^`
                  &fieldNames=`name==Имя,phone==Телефон,pageurl==Страница отправки,vin==VIN,email==Email,city==Город,marka==Марка,model==Модель,year==Год выпуска,upload==Файл`
                  &validationErrorMessage=`В форме содержатся ошибки!`
                  &successMessage=`Сообщение успешно отправлено`
                  ]]
                </div>
              </div>
            </div>
          </div>
          
          [[!msProducts?
          &tpl=`recentlyViewedTpl`
          &includeThumbs=`medium`
          &parents=`0`
          &link=`1`
          &master=`[[*id]]`
          &wrapIfEmpty=`0`
          &tplWrapper=`@INLINE
          <div class="related titleLine products-list grid module">
            <h3 class="">Аналоги:</h3>
            <div class="releate-products yt-content-slider products-list" data-rtl="no" data-loop="yes" data-autoplay="no" data-autoheight="no" data-autowidth="no" data-delay="4" data-speed="0.6" data-margin="30" data-items_column00="4" data-items_column0="4" data-items_column1="3" data-items_column2="2" data-items_column3="2" data-items_column4="1" data-arrows="yes" data-pagination="no" data-lazyload="yes" data-hoverpause="yes">
              [[+output]]
            </div>
          </div>
          `]]
        
        <aside class="col-sm-4 col-md-3 content-aside" id="column-left">
          [[!looked?
          &limit=`3`
          &tpl=`lookedViewedTpl`
          &tplOuter=`lookedOuterMyTpl`
          &includeThumbs=`medium`
          ]]
          <!--<div class="module banner-left hidden-xs ">
            <div class="banner-sidebar banners">
              <div>
                <a title="Banner Image" href="#"> 
                <img src="assets/images/slider/banner-sidebar.jpg" alt="Banner Image"> 
                </a>
              </div>
            </div>
          </div>-->
          
        </aside>
        
        </div>
      </div>
    </div>
    <!--Middle Part End-->
    <!-- //Main Container -->
    {$_modx->getChunk('footer')}
    <!-- //end Footer Container -->
    </div>
    <!-- End Color Scheme
      ============================================ -->
    {$_modx->getChunk('scripts')}
  </body>
</html>
Dan
Dan
04 сентября 2023, 16:43
0
Во первых, прочитайте тщательно мой коммент выше, где я указал ссылку на документацию и поймете, где у вас ошибка.
Во вторых, покажите вызов сниппета, которым выводятся карточки, код чанка карточки.
Константин
04 сентября 2023, 16:32
0
В карточке пробую так:
{if $parent != 31 && $id != 31 && $parent != 29 && $id != 29}
  <div class="reward"><span>Артикул:</span> <span class="item">[[+article]]</span></div>
{/if}
И так:
{if $_modx->resource.parent != 31 && $_modx->resource.id != 31 && $_modx->resource.parent != 29 && $_modx->resource.id != 29}
  <div class="reward"><span>Артикул:</span> <span class="item">{$article}</span></div>
{/if}
Все равно выводит артикул
Dan
Dan
04 сентября 2023, 16:08
0
Я же написал в комменте. В самом первом моем комменте и комменте Артура, условие для страницы товара. Для карточки товара, если она выводится сниппетом, условие будет то, что я написал в последнем комменте
Константин
04 сентября 2023, 16:07
0
А как в карточке товара реализовать данное условие?
Dan
Dan
04 сентября 2023, 15:44
0
Вам бы документацию Fenom почитать.
{$_modx->resource.id} и подобные этому вызовы обращаются к полям текущего ресурса. Поэтому в чанке будет так:
{if $parent != 31 && $id != 31}
  <div class="reward"><span>Артикул:</span> <span class="item">{$article}</span></div>
{/if}
И кстати:
1) Не смешивайте стандартный синтаксис и fenom. Раз пишите в fenom, пишите все в нем. Т.е. не
[[+article]]
, а
{$article}
2) По-моему в первом условии должно быть не
[[+article]]
, а
{$_modx->resource.article}
Константин
04 сентября 2023, 15:22
0
Спасибо большое, так работает, а как в карточке товара реализовать данное условие? Скопировал — не срабатывает
Николай Савин
04 сентября 2023, 15:10
0
Это какого ж размера должен быть монитор, чтобы тост не заметить
Артур Шевченко
04 сентября 2023, 15:00
+1
А так
{if $_modx->resource.parent != 31 && $_modx->resource.id != 31}
  <div class="reward"><span>Артикул:</span> <span class="item">[[+article]]</span></div>
{/if}
Артур Шевченко
04 сентября 2023, 14:58
+1
Ставлю рубль против 1000, что у вас некорректная html-разметка.
Константин
04 сентября 2023, 14:54
0
Так выводится артикул везде и в родителе 31 и в подкаталогах
Dan
Dan
04 сентября 2023, 14:25
+1
что бы у всех подкаталогов родителя 31 скрывался артикул
При этом код у вас написан наоборот. Наверное нужно что-то в этом роде:
{if $_modx->resource.parent != 31 || $_modx->resource.id != 31}
  <div class="reward"><span>Артикул:</span> <span class="item">[[+article]]</span></div>
{/if}
Dan
Dan
04 сентября 2023, 14:13
0
Вы хоть свой вызов и чанки покажите