but1head

but1head

Был в сети 04 ноября 2021, 20:02
Заказы принимаю
Решил проблему «костылем», или как его назвать:

$('.tickets-row').each(function () {
var $ticket = $(this);
var id = $ticket.data('id')
 var coords = $ticket.data('coords').split(',');
var title = $ticket.data('title');
placemark[id] = new ymaps.Placemark(coords, {balloonContentHeader: title,balloonContent: id}, {preset: 'islands#redIcon'});
 clusterer.add(placemark[id]);
});


Ну и с фильтрами работает, благодоря:
$('#mse2_results').bind("DOMSubtreeModified",function(){
		  	clusterer.removeAll();
			$('.tickets-row.company').each(function () {
				  var $ticket = $(this);
				  var id = $ticket.data('id')
				  var coords = $ticket.data('coords').split(',');
				  var title = $ticket.data('title');
				  placemark[id] = new ymaps.Placemark(coords, {balloonContentHeader: title,balloonContent: id}, {preset: 'islands#redIcon'});
				  clusterer.add(placemark[id]);
			});
			myMap.setCenter([59.939095, 30.315868], 10);
});
Еще вопрос: как сортировать запись такого типа (картинки, по айди)?
$preview = $pdoFetch->getObject('Ticket', $row['id'], array(
			'leftJoin' => array(
				'Preview' => array('class' => 'TicketFile', 'on' => '`Preview`.`parent` = `Ticket`.`id`'),
			),
			'select' => array(
				'Preview' => '`Preview`.`thumb` as `preview`', 
			)
));
$row = array_merge($row, $preview);


return json_encode($row);
Сделал по аналогии с $additional_fields.
Как по мне, в минишопе не хватает только нормальной реализации цен в зависимости от параметров (цвет и тд). Все остальное идеально.

p.s. сомневаюсь что возможно, но очень уж хочется добавлялку полей внутри документа. По типу «добавить поле» -> название — параметр, для добавления разнообразнх характеристик товара на «лету».
Как добавить слеш в конце адреса к обычным ресурсам? К примеру используя плагин от Вac слеш есть у всех ресурсов-контейнеров, а у тех, что без «дочерних» его нету. При выставлении галки «контейнер» — появляется. Но нужно, что бы у всех урлов был слеш (кроме главной).
А если я нахожусь на 5й странице новостей, хочу попасть на первую? придется скроллить до пагинации, нежели нажать в верхнем (или где еще) меню на «новости».

Тоже самое тут, находясь в «готовые решения» хочу перейти в вопросы, по вашей «логике» мне нужно перейти на главную/другую страницу и уже оттуда перейти в блоги. Бред.
Не могу найти версию где берет родительские теги, если надо выложу.

<title>[[!meta? &tag=`title`]]</title>
<meta name="keywords" content="[[!meta? &tag=`keywords`]]" />
<meta name="description" content="[[!meta? &tag=`description`]]" />
сниппет meta
<?php
$tag = $scriptProperties['tag'];

if($tag == 'title'){

	$page_title = $modx->resource->get("pagetitle");
	$meta_title = $modx->resource->getTVValue("meta_title");
	$title = ($meta_title != '' ? $meta_title : $page_title);

} elseif($tag == 'description'){

	$meta_description = $modx->resource->getTVValue("meta_description");
	$site_description = $modx->getOption('site_description');
	$description = ($meta_description != '' ? $meta_description : $site_description);

} elseif($tag == 'keywords'){

	$meta_keywords = $modx->resource->getTVValue("meta_keywords");
	$site_keywords = $modx->getOption('site_keywords');
	$keywords = ($meta_keywords != '' ? $meta_keywords : $site_keywords);

}

switch ($tag) {
    case 'title': return $title; break;
    case 'description': return $description; break;
    case 'keywords': return $keywords; break;
}
в системные настройки нужно добаить site_description & site_keywords, создать tv: meta_title, meta_description, meta_keywords
у вас как я понимаю если редактируете ресурс и сохраняете — заного все геокодируется. вот мое решение для яндекса.
плагин:
<?php
switch ($modx->event->name) {
	case 'OnDocFormPrerender':
		$_SESSION['before'] = $resource->getTVValue('adres'); // адрес при загрузке
	break;
	case 'OnDocFormSave':
		$after = $resource->getTVValue('adres'); // адрес при сохранении
		if($after !== $_SESSION['before']){
			$param = array(
			  'adres' => $resource->getTVValue('adres'),
			  'id' => $resource->get('id')
			);
		  $modx->runSnippet('geocoords',$param);
		}
	break;
}
сниппет:
<?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();
Несколько дней рылся по докам и так и не нашел. как сделать загрузку изображений минишопа?
Нашел только единственный выход:
при создании грузить файл и вставлять ссылку на загруженный файл в базу.
Но при создании у товара нету id, непонятно как разбить несколько фоток.
Да и грузить фотки только после сохранения ресурса не очень хорошо…
Есть у кого идеи?