Ури

Ури

С нами с 28 декабря 2015; Место в рейтинге пользователей: #546
Ури
13 октября 2020, 22:54
0
Александр, столкнулся с такой же необходимостью. Вам удалось как-то решить данный вопрос?
Ури
16 мая 2020, 00:49
0
Столкнулся с аналогичной проблемой. Если правильно понял, то тут пишут, что в конфигурации MIGX поля (во Вкладки формы) нужно правильно указать источник файлов. Пример:

[{"caption":"Image", "fields": 
  [
   {"field":"image","caption":"Изображение","inputTVtype":"image","sources":"[{\"MIGX_id\":\"1\",\"context\":\"web\",\"sourceid\":\"4\"}]"}
  ]
}]
Но что-то у меня с этим не срослось. Если sourceid меняю на нужный, то все равно пути правильные не отображаются. А что значит MIGX_id я что-то пока не понимаю. Видимо, и тут что-то нужно изменить. Если кто знает, подскажите, пожалуйста, что означает MIGX_id в этом коде. Про контекст и айди источника файлов, вроде понятно.
Ури
17 февраля 2019, 23:05
+1
Все верно, проект совсем не обязательно должен быть сложным. Просто хочется иметь возможность разнообразно оформлять информацию на странице с помощью понятного билдера.
При этом, чтобы можно было самостоятельно добавлять свои блоки в билдер с нужной структурой (версткой).
Ури
17 февраля 2019, 21:22
0
Да какие обиды ) Просто я не профи, много чего не умею. Ковыряю всего понемногу в силу возможностей. Делаю простенькие сайты-визитки за пару-тройку тысяч рублей. При таких доходах покупка таких компонентов себя не оправдывает )
За ссылки на другие решения спасибо, буду изучать!
Ури
17 февраля 2019, 18:47
+1
Да, чем-то похоже ) Но цена в 79 евро за сайт останавливает от его использования… А для Evolution CMS это расширение Page Builder является бесплатным. Почувствуйте разницу ))) Я был бы за покупку подобного расширения для сайта, но за вменяемые деньги ))
Ури
24 июня 2018, 14:44
+1
Спасибо за помощь, заработало!!!
Ури
23 мая 2018, 03:38
0
Олег, спасибо за ответ. Скачивал установщик со страницы modx.com/download/other-downloads. Сейчас перекачал, действительно, теперь все в порядке. Наверное, пофиксили.
Ури
22 апреля 2018, 12:51
0
Не могу ответить на ваш вопрос. Пользуюсь MODX с версии 2.4.2. Обновления всегда проходили хорошо. После новой установки создается необходимая структура в таблицах базы данных. Возможно, что правильнее было бы в пятом шаге не очищать таблицу полностью, а накатить свой дамп поверх созданной структуры.
Ури
06 июля 2017, 01:04
0
Сергей, а свое решение не могли бы тут оставить? Было бы интересно тоже посмотреть ;)
Ури
05 июля 2017, 23:23
0
Вы про это
&resources=`[[+tv.sklad-id]]`
?
Если да, то изначально так и пробовал делать, но так не работает.
По аналогии запись
[[+id]]
в выборке складов формирует айдишники складов.
Таким образом сейчас запись
&resources=`[[+tv.sklad-id]]`
в выборке складов будет искать значения дополнительных полей sklad-id у складов, хотя нужные дополнительные поля заполняются для видов продукции
Ури
05 июля 2017, 23:01
0
Пока знаний не хватает сделать правильнее )
Сделал, как вы написали, но вместо нужных складов (указанных в дополнительном поле), выводятся все. Кажется, сниппет не отлавливает значение тв…
Андрей, если я вам доступы дам к сайту, а вы бы там пошаманили, сколько бы стоили ваши услуги, чтобы разобраться с такой логикой?
Ури
05 июля 2017, 22:39
0
Стараюсь ) Просто уже второй день затык с этой задачей, голову сломал, туплю уже жестко )
Ури
05 июля 2017, 22:33
0
Андрей, сейчас постараюсь обрисовать ситуацию. Код приведу ниже.
Стоит задача вывести таблицу продукции, где столбцы это: Наименование товара, Спецификация, Склад, Цена с НДС, Цена без НДС. Соответственно строки это отдельный вид продукции.
Решил виды продукции сделать отдельными ресурсами с дополнительными полями.
В ячейке продукции «Склад» нужно будет указать склады (дополнительное поле sklad-id, где через запятую перечисляю айдишники нужных складов — склады тоже отдельные ресурсы). Каждый склад будет отображаться в таблице в виде ссылки, щелкая по которой будут отображаться контакты менеджеров выбранного склада, отвечающих за выбранный тип продукции во всплывающем окне.
В основном таблицу продукции получается вывести без проблем, кроме ячеек со складами. Для вывода ресурсов продукции (строк таблицы) использую pdoResources. Для вывода складов в ячейке «Склад» тоже использую выборку pdoResources, где в параметр
&resources
хочу передать значения из дополнительного поля sklad-id ресурса вида продукции (чтобы из всего множества складов в ячейке вывести только те, где есть данная продукция).
Итого у меня получается ситуация, когда я внутри одной выборки pdoResources (когда формирую виды продукции в строках таблицы) использую еще одну выборку pdoResources (для формирования нужного списка складов).
Проблема заключается в том, что я во внутреннюю выборку pdoResources, формирующую склады в ячейке, не могу в параметр
&resources
запихнуть значение дополнительного поля sklad-id ресурса с видом продукции.
Поэтому я решил при формировании строки с видом продукции (во внешней выборке pdoResources) в плейсхолдер skladID запихнуть значение дополнительного поля sklad-id ресурса продукции. А далее я этот плейсхолдер хочу использовать уже во внутренней выборке pdoResources, формирующей склады, засунув его в параметр
&resources
.
Надеюсь, получилось пояснить задумку.
Для вывода таблицы продукции получил такой код:

