Готовые решения

ComboBox с данными из другой таблицы modExtra

27 сентября 2018, 21:09



При написании своего компонента на заготовке modExtra не редко встаёт задача сделать в какой-то таблицы возможность добавления данными через select из другой таблицы. На выходе у нас должно получиться что-то типа этого:

Читать дальше
Андрей Копп
1    108    1
+4

mFilter2 и фильтрация через select по (Популярным товарам и их Ценам)

28 марта 2018, 20:05



Вывод сниппета mFilter2 выглядит у нас следующим образом:

                {$_modx->runSnippet('!mFilter2', [
                    'parents' => $_modx->resource.id,
                    'limit' => 12,
                    'class' => 'msProduct',
                    'element' => 'msProducts',
                    'tpl' => 'tpl.Site.msFilter2.productTpl',
                    'tplOuter' => 'tpl.Site.mFilter2.outerTpl',
                    'tplPageWrapper' => '@INLINE [[+pages]]',
                    'tplPage' => '@INLINE <a href="[[+href]]">[[+pageNo]]</a>',
                    'tplPageActive' => '@INLINE <a class="selected" href="[[+href]]">[[+pageNo]]</a>',
                    'where' => '{"class_key":"msProduct"}',
                    'suggestions' => 'true',
                    'filters' => '
                        ms|width:select,
                        ms|height:select,
                        ms|length:select,
                        ms|made_in:checkbox,
                        ms|vendor:vendors,
                    ',
                    'sort' => '
                        ms|price:desc
                    ',
                    'tplFilter.outer.ms|vendor' => 'tpl.Site.mFilter2.filter.outer',
                    'tplFilter.row.ms|vendor' => 'tpl.Site.mFilter2.filter.checkbox',
                    'tplFilter.outer.ms|made_in' => 'tpl.Site.mFilter2.filter.outer',
                    'tplFilter.row.ms|made_in' => 'tpl.Site.mFilter2.filter.checkbox',
                    'tplFilter.outer.ms|width' => 'tpl.Site.mFilter2.filter.outer.whl',
                    'tplFilter.outer.ms|height' => 'tpl.Site.mFilter2.filter.outer.whl',
                    'tplFilter.outer.ms|length' => 'tpl.Site.mFilter2.filter.outer.whl',
                    'tplFilter.row.ms|width' => 'tpl.Site.mFilter2.filter.select.whl',
                    'tplFilter.row.ms|height' => 'tpl.Site.mFilter2.filter.select.whl',
                    'tplFilter.row.ms|length' => 'tpl.Site.mFilter2.filter.select.whl',
                    'tplFilter.outer.ms|popular' => 'tpl.Site.mFilter2.filter.outer.whl',
                    'tplFilter.row.ms|popular' => 'tpl.Site.mFilter2.filter.select.whl',
                ])}

Читать дальше
SEQUEL.ONE
1    500    0
+1

Дополнительные поля профиля User (не extended)

28 марта 2018, 19:39



Потребовалось на одном проекте в форму профиля добавить для пользователей дополнительные поля. Отдельно Имя, Фамилия, Отчество и поля для добавления ссылок на социальные группы.

Читать дальше
SEQUEL.ONE
1    466    0
+1

Проблемы с провайдерами VK и Facebook в HybridAuth

28 марта 2018, 18:27

Недавно заметил что авторизация через VK и Facebook перестали работать, после долгих поисков решения оно было найдено. Сейчас подробно опишу действия которые нужно сделать для того чтобы всё у вас заработало. Начнём с провайдера Vkontakte.

Читать дальше
SEQUEL.ONE
1    456    0
+1

Курс цен от производителей miniShop2

25 марта 2018, 18:33

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

Нужно к ценам умножать курс от производителя для price, если производитель у товара не указан, то выводить глобальный курс, который создаём системными настройками как ms2_curs_global_enable (включить/выключить) и ms2_curs_global куда мы собственно и забиваем глобальный курс, который включается по настройке ms2_curs_global_enable. Добавил новое поле в таблицу modx_ms2_vendors под названием `curs`, а также добавил изменения в файлах модели, схемы и extjs, чтобы добавить новое поле с курсом пересчёта и установить на эти файлы CHMOD 444, чтоб при обновлении эти файлы не затёрлись.

Список изменённых файлов:

/site.ru/core/components/minishop2/model/minishop2/msvendor.class.php
/site.ru/core/components/minishop2/model/schema/minishop2.mysql.schema.xml
/site.ru/assets/components/minishop2/js/mgr/settings/vendor/grid.js
/site.ru/assets/components/minishop2/js/mgr/settings/vendor/window.js

Читать дальше
SEQUEL.ONE
2    412    0
+3

Редиректы с /index.php?id=* на ссылки чпу

04 декабря 2015, 18:26

Недавно обнаружился при неприятнейший баг, связанный с работой MODX Revo 2.4.*

Появилась проблема с дублями страниц в поисковиках, если включено ЧПУ. Начали проседать позиции, так как из-за дублей ПС считал исходную страницу не уникальной.

Создаём плагин с названием скажем Redirect и вешаем на него событие OnHandleRequest.

<?php
	if ($modx->event->name != "OnHandleRequest" || $modx->context->key == 'mgr') {
		return;
	}
	
	if ($_SERVER['REQUEST_URI'] != '/') {
		$uri = strtok(substr($_SERVER['REQUEST_URI'], 1), '?');
		
		if ($uri == 'index.php') {
			$uri = intval(str_replace('/index.php?id=', '', $_SERVER['REQUEST_URI']));
			//не уверен, нужна ли здесь проверка на наличие ресурса, т.к. в случае отсутствия оного, событие должно перехватить OnPageNotFound
			
			if(empty($uri)) {
				$url = 1;
			}

			$modx->sendRedirect($modx->makeUrl($uri));
		}
	}

Читать дальше
SEQUEL.ONE
1    803    0
+1

Топики

Андрей Копп 03 октября 2018, 11:55
Компоненты MODX Обзор компонента SEO Pro 0
Андрей Копп 02 октября 2018, 11:18
MODX Настройка MySQL 5.7 для работы pdoTools 0
Андрей Копп 27 сентября 2018, 20:49
MODX MinifyX в Fenom 0
Андрей Копп 01 июля 2018, 15:13
Другое Fenom в MODX (шпаргалки) 0

Комментарии

Андрей Копп 02 октября 2018, 09:04
ComboBox с данными из другой таблицы modExtra 1
Андрей Копп 08 сентября 2017, 20:24
Всевозможная очистка кэша в Laravel 5 1