Константин Обухов

Константин Обухов

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

Дополнительные поля в комментариях и премодерация

Задача: Организовать анонимные комментарии с премодерацией + 2 дополнительных текстовых поля.

доп поля в шаблоне формы:
<div class="form-group">
			<label for="comment-plus">Достоинства</label>
			<input type="text" name="comment-plus" value="" id="comment-plus" class="form-control" maxlength="200" />
		</div>

		<div class="form-group">
			<label for="comment-minus">Недостатки</label>
			<input type="text" name="comment-minus" value="" id="comment-minus" class="form-control" maxlength="200" />
		</div>
плагин:
<?php
if ($modx->event->name == 'OnBeforeCommentSave') {
	$properties = array(
		'comment-plus' => $modx->stripTags($_POST['comment-plus']),
		'comment-minus' => $modx->stripTags($_POST['comment-minus'])
	);
	$modx->event->params['TicketComment']->set('properties', $properties);
}
Эта схема хорошо работает только для комментариев без премодерации. Если включаешь премодерацию — то информация из доп полей попадает в базу, но в момент публикации стирается.
скрин таблицы в базе: joxi.ru/YmEN6bnuJz1L26

подскажите пожалуйста как исправить ситуацию
Андрей Рябченко
06 декабря 2014, 19:28
modx.pro
7
4 413
0

mFilter2 + яндекс карта

Как можно вывести результаты фильтрации [[+results]] + json?
Делаю яндекс карту, у ресурсов есть координаты, их и нужно получить (что при фильтрации менялись метки).

Додумался только до этого:
data-id="54" data-coords="59.939095,30.315868" data-title="test2"
У ресурса, и
$('.msProduct').each(function(){
		var test = $(this).attr('data-coords');
		var title = $(this).attr('data-title');

		myMap.geoObjects.add(new ymaps.Placemark(test, { balloonContent: title }));


	});
Но при пагинации и изменении фильтров конечно же не работает
but1head
04 декабря 2014, 20:14
modx.pro
6
1 845
0

Добавить свойство товара Список (одиночный выбор)

Приветствую!

Есть задача:
В админке добавить в Категории товаров дополнительное свойство Оттенок.
Это должен быть список с одиночным выбором.
Должно быть все как у производителя.


И тут незадача — у производителя данные добавляются в настройках.
Как сделать такое поле с помощью плагина, и добавить в список нужные значения?
Rootiys
20 ноября 2014, 16:07
modx.pro
8
4 274
0

Кастомизация админки Modx

Добрый день, форумчане! У меня вопрос к вам такой, кто занимался реально кастомизацией админки в modx revo. В частности интересует редактирование форм отвечающих за компонент MiniShop2. В форме заказов добавить новые поля, которые бы подгружались бы в базу, а также выводились бы в контенте сайта, через плейсхолдеры. Спасибо за ответы, если кто даст грамотный ответ.
solar-wind
17 ноября 2014, 09:54
modx.pro
5
5 261
0

Наследуемость полей у расширяемых xPDO-классов

Всем привет!

Смотрите, когда в своих компонентах мы наследуемся от, допустим, modResource, то в схеме мы пропишем следущее:
<model package="myPackage" baseClass="xPDOObject" platform="mysql" defaultEngine="MyISAM" phpdoc-package="myPackage" phpdoc-subpackage="" version="1.1">
  <object class="myObject" extends="modResource">
  </object>
</model>
И, собственно, всё — объект myObject унаследует все поля, их свойства и методы от класса modResource.

Теперь то, что хочу сделать я.
У меня есть пара десятков сущностей (и, соответственно, таблиц), у каждой из которых должен быть определённый набор полей, вроде «кем создан», «когда создан», «активно», «удалено» и т.д.

Так вот по аналогии с расширением класса modResource подумалось мне сделать вот так:
<model package="myPackage" baseClass="xPDOObject" platform="mysql" defaultEngine="MyISAM" phpdoc-package="myPackage" phpdoc-subpackage="" version="1.1">
  <object class="myObjectTemplate" extends="xPDOSimpleObject">
    <field key="active"                  dbtype="tinyint" precision="1"    attributes="unsigned" phptype="integer"   null="false" default="0" />
    <field key="deleted"                 dbtype="tinyint" precision="1"    attributes="unsigned" phptype="integer"   null="false" default="0" />
    <field key="createdby"               dbtype="int"     precision="10"   attributes="unsigned" phptype="integer"   null="false" default="0" />
    <field key="createdon"               dbtype="int"     precision="20"   attributes="unsigned" phptype="timestamp" null="false" default="0" />
    <field key="deletedby"               dbtype="int"     precision="10"   attributes="unsigned" phptype="integer"   null="false" default="0" />
    <field key="deletedon"               dbtype="int"     precision="20"   attributes="unsigned" phptype="timestamp" null="false" default="0" />
    <!-- в действительности будет ещё десяток таких полей + индексы к ним -->
  </object>

  <object class="myObjectOne" table="my_object_one" extends="myObjectTemplate">
    <field key="my_object_one_field"     dbtype="int"     precision="10"   attributes="unsigned" phptype="integer"   null="false" default="0" />
  </object>
  
  <object class="myObjectTwo" table="my_object_two" extends="myObjectTemplate">
    <field key="my_object_two_field"     dbtype="int"     precision="10"   attributes="unsigned" phptype="integer"   null="false" default="0" />
  </object>
