Андрей

Андрей

С нами с 09 апреля 2015; Место в рейтинге пользователей: #68
Андрей
11 февраля 2018, 22:58
+1
Напиши версию modx, php, minishop, какие ещё дополнения установлены, какой хостинг и тариф используется.

Также после зависания, можно открыть консоль браузера, посмотреть что там будет, возможно какие то ошибки. И лог ошибок modx и серверный лог тоже не помешает посмотреть.

Андрей
10 февраля 2018, 21:27
+1
Не обратил сначала внимания на код:
$my_tv = $modx->resource->getTVValue('test2'); // тут ты получаешь значение 100
$my_tv->setTVValue('test2', (int)$my_tv + 5); //а тут пытаешься записать его неизвестно куда :)

Вот так работает:
<?php
switch ($modx->event->name) {
    case "OnLoadWebDocument":
    
    	$num = intval($modx->resource->getTVValue('num')) + 5;
    	$modx->resource->setTVValue('num', $num);
	//$modx->log(1,$num);
    break;
}
Андрей
10 февраля 2018, 20:41
0
Если с 500й, смотри лог ошибок или серверный лог. Должно быть понятно почему отваливается.
Андрей
08 февраля 2018, 15:23
0
https://yadi.sk/d/kkRsf37r3SCnGS — Там в посте лишнее что то к адресу дописалось. По сабжу, вещь нужная, + :)
Андрей
08 февраля 2018, 11:52
0
Есть два параметра в сниппете — &autoPublishGuest и &autoPublishGuest, они по умолчанию включены, если нужны комментарии от неавторизованных пользователей то необходимо включить параметр — &allowGuest=`1`.

OnResourceAutoPublish — установил этот флаг, но не помогло
Это видимо в плагине? Не нужно там ничего ставить, всё должно работать и так.
Андрей
08 февраля 2018, 11:35
1
+1
https://modx.pro/help/14412/ — вот тема, я там уже отвечал. Ставьте версию 7.1 пока что.
Андрей
07 февраля 2018, 12:51
1
0
Это код на Fenom — Шаблонизатор Fenom.

Для того чтобы работал код, должен быть установлен pdoTools и включена системная настройка — Использовать Fenom на страницах.

На стандартном парсере будет как то так:
[[!#GET.page:is=``:then=`[[*introtext]]`:else=``]]
Андрей
07 февраля 2018, 12:17
1
0
Если я правильно понял, нужно чтобы аннотация выводилась только на первой странице? Тогда решение простое:
{if $.get['page']?}
	{else}
	{$_modx->resource.introtext}
{/if}

Для того чтобы работал код, должен быть установлен pdoTools и включена системная настройка — Использовать Fenom на страницах.

Либо если используете стандартный парсер, использовать стандартные модификаторы, суть одна — проверять на существование параметра page в url.
Андрей
06 февраля 2018, 20:43
0
Но после переустановки мне придется сделать импорт всей базы через PHPMyAdmin, она же тогда со всеми косяками и зальется, если они есть.
Вот здесь не совсем понял что имеется ввиду =)

А если сразу поставить 1.4.0 и залить дамп базы от 1.2.1/1.2.2, все будет работать или там все сложнее?
Тоже непонятно, зачем заливать дамп от старой версии? Алгоритм такой, просто на сайт (предварительно сделав бекап) залейте файлы движка и запустите Install. В 1.4 там что то из дефолтных сниппетов было убрано, типа ditto, eform и т.п. подробнее можно почитать в релизе, так что возможно где то придётся переписать вызовы на DocLister.

p.s. Также посмотрите чтобы в папке manager не был переименован файл ht.access в .htaccess, там тоже может быть что то левое дописано. И судя по описанию вируса, проверьте таблицу плагинов — modx_site_plugins в базе, и если есть подозрительные копии или просто левые плагины удалить лишнее.

Андрей
06 февраля 2018, 16:40
3
+3
{'pdoResources' | snippet : ['class' => 'msDelivery', 'sortby' => 'id','where' => 'active = 1','tpl'=>'']}

Пустой tpl отдаст массив с доступными плейсхолдерами, там уже оформляйте как нужно. Со способами оплаты не пробовал, но думаю что по аналогии, указать class — msPayment.
Андрей
06 февраля 2018, 16:16
0
В чем может быть причина, куда копать?
Скачал версию 1.2.2, скопировал на сайт с заменой index.php, папки assets и manager — сайт работает, но в админку по-прежнему не пускает.

Возможно что то в базе побилось. install заново делал, или просто файлы перезалил? В принципе можно попробовать сразу обновить до 1.4.0. И кеш да, стоит почистить полностью в браузере и удалить куки, как уже посоветовали выше.

Сталкивался с такой же проблемой на REVo несколько раз. Никто ответа дать не смог.

Обычно это проблема — Ошибка таблицы modx_session.
Андрей
03 февраля 2018, 17:19
1
+1
Возможно кто-то сможет подсказать как правильно решать такие задачи или же мой вариант вполне нормальный и так делать и нужно?
Как уже подсказали выше, используйте MIGX. Приведённый код это жесть конечно :))

