Илья Уткин

Илья Уткин

С нами с 15 декабря 2012; Место в рейтинге пользователей: #9
Илья Уткин
15 августа 2017, 16:13
+2
{$tvImage | phpthumbof : "w=120&h=120&zc=1&fltr[]=gray"}
Илья Уткин
15 августа 2017, 09:01
+2
Попробуй зарегистрировать новый почтовый ящик на Яндексе, установить на сайт дополнение yaSMTP и при установке указать логин и пароль от этого ящика.
Илья Уткин
11 августа 2017, 09:12
0
Ой, tEvent, оказывается, тоже не бесплатный))
Илья Уткин
11 августа 2017, 09:11
0
Да, уходите от JSON.

Можно использовать бесплатное дополнение, например, tEvent или взять платный customExtra и сделать какую надо табличку: https://ilyaut.ru/addons/very-easy-to-add-custom-objects-in-modx/
Илья Уткин
11 августа 2017, 09:07
+1
Да, в xPDO какая-то фигня с такими таблицами. Добавляйте primary key ID. Просто нигде его не используйте, пусть он будет autoincrement — вряд ли принесёт вам какие-то проблемы своим присутствием.

Ну или везде помнить об этой таблице и вносить изменения или удалять вручную
Илья Уткин
11 августа 2017, 08:55
0
Вот пример того, как можно расширить стандартный ExtJS-объект в админке MODX: [ExtJS] Расширяем нативную гриду юзеров.

По этому примеру нужно расширить объект MODx.tree.SimpleResource (возможно, не его, а какой-то из его дочерних объектов) и поменять у него action.
Илья Уткин
11 августа 2017, 08:50
0
Проблема явно где-то в другом месте:

Илья Уткин
11 августа 2017, 08:43
+15
Есть один нюанс из-за которого я не назначаю контексту web настройку site_url:

При мультидоменности в админку можно зайти по любому из доменов. И вот, если мы открыли сайт domain2.ru, зашли в его админку, что-то отредактировали и хотим перейти на сам сайт, выбираем «Содержимое» -> «Перейти на сайт».

В этом случае, если у контекста web есть настройка site_url, открывается сайт domain1.ru. Если же у контекста web настройки site_url нет, то мы перейдём на тот домен, по которому мы открыли админку.
Илья Уткин
09 августа 2017, 18:46
+1
Кажется, вот здесь:
$this->data = &$_SESSION['shk_order'];

Амперсанд (&) обозначает связь переменных. И если мы меняем $this->data — значит мы меняем $_SESSION['shk_order']
Илья Уткин
09 августа 2017, 18:34
1
+3
Когда мы делаем
$user->joinGroup('Group','Role2');
MODX делает несколько запросов в базу данных.

Если упрощённо, то сначала определяет ID группы по её имени (из таблицы modx_membergroup_names), потом — ID роли (таблица modx_user_group_roles). Когда ID-шники определены, происходит создание новой записи в таблице modx_member_groups.

После этого сбрасываются значения параметров сессии:
unset($_SESSION["modx.user.{$this->get('id')}.userGroupNames"],
      $_SESSION["modx.user.{$this->get('id')}.userGroups"]);

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

В итоге запись
$user->leaveGroup('Group');
$user->joinGroup('Group','Role2');
сгенерирует минимум 5 запросов к базе данных.

Если где-то ранее у нас уже определены ID-шники ролей и групп, то можно внести изменения вручную:
$group_member_arr = array(
  'member' => $user->get('id'),
  'user_group' => $group_id,
);
if (!$member = $modx->getObject('modUserGroupMember', $group_member_arr) {
  $member = $modx->newObject('modUserGroupMember', $group_member_arr);
}
$member->set('role', $role_id);
$member->save();

unset($_SESSION["modx.user.{$this->get('id')}.userGroupNames"],
      $_SESSION["modx.user.{$this->get('id')}.userGroups"]);

Но через год-полтора будет сложно понять, что тут происходит.

Так что решение о том, какой из способов выбрать, каждый принимает сам.
Илья Уткин
05 августа 2017, 16:05
+1
Кстати, только сегодня заметил, что на хостинге стоит файловый менеджер Sprut.io — это очень круто. Почему-то пропустил информацию о его появлении)
Илья Уткин
04 августа 2017, 09:43
+1
FormIt без AjaxForm письма нормально отправляет? QuickEmail ошибку не показывает?

siteExtra — это не готовый сайт, а просто помощник программиста. Без усилий сайт не сделать, за это программисту и платят.
Илья Уткин
04 августа 2017, 09:38
0
Нужно написать плагин на OnPageNotFound, в котором по псевдониму, например, находить нужный товар и подменять вывод с помощью $modx->sendForward
Илья Уткин
03 августа 2017, 14:31
0
Потому что bk.ru — это тот же mail.ru. Они-то знают, что с этой почты никто писем не отправлял, вот и прячут это письмо.
Илья Уткин
02 августа 2017, 06:55
+2
В кодах счётчиков поставьте пробелы перед и после фигурных скобок. На них «спотыкается» парсер.

//                                                                  
Илья Уткин
26 июля 2017, 14:55
1
0
$modx->runSnippet('phpthumbon', array('input' => $img, 'options' => 'w=280&h=280&zc=1'));
Илья Уткин
25 июля 2017, 21:35
0
Поддержу предложение. Идея огонь!
Илья Уткин
21 июля 2017, 09:06
+1
В коде виджета комментариев поставь пробелы перед и после всех фигурных скобок
...
VK.init( { apiId: 000000000, onlyWidgets: true } ); // Здесь
...
VK.Widgets.Comments("vk_comments", { limit: 10, attach: "*" } ); // и здесь
...