san4es

san4es

С нами с 20 мая 2016; Место в рейтинге пользователей: #1407

migx в migx

Господа, доброго времени суток, призываю гуру MODx.
Не могу вывести мигс в мигс. Прошу сильно не ругать так как совсем новичок.
Вот код:
MIGX_TV1
[
  {
    "caption": "Заголовок",
    "fields": [
      {
        "field": "id",
        "caption": "id Таба",
        "inputTVtype": "text"
      },
      {
        "field": "name",
        "caption": "Имя Таба",
        "inputTVtype": "text"
      },
      {
        "field": "items",
        "caption": "товары",
        "inputTV":"goods"
      }
    ]
  }
]
MIGX_TV2
[
  {
    "caption": "Заголовок",
    "fields": [
      {
        "field": "image",
        "caption": "Изображение",
        "inputTVtype": "image",
        "sourceFrom": "migx"
      },
      {
        "field": "title",
        "caption": "Заголовок",
        "inputTVtype": "text"
      },
      {
        "field": "description",
        "caption": "Описание",
        "inputTVtype": "richtext"
      }
    ]
  }
]
В самом ресурсе все прекрасно выводится, а на сайте нет
Вызываю вот так:
1 вызов
[[getImageList? &tvname=`tv` &tpl=`tpl1`]]
2 вызов
<div class="tab-pane active" id="[[+id]]">[[getImageList? &tpl=`tpl2` &value=`[[+items]]`]]</div>
На сайт информацию не выводит, но есть возможность добавить «товар» в админке, если после добавления изменить имя в поле «field»: «items», то код выводит.
спасибо!
Иван Петров
05 марта 2017, 19:34
modx.pro
2
1 869
0

CallMe

Виджет заказа обратного звонка.

Prihod
03 марта 2017, 10:42
modx.pro
8
6 921
+17

Вариант определения мобильных устройств

Хочу поделиться своей практикой определения типа устройства, будь то мобильный гаджет или компьютер для тонкой настройки CSS и JS.

Сразу хочу уточнить, что данная заметка к MODX особенного отношения не имеет. Это просто JS и CSS, но надеюсь, что все таки будет полезна читателям.
Николай Савин
16 февраля 2017, 09:39
modx.pro
17
23 741
+9

Высота блоков в bootstrap ломает верстку

В верстки используется bootstrap. На странице выводиться дочерние документы в виде блоков:

