Всего 125 962 комментария

Артур Шевченко
04 марта 2022, 14:11
+1
Можно под каждую таблицу создать отдельное ТВ или по три ТВ, но по-моему лучше обойтись одним MIGX.
Артур Шевченко
04 марта 2022, 14:10
0
ну так-то да, но есть один нюанс, если заказчик, а так бывает, захочет добавить ещё раздел на первом уровне или переименовать существующий, статически выведенное меню нужно будет менять вручную, поэтому я бы так не делал, просто из-за лени)))
Артур Шевченко
04 марта 2022, 14:07
0
А я не говорил про id страницы, у каждого пункта меню, т.к. это ресурс, есть id и при выводе меню вы проверяете равен ли id текущего пункта например 2, где 2 это id ресурса Товары, если равен, то вызываете pdoResources/pdoMenu/
Константин Ильин
04 марта 2022, 12:20
0
Гляньте:
1. ошибка в Консоли браузера
2. ошибка в Логе modx
3. ошибка в Логе Сервера
4. Если зайти в Админке, в ресурс, MIGX нормально показывает? Это вопрос про ошибку на 1860 строке prnt.sc/3CQsst937gOr
5. Попробовать(естественно с переделками) данный код в Console
Сергей Карпович
04 марта 2022, 12:09
0
или подставлять другой чанк, если в галерее только одно фото выбрано?..
Сергей Карпович
04 марта 2022, 11:52
0
Есть ли способ задать чанк для одиночного фото, что бы было возможно настроить кадрирование изображения и сжатие?
Vladimir
04 марта 2022, 10:33
0
Вот это работает и записывает данные
$tvcid->setValue($currentResourceId, json_encode($ar));
но поменял на это
$tvr = $modx->newObject('modTemplateVarResource');
$tvr->set('tmplvarid', 25);
$tvr->set('contentid', $currentResourceId);

$tvr->set('value', json_encode($ar));
$tvr->save();
MIGX_id обязательно нужно ставить, иначе сам он не подставляет именно в код
И всё так же уходит в бесконечное сохраннее если этот плагин включен
<?php
switch ($modx->event->name) {
	
	case 'OnDocFormSave':
		if ($resource->get('template') == 3 && empty($resource->getTVValue('reviews'))) {
			$resource->setTVValue('ratingCount', strval(0));
			$resource->setTVValue('activeReviewsCount', strval(0));
		}
		elseif ($resource->get('template') == 3 && !empty($resource->getTVValue('reviews'))) {
			$activeReviews = 0;
			$totalActiveRating = 0;    
			$avgRating = 0;

			try {
				$reviews = json_decode($resource->getTVValue('reviews'), true);
				
				if($reviews){
					foreach($reviews as $key => $value){
						if($value['is_active'] == '1'){
							$activeReviews += 1;
							$totalActiveRating += $value['rating'];
						}
					}
					
					$avgRating = $totalActiveRating / 5;                        
				}
				$resource->setTVValue('ratingCount', strval($avgRating));
				$resource->setTVValue('activeReviewsCount', strval($activeReviews));
			} catch(Exception $e) {
				$modx->log(1, 'Бред 0');
				$modx->log(1, $e);                    
			}


		}

}
Georg
04 марта 2022, 10:21
0
Спасибо за ответ. Я не хотел использовать migx, но где моя ошибка понял
Vladimir
04 марта 2022, 09:23
0
Если делать через ресурсы, то человек без прав не может создать migx запись, поэтому пришлось делать так. Всё равно не помогает
Александр Мельник
04 марта 2022, 08:20
+1
Я любитель еще более простых решений) Зачем вам статичные пункты меню, такие как — о компании, контакты, формировать динамически через pdoMenu. Оставьте их в html и пропишите руками ссылки. А для формирования подменю с товарами используйте уже pdoMenu или pdoResources или msProducts и настройте их так чтобы отбирались только товары.
Дмитрий Бородин
04 марта 2022, 04:41
0
Интересное решение, конечно, только я пока не совсем понимаю… Проверка id страницы выведет результат, в зависимости от того, на какой странице я нахожусь. Разве нет? А главное меню должно на всех страницах быть одинаковым.
Артур Шевченко
03 марта 2022, 23:09
0
Не понимаю причём тут авторизованные люди. Вы можете в объект modx добавить любого пользователя. А что касается MIGX, то указывать MIGX_id необязательно, он подставиться автоматически, возможно и из-за этого проблема. И лучше всё же сделать через ресурсы.
Артур Шевченко
03 марта 2022, 23:05
0
Я как любитель простых решений, предлагаю выводить меню только первого уровня, при этом в чанке &tpl проверять id, и если он равен id Товары, то выводить товары сниппетом pdoResources.
Артур Шевченко
03 марта 2022, 22:32
+1
Как это исправить?
Сделать idtab, gid, range параметрами сниппета. Тогда сниппет будет вызываться так
[[!Google-Shits?
&idtab=`value`
&gid=`value`
&range=`value`
]]
Ну а сами параметры, я бы запихнул в migx.
Вместо этого нужно оставить только параметры.
$idx = $modx->getObject('modTemplateVar', array('name' => 'idtab'))->getValue($modx->resource->get('id'));
$gid = $modx->getObject('modTemplateVar', array('name' => 'gid'))->getValue($modx->resource->get('id'));
$range = $modx->getObject('modTemplateVar', array('name' => 'range'))->getValue($modx->resource->get('id'));
Олег
03 марта 2022, 14:40
0
Спасибо большое! Иначе это был бы ад.
Stepan
03 марта 2022, 11:43
0
в новых версиях pdoTools все работает
Vladimir
03 марта 2022, 08:52
0
Да а если нет он создаёт, и отображает правильно созданный элемент, и даже когда уже есть элементы он правильно всё подставляет, но при попытки сохранить(новые изменения в уже созданных таким методом) таким образом созданные Migx уже уходит в бесконечное сохранение. Да до этого я делал правильно через resource и так далее, но беда в том что это должно работать с авторизированными людьми у которых нет прав на что либо кроме лоад и т.д
Vladimir
03 марта 2022, 08:48
+1
Должно быть так в Действительный URI перенаправления
https://имясайта.ауф/?hauth.done=Facebook
Андрей
02 марта 2022, 22:48
+1
Основную планирую использовать под модификации. Есть ещё набор «имиджевых» фотографий, под них нужна вторая галерея, т.к. они выводятся на фронте в другом блоке, не в основной галерее.
Как минимум можно использовать группировку по тегам (функционал ms2gallery), и выводить в разных местах c указанным тегом в параметре tags.