Андрей

Андрей

С нами с 22 сентября 2014; Место в рейтинге пользователей: #169
Андрей
10 ноября 2016, 21:37
0
Тема снова стала актуальной. На другом сайте столкнулся с такой же проблемой. Кто подскажет, как гарантированно избавиться от этой мороки? Почему настройки server_protokol не соответствуют тому, что выводит [[++site_url]]
Андрей
09 ноября 2016, 20:55
0
Спасибо. Очистил таблицу, все стало работать. А из-за чего может такая штука приключиться?
Андрей
01 ноября 2016, 11:03
0
Методом проб и ошибок понял алгоритм перехода на https. Напишу, может кому пригодится:
1. Генерируем сертификат. Это прямое отношение к MODX не имеет. Делается на стороне сервера.
2. В админке MODX в Системных настройках находим параметр server_protocol и указываем ему значение https.
3. В файле .htaccess настраиваем правило для https:
RewriteCond %{SERVER_PORT} !^443
RewriteRule (.*) https://site.ru/$1 [R=301,L]
4. Проверяем работоспособность скриптов, потому что может случиться так, что необходимо например jquery грузить не через http, а через https (если загрузка идет со стороннего сайта). И так с другими скриптами.
После этих манипуляций сайт переходит на https.
Андрей
27 октября 2016, 15:02
0
Уважаемые участники сообщества, прошу помощи по данной проблеме. Напишите, может кто решал такую же задачу.
Андрей
26 октября 2016, 10:47
0
Понимаю Вашу занятость. Но как реализовать с помощью msOptionsPrice2 такой вид опций как на скрине? Возможно ли это?
Андрей
26 октября 2016, 09:31
0
Да, Василий, сниппет самописный. Необходимо было реализовать опции товаров с картинками и ценами. Я конечно понимаю, что там все сделано, мягко говоря, через одно место. Мне так написал программист, потом я еже пару недель разбирался как там все работает.
Готов предоставить доступы ко всему этому делу и хочу попросить о помощи или хотя бы подсказать, как реализовать тот же функционал, но без этих самописных штуковин, пускай даже на основе каких-то платных модулей — это будет работать в любом случае быстрее и лучше, чем сейчас.
Андрей
26 октября 2016, 08:50
0
Переписать на Fenom все я думаю трудоемко?
И почему pagetitle так долго грузится?
Андрей
26 октября 2016, 08:39
0
UPD: Добавил phpThumbOn в вызовы опций, с генерацией нужного размера фото (поменьше), плюс сами фото сделал вызывать кешируемыми.
Общая длительность после снизилась на 1 секунду примерно. Но ведь тут мы имеем тормоза после очистки кеша? Да и в целом картина все еще не ахти. Подскажите, как можно еще снизить время загрузки?
<div align="center">
        		<a class="fancybox" rel="gallery1" href="[[phpthumbon? &input=`[[msoptiongetfield? &fileld=`photo` &name=`[[+name]]` &value=`[[+value]]` &array=`[[*properties]]`]]` &options=`&w=400&h=400&zc=1`]]" title="[[+pagetitle]]">
	<img src="[[phpthumbon? &input=`[[msoptiongetfield? &fileld=`photo` &name=`[[+name]]` &value=`[[+value]]` &array=`[[*properties]]`]]` &options=`&w=120&h=90&zc=1`]]" width="120" height="90" alt="[[+pagetitle]]"></a>
        	</div>
Андрей
26 октября 2016, 08:24
0
Спасибо. Воспользовался debugParser. Вывел 10 самых медленных тегов. Самыми медленными со скоростью загрузки почти в секунду является вывод опций, в которых как раз присутствуют картинки.