<div class="divtable"> <!-- Вывожу заголовки таблицы -->
	<div class="divtable-row divtable-row__title">
		<div class="divtable-col divtable-col__name">Наименование товара</div>
		<div class="divtable-col divtable-col__spec">Спецификация</div>
		<div class="divtable-col divtable-col__adr">Склад</div>
		<div class="divtable-col divtable-col__nds">Цена с НДС за тонну СРТ*</div>
		<div class="divtable-col divtable-col__nonds">Цена без НДС за тонну</div>
	</div>

<!-- Первая выборка формирует строки таблицы с видами продукции -->	
[[!pdoResources?
	&tpl=`@INLINE 
	<div class="divtable-row">
		<div class="divtable-col divtable-col__name">[[+pagetitle]]</div>
		<div class="divtable-col divtable-col__spec">[[#[[+id]].specifikaciya]]</div>
		<div class="divtable-col divtable-col__adr">
			
			<!-- Вызываю сниппет, где должен формироваться плейсхолдер со значением из дополнительного поля sklad-id -->
			[[!sklady? &id=`[[+id]]`]]

			<!-- Запускаю выборку нужных складов в ячейке Склад, где в параметр &resources  хочу подсунуть полученный плейсхолдер skladID, который должен содержать нужные айдишники складов из дополнительного поля ресурса продукции sklad-id  -->
			[[!pdoResources?
				&parents=`28`
				&tplWrapper=`@INLINE <ol> [[+output]]</ol>`
				&tpl=`@INLINE <li><a class="popup-modal" href="#[[+id]]">[[#[[+id]].pagetitle]]</a></li>`
				&sortby=`publishedon`
				&sortdir=`DESC`
				&depth=`0`
				&includeTVs=`sklad-id`
				&resources=`[[+skladID]]`
			]]
		
		</div>

		<div class="divtable-col divtable-col__nds">[[#[[+id]].nds]]</div>
		<div class="divtable-col divtable-col__nonds">[[#[[+id]].nonds]]</div>
	</div>
	`
	&sortby=`menuindex`
	&sortdir=`ASC`
	&parents=`21`
	&depth=`0`
	&includeTVs=`specifikaciya,sklad,sklad-id,nds,nonds`
]]
</div>

Код сниппета sklady по подсказке Владимира сейчас имеет вид:

if ($resource = $modx->getObject('modResource', $id)) {
	$idskladov = $resource->getTVValue('sklad-id');
}
$modx->setPlaceholder('skladID', $idskladov);

Но почему-то данный сниппет не отлавливает значение дополнительного поля sklad-id
Ури
05 июля 2017, 21:18
0
Владимир, на ваш код появляется синтаксическая ошибка unexpected t_object_operator — в чем может быть проблема?
Ури
05 июля 2017, 10:31
0
Да, архитектура получилась запутанная )
Андрей, помогите, пожалуйста переписать этот кусочек кода

$idskladov = $modx->resource->getTVValue('sklad-id');

так, чтобы он вытягивал ТВ sklad-id' с учетом полученного

[[+id]]
Ури
05 июля 2017, 00:48
0
Спасибо! Для текущего ресурса такой вариант отрабатывает хорошо. Значение TV попадает в плейсхолдер skladID.
А как быть, если сниппет

[[!sklady]]

должен вызываться внутри выборки pdoResources? Например, если это страница категории? В этом случае конструкция

$modx->setPlaceholder('skladID', $idskladov);

вставляет в плейсхолдер skladID значение TV самой страницы категории, а нужно вставлять значения TV элементов выборки pdoResources
Ури
04 июля 2017, 22:00
0
Михаил, правильно ли я понимаю, что приведенная вами запись будет работать для текущего ресурса? Подскажите, пожалуйста, как будет выглядеть запись для использования в чанке?
Ури
07 февраля 2017, 11:58
0
Если просто записать в шаблоне [[+nn7]], то на странице сайта ничего не выводится (пустое место), т.к. на момент загрузки страницы форма еще не заполнена, следовательно плейсхолдер [[+nn7]] и ему подобные еще не сформированы. А отправляется форма через Ajax компонентом AjaxForm. Следовательно страница не перезагружается. В общем, на момент загрузки страницы этому плейсхолдеру неоткуда взяться, чтобы он выводился в шаблоне.
Быть может, в чанке sentEmailTpl, формирующем отправляемое письмо, сниппет pdoResources отрабатывает еще до того, как он вызывается через AjaxForm? Тогда получается, что плейсхолдеры еще не были сформированы…
Ури
06 февраля 2017, 21:16
0
Есть предположение, что сниппет отрабатывает раньше, чем плейсхолдеры инициализируются. Поэтому вместо значения сниппета выводится сам текст, сниппет задающий.
Но так ли это, я понятия не имею ) А быть может, плейсхолдеры в сниппетах надо выводить как-то особым образом…
Ури
06 февраля 2017, 21:05
0
На сколько я понимаю, при использовании AjaxForm плейсхолдеры сами формируются исходя из параметров name тегов input и заполняются автоматически теми значениями, что были введены пользователем в форме (если инпуты не заполнялись, то плейсхолдеры пустые).

Например, если в чанке форме мы делаем поле
<input type="text" class="form-control" name="email" id="af_email" value="">
, то плейсхолдер [[+email]] сам создается автоматически (из параметра name поля) и заполняется введенным значением в соответствующий input.

При этом в чанке sentEmailTpl, формирующем отправляемое письмо, для отправки заполненного поля email мы пишем:
Email: [[+email]]
Т.е. плейсхолдеры создаются и заполняются автоматически. Как-то специально я их не заполняю.