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

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

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

[mSearch2] Версия 1.4.0 с поддержкой History Api

Представляю вам новую версию mSearch2, в которой сильно доработан стандартный javascript.

Теперь фильтры реагируют кнопки браузера взад-вперёд — это поддержка событий History Api. Пришлось повозиться, но работают все стандартные элементы: чекбоксы, радиокнопки, селекты, выбранное, сортировка, лимит и шаблон.

Заходите на страницу поиска, нажимайте на всякие фильтры, а потом тыкайте в браузере кнопочку назад — и в фильтре всё поменяется, как было натыкано. В общем, прикольно, давно просили.
Василий Наумкин
12 ноября 2015, 15:33
modx.pro
2
2 975
+10

Помогите разобраться с leftJoin и where

День добрый. Пытаюсь сделать выборку товаров, имеющих в опции ps_type определенные значения.
Есть список товаров:
Товар 1; Административный, Подвесной
Товар 2; Административный, Промышленный, Подвесной
Товар 3; Промышленный, Подвесной
Нужно выбрать 1 и 2.
Делаю это через leftJoin и where:
[[!msProducts?
    &parents=`2`
    &leftJoin=`{
		"ps_type": {
			"class": "msProductOption",
			"on": "ps_type.key = 'ps_type' AND ps_type.product_id = msProduct.id"
		}
	}`
    &where=`{"ps_type.value:LIKE": "Подвесной", "AND:ps_type.value:LIKE": "Административный"}`
]]
Результатов у данной выборки нет.
Я не слишком хорошо знаком с механизмами SQL, но глядя на это условие, у меня возникает ощущение, что я пытаюсь найти строки в которых значение ps_type одновременно равно и «Подвесной», и «Административный», что, закономерно, ни к чему не приводит. Насколько я понимаю, мне нужно разносить значения, между которыми должно быть условие AND в разные опции? Или я неправильно понимаю?
Александр
12 ноября 2015, 13:43
modx.pro
2
5 204
+1

Пугает размер базы данных

Заглянула в базу одного моего новостного сайта и честно говоря сильно удивил размер таблицы modx_mse2_words, а весит она 265 Мб, в то время как таблица с контентом всего лишь 85Мб. Это в порядке нормы? Или как-то можно настроить этот модуль по-другому?
Любовь
09 ноября 2015, 12:01
modx.pro
1
1 644
0

extJS. Свой select с данными из базы

Собственно, как создать свой combobox на extJS при этом дёргая в него данные из базы?

Вот код, который я накодил и зашёл в тупик:
Павел Гвоздь
05 ноября 2015, 15:40
modx.pro
4
2 151
0

MS2: доп. поле товара (плагин) типа «checkbox»

Друзья, всем привет!

Уже несколько часов не могу найти ответа на простой, казалось бы, вопрос. Нужно добавить товару кастомное поле типа checkbox, в нашем случае оно имеет имя «outofstock». Все делаю по инструкции (текстовые поля добавлял неоднократно). Поле добавилось и работает на странице товара. Но если добавить это поле в грид категории и пытаться его отредактировать из грида, получается следующее:
  • Отображается как 1/0, т.е. цифра (соответственно, checked/unchecked), а не как чекбокс;
  • Если редактировать — появляется checkbox, можно поставить галку (он в момент редактирования пустой вне зависимости от имеющегося значения);
  • После сохранения (перехода на другой товар) — сохраняется значение true или false, вот именно словами (в зависимости от того, была поставлена в чекбокс галка или нет);
  • Если затем перезагрузить страницу, то все значения обратно становятся 0 или 1 (но при этом измененные значения сохраняются, т.е. если я на предыдущем шаге галку ставил, то показывает 1, а если нет, то 0).
Т.е. значение сохраняется по смыслу верно, проблема только с отображением. А хотелсь бы, чтобы было по аналогии с дефолтовыми галками «new», «favorite» и т.д.

Вот так выглядит плагин:

Павел Ширяев
27 октября 2015, 23:56
modx.pro
4
2 770
0

Много ли разработчиков программирует в менеджере?

Почему я спрашиваю. Продолжаю развивать мысль об улучшении кодирования в менеджере. Как я уже писал, я пишу код в phpStorm. В нем есть такая удобная как «Live Templates». Т.е. можно вставить уже готовый кусок кода. Это очень удобно. Вот мне подумалось, что можно сделать такое и в менеджере.
Как я это вижу.
Сергей Шлоков
21 октября 2015, 06:57
modx.pro
2
2 483
+9