Вот код этого вывода (для примера самый первый один)
[[!msOptions?name=`colour_housing` &tplRow=`tpl.msOptions.radio.row3` &tplOuter=`tpl.msOptions.outer3`]]
Код ttpl.msOptions.radio.row3
<div class="ch cb" style="height: 227px;">
        	<div id="total_price2"><span class="circle"></span><span class="pr_changeHid"><i></i></span><span class="circle right"> <i class="fa fa-rub" aria-hidden="true"></i></span></div>
        	<div class="ffRadioWrapper">
        		<div class="ffCheckbox"></div>
        		<input type="radio" name="options[[[+name]]][0][value]" value="[[+value]]" rel="9750" class="product_option product_option_input" style="">
        	</div>
        	<div align="center">
        		<a class="fancybox" rel="gallery1" href="[[!msoptiongetfield? &fileld=`photo` &name=`[[+name]]` &value=`[[+value]]` &array=`[[*properties]]`]]" title="[[+pagetitle]]">
	<img src="[[!msoptiongetfield? &fileld=`photo` &name=`[[+name]]` &value=`[[+value]]` &array=`[[*properties]]`]]" width="120" height="90" alt="[[+pagetitle]]"></a>
        	</div>
        	<p>
        		<label style="text-align:center;display:inline-block;width:100%;">[[+value]]</label> 
        	</p>
        	<div class="price" style="text-align:center;">[[!msoptiongetfield? &fileld=`price` &name=`[[+name]]` &value=`[[+value]]` &array=`[[*properties]]`]] [[%ms2_frontend_currency]]</div>
        </div>
На данным момент я вижу одним из решений со скоростью — использовать phpthumbon для изображений. А как мне их подвязать к такому выводу картинок?
[[!msoptiongetfield? &fileld=`photo` &name=`[[+name]]` &value=`[[+value]]` &array=`[[*properties]]`]]
А также — почему так долго генерится тег [[*pagetitle]]?
Андрей
25 октября 2016, 22:29
0
Добрый день.
Подскажите, актуально ли все-таки использование rel=canonical на страницах БЕЗ пагинации? На простом сайте допустим из 10 страниц.
Ну и тоже самое с каталогом и пагинацией — актуально ли?
Андрей
22 октября 2016, 19:04
0
Интересует такие моменты:
1. В настройках: modvkmarket_market_category_id — что сюда писать?
2. В настройках: modvkmarket_shop_type — только ли default или есть друге значения?
3. Ест ли возможность выборочной синхронизации в маркетом — как писали выше, например по родителю и т.д.?
Андрей
21 октября 2016, 09:58
0
Пытался сделать неправильно…
Андрей
21 октября 2016, 09:57
0
Да, Вам большое спасибо. Все получилось, благодаря Вашей помощи.
Андрей
21 октября 2016, 09:53
0
Сергей, я как раз по Вашей инструкции пытался делать, но неправильно))
Андрей
21 октября 2016, 09:52
0
Да, я это понял)))
Андрей
20 октября 2016, 12:43
0
Во, огонь… все работает. Спасибо Вам огромное!
Андрей
20 октября 2016, 12:13
0
Спасибо, Александр. Ваш код, при вставке его в msGetOrder выводит все правильно, но на странице: Спасибо, что вы сделали заказ..." А как мне его подвязать именно к тому, чтобы мне на почту приходила эта информация. То есть к чанкам tpl.msEmail.new.manager и tpl.msEmail.new.user?
Андрей
20 октября 2016, 09:29
0
Да, конечно.
В общем задача такая. При заказе товаров пользователь набирает себе ряд опций (сайт мебели), из которых он комплектует себе свой товар.
В саму корзину опции передаются нормально, а вот в письмах менеджеру и покупателю ничего не приходит. Посмотрев в сниппет msGetOrder я нашел там такой код:
// Additional properties of product
	$options = !is_array($row['options'])
		? $modx->fromJSON($row['options'])
		: $row['options'];
	if (!empty($options) && is_array($options)) {
		foreach ($options as $key => $value) {
			$row['option.'.$key] = $value;
		}
	}