</model>
Таким образом, имеем объект-«шаблон», у которого прописаны определённые поля и не прописана таблица. И остальные классы, которые расширяют этот класс-«шаблон» и добавляют в себя собственные столбцы (коряво выразился, знаю).

Так вот.
Алексей Карташов
12 ноября 2014, 22:52
modx.pro
12
2 924
+2

Ограничение доступа в админку по IP и дням недели

Это никак не отражено в документации, но любому пользователю можно ограничить авторизацию по IP и дням недели. Работает это c помощью настроек пользователя. Далее краткая инструкция (я использую MODX 2.3, поэтому в версии 2.2 пути могут отличаться):

1) Заходим в пункт меню Управление -> Пользователи.

2) Выбираем нужного пользователя правой кнопкой и жмем «Редактировать».

3) Переходим на вкладку «Настройки» и жмем кнопку «Создать новый».

4) В появившемся окне называем ключ allowed_ip — это будет настройка ограничения по IP. Имя можно выбрать любое. В поле значение записываем IP через запятую, например, «192.168.0.1,127.0.0.1». Сохраняем.

5) Аналогично настройка по дням. Ключ называем allowed_days. Значение — это номера дней через запятую от 1 (воскресенье) до 7 (суббота). Например, строка «2,3,4,5,6» ограничит доступ в админку только рабочими днями.
Виталий Киреев
12 ноября 2014, 05:27
modx.pro
13
4 538
+15

Формирование URL в MODx Revo

Добрый день уважаемое сообщество!
Подскажите пожалуйста такой вопрос — как формируются ссылки в MODx?

Т.е. задача, нужно сформировать ссылку в адресной строке, когда человек пришел с поисковой системы. Как это сделать именно в момент загрузки страницы? Чтобы ссылка формировалась вида — site.ru/catalog/product.html?&par1=val1&par2=val2 и т.д.

Натолкните на мысли пожалуйста!

Заранее спасибо!
Денис
11 ноября 2014, 08:34
modx.pro
3
10 037
0

Настройка почты modx revo

Доброго дня друзья!
Подскажите маленькую настройку по работе почты

Имеется обратная связь на сайте реализованная с помощью formIt и ajaxform

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

Вопрос как изменить содержимое «от кого» ну на пример на название сайта?

Это можно изменить в сниппете formIt или в настройках системы?
Евгений
07 ноября 2014, 13:01
modx.pro
1
5 876
0

[Tickets] Ajax комментарии

В продолжении темы про книгу отзывов.
Как и обещал, выкладываю описание решения. Только я решил разбить его на отдельные пункты, потому что каждая из описанных возможностей может быть использована независимо от других.
Первым пунктом была указана возможность ajax подгрузки комментариев. Она самая простая. С нее и начнем.
Сергей Шлоков
31 октября 2014, 15:34
modx.pro
13
8 084
+11

[pdoTools] 1.9.6-rc Ajax пагинация в pdoPage

Предлагаю вам обновление pdoTools с одной очень интересной функцией — возможностью работы pdoPage через ajax.

С этого момент pdoPage может выдавать JSON и прерывать работу движка при соответствии запроса трём характеристикам:
  1. Запрос сделан при помощи XMLHttpRequest, то есть — ajax.
  2. В запросе содержится переменная, указанная у сниппета в &pageVarKey. По умолчанию, это page.
  3. У сниппета включен параметр &ajax=`1`.
То есть, по умолчанию достаточно просто включить &ajax и отправлять к странице GET запросы типа:
$.get('document.html?page=5', function(response) {
	console.log(response);
}, 'json');
И в ответ вы получите JSON c результатами работы, пагинацией и служебными данными: номер страницы, сколько всего страниц и сколько всего результатов.

На этом сайте и на bezumkin.ru все страницы с пагинацией уже переведены на работу через ajax — можно тестировать, а под катом вас ждёт готовый код для внедрения у себя.
Василий Наумкин
26 октября 2014, 04:32
modx.pro
10
10 263
+10