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

Кровельный
25 июля 2023, 14:51
1
0
Как из свойств товара-ресурса записать в одну опцию товара?
Например если 2-3 значения, а 1 ключ, конечно можно использовать вариант в свойствах если там уже есть данные json, как многомерный массив, но мы сделаем тестовую опцию множественный выбор.
  1. Назовём опцию made_from
  2. Заведём в опцию значения (В настройках minishop2), чтобы получились значения:
    • Металла
    • Дерева

    • Вторсырья
    • Текстиля
    • Пластика

    * — не программно, вручную (если программно, то дописывайте код)
  3. Далее выполним:
    <?php
    $key = 'made_from'; // имя опции товара
    $resource = $modx->getObject('modResource', 44);
    $product = $modx->getObject('msProduct', $resource->id);
    //$arr = $resource->get('properties')['technicals']['Детали изготовлены из'];
    $arr = ['Пластика','Вторсырья'];
    $options = $product->loadData()->get('options');
    foreach ($arr as $k => $v) {
        $options[$key][$k] = $arr[$k];
    }
    $product->set('options', $options);
    $product->save();
  4. Готово. Теперь mFilter2 сможет фильтровать по опции. Если необходимо записать или обновить товары, то необходимо завернуть всё в getCollection
biper
25 июля 2023, 14:36
0
ибо вроде как масло масляное получается в нем…
biper
25 июля 2023, 14:20
0
ни фига…: (
логику вроде понимаю… а сам вызов не нужно ничего менять?
<div class="container-fluid">
     <hh>ГАЛЕРЕЯ наших работ</hh><hr>
         <div class="row" style="margin: 0;">
            
[[!GalleryAlbums? &toPlaceholder=`GalleryAlbums` &limit=`0` &albumCoverSort=`rank` &prominentOnly=`1`
&rowTpl=`galAlbumRowWithCoverTpl`&thumbWidth=`400` &thumbHeight=`266` &thumbTpl=`GalItemThumb1` &imageWidth=`900` &imageHeight=`900`]]

[[!Gallery? &album=`[[*galery_name]]` &limit=`0` &checkForRequestTagVar=`1`&sortby=`{"publishedon":"ASC"}`  &toPlaceholder=`Gallery` 
&useCss=`0` &containerTpl=`GalleryAlbumTpl` itemCls=`carousel-item` activeCls=`carousel-item active` &thumbWidth=`400` &thumbHeight=`266` 
&thumbTpl=`GalItemThumb1` &imageWidth=`900` &imageHeight=`900`]]

[[+Gallery:isnot=``:then=`<div class="carousel-inner gallery_pic">[[+Gallery]]</div>`:else=`<ul class="carousel-inner gallery_pic">

[[+GalleryAlbums]]</ul>`]]
           
         </div>
        <p class="con">
         </p>
      </div>
Dan
Dan
25 июля 2023, 13:07
0
В карусели или нет — это никак не влияет. Я бы конечно сделал ajax-подгрузку, но там писанины больше.
biper
25 июля 2023, 13:04
0
спасибо, попробуую :) несколько омрачает что галерея находится в карусели, видимо оттого не совсем получается… постараюсь разобраться
Dan
Dan
25 июля 2023, 12:40
1
0
Если не хотите использовать ajax, то можно сделать так немного закостылить:
1) Немного правите ваш текущий чанк galAlbumRowWithCoverTpl
[[!Gallery?
    &album=`[[+id]]`
    &toPlaceholder=`photos`
    &thumbTpl=`tpl.gallery.image`
]]
<a href="[[+url:is=``:then=`[[+image]]`:else=`[[+url]]`]]" [[+link_attributes]] class="gallery-preview" data-photos="[[+photos:commaSeparate]]">
    [[+image:notempty=`<img src="[[+image]]" [[+cls:notempty=`class="[[+cls]]"`]] alt="[[+title]]" />`]]
