Илья Уткин

Илья Уткин

С нами с 15 декабря 2012; Место в рейтинге пользователей: #9
Илья Уткин
03 ноября 2016, 10:45
+2
Блин, мне до такого уровня экстрасенсорных способностей ещё расти и расти…
Илья Уткин
03 ноября 2016, 08:04
+3
Посмотрите в сторону дополнения tvSuperSelect
Илья Уткин
02 ноября 2016, 08:32
0
Скиньте мне в техподдержку доступ. Я с таким раньше не сталкивался, посмотрю, что можно сделать.
Илья Уткин
31 октября 2016, 09:19
0
Обновил, заодно поправил пару багов)
Илья Уткин
31 октября 2016, 08:32
0
Как-то так получилось. Запрос несложный, надо учиться такие составлять))

$q = $modx->newQuery('modUser');
$q->leftJoin('modUserGroupMember',
             'UserGroup',
             'UserGroup.member = modUser.id '.
             'AND UserGroup.user_group = 4');
$q->leftJoin('modResource',
             'Resource',
             'Resource.createdby = modUser.id '.
             'AND Resource.published = 1 '.
             'AND Resource.context_key = "moscow"');
$q->leftJoin('modUserProfile',
             'Profile',
             'Profile.internalKey = modUser.id');
$q->groupby('modUser.id');

$q->select(array(
    'modUser.*',
    'Profile.*'
));

$q->where(array(
    'modUser.active' => 1,
    'Resource.id:IS NOT' => NULL
));

$count = $modx->getCount('modUser', $q);
if ($q->prepare() && $q->stmt->execute()) {
	$users = $q->stmt->fetchAll(PDO::FETCH_ASSOC);
}

echo "<p><b>Всего пользователей найдено: {$count}</b></p>";
foreach($users as $user) {
    echo "<p>{$user['username']} ({$user['internalKey']})</p>";
}
Илья Уткин
31 октября 2016, 08:10
0
Он по идее должен нормально работать. Это стандартный функционал минишопа. Что-то не выводит?
Илья Уткин
30 октября 2016, 08:34
0
Они безопаснее, если в них будут подставляться какие-то пользовательские данные.

Например, когда вы захотите сделать поиск по выбранным строкам с помощью
"...
AND `username` LIKE = '%{$_GET['search']}%'
..."
можно получить XSS
Илья Уткин
29 октября 2016, 19:00
+1
Хех))) завтра буду у компа, попробую помочь. А пока вот пример джойна на xPDO: ilyaut.ru/cheats/sample-resources-filled-with-tv-settings/
Илья Уткин
29 октября 2016, 15:35
0
Блин, да, косяк… надо его выключить по умолчанию. Как раз планировал заняться исправлением косяков в сборке.
Илья Уткин
28 октября 2016, 20:41
+1
$sql = "SELECT u.username, ua.* FROM `modx_users` as u
LEFT JOIN modx_member_groups as g ON g.member = u.id
LEFT JOIN modx_site_content as c ON c.createdby = u.id
LEFT JOIN modx_user_attributes as ua ON ua.internalKey = u.id
WHERE g.user_group = 4
AND c.published = 1
AND u.active = 1
AND c.context_key = 'moscow'
GROUP BY u.id";
$q = $modx->prepare($sql);
$q->execute();
$users = $q->fetchAll(PDO::FETCH_ASSOC);

foreach ($users as $v) {
	echo $v['username'];
}
Илья Уткин
27 октября 2016, 09:22
+2
// Выводим просмотренные страницы без вызова сниппета
if ($show == '1' && $snippet == false) {
    $output = '';
    foreach ($ids as $tsID) {
        if($tsID != $id) {
            if ($obj = $modx->getObject('modResource', $tsID)) {
              $page = $obj->toArray();
              $output .= $modx->getChunk($tpl, $page);
            }
        }
    }
    return $output;
}
Илья Уткин
25 октября 2016, 13:08
0
Насколько я понял, сервер не открывает ссылки со сторонних ресурсов. Попробуйте изменить настройку allow_url_fopen в php.ini
Илья Уткин
25 октября 2016, 13:04
0
Он запрашивает эту страницу с помощью метода file_get_contents. Она в браузере вообще не должна открываться.
Илья Уткин
25 октября 2016, 08:04
0
А какой у вас хостинг? У одного из покупателей была похожая проблема, но у него оказалось дело в настройках php.ini
Илья Уткин
24 октября 2016, 13:28
0
Ну так total же можно и самостоятельно устанвить
$modx->setPlaceholder($totalVar, $total);
Илья Уткин
24 октября 2016, 08:48
0
Для подключения к системе магазин предоставляет:
1. HTML-страницу, с графикой и CSS и прочими подключаемыми объектами, которая показывает платежную форму. Требования к этой странице описаны в отдельном документе «Оформление платежной страницы».

Я думаю, надо обратиться в техподдержку сберабанка. Насколько я помню, они там предоставляют такую страницу, на которой можно вставить свой логотип, например. После чего оформленную страницу надо передать обратно специалистам сбербанка.
Илья Уткин
22 октября 2016, 20:19
+1
Логика примерно такая.

  1. Проходимся по списку фильмов на сегодня. Каждый фильм сохраняем как customExtraItem. Здесь можно в отдельных полях сохранить название, жанр, описание, картинку и filmID. Если фильм с таким filmID у нас в базе уже есть, обновляем у него информацию (мало ли, могло что-то поменяться).
  2. Во время получения информации о каждом фильме сохраняем кинотеатры, как customExtraOrder. Так же записывая ID кинотеатра, и обновляя данные в нашей базе, если такой кинотеатр есть.
  3. Каждый сеанс фильма сохраняем как customExtraOperation, указывая в нём наш внутренний ID кинотеатра и внутренний ID фильма (дату и время можно совместить в одном поле, сохраняя его как timestamp).

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

Таким образом будет огромное поле возможностей для расширения функционала.
Илья Уткин
21 октября 2016, 15:19
+1
Кажется, так
$q->select(array('msProduct.*'));