Всего 125 991 комментарий

Александр Мельник
14 октября 2021, 14:46
0
С небольшой настороженностью отношусь к таким постам, где немного текста и ссылка на сайт пример. А если человек еще и зарегистрировался 3 минуты назад…
Всюду видятся коварные СЕОшники, которые размещают всюду ссылки, чтобы придать им «веса». Или сейчас уже такое не практикуется?)
Я просто один раз тоже оставил в своем комментарии ссылку на один свой сайт, так потом в поиске сайт modx.pro показывался стабильно сразу же, после самого сайта.
Но, Николай, если вам действительно интересно, то Роман все сказал верно, зависит от того насколько круто вы хотите сделать.
В самом простом варианте просто делается в админке поле, куда менеджер вбивает идентификаторы товаров через запятую. Вы эти данные скармливаете сниппету msProducts который и выведет в корзине необходимые вам товары.
Роман
14 октября 2021, 14:18
0
Все зависит от того, как вы хотите получать наполняемость этих блоков. Либо делать связи между товарами или делать более умную систему, которая бы основывалась на предыдущих заказах.
Роман
14 октября 2021, 12:17
+1
Спасибо, не обратил внимание на дату создания поста. Смотрю обсуждается, подумал, что-то свеженькое. =) Но решение и сейчас применяется.
Дмитрий
14 октября 2021, 11:43
0
Прошло почти 3 года с момента написания заметки, визуализации не осталось.
Но если коротко — то для вывода цвета в HEX-формате. То есть был фильтр цвет, где текстом (поле title) было название цвета, а value был HEX-код цвета, который выводился в CSS для стилизации.
Типа того
Роман
14 октября 2021, 09:12
0
Спасибо за опыт. Не хватает визуализации, как все это выглядит, ради чего делалось.
Дмитрий
13 октября 2021, 23:41
+1
Вы, кстати, можете поделиться своим опытом здесь же! Поверьте, это многим поможет
Lori
13 октября 2021, 23:31
0
спасибо, спустя 5 часов возни все таки получилось)
Юрий
13 октября 2021, 21:00
+1
После обновления стала вылетать ошибка в консоли при отправке формы:
undefined is not an object (evaluating '$submitter.length')
Письмо уходит, а вот JGrowl уже не появляется
Дмитрий
13 октября 2021, 17:09
0
Надо посмотреть, в каком формате возвращаются числовые значения и подогнать вывод этот формат. А затем сменить шаблон на подходящий. Точно сказать не могу, но если терпит, то завтра посмотрю и отвечу
Lori
13 октября 2021, 16:57
0
Эх, как бы это переделать, чтобы выводить в стиле number?
Уже битый час вожусь — никак не получается. В migx-tv есть поле числовое. Подскажите пожалуйста, куда копнуть, чтобы вывести именно в виде number (чтобы было min и max значение).
Правильно ли я понимаю, что мне требуется только переписать buildMigxFilter и filterMigx?
Сергей
13 октября 2021, 16:47
0
Еще раз спасибо за помощь — все заработало вроде, стало адекватно обновляться!!!
Дмитрий
13 октября 2021, 14:30
+1
Круто! То что надо! Спасибо огромное!
Если когда-нибудь решите выложить остальное открыто на гитхаб, обещаю вам сходу 5 звезд от нашей команды ??
Сергей
13 октября 2021, 13:09
0
Да, количество, только на странице товара.
Огромное спасибо, сейчас поменяю код попробую, что получится, обязательно отпишусь!
Павел Романов
13 октября 2021, 11:18
0
Если количество товара выводится не только на странице самого товара, а еще, к примеру, в категориях, то лучше после парсинга чистить кеш всего сайта и вместо приведенного Вами кода поставить это:
$modx->cacheManager->refresh();

