Алексей

Алексей

Был в сети 04 сентября 2025, 15:20
Заказы принимаю
Вот вывод страницы товара:
{extends 'file:templates/base.tpl'}
{block 'main'}
<div class="uk-container uk-container-xlarge">
	<div id="content" class="product">
		{include 'msProduct.content'}
		{$_modx->resource | print_r}
	</div>
	{$modx->resource->content}
</div>
{/block}
Вот что выводится:
Array
(
    [id] => 15
    [type] => document
    [contentType] => text/html
    [pagetitle] => Ярки 3-6 мес. вес 15-25 кг., класс ЭЛИТА
    [longtitle] => Ярки 3-6 мес. вес 15-25 кг., класс ЭЛИТА
    [description] => Фермерское хозяйство ООО «Стандарт», овцы романовской породы племенные чистопородные во Владимире и Владимирской области. Ярки 3-6 мес. вес 15-25 кг., класс ЭЛИТА.
    [alias] => yarki-3-6-mes-ves-15-25-kg-klass-elita
    [alias_visible] => 1
    [link_attributes] => 
    [published] => 1
    [pub_date] => 0
    [unpub_date] => 0
    [parent] => 9
    [isfolder] => 
    [introtext] => 
    [content] => 
    [richtext] => 1
    [template] => 7
    [menuindex] => 0
    [searchable] => 1
    [cacheable] => 1
    [createdby] => 1
    [createdon] => 2020-12-02 15:19:47
    [editedby] => 1
    [editedon] => 2020-12-03 13:45:05
    [deleted] => 
    [deletedon] => 0
    [deletedby] => 0
    [publishedon] => 2020-12-02 15:19:00
    [publishedby] => 1
    [menutitle] => 
    [donthit] => 
    [privateweb] => 
    [privatemgr] => 
    [content_dispo] => 0
    [hidemenu] => 
    [class_key] => msProduct
    [context_key] => web
    [content_type] => 1
    [uri] => yarki-3-6-mes-ves-15-25-kg-klass-elita.html
    [uri_override] => 0
    [hide_children_in_tree] => 0
    [show_in_tree] => 0
    [properties] => Array
        (
            [autoredirector] => Array
                (
                    [old_uri] => yarki-3-6-mes-ves-15-25-kg-klass-elita.html
                )

        )

    [article] => Ярки 3-6 мес.
    [price] => 1
    [old_price] => 8100
    [weight] => 15
    [image] => /assets/images/products/15/barany3.jpg
    [thumb] => /assets/images/products/15/small/barany3.jpg
    [vendor] => 0
    [made_in] => 
    [new] => 
    [popular] => 
    [favorite] => 
    [tags] => 
    [color] => 
    [size] => 
    [source] => 2
    [video] => 
    [gallery] => 
    [vendor.id] => 
    [vendor.name] => 
    [vendor.resource] => 0
    [vendor.country] => 
    [vendor.logo] => 
    [vendor.address] => 
    [vendor.phone] => 
    [vendor.fax] => 
    [vendor.email] => 
    [vendor.description] => 
    [vendor.properties] => 
)
1
Цена 1.
Товары вывожу вот этим:
<?php
$tag = $_GET['tag'];

$key = 'tags'; // имя опции товара
$category = 0; // фильтрация по категории

$q = $modx->newQuery('msProductOption');
$q->innerJoin('msProduct', 'msProduct', 'msProduct.id=msProductOption.product_id');
$q->where(array('msProductOption.key' => $key, 'msProductOption.value'=> $tag));
$q->sortby('msProductOption.value','ASC');
$q->select('DISTINCT(msProductOption.value), msProduct.id');
$q->where(array('msProductOption.key' => $key));
if (!empty($category)) {
    $ids = $modx->getChildIds($category);
    $ids[] = $category;
    $q->innerJoin('msCategory', 'msCategory', 'msCategory.id=msProduct.parent');
    $q->where(array('msCategory.id:IN' => $ids));
}

$result = array();
if ($q->prepare() && $q->stmt->execute()) {
    while ($row = $q->stmt->fetch(PDO::FETCH_ASSOC)) {
    	$res['id'][] = $row['id'];
	}
	$result = implode(",", array_unique($res['id'])) ;
}

$params = array(
    'element' => 'msProducts',
    'includeThumbs' => '740x',
    'parents' => 8,
    'limit' => 9,
    'tpl'=> 'msProduct',
    'ajaxMode' => 'default',
    'tplPageWrapper' => '@INLINE <ul class="pagination uk-pagination">{{+prev}}{{+pages}}{{+next}}</ul>',
    'tplPageActive' => '@INLINE <li class="uk-active"><span>{{+pageNo}}</span></li>',
    'resources' => $result
    );