[[pdoResources? &parents=`25` &depth=`0` &tpl=`Шаблон &limit=`0` &includeTVs=`Изображение` &tvPrefix=`tv.` &prepareTVs=`1` &processTVs=`1` &includeContent=`1` ]]
<div class="col-md-4">
	<a href="[[~[[+id]]]]">[[+Изображение]]</a>
    <h2><a href="[[~[[+id]]]]">[[+pagetitle]]</a></h2>
	<div class="content">[[+content:ellipsis=`350` :WholeWords]]</div>
    <p><span class="date">[[+publishedon:date=`%d.%m.%Y`]]</span></p>
</div>
Проблема в том, что из-за разной высоты блоков ломается верстка. На высоту влияет длина заголовка, но ограничить длину по символам — нельзя.

Можно ли решить такими способами?
1) Написать такой вывод по шаблону, чтобы через каждые 3 блока вставлялся код?
<div class="clearfix"></div>
2) Решения на CSS или JS?
Сергей
15 февраля 2017, 09:30
modx.pro
1
3 920
0

Адаптация сайта по методике RESS на MODX

Всем привет, сегодня подумал как можно сделать адаптивный сайт на MODX при помощи RESS, для тех кто не в курсе это когда для разных устройств сервер отдаёт разные HTML и CSS, но по одному URL.
Сама эта схема завязана на проверке userAgent браузера, и да я знаю, что в modstore уже есть компонент для определения мобильных версий — MobileDetect, но он работает по принципу — вся вёрстка в одном шаблоне и при рендере страницы он ненужную разметку вырезает.
Я хочу попробовать другой вариант, но мне нужна помощь сообщества —
В общем всё дело происходит при работе с Fenom в pdoTools, в настройках системы есть параметр, задающий папку от куда нужно тянуть шаблоны для ресурсов, вот её я хочу менять на лету в зависимости от userAgent браузера.
Семён Кудрявцев
10 февраля 2017, 14:50
modx.pro
13
3 310
+3

Семантически правильныe Breadcrumbs на pdoCrumbs

Верстая очередной проект для замороченных на SEO клиентов, столкнулся с тем, что pdoCrumbs конечно хорош в своей программной логике, но приведенные в документации примеры не совсем верно построены с точки зрения SEO и архитектуры HTML.

Под катом сам код, мои заметки и несколько полезных комментариев.



Николай Савин
27 января 2017, 19:12
modx.pro
49
16 113
+20

msOrder указать методы оплаты и доставки руками

Как можно указать через параметры какие именно выводить методы оплаты и методы доставки для сниппета msOrder?
Например:
Rus: [[!msOrder? &delivery=`1,2,3` &payments=`1,2,3`]]
Eng: [[!msOrder? &delivery=`4,5,6` &payments=`4,5,6`]]
Scorp Satex
27 января 2017, 18:18
modx.pro
2
1 356
0

Вывод заказов пользователя и товаров заказа

Нужна была возможность вывода заказов клиента и товаров в этих заказах. Велосипедов много, мой один из них.

1) Снипет для вывода заказов:
<?php
// снипет выводит заказы текущего пользователя

$user_id = $modx->user->get('id');
$tpl = $modx->getOption('tpl',$scriptProperties,'tpl.order');

// подхватываем заказы текущего пользователя
$q = $modx->newQuery('msOrder', array('user_id' => $user_id));
$results = $modx->getCollection('msOrder', $q);

// выводим или чанками или предупреждением что заказов пока нет
foreach ($results as $result) {
  if ( $result ) {
    $resultArray = $result->toArray();
    $output .= $modx->getChunk($tpl,$resultArray);
  } else {
    $output = 'У вас пока еще нет заказов.';
  }
}
return $output;
и соответственно чанк tpl.order (на феноме):
<div>
  <div> Заказ <span>{$_pls['num']}</span> от <span>{$_pls['createdon']}</span> года</div>
  <div>
    {$_modx->runSnippet('!msOrdersProducts', ['order'=>$_pls['id']])}
  </div>
</div>

2) Снипет вывода товаров заказа:
<?php
// выводит товары заказа.
$tpl = $modx->getOption('tpl',$scriptProperties,'tpl.order_cell'); // если товар найден
$tpl_empty = $modx->getOption('tpl',$scriptProperties,'tpl.order_cell_empty'); // если товар не найден

// ищем товар по id заказа
$q = $modx->prepare("SELECT * FROM ".$modx->getOption('table_prefix')."ms2_order_products WHERE order_id=".$order);
$q->execute();
$results = $q->fetchAll(PDO::FETCH_ASSOC);

$output;
// перебором либо выводим нужный заказ, либо оповещаем что его уже нет
foreach ($results as $result) {
  $res = $modx->getObject('modResource', array('pagetitle'=>$result[name]));
  
  if ($res) {
    $resArray = $res->toArray();
    $output .= $modx->getChunk($tpl,$resArray);
  } else {
    $prodName = $modx->setPlaceholder('name', $result[name]);
    $output .= $modx->getChunk($tpl_empty);
  }
}
return $output;
и соответственно чанк tpl.order_cell (на феноме):
<div>
  <span><a href="{$id | url}">{$pagetitle}</a></span>
  <span>{$price} Р</span>
</div>
и чанк в том случае если товара уже нет tpl.order_cell_empty:
<div>
  <span>{$_pls['name']}</span>
  <span>не найден</span>
</div>

Писал потому как, во первых учусь писать, во вторых быстрее написать чем искать подходящее решение и допиливать его. Буду рад советам и исправлениям. Пригодились бы советы по поводу:
1) сырого SQL:
$q = $modx->prepare("SELECT * FROM ".$modx->getOption('table_prefix')."ms2_order_products WHERE order_id=".$order);
$q->execute();
$results = $q->fetchAll(PDO::FETCH_ASSOC);
2) Первоначально хотел все в первом снипете вывести вот тут (далее в коде), но не получилось. Если кто подскажет буду рад.
// выводим или чанками или предупреждением что заказов пока нет
foreach ($results as $result) {

  // думал тут подхватить товары, но что с ними дальше так и не придумал...

  if ( $result ) {
    $resultArray = $result->toArray();
    $output .= $modx->getChunk($tpl,$resultArray);
  } else {
    $output = 'У вас пока еще нет заказов.';
  }
}
Всем успехов.
Юрий Фомин
27 января 2017, 15:51
modx.pro
15
3 633
+2

fenom в чанках писем компонентов FormIt+AjaxForm

Добрый день, Народ!
Пробую вывести плейсхолдеры в чанках писем через fenom, но результат — пусто.
В настройках pdoTools — выставлены настройки обрабатывать чанки и страницы, а так же разрешен MODX объект.
//пробую так
<p>Телефон: [[+phone_number]]</p> //Отлично работает
//Пробую так
<p>Телефон: {$phone_number}</p>//Пусто
//Пробую так
<p>Телефон: {$_modx->getPlaceholder('phone_number')}</p>//Пусто
//Пробую так
<p>Телефон: {$modx->getPlaceholder('phone_number')}</p>//Пусто
//Проверяю работу fenom
{$modx->placeholders|print}//Всё отлично работает
Вопрос, почему fenom не может получить плейсхолдеры формы, а обычный парсер MODX без проблем?
По-моему раньше это работало без проблем, правда, уже не могу найти пример.
Подскажите каким образом обработать чанк письма с помощью fenom?
Семён Кудрявцев
24 января 2017, 09:29
modx.pro
7
5 577
+1

Номер телефона miniShop2 в профиль пользователя

Добрый вечер!
Нужно при оформлении заказа брать номер телефона из msOrderAddress и записывать его в профиль пользователя.

Написал такой плагин, но номер телефона записывается совсем не тот…

<?php
switch ($modx->event->name) {
    case "msOnCreateOrder":
        $msUserId = $msOrder->get('user_id');
        $msAddress = $modx->getObject('msOrderAddress',$msUserId);
        $msPhone = $msAddress->get('phone');
        
        $user = $modx->getObject('modUser',$msUserId);
        $profile = $user->getOne('Profile');
        $profile->set('phone', $msPhone);
        $profile->save();
        break;
}

На этом этапе в переменную попадает id заказа, а не пользователя:

$msUserId = $msOrder->get('user_id');
Игорь Терентьев
22 января 2017, 14:39
modx.pro
6
3 348
0