</a>
2) Создаете чанк tpl.gallery.image
[[+image_absolute]],
3) Создаете сниппет commaSeparate
<?php
return rtrim($input, ',');
4) Пишете js-код:
$(document).ready(function() {
   $('.gallery-preview').click(function(e) {
        e.preventDefault();
        let photos = [];

        if ($(this).attr('data-photos') && $(this).attr('data-photos') != '') {
            let list = $(this).attr('data-photos').split(',');
            $.each(list,function(i){
                photos.push({href: list[i]});
            });
        }        
        
        $.fancybox.open(photos);
   });
});
OlegSh
25 июля 2023, 10:01
0
Добрый день, Николай! Точно! Была такая запись, удалил, надеюсь, что поможет. Огромное спасибо! Исчезла эта ошибка!
Может еще про погоду и валюту подскажите?! Коды курса валют и погоды на сайте в Header и в чанках закомментировал, кеш везде стоит 7200, но MODX генерирует ошибки: (ERROR @ /home/o/olegsh6w/dopross.ru/core/cache/includes/elements/modsnippet/35.include.cache.php: 51) getCache could not find requested element `current_weather`-->
Дмитрий
25 июля 2023, 09:24
0
У кого-нибудь работает обновление товаров по крону?
раньше были ошибки, прописал абсолютный путь к index.php, после этого пропали, но товары не экспортируются(
prnt.sc/nIKF9XajT9gJ
<?php

define('MODX_API_MODE', true);

$developmentConfig = dirname(dirname(dirname(dirname(dirname(dirname(__FILE__)))))) . '/core/config/config.inc.php';
$productionConfig = dirname(dirname(dirname(dirname(__FILE__)))) . '/config/config.inc.php';

if (file_exists($developmentConfig)) {
    /** @noinspection PhpIncludeInspection */
    require_once $developmentConfig;
} else {
    /** @noinspection PhpIncludeInspection */
    //require_once $productionConfig;
}
/** @noinspection PhpIncludeInspection */
require_once '/home/ert/public_html/index.php';

$modx->getService('error', 'error.modError');
$modx->setLogLevel(modX::LOG_LEVEL_ERROR);
$modx->setLogTarget('FILE');
$modx->error->message = null;

/** @var Sync $Sync */
$Sync = $modx->getService('sync', 'Sync',
    $modx->getOption('sync_core_path', null,
        $modx->getOption('core_path') . 'components/sync/') . 'model/sync/');
$corePath = $modx->getOption('sync_core_path', null, $modx->getOption('core_path') . 'components/sync/');
$modx->lexicon->load('sync:default');

$params = array(
    'service'   => 'moysklad',
    'action'    => 'mgr/mscategory/export',
    'sync_step' => 'sync_init',
);

$response = $Sync->curlExec($params);

//var_dump($response);
Николай Савин
25 июля 2023, 08:33
1
0
Пройдите в системные настройки. Найдите там настройку extension_packages. Именно она отвечает за инициализацию пакетов. Скорее всего в ней осталась запись о пакете hybridauth. Отсюда и попытки инициировать отсутствующий пакет. Удалите оттуда запись — и будет вам счастье.
ВНИМАНИЕ. Там формат JSON. Удаляйте кусочек про hybridauth аккуратно, чтобы не сломать записи о других пакетах.
Алексей Шумаев
24 июля 2023, 20:24
0
Случайно наткнулся на старый запрос.
У кого такая ситуация будет — смотрите сразу таблицы базы данных: скорее всего при переносе сайта потеряны индексы и ключи таблиц. Отсюда все проблемы.
biper
24 июля 2023, 11:15
0
Спасибо, попробую :)
Dan
Dan
24 июля 2023, 11:08
1
0
В модалке я делаю ajax-подгрузкой галерею. Какой плагин модалки используете (fanbybox, lightgallery, magnific)?
Алексей
24 июля 2023, 11:05
0
Вызов
[[!GalleryAlbums?
&toPlaceholder=`GalleryAlbums`
&limit=`5`
&albumCoverSort=`rank`
&albumCoverSortDir=`DESC`
&prominentOnly=`1`
&rowTpl=`imageCategory`
&thumbWidth=`360`
&thumbHeight=`270`
]]

[[!Gallery?
&toPlaceholder=`Gallery`
&checkForRequestTagVar=`1`
&useCss=`0`
&containerTpl=`GalleryAlbumTpl`
&thumbTpl=`imageIndex`
&thumbWidth=`360`
&thumbHeight=`270`
&imageWidth=`1024`
&imageHeight=`768`
]]

[[+Gallery:isnot=``:then=`<p class="uk-margin uk-text-center"><a  onclick="javascript:history.back(); return false;"><< Вернуться к общему каталогу</a></p><div class="uk-child-width-1-4@m uk-child-width-1-1" uk-grid uk-lightbox>
[[+Gallery]]</div><p class="uk-margin uk-text-center"><a  onclick="javascript:history.back(); return false;"><< Вернуться к общему каталогу</a></p>`:else=`<div class="uk-child-width-1-3@m uk-child-width-1-1" uk-grid>[[+GalleryAlbums]]</div>`]]
imageCategory
<a href="[[~[[*id]]? &[[+albumRequestVar]]=`[[+id]]`]]" data-caption="[[+name]]" title="[[+name]]">
    <div>
        <div class="uk-card uk-card-default">
            <div class="uk-card-media-top uk-inline uk-transition-toggle">
                <img data-src="[[+image]]" width="360" height="270" alt="[[+name]]" uk-img>
                <div class="uk-transition-fade uk-position-cover uk-overlay uk-overlay-primary uk-flex uk-flex-center uk-flex-middle uk-light"></div>
                 <div class="uk-overlay uk-overlay-default uk-position-bottom">
                     <p>[[+name]]</p>
                 </div>
            </div>
        </div>
    </div>
</a>
imageIndex
<a href="[[+url:is=``:then=`[[+image]]`:else=`[[+url]]`]]" data-caption="[[+name]]" title="[[+name]]">
    <div>
        <div class="uk-card uk-card-default">
            <div class="uk-card-media-top uk-inline uk-transition-toggle">
                <img data-src="[[+thumbnail]]" width="360" height="270" alt="[[+name]]" uk-img>
                <div class="uk-transition-fade uk-position-cover uk-overlay uk-overlay-primary uk-flex uk-flex-center uk-flex-middle uk-light"><span class="uk-icon-button" uk-icon="icon: plus-circle; ratio: 2"></span></div>
                 <div class="uk-overlay uk-overlay-default uk-position-bottom">
                     <p>[[+name]]</p>
                 </div>
            </div>
        </div>
    </div>
</a>
Артур Шевченко
24 июля 2023, 11:05
0
А погуглить не пробовал?
biper
24 июля 2023, 10:50
0
в модалке предпочтительно