Александр Янк

Александр Янк

С нами с 01 августа 2014; Место в рейтинге пользователей: #164

Соединяем EasyComm и mFilter2

Всем привет, и сразу к делу (кстати пишу первый раз тут, если будут ошибки — исправим).

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

Добавляем в вызов mFilter2 следующий код:

&loadModels=`easycomm`
&where=`{"class_key":"msProduct"}`
&leftJoin=`{
	"ecThread": {
		"class": "ecThread",
		"on": "msProduct.id = ecThread.resource"
	}
}`

&select=`{
	"msProduct": "*",
	"ecThread": "ecThread.rating_simple AS rating, ecThread.count AS reviews"
}`
Павел
25 декабря 2015, 10:34
modx.pro
34
5 133
+14

[mSearch2] 1.5.2 - произвольные слова в индексе

Представляю вам новую версию mSearch2 с небольшим, но очень важным изменением в логике работы индексации.

Теперь вы можете добавлять любые произвольные поля и слова в индекс буквально на лету, свои плагином на событие mse2OnBeforeSearchIndex:
<?php
switch ($modx->event->name) {
    case 'mse2OnBeforeSearchIndex':
        $mSearch2->fields['my_field'] = 1;
        $resource->set('my_field', 'My Words');

        if ($resource->get('class_key') == 'msProduct') {
            $mSearch2->fields['product_field'] = 1;
            $resource->set('product_field', 'Product Property');
        }
        break;
}
Василий Наумкин
25 декабря 2015, 03:46
modx.pro
7
3 321
+9

[customExtra] Создание кастомных объектов

Периодически мне приходится реализовывать на сайтах клиентов какой-то уникальный функционал. Часто требуется сохранять информацию в базу данных, выводить её оттуда, реализовывать возможность управления из админки. Раньше для этого приходилось писать кастомный компонент.

А значит, надо написать схему, сгенерировать модель, оформить интерфейс, написать процессоры и прочее, и прочее… Для начинающих разработчиков этот метод достаточно сложен. А мне, например, каждый раз та-а-ак лень это делать.

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

До тех пор, пока мне не понадобилось иметь два таких кастомных объекта…
Илья Уткин
22 декабря 2015, 01:21
modx.pro
19
7 487
+16

какой код нужно прописать,что бы MODX не выполнял

Здравствуйте. Подскажите какой код нужно прописать, что бы MODX не выполнял теги:

<div class="files-attach">
    <form action="[[~[[*id]]]]" method="post" class="ajax_form" enctype="multipart/form-data">
        <div class="cf">
            <div class="col-sm-6 col-xs-12">
                <i class="error_name">[[+fi.error.name]]</i>
                <div class="input-group input-group-lg">
                    <span class="input-group-addon fa fa-user" id="name"></span>
                    <input type="text" name="name" value="[[+fi.name]]" class="form-control" title="Укажите Ваше имя" placeholder="Представтесь *" aria-describedby="name">
                </div>
                <i class="error_email">[[+fi.error.email]]</i>
                <div class="input-group input-group-lg">
                    <span class="input-group-addon fa fa-envelope" id="email"></span>
                    <input type="email" name="email" value="[[+fi.email]]" class="form-control" title="Укажите правильный email адрес" placeholder="Укажите Ваш email *" aria-describedby="email">
                </div>
                <button type="submit" name="submit" class="btn btn-default"><i class="fa fa-paper-plane"></i> Отправить</button>
            </div>
            
            <div class="col-sm-6 col-xs-12">
                <i class="error_message">[[+fi.error.message]]</i>
                <div class="input-group input-group-lg">
                    <span class="input-group-addon fa fa-comments" id="message"></span>
                    <textarea name="message" class="form-control" placeholder="[[+placeHolder]]" aria-describedby="email" rows="5">[[+fi.message]]</textarea>
                </div>
            </div>
        </div>
    		
    		
    	[[+fi.success:is=`1`:then=`
    		<div class="alert alert-success">[[+fi.successMessage]]</div>
    	`]]
    	[[+fi.validation_error:is=`1`:then=`
    		<div class="alert alert-danger">[[+fi.validation_error_message]]</div>
    	`]]

    </form>
</div>

Мне очень нравится как устроено тут, я только вставляю код и сохраняю, и мне показывается то, что я вставил, а не выполняются теги.
Александр Янк
13 декабря 2015, 08:37
modx.pro
4
2 167
0

Новое поле товара

Не могу создать у товара MiniShop2 поле типа селект.

Нужно чтобы было вот так:

<select>
	<option value="1">Да</option>
	<option value="0">Нет</option>
</select>

Пробовал уже разные способы, один из них:
miniShop2.plugin.ms2NewFields = {
	getFields: function(config) {
		return {
			available: {
				xtype: 'minishop2-combo-autocomplete'
				,minChars: 1
				,description: '<b>[[+available]]</b>
' + _('ms2_product_dimension')
				,mode: 'local'
				,editable: false
				,store: new Ext.data.SimpleStore({
					fields: ['available']
					,data: [[0, 'Да'], [1, 'Нет']] 
				})
            		}
		}
    	}
};
Либо не записывается в базу, либо не выводится в списке варианты (пустые строки)

Пробовал кучу xtype:

  • combo,
  • combo-boolean,
  • modx-combo,
  • modx-compo-property-set
и так далее…

Помогите! :)
Максим
11 декабря 2015, 14:53
modx.pro
2
2 401
0

Модуль MODX Revo для постинга в FB, TW, LI

2
Ищу разработчика для реализации модуля кросспостинга в социальные сети для MODX Revolution. Модуль необходимо снабдить возможностью работы с facebook*, Twitter и LinkedIn с учетом возможности дальнейшей доработки модуля для поддержки API других сетей.
Valery
26 ноября 2015, 10:02
modx.pro
3
2 768
+3

Вывод даты публикации (выводит неправильно)

Здравствуйте уважаемые пользователи.
Вывожу дату публикации с помощью этой функции
[[+publishedon:strtotime:date=`%d.%m.%Y`]]
День и месяц выводятся нормально, год — неправильно (23.10.7700)

Так же неправильно выводит время, не соответствует дате публикации. Притом что везде стоит одно и то же время, только секундами отличается.
Вот вывод времени, публиковал в разное время.
[[+publishedon:strtotime:date=`%I:%M:%S`]]

В php.ini часовой пояс установлен.
Помогите пожалуйста с решением этой проблемы.
Евгений
23 октября 2015, 09:37
modx.pro
2
11 144
+1

Бесплатная доставка курьером от определенной суммы

Здравствуйте. Пожалуйста, подскажите как реализовать данный функционал:
например, до 5000 тысяч доставка 300 рублей, от 5000 тысяч – бесплатно?

joxi.ru/zAN5Mxls156329
Александр Янк
02 августа 2015, 15:23
modx.pro
14
7 205
0

Сортировка по алфавиту в pdoPage?

Здравствуйте. Подскажите пожалуйста, как настроить сортировку ресурсов по алфавиту:

[[!pdoPage?
    &tpl=`tpl.countri`
    &limit=`10`
    &sortby=`publishedon`
    &showHidden=`1`
    &sortdir=`ASC`
    &includeTVs=`img`
    &includeContent=`1`
]]
Что указать тут:
&sortby=``
что бы ресурсы выводились по алфавиту?
Александр Янк
20 июня 2015, 09:33
modx.pro
1
8 017
0

Дополнительные поля в свойство товара miniShop2

Подскажите пожалуйста, как добавить дополнительные поля в свойство товара miniShop2?
Александр Янк
12 июня 2015, 18:43
modx.pro
2
9 749
0