but1head

but1head

Был в сети 04 ноября 2021, 20:02
Заказы принимаю
switch ($modx->event->name) {
	case 'OnDocFormPrerender':
		$before = $resource->getTVValue('adres'); // адрес при загрузке
	break;
	case 'OnDocFormSave':
		$after = $resource->getTVValue('adres'); // адрес при сохранении
   	 break;
}

if($after == $before){
	$modx->event->output('равны');
}else{
	$modx->event->output('не равны');
}
Почему-то не получается. Должно выводить если тв не изменен — «равны», если изменен «не равны».

При загрузке ресурса сразу пишет — «не равны», при сохранении — «равны»

В какую сторону копать?
Остались следующие вопросы:
1) если изменен ресурс (любое поле) а тв adres не изменен или создан ресурс без заполнения тв adres — не запускать сниппет/плагин
2) если изменен тв adres или создан ресурс с заполнением тв adres — запустить сниппет/плагин
3) запускать все это только при определенном шаблоне (как понимаю можно задать системный параметр и в нем проставить template для которых будет запускаться сниппет/плагин)
plugin: getadres

$param = array(
      'adres' => $resource->getTVValue('adres'),
      'id' => $resource->get('id')
      );
$modx->runSnippet('geocoords',$param);
Почему-то с вашим кодом плагин не заработал, пока не разбирался

snippet: geocoords
<?php
$doc = $modx->getObject('modResource', $id);

$replace = array(' ', '/');
$adres_new = str_replace($replace, '', $adres);

$dataCoords = simplexml_load_file('http://geocode-maps.yandex.ru/1.x/?geocode='.$adres_new);

foreach ($dataCoords->GeoObjectCollection->featureMember[0]->GeoObject->Point->pos as $coords) {
	
	$array = explode(' ',$coords);
	$coords = $array[1].','.$array[0];
	$doc->setTVValue('coords', $coords);
} 

$doc->save();

В тв «adres» забивается адрес (санкт-петербург, невский проспект 1/3), в тв «coords» выводятся координаты
[[!+modx.user.id:is=`1`:or:if=`[[!+modx.user.id]]`:is=`0`:then=`
<span id="open_login" onclick="open_login()">Личный кабинет</span>
`:else=`
 <a href="cabinet">Личный кабинет</a>
`]]

Если админ/не зареган = авторизация, зареган = личный кабинет. При верстке напрягало что он понимал что у меня есть авторизация в /manager
Я прекрасно знаю уровень цен за работу и что на халяву никто не станет работать.
Вы развиваете modx и за это вам огромный плюс и поклон, но не очень правильно делать стандартные вещи платно. Да minishop2 не cms магазина, а дополнение, но такая маленькая фича есть во всех магазинах и должна быть у вас изначально. По поводу других дополнений вопросов нет, офис и прочее стоят своих денег т.к. это не совсем стандартный функионал и на базе его можно многое построить. Все кто разрабатывают свои системы показывают их плюсы, а не хотите стандартного функионала — заплатите.
Меня жаба не душит потратить 790р, но осадок немного не приятный остается.
Учитывая, что минишоп еще разрабатывется — та, что сейчас есть. Вы ведь предоставляете не «магазин из коробки», а гибконастраиваимаю систему для разнообразных магазинов которую нужно настроить и адаптировать под свои нужды. Если бы была не бета версия, а готовые варианты для разнообразных магазинов то 5-10т.р./копия.