Евгений

Евгений

С нами с 18 апреля 2017; Место в рейтинге пользователей: #1512

Женим mFilter2 и msListOrders

Выводим заказы miniShop2, фильтруем с помощью mFilter2.


Необходимые компоненты
msListOrders
mSearch2
— протестировать на демо сайте
Володя
28 июля 2018, 15:07
modx.pro
17
2 400
+16

Revolution 2.6.4 and Prior Two Cricital Vulnerabilities

Не нашел здесь упоминания, тем временем позавчера появилась важная новость о найденных уязвимостях в версии 2.6.4 и необходимости скорейшего обновления

Вольный перевод, оригинал здесь.

Продукт: MODX Revolution
Уровень серьезности: критический
Версии: <= 2.6.4
Тип (ы) уязвимости: Удаленное выполнение / Удаление файлов / каталогов
Дата обнаружения: 11 июля 2018
Дата фиксации: 12 июля 2018
Антон Тарасов
14 июля 2018, 18:37
modx.pro
10
37 955
+15

Изменяем форму заказа minishop2

За год работы с минишопом я понял одну вещь — никто не знает как просто и быстро кастомизировать стандартную форму заказов. Для меня это довольно частая задача, по этому соберу тут несколько приемов которыми сам пользуюсь:


Pavel Zarubin
22 апреля 2018, 02:16
modx.pro
96
7 643
+41

Как вывести в карточке товара, товары данной категории?

Структура такая:

Сайт
— Пиломатериалы
— Брус
— Брус 1
— Брус 2
— Брус 3
и т.д.

— Доска
— Доска 1
— Доска 2
— Доска 3

— т.п.
— Стройматериалы

Хочу сделать следующее: в карточки товара в самом конце таблица со всеми товарами данной категории
(то есть, если мы находимся в товаре «Брус 2», в самом низу страницы таблица где все товары категории «Брус»)

Все чанки и шаблоны уже готовы, не могу понять как реализовать

Пробовал так:
[[msProducts?
&tpl=`productTovar2`
&parents=`4`
&limit=`6`
&where=`{«Data.popular»:«1»}`]]

Хорошо работает, но не могу же я постоянно для каждого товара указывать &parents=`число`
Дмитрий
20 марта 2018, 12:41
modx.pro
1
936
0

msProductOptions отображаются незаполненные поля опции товара minishop2

MODX Revolution 2.5.7-pl
Вывожу карточку товара minishop2, при этом отображаются пустые опции.
Это началось после обновления до minishop2 версия 2.4.12-pl
Раньше все было нормально, пустые опции не выводились.
Вывожу так:
[[msProductOptions?
&tpl=`rnProductOptions`
&ignoreOptions=`opt1, opt2, ...`
]]
tpl rnProductOptions:
{foreach $options as $option}
<tr>
  <td>
	{$option.caption}:
  </td>
  <td>
	{if $option.value is array}
	{$option.value | join : ', '}
	{else}
	{$option.value}
	{/if}
  </td>
</tr>
{/foreach}
Помогите, пожалуйста, кто знает как исправить ситуацию.
Solomon
16 марта 2018, 13:15
modx.pro
3
2 098
0

Gallery как ТВ

Всем привет!

Помню уже давно возникал вопрос, как вывести превью фотографий для TV Gallery.
В Интернете есть готовое решение, но нет готового пакета (вроде бы).
Поэтому я решила исправить данный пробел.
тут лежит мой fork https://github.com/wax100/Gallery
а тут — собранный пакет, но версия там 1.5.3 https://yadi.sk/d/kkRsf37r3SCnGS
Может стоит в настройках вручную указать последнюю версию 1.7.0?
Ставить лучше после удаления Gallery (не проверяла как встанет на уже установленную).
В общем, пробуйте и пишите комменты
Инструкция.
Создать ТВ и выбрать там galleryalbumview
Пользоваться)
PS отправила автору пулреквест, надеюсь все верно
yani
08 февраля 2018, 11:08
modx.pro
8
3 251
+6

Прайс-листы большие и не очень с помощью migx + pdoPage

Доброго дня уважаемые!
Давно хотел здесь, что-то нужное и полезное написать, но руки дошли только сейчас, да и тема на мой взгляд актуальная. Ну так вот, стояла задача по организации прайс-листов на сайте медицинского центра, причем не просто вывод, а с поиском и выбором категории на основе csv, то есть все данные должны браться только из csv.