$output = $modx->runSnippet('pdoPage', $params);
return $output;
Добрый день!
Стандартные теги товара. Вывод, вот этим сниппетом:
<?php
$tpl = 'tpl.Tag'; //чанк одного тега
$tags = array(); // массив тегов
$params = array();// массив параметров
$per = 100; // начальный  % шрифта
$output=''; //вывод
$c = $modx->newQuery('msProductOption');
$c->where(array('key' => 'tags')); //берём значения тегов
$c->sortby('value','ASC');
$options = $modx->getCollection('msProductOption',$c);
foreach($options as $option){
    $tags[] = $option->get('value');
}
$tags = array_count_values($tags); //подсчитываем сколько одинаковых

//выводим в чанк
foreach($tags as $tag => $count){
    $params['tag'] = $tag;
    $params['href'] = '?tag=' . $tag;
    $params['fontsize'] = $per*$count;
    $output .= $modx->getChunk($tpl,$params);    
}

return $output;
Алексей, извини, сайт уже рабочий. Попробовал отключить CKEditor, все заработало. У меня там блоками MIGX сделано, возможно из-за этого. Сейчас буду еще на одном сайте ставить. Там посмотрю и отпишусь.
А нет, сейчас стал проверять, по умолчанию со станице родителя ничего не берется. https не при чем. И еще заметил, если стоит CKEditor, то в виртуальной странице поле content не сохраняется. Вводишь текст, сохраняешь, открываешь по новой, а там пусто!
Алексей, добрый день!
Поставил дополнение, все работает как часы, спасибо! Но, при переходе на https, возникла проблема. На виртуальной странице не выводится контент (именно content) со страницы родителя. То-есть pagetitle, url, description, все меняется как надо и если ввести content в самой виртуальной странице, все ок, а вот если поле content не заполнено в виртуальной странице, а заполнено у родителя, то пусто. Причем проблема пришла после перехода на htts. Не пойму в чем дело?
Если делать 2 уровня меню, то так:
Вот эти пункты:
'tplInner' => '@INLINE <div class="b-menu-dropdown dropdown-menu py-4 px-5" aria-labelledby="navbarDropdownRodent"><div class="d-flex"><div class="col-4 b-menu-dropdown__wrapper"><div class="b-menu-dropdown__inner d-flex flex-column">{$wrapper}</div></div></div></div>',
            'tplInnerRow' => '@INLINE <a class="b-menu-dropdown__item mb-1" href="{$link}">{$menutitle}</a>'
Если перенести таким образом, то все подпункты будут внутри контейнера.

И еще, добавить вот это: 'hereClass' => 'active',
И вот сюда вывод: 'tplParentRow' => '@INLINE <li class=«nav-item b-menu-catalog__item py-1» {$classes}>…
Добрый день, Павел.
Вот два вывода меню:
1.
{'pdoMenu' | snippet : [
    'startId' => 9,
    'level' => 2,
    'where' => '{"isfolder":1}',
    'includeTVs' => 'imagecategory'
    'prepareTVs' => 1,
    'hereClass' => 'uk-active',
    'tplOuter' => '@INLINE <ul class="uk-nav1" uk-nav>{$wrapper}</ul>'
    'tpl' => '@INLINE <li {$classes}><a href="{$link}" title="{$menutitle}" class="cat">{$menutitle}</a>{$wrapper}</li>'
	'tplInner' => '@INLINE <div class="uk-width-xlarge" uk-drop="pos: right-center;"><div class="uk-card uk-card-small uk-card-body uk-card-default"><div class="uk-drop-grid uk-grid-small uk-text-center uk-child-width-1-3@m uk-nav-sub" uk-grid>{$wrapper}</div></div></div>'
    'tplInnerRow' => '@INLINE <div {$classes}><a href="{$link}" title="{$menutitle}" style="font-family: Oswald;font-size: 0.9rem;"><img src="{$imagecategory}" alt="{$menutitle}" uk-img><p class="uk-margin-remove">{$menutitle}</p></a></div>'
 ]}
И вот как это выглядит на сайте:

И еще один вывод:
2.
{'pdoMenu' | snippet : [
            'parents' => '0',
            'level' => 2,
            'hereClass' => 'uk-active',
            'tplOuter' => '@INLINE <ul class="uk-navbar-nav">{$wrapper}</ul>'
            'tplParentRow' => '@INLINE <li {$classes} class="uk-parent"><a href="#">{$menutitle}</a>{$wrapper}</li>'
            'tplInner' => '@INLINE <div class="uk-navbar-dropdown uk-navbar-dropdown-width-3"><div class="uk-column-1-2 uk-column-divider"><ul class="uk-nav uk-navbar-dropdown-nav">{$wrapper}</ul></div></div>'
            'tplInnerRow' => '@INLINE <li{$classes}><a href="{$link}">{$attributes} {$menutitle}</a>{$wrapper}</li>'
          ]}
Как выглядит:

Надеюсь поможет!