далее выведя
print_r($options);
Я получил такой массив со всеми опциями:
Array (
	[width] => 800 
	[depth] => 450 
	[height] => 2000 
	[additional_modules] => Array ( 
		[0] => Array ( [value] => Блок ящиков ширина 40-60 см. [count] => 1 ) 
		[1] => Array ( [count] => 0 ) 
		[2] => Array ( [value] => Угловой элемент правый [count] => 2 ) 
		[3] => Array ( [count] => 0 ) 
		[4] => Array ( [count] => 0 ) 
		[5] => Array ( [value] => Приставной элемент №3 ширина 60 см [count] => 1 ) 
		[6] => Array ( [count] => 0 ) 
	) 
	[driving_filling] => Array (
		[0] => Array ( [value] => Шкаф отделения 60+60 ширина с доп. отделением 120 см ) 
	) 
	[additional_equipment_cabinet] => Array ( 
		[0] => Array ( [count] => 0 ) 
		[1] => Array ( [value] => Шлегель [count] => 3 ) 
		[2] => Array ( [count] => 0 ) 
		[3] => Array ( [value] => Штанга 40-60 см. [count] => 1 ) 
		[4] => Array ( [count] => 0 ) 
		[5] => Array ( [count] => 0 ) 
		[6] => Array ( [count] => 0 ) 
		[7] => Array ( [value] => Полка 70 см. [count] => 1 ) 
		[8] => Array ( [count] => 0 ) 
	) 
	[colour_housing] => Array (
		[0] => Array ( [value] => Вудлайн мокко ) 
	) 
	[color_profile] => Array (
		[0] => Array ( [value] => Шампань ) 
	) 
	[color_doors] => Array ( 
		[0] => Array ( [value] => Ясень Шимо Светлый ) 
	) 
)
Вот первые 3 опции (width, depth и height) получил таким образом:
$width = $options['width'];
$depth = $options['depth'];
$height = $options['height'];

$modx->toPlaceholder('order_width',$width);
$modx->toPlaceholder('order_depth',$depth);
$modx->toPlaceholder('order_height',$height);
В итоге в письмах указываю просто плейсхолдеры и получаю нужные опции в письмах.
А вот с остальными опциями возникают сложности. На примере одной и них:
$additional_modules = $options['additional_modules']; // Получаю в переменную такой массив:
[additional_modules] => Array ( 
		[0] => Array ( [value] => Блок ящиков ширина 40-60 см. [count] => 1 ) 
		[1] => Array ( [count] => 0 ) 
		[2] => Array ( [value] => Угловой элемент правый [count] => 2 ) 
		[3] => Array ( [count] => 0 ) 
		[4] => Array ( [count] => 0 ) 
		[5] => Array ( [value] => Приставной элемент №3 ширина 60 см [count] => 1 ) 
		[6] => Array ( [count] => 0 ) 
	)
Здесь те опции у которых есть [value] — и были выбраны пользователем, [count] — количество. Соответственно, я далее иду по массиву циклом foreach:
if (!empty($additional_modules) && is_array($additional_modules)) {
		foreach ($additional_modules as $key => $innervalue) {
			if (count($innervalue) == 2) { // Здесь я отсекаю только те массивы, которые имеют значение [value], то есть их длина равна 2
				$c = '';
				foreach($innervalue  as  $inner_key => $value) {
					if ($inner_key == 'value') {
						print_r("<pre>$value</pre>"); // А здесь я получаю в каждой итерации значение опции (Блок ящиков ширина 40-60 см., Угловой элемент правый, Приставной элемент №3 ширина 60 см)
						$c.= $value .', ';					
					}
				}
	$modx->toPlaceholders('additional_modules',$c,'my','.');
	print_r($c);
			}
}

}
Вот как мне доработать код, чтобы я мог в чанке отправки письма менеджеру и покупателю вставить плейсхолдеры, чтобы вывести и опцию и ее количество? и остальные также аналогично как получить?
Андрей
12 октября 2016, 22:08
0
Проблема решена. Помогло удаление pdoTools и Tickets, потом чистая установка заново.
Андрей
12 октября 2016, 19:07
0
На трех разных сайтах пытался вывести карту. Все выводится, но маркера нет. Подскажите в чем проблема?
вывод такой:
[[!yandexMaps?
	&tvCoords=`coords `
	&styleMapBlock=`width:100%;height:400px;`
	&markerPreset=`islands#yellowStretchyIcon`
	&zoom=`12`
	&checkZoomRange=`0`
	&centerCoords=`[[*coords]]`
]]