Если выводится только на странице товара (и если в массиве $contentids у Вас ID обновленных ресурсов), то так:
// очищаем кэш обновленных ресурсов
$ids = array_unique($contentids);
foreach($ids as $id){
    $resource=$modx->getObject('modResource',$id);
    $cacheKey = $resource->getCacheKey();
    $modx->cacheManager->refresh(array('resource' => array('key' => $cacheKey)));
}
Сергій
13 октября 2021, 10:11
0
[[!pdoPage?
              &element=`pdoResources`
              &parents=`[[!BabelTranslation? &contextKey=`[[*context_key]]` &resourceId=`66`]], [[BabelTranslation? &contextKey=`[[*context_key]]` &resourceId=`70`]], [[BabelTranslation? &contextKey=`[[*context_key]]` &resourceId=`68`]], [[BabelTranslation? &contextKey=`[[*context_key]]` &resourceId=`243`]]`
              &hideContainers=`1`
              &includeContent=`1`
              &useWeblinkUrl=`1`
              &limit=`24`
              &setMeta=`0`
              &sortdir=`DESC`
              &sortby=`menuindex`
              &tpl=`portfolio-tpl`
              &tvFilters=`
              [[++cultureKey:is=`[[++cultureKey]]`:then=`[[*id:is=`[[BabelTranslation? &contextKey=`[[*context_key]]` &resourceId=`14`]]`:then=`category-portfolio==%category1%||category-portfolio==%category2%||category-portfolio==%category3%||category-portfolio==%category4%`]]`]]
              [[++cultureKey:is=`[[++cultureKey]]`:then=`[[*id:is=`[[BabelTranslation? &contextKey=`[[*context_key]]` &resourceId=`66`]]`:then=`category-portfolio==%category1%`:else=``]]`]]
              [[++cultureKey:is=`[[++cultureKey]]`:then=`[[*id:is=`[[BabelTranslation? &contextKey=`[[*context_key]]` &resourceId=`70`]]`:then=`category-portfolio==%category2%`:else=``]]`]]
              [[++cultureKey:is=`[[++cultureKey]]`:then=`[[*id:is=`[[BabelTranslation? &contextKey=`[[*context_key]]` &resourceId=`68`]]`:then=`category-portfolio==%category3%`:else=``]]`]]
              [[++cultureKey:is=`[[++cultureKey]]`:then=`[[*id:is=`[[BabelTranslation? &contextKey=`[[*context_key]]` &resourceId=`243`]]`:then=`category-portfolio==%category4%`:else=``]]`]]
              `
              &includeTVs=`portfolio-images, portfolio-gallery`
              &tplPage=`@INLINE 
              <li class="page-item">
                <a class="page-link" href="[[+href]]">[[+pageNo]]</a>`
                &tplPageWrapper=`@INLINE 
                <nav aria-label="Page navigation example">
                  <ul class="pagination">[[+first]][[+prev]][[+pages]][[+next]][[+last]]</ul>
                </nav>
                `
                &tplPageActive=`@INLINE 
              <li class="page-item active"><a class="page-link" href="[[+href]]">[[+pageNo]]</a></li>
              `
              &tplPageFirst=``
              &tplPageLast=``
              &tplPagePrev=`@INLINE 
              <li class="page-item"><a class="page-link" href="[[+href]]"><i class="fas fa-chevron-left"></i></a></li>
              `
              &tplPageNext=`@INLINE 
              <li class="page-item"><a class="page-link" href="[[+href]]"><i class="fas fa-chevron-right"></i></a></li>
              `
              &tplPageSkip=`@INLINE 
              <li class="page-item"><a class="page-link" href="[[+href]]">[[%pdopage_right]]</a></li>
              `
              &tplPageFirstEmpty=``
              &tplPageLastEmpty=``
              &tplPagePrevEmpty=``
              &tplPageNextEmpty=``
              &loadModels=`UserFiles`
              &leftJoin=`{
              "File": {
              "class": "UserFile",
              "on": "File.parent = modResource.id AND File.rank = 0"
              },
              "Thumb": {
              "class": "UserFile",
              "on": "Thumb.parent = File.id AND Thumb.class = 'UserFile' AND Thumb.properties LIKE '%w\":400,\"h\":400%'"
              }
              }`
              &select=`{
              "modResource": "*",
              "Thumb": "Thumb.url as thumb"
              }`
              ]]
Вызывает копию ресурса с ID 648 почему так?
Илья Уткин
13 октября 2021, 07:21
+1
Да, конечно давно сформировался набор стандартных миграций. Но, к сожалению это внутренняя разработка, она лежит в приватном репозитории и код писал не я. Так что поделиться с общественностью не могу.

По конфигам MIGX я делал так — создавал конфиг через интерфейс, потом экспортировал его и в миграции было что-то типа такого:

$name = 'configName';
$file_path = dirname(__DIR__) . '/migx/configname.json';

$this->modx->getService('migx', 'Migx', MODX_CORE_PATH . 'components/migx/model/migx/', []);
$config = $this->modx->getObject('migxConfig', ['name' => $name]);
if (!$config) {
    $config = $this->modx->newObject('migxConfig');
    $config->set('name', $name);
}

$json = file_get_contents($file_path);
$config->fromArray($this->modx->migx->importconfig($this->modx->fromJson($json)));
$config->save();
Фарит
Фарит
12 октября 2021, 23:53
0
Как удалось победить ошибку?
Андрей
12 октября 2021, 20:08
0
Неплохо было бы уточнить версию MODX. На актуальных версиях 2.8.3 и Login 1.9.10 подобных проблем не замечал.
Дмитрий
12 октября 2021, 18:29
0
Илья, нет ли у тебя какой-нибудь базы примеров миграций для основных типов объектов MODX?
ресурс, чанк, сниппет, MIGX-конфиг и т.д. Особенно MIGX-конфиг сейчас нужен ?
Михаил
12 октября 2021, 16:21
0
Боты вроде бы не могут писать в каналы самостоятельно, их нужно туда сначала добавить. Но и будет ли так работать, сейчас не скажу.