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

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

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

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

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

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

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

Помогите разобраться с 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

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

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

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

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

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

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

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

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

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

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

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

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

Скроллит страницу вверх при 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

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

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

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

Создать метод фильтрации для 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

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



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

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

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

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