В целом стояли такие задачи:
1. Загрузка csv прайсов через форму в админке
2. Фильтрация по категориям в csv (отдельное поле категория в csv)
3. Поиск по прайсу
4. ajax подгрузка строк

Мое решение:

сниппет getPrice
<?php
if($method != 'search') {
    $csv = file_get_contents($_SERVER['DOCUMENT_ROOT'].$file);
    $array = str_getcsv($csv, "\n");
    $json = json_encode($array);
}

$idx = 1;
switch ($method) {
    case 'search':
        if(!empty($_GET['search'])) {
            $out = '{"el1:contains":"'.$_GET['search'].'"}';    
        }elseif (!empty($_GET['way'])) {
            $out = '{"el2":"'.$_GET['way'].'"}';    
        }
        return $out;
        break;
    case 'options':
        foreach ($array as $row) {
            $new = explode(';', $row);
            if($new[1] != '') $categories[] = $new[1];
            $categories = array_unique($categories);
            unset($categories[0]);
        }
        
        $idx = 1;
        foreach ($categories as $item) {
            $migx[$idx-1]['MIGX_id'] = $idx;
            $migx[$idx-1]['category'] = $item;
            $idx++;   
        }
        break;
    default:
        foreach ($array as $row) {
            $new = explode(';', $row);
            $migx[$idx-1]['MIGX_id'] = $idx;
            $x = 1;
            foreach ($new as $a) {
                $migx[$idx-1]['el'.$x] = $a;
                $x++;
            }
            $idx++;
        }
        break;
}
return json_encode($migx);

форма с поиском
<form action="[[~[[*id]]]]" method="GET" class="form-search">
        <input type="text" name="search" placeholder="Поиск по прайсу" value="[[!#GET.search]]">
        <button type="submit"></button>
        <div class="desc">Например, <span class="blue">невролог</span>  </div>
</form>

Форма с выбором категории
<form action="[[~[[*id]]]]" class="sorting" method="GET">
	<div class="input-group">
		<select name="way" id="way">
			<option value="">Все направления</option>
			[[!getImageList?
			        &value=`[[getPrice? &file=`[[*pricelist_new]]` &method=`options`]]`
                                &tpl=`wayOptions.tpl`
                                &limit=`0`
                        ]]
		</select>
	</div>
</form>

pdoPage
<div class="table-services table-pricelist" style="border:none" id="pdopage">
    <div class="rows">
    [[!pdoPage?
        &element=`getImageList`
        &value=`[[getPrice? &file=`[[*pricelist_new]]`]]`
        &limit=`100`
        &tpl=`pricelist_new.tpl`
        &where=`[[!getPrice? &method=`search`]]`
        &ajax=`1`
        &ajaxMode=`scroll`
    ]]
    </div>
    [[!+page.nav]]
</div>
Сам csv:
  • разделитель; (точка с запятой)
  • кодировка UTF-8
В идеале можно конечно допилить следующие моменты:
1. убрать ограничения по csv
2. перевести на fenom

Подобного решения на форуме не нашел, может кому и пригодится.
Andrey Frost
29 декабря 2017, 04:51
modx.pro
2
1 083
+1

[minishop2-combo-colors] - вариация поля цвета

Краткая инструкция как добавить на страницу продукта поле с выбором цвета.


Володя
27 декабря 2017, 15:21
modx.pro
23
4 066
+17

modRelation - Похожие товары для minishop2 и pdoTools

В общем кратенькая заметка, но думаю некоторым поможет, нужно было реализовать правильную перелинковку сайта, а заказчик никак не хотел вручную делать связи, пришлось написать вот такой «Умный» сниппет, который при правильном заполнении каталога вполне неплохо себе справляется с подбором похожих ресурсов, если я ни для кого америку не открыл, то сорян, а если открыл, то могу собрать пакет с этим сниппетом и выложить в modstore бесплатно для более легкой установки :)

ОБНОВЛЕНО:
Компонент доступен для загрузки в modstore
Pavel Zarubin
07 ноября 2017, 06:51
modx.pro
17
6 102
+13

Генерация PDF из формы FormIt + Генерация PDF из любых данных по кнопке (без FormIt) в MODX Revo

На modx.pro уже есть статья от Володи по генерации PDF.
Ниже хочу предложить альтернативный вариант формирования PDF файла из данных форм FormIt с использованием шаблонизатора Fenom и бесплатного компонента PDFresource
Klike
06 ноября 2017, 10:49
modx.pro
26
5 849
+12