Скроллит страницу вверх при ajax пагинации pdoPage

Добрый день!

Ребята, столкнулся с такой проблемой — при выводе товаров miniShop2 через pdoPage с Ajax пагинацией, ajax пагинация работает, но страница скроллится на самый верх. Код вызова такой:

<div id="pdopage" class="list-layout products-area active">
	<div class="rows">
		<ul>
[[!pdoPage? &element=`msProducts` 
&limit=`1` &ajaxMode=`default` 
&tplPageWrapper=`@INLINE <div class="pagination"><ul>[[+first]][[+prev]][[+pages]][[+next]][[+last]]</ul></div>` 
&tplPageFirst=`@INLINE <li class="prev"><a href="[[+href]]">Первая</a></li>` 
&tplPageLast=`@INLINE <li class="next"><a href="[[+href]]">Последняя</a></li>` 
&tplPagePrev=`@INLINE <li><a href="[[+href]]"><i class="fa fa-long-arrow-left"></i></a></li>` 
&tplPageNext=`@INLINE <li class="control"><a href="[[+href]]"><i class="fa fa-long-arrow-right"></i></a></li>` 
&tplPageSkip=`@INLINE <li>...</li>` 
&tplPageFirstEmpty=`@INLINE <li class="prev"><a>Первая</a></li>` 
&tplPageLastEmpty=`@INLINE <li class="next"><a>Последняя</a></li>` 
&tplPagePrevEmpty=`@INLINE <li><a><i class="fa fa-long-arrow-left"></i></a></li>` 
&tplPageNextEmpty=`@INLINE <li><a><i class="fa fa-long-arrow-right"></i></a></li>` 
]]
		</ul>
	</div>
	[[!+page.nav]]
</div>
Причем пробовал разные варианты и rows после
    и т.д. ajax работает, но скроллит вверх страницы. Подскажите, в чем может быть проблема, в какой стороне копать?
Victor
18 октября 2015, 12:11
modx.pro
2
4 154
0

mFilter2 - фильтрация категорий по дочерним товарам

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

Первым делом нужно разобраться в логике работы mFilter2:
  1. Фильтр использует для поиска и вывода ресурсов один сниппет, указанный в &elements. В случае работы с товарами там обычно указывается msProducts.
  2. К этому сниппету будет 2 обращения: предварительная выборка и возврат подходящих id товаров, а затем их вывод пользователю.
  3. Различить эти два запроса можно по присылаемому параметру returnIds.
В получение id товаров нам вмешиваться не нужно, потому что фильтр должен построить из них фильтры. Нам нужно изменить только вывод этих товаров, заменив их на категории.
Василий Наумкин
11 октября 2015, 07:25
modx.pro
23
4 925
+4

Создать метод фильтрации для mFilter2

3 3 000
Для вывода фильтров на странице каталога используется следующий вызов mFilter2:
[[!mFilter2?
                                &showlog=true
                                &limit=`10`
                                &element=`msProducts`
	                            &innerJoin=`{
                            		"msCategory": {"class":"msCategory", "alias":"msCategory", "on":"msProduct.parent = msCategory.id"}
                            	}`
                            	&select=`{
                            		"msCategory":"msCategory.id as cat_id, msCategory.uri as cat_uri, msCategory.pagetitle as cat_pagetitle"
                            	}`
                            	&groupby=`msCategory.id`
                            	&parents=`7`
                            	&class=`msProduct`
                                &includeTVs=`collectionCountryName,collectionCountryImage,collectionPrice`
                                &filters=`
                                    parent:categories,
                                    ms|vendor:vendors,
                                    msoption|tile_material:default,
                                    resource|parent:categories
                                    
                                `    
                                &tpls=`tplCatalogRowTest`
                                &tplOuter=`tplCatalogWrapper`
                                &tplFilter.outer.default=`tplCatalogFilterOuter`
                                &tplFilter.row.default=`tplCatalogFilterCheckbox` 
                                
                            ]]
Денис
10 октября 2015, 19:59
modx.pro
2
1 834
0

Сборка transport-пакета без установки MODX



Писать свои пакеты для MODX не просто для новичка, да и опытному разработчику иногда не сладко приходится. Но новичок пугается, а опытный разбирается :).

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

За подробностями прошу под кат.

Іван Клімчук
08 октября 2015, 22:53
modx.pro
21
8 023
+11