Илья Уткин

Илья Уткин

С нами с 15 декабря 2012; Место в рейтинге пользователей: #15
17 февраля 2017, 09:25
1
0
Если вынос информации в кастомную базу данных не рассматривается, я бы сделал так:

Услуги не включены в ресурсы. Нам же не нужны отдельные страницы для каждой услуги со своим URL…
  • Ремонт телефонов
    • Ремонт Iphone
      • Ремонт Iphone 7
      • Ремонт Iphone 5
    • Ремонт Samsung
  • Ремонт Планшетов

У ресурсов «Ремонт Iphone» и «Ремонт Samsung» добавил бы TV MIGX — основной управляющий блок.

Преимущества MIGX в том, что он может включать в себя другие MIGX. Соответственно на первом уровне будет 3 поля: текстовое поле «Услуга», текстовая область «Описание» ещё один MIGX.

Во втором MIGX будет выпадающий список с дочерними ресурсами и текстовые поля «Стоимость», «Время», может ещё что.



Для вывода на сайте просто можно распарсить получившийся JSON и выводить для каждой модели свою табличку. В родителе можно составить сводную табличку.

Ну и заполнять будет удобно — не надо будет одно и то же в разных ресурсах писать. И редактировать тоже удобно.
17 февраля 2017, 08:35
1
+1
Запросы INSERT и UPDATE на PDO (but1head где-то поделился, я к себе утащил)
17 февраля 2017, 08:18
+2
Да, кстати. И необязательно в нём полностью менять шаблон в зависимости от типа устройства. Можно так же заставить его лишь указать класс

<body class="<mobile>Mobile</mobile><standard>Desktop</standard>">
16 февраля 2017, 11:35
+1
Я загрузку файла вот так делал: ilyaut.ru/xpdo/add-the-file-download-window-extjs/
09 февраля 2017, 13:56
0
Я тоже сталкивался с таким… пока не нашёл причину, времени особо не было разобраться… =((
09 февраля 2017, 08:29
+1
А на сервере точно стоит Apache? Может Nginx? Для него файл .htaccess ничего не значит, Nginx надо отдельно настраивать на дружественные URL
03 февраля 2017, 19:53
1
+1
Второй ТВ лучше сделать с помощью tvSuperSelect, иначе фильтрация выйдет очень монструозной. А фильтрация по первому ТВ можно сделать с помощью обычного tvFilters в pdoResources.
01 февраля 2017, 09:31
0
В чанке tpl просто добавляете вызов сниппета Gallery, указав &album=`[[+tv.gallery]]` или как там ТВ у вас называется… В вызове pdoResources не забудьте включить это ТВ &includeTVs=`gallery`
31 января 2017, 07:59
+1
Да, элементу <nav> надо бы добавить класс row
28 января 2017, 07:59
1
+2
<input type="hidden" name="iagree[]" value="">
<input type="checkbox" name="iagree[]" id="iagree" value="I agree that:"
[[!+fi.iagree:FormItIsChecked=`I agree that:`]]>
Дело в том, что по стандартам HTML при выключенном чекбоксе на сервер не передаётся от него ничего — даже пустого элемента нет, как будто и не было чекбокса. Поэтому нужно создать скрытое поле с таким же именем — чтобы в $_POST соответствующи элемент всё-таки был.

Для отправки второго письма гугли параметр FormItAutoResponder

Для сообщения об ошибке делай так:
<span class="error_iagree">[[+fi.error.iagree]]</span>
А про файлы вопрос сложнее, чем кажется на первый взгляд. В двух словах не расскажешь.
27 января 2017, 15:48
1
+2
Мне кажется, лучше передавать переменную $modx в функцию при вызове. Да, это несколько сложнее, но глобальные переменные стараются не использовать…
function myfunction($modx){
    if (!$modx) return 'Error';
    $user = $modx->user->get('id');
}
myfunction($modx);
27 января 2017, 07:51
1
+1
&sortby=`{"CAST(`likeDislike`.`value` AS DECIMAL(13,3))":"DESC"}`
25 января 2017, 14:32
+1
Я именно так делаю. Создаю для страницы контактов ТВ, например, phone
и во всех местах на сайте вызываю его так:
[[#12.phone]]

Очень удобно и для клиента логично, что телефон меняется в контактах.
24 января 2017, 16:24
+1
В такой ситуации править orders.grid.js не нужно. Только внести такие изменения в getlist.class.php:
// ...
	public function prepareRow(xPDOObject $object) {
		$array = $object->toArray();
		// Форматируем дату
		$array['id1'] = date('d.m.Y г. H:i:s', $array['id1']);
		// Конец
		$array['actions'] = array();
		// ...
	}
// ...
23 января 2017, 10:23
+2
Готового решения у меня нет. Но смысл такой: дату нужно хранить в одном из числовых полей. Для удобства заполнения нужно в форме поменять xtype у нужного поля, а в табличке (с помощью процессора getlist.class.php) выводить дату в форматированном виде. Вот статья как связывать объекты — там есть и подстановка xtype, и работа с процессором.
17 января 2017, 15:30
+2
tvFilters — это рудимент, оставшийся для совместимости с getResources. Параметр where у pdoResources настолько гибкий и мощный, что про tvFilters можно забыть, на мой взгляд.
13 января 2017, 11:45
0
Да, именно так. Нет, не сделал, это только концепт))
13 января 2017, 11:23
+1
В моей задумке смысл в том, что каждому блоку ставится в соответствие ресурс. И заголовки блоков, тексты, описания, галереи, картинки, всё можно будет редактировать, используя стандартный функционал — через соответствующие ресурсы.
13 января 2017, 10:28
0
Насколько я знаю, если убрать параметр emailFrom и поле электронной почты в форме назвать email, то его значение будет подставляться в поле «Отправитель». Другое дело, что не всегда сервер сможет отправить письмо именно от этого отправителя.