Конкретно по вашему примеру, можно сделать так:

1. Ставим MIGX
2. Создаём тв с типом MIGX, далее настройки:

Вкладки формы:
[
  {
    "caption": "Заголовок",
    "fields": [
      {
        "field": "title",
        "caption": "Описание",
        "inputTVtype": "text"
      },
      {
        "field": "img",
        "caption": "Картинка",
        "inputTVtype": "image",
        "sourceFrom": "migx"
      }
    ]
  }
]

Разметка колонок:
[{
  "header": "Описание",
  "dataIndex": "title"
},{
  "renderer": "this.renderImage",
  "sourceFrom": "migx",
  "header": "Картинка",
  "dataIndex": "img"
}]

Вывод на странице (1 — id страницы, paramName — имя ТВшки):

{set $rows = 1 | resource : 'paramName' | fromJSON}

{if $rows?}
	<div class="dignity">
		<div class="dignity__inner">
			{foreach $rows as $idx => $row}
				<div class="dignity__item">
                			<img src="{$row.img}" alt="" class="dignity__img">
                			<div class="dignity__title">{$row.title}</div>
           			 </div>
			{/foreach}
		</div>
	</div>
{/if}

Вывод сделан на Fenom (должен быть установлен pdoTools, и включена системная настройка — Использовать Fenom на страницах). Если есть желание использовать стандартный парсер, то можно выводить стандартным сниппетом getImageList из комплекта MIGX.
Андрей
03 февраля 2018, 12:50
0
Можно посмотреть какие плагины есть для Tiny по пути — assets/components/tinymcerte/js/vendor/tinymce/plugins/
Все возможности — Full Featured Example TinyMCE 4.

blockquote — есть по умолчанию, в меню Формат -> Формат -> Блоки -> Цитата. Code тоже есть, плагин Codesample.

Вот так можно добавить кнопки в редактор:


Также в системной настройке tinymcerte.plugins нужно вписать добавленные плагины —
Андрей
03 февраля 2018, 12:31
+1
Так должно работать:
{$product.options['size']}
Андрей
02 февраля 2018, 17:03
0
Конечно если там 100500 шаблонов и чанков, то да, с плагином проще) А если в 1-2 местах, то пофиг как проверять.
Андрей
02 февраля 2018, 15:00
+1
Потому что в примере старая версия фоторамы. В новой версии (которая в галерее) этих параметров нет — Full list of options. Если необходимо, то скачивайте файлы из примеров и заменяйте подключаемые скрипты компонента.
Андрей
02 февраля 2018, 14:35
1
0
Можно и без плагина прямо в шаблоне проверять:

{if $_modx->user.id > 0 && $_modx->isMember('optGroup')}
	{$optPrice}
{else}
	{$price}
{/if}

Пример плагина для минишопа:
if ($modx->event->name == 'msOnBeforeAddToCart' && $modx->user->isAuthenticated() && $modx->user->isMember('optGroup')) {

	$optprice = $product->get('optprice');

	if (!empty($optprice)) {
		$product->set('price', $optprice);
	}
}

p.s. Поле optprice добавлял через msFieldsManager, так быстрей =)