Александр

Александр

С нами с 19 февраля 2013; Место в рейтинге пользователей: #419

Разработчик modx. Санкт-Петербург. В офис.

31 60 000
Ищу человека в Питере на полный рабочий день в офис. (60+ в месяц)

Сейчас проект на modx revo неплохо себе живёт… но, он слегка запустился без «хозяина» и надо его «встряхнуть» )

По задачам, без лишней воды — крупный проект (>500k ресурсов + виртуальных не меньше, modx revo от части), который надо усовершенствовать и поддерживать. (фронтэнд немного нужен :))

Про всякие там печенюшки и условия поговорим уже ближе к делу с желающими, но из важного: всё по белому. И на фриланс пока не уговаривайте :)

Всё расскажу и помогу — я, пишите на почту alexanderweb@bk.ru дальше созвонимся и встретимся при желании.
Александр
31 января 2019, 02:33
modx.pro
565
+1

Выборка newQuery (msProduct) по значению tv

Много видел подобных вопросов, ответы некоторые 2014 аж, поэтому не завелось к сожалению.

Делаю выборку таким образом (например по цене в конкретных категориях) — работает!

$query = $modx->newQuery('msProduct');
$query->leftJoin('msProductData', 'Data');
$query->where(array(
    'msProduct.parent:IN' => [10, 20],
    'Data.price' => '60',
));
$products= $modx->getCollection('msProduct', $query);
 
foreach ($products as $k => $product) { 
    $title = $product->get('pagetitle');
    // ....	
}
Однако, как я понял по произвольному tv-параметру в данном случаи не отобрать…

Например есть у товара tv с именем art, в итоге такое условие:

$query->where(array(
    'msProduct.parent:IN' => [10, 20],
    'Data.art' => 10,
));
не отбирает…

'art' => 10, к сожалению тоже. Как в условии достучаться до этого произвольного tv?
Благоадарю.
Александр
29 июня 2018, 11:37
modx.pro
3 198
0

Проблема с редактирование ресурсов (спецсимвол в наименовании)

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

Страницы (ресурсы) генерируются из экселя и никаких проблем с этим действом никогда не возникало.

Недавно заметил, что в админке некоторые страницы не открываются для редактирования. Область где собственно должны располагаться вкладки «Документ/Настройки/Доп. поля...» — пуста :)

В консоль сыпется около 50 ошибок вида:

Cannot read property 'getForm' of undefined...

Проанализировав что с этими «некоторыми» страницами не так, заметил что в наименовании у них есть такой символ как двойная кавычка (" — дюйм так помечен).

Сначала грешил на свой импорт и подумал что при создании страницы «руками» из админки видимо как-то это дело экранируется, а я насильно заливаю без преобразования. Но. Оказалось, что нет — попробовав создать «руками» наименование с двойной кавычкой — всё также поломалась :)

Решить конечно можно, заменив на две одинарные, но может ещё какие есть подобные символы и имеются ли варианты решения проблемы с двойной кавычкой?

Благодарю.
Александр
18 апреля 2018, 11:34
modx.pro
696
0

При создании контекста слетел site_status

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

Создал новый контекст для мультиязычности. Всё прекрасно работает, никаких проблем, однако заметил, что при переводе сайта в закрытый режим — контекст web прекрасно доступен, а новый созданный не доступен, как и требуется.

Не подскажите, с чем может быть связана такая маленькая неприятность?
Благодарю!

upd: Из админки само-собой вышел, кэш чистил, в каждый конекст прописал свои site_status и site_unavailable_page. Работает только на созданном контексте en. Версия 2.5.8-pl

решено: Каким-то чудесным образом, в права на доступ к контексту web анонимам, прописалась политика доступа со значением 14 (нет такой). Странно, установка свежая. Вообщем дело было в этом.
Александр
20 ноября 2017, 09:21
modx.pro
1 224
0

Content-Type: multipart/related через modMail

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

Есть необходимость организовать письмо с Content-Type: multipart/related средствами modMail. То есть письмо, с картинками (но картинки это части письма). На данный момент, даже если шаблон письма содержит картинки на выходе получаю Content-Type: text/html;

Вложение ($modx->mail->attach($attachment);) даёт тип mixed.Да и это совсем не то..

В PHPMailer для этого вроде существует addEmbeddedImage(), но в modMail судя по всему оно не перекочевало, к сожалению.

Не подскажите каким образом можно добитьcя «внедрения» изображений таким образом?

Благодарю!
Александр
11 октября 2017, 13:01
modx.pro
809
0

Авторизация при переходе на поддомен.

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

Есть сайт site.ru.

Решил вынести часть функционала на поддомен + на другой сервер (s.site.ru). Там всё крутится на nodejs, и задача «автоматически» авторизировать пользователя при переходе с site.ru

Как я себе это вижу: (возможно ужасно вижу)

  • Пользователь авторизируется на site.ru
  • В личном кабинете есть ссылка вида s.site.ru/?confirm=[значение поля sessionid] (из *_user_attributes)
  • При переходе по ссылке, проверяется совпадает ли sessionid и если да, то авторизируем
  • Меняем sessionid
Всё ли правильно я поманю, и можно ли (нужно ли) делать иначе?
А также, как лучше «поменять» этот самый sessionid после удачной авторизации, чтоб всё было хорошо )

Благодарю.
Александр
15 июня 2017, 20:54
modx.pro
762
0

AjaxLogin на виртуальных страницах.

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

столкнулся с небольшой проблемкой.

AjaxLogin прекрасно себя ведёт на «реальных страницах», а вот на виртуальных немного сопротивляется (fastrouter).

После успешной авторизации не происходит редиректа на loginResourceId. Понятное дело, что в этот параметр передаётся id ресурса, а так как страница виртуальная, то id у неё нет. Внёс небольшие правки в сниппет ajaxLogin, чтоб при авторизации с виртуальной страницы $url формировался без makeUrl(), но рдиректа всё нет.

При авторизации с реальной страницы в Network (отладчике) наблюдаю такое:

action.php |  302 |  text/html
Всё как надо, редирект проходит успешно.

С виртуальной же страницы такое:

action.php | 200 | xhr
с Respons'ом вида:

{"success":true,"data":"[html формы авторизации]"}
Не подскажите куда глядеть?
Благодарю!
Александр
25 апреля 2017, 10:44
modx.pro
1 184
0

Группировка при выводе (getCollection)

Приветствую. Уже мозг сломал, выдумывая вариант решения такой задачки:

Есть записи в таблице, примерно такого вида:

id | pid | text | date
1    10   ---      ---
2    12   ---      ---
3    15   ---      ---
4    11   ---      ---
5    19   ---      ---
6    12   ---      ---
7    11   ---      ---
8    10   ---      ---

При перехода например на site.ru/list/10/ выдераю из базы и вывожу все записи с pid = 10 (с сортировкой по дате добавления). Всё пока просто и понятно:

....
$q->where(array(
	'pid' => $pid, // 10
));
$result = $modx->getCollection('MyPack', $q);
....
Александр
05 декабря 2016, 12:42
modx.pro
1 207
0

Поля пользователей в foreach.Выводит только первое

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

Вывожу данные из своей таблицы. В ней, помимо кучи других полей, записан id_user (id пользователя).

Вывожу так:

$modx->addPackage('MyPac', $modx->getOption('core_path').'components/MyPac/model/', 'modx_');

$q = $modx->newQuery('MyPacTable');
$q->sortby('add','DESC');
$lists = $modx->getCollection('MyPacTable', $q);

foreach ($lists as $k => $res) { 

	....
	$id_user = $res->get('id_user');
	...

	$output .= $modx->getChunk('tpl.user.list',array(
        	'userId' => $id_user,
		....
	));

}

return $output;
Александр
08 июня 2016, 08:07
modx.pro
1 024
0

CRON. Забивается журнал ошибок и "слетает" сайт.

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

Раз в минуту CRON долбит сниппет, который ищет в пользовательской таблице запись со значением status = 0. Такая запись появляется примерно 10/15 раз в день.

Всё работает, как надо. Задача выполняется, однако стал замечать много ошибок связанных с кэшом в журнале, например:

[2016-05-31 11:03:59] (ERROR @ /index.php) Error caching script elements/modsnippet/69
[2016-05-31 11:04:02] (ERROR @ /index.php) Error caching script elements/modsnippet/173
[2016-05-31 11:04:02] (ERROR @ /index.php) Error caching script elements/modsnippet/72
[2016-05-31 11:04:02] (ERROR @ /index.php) Error caching script elements/modsnippet/69
Александр
31 мая 2016, 08:23
modx.pro
1
1 811
0