Финансовая поддержка VPS, бесплатные дополнения и docs Донаты оплачивают сервер и двигают бесплатные дополнения MODX и документацию. Поддержать

Всего 126 142 комментария

Василий Краковецкий
Василий Краковецкий
Поставьте версию Php 5.4, мне помогало, а вообще советую уходить с него, рево он не держит вообще, проц от простых походов по админке скатывается в желтую зону и аккаунт отключают за превышение… Я терпел, терпел, но больно часто метрика пищала что сайт недоступен, так что ушел и не жалею…
Алексей Алехин
Алексей Алехин
Создал два сайта site1 и site2. Во втором поменял везде как вы пишите site1 на site2 — все остальное без изменений. На обоих сайтах положил одинаковый файл с содержимым <? echo exec('whoami'); ?>
Открываю site1 и вижу вывод скрипта как и ожидается site1. Но стоит жать F5 несколько раз как начинает выводиться site2. Два раза site1 и два раза site2 и так по кругу. На втором сайте все точно также. Причем если /etc/php5/fpm/pool.d/site2.conf переименовать чтобы при запуске не подхватывался, то оба сайта все равно работают, но показывают site1 постоянно (без переключения пользователя). Что это и как с этим бороться?
abba abadon
abba abadon
Сам сталкивался с этой проблемой. Для нормальной работы вам необходимо отключить компрессию js и css в админке.
Для этого в файле config.cache.php, который лежит по адресу core/cache/system_settings/, необходимо напротив пунктов compress_css, compress_js поставить значение 0, после этого сохраните изменения и идите в админку и там в системных настройках проделайте тоже самое. Если все правильно сделали то должно все работать нормально.
Или просто попросите на хостинге включить возможность компрессии.
Василий Наумкин
Василий Наумкин
Моя статья на Хабре про создание компонента — habrahabr.ru/post/126635/.
Официальная документация — rtfm.modx.com/display/revolution20/Custom+Manager+Pages

Но самый действенный способ, конечно, прокачивать знания разбираясь в том, как устроены чужие разработки. Иначе вы научитесь только тому, что вам рассказали в уроках.
Василий Наумкин
Василий Наумкин
Больше не будет таких потрясений, ибо теперь сайт работает с удаленными сервисами напрямую.

Про логин и пароль — а где ж их взять то?

Username не все сервисы передают, а если и передают, вы сами можете не знать, какой он там. Пароль просто не нужен — ибо авторизация идет через другой сервис. Email тоже когда как, идентификатор у каждого сервиса свой.

Такой вариант возможен только если регистрировать юзера классическим способом, а потом давать ему привязать учётки для быстрого входа. А мне такая регистрация не нужна.
Denys Butenko
Denys Butenko
Решение:
$childs = $modx->getCollection('modResource', array("parent" => $parentId));
foreach($childs as $child) {
  $exist_pagetitles[] = $child->get('pagetitle');
}
$output = array_diff($pagetitles,$exist_pagetitles);
foreach($output as $pagetitle){
  $i++;
  $res['pagetitle'] = $pagetitle;
  $response = $modx->runProcessor('resource/create', $res);

  if ($response->isError()) {
    return $modx->error->failure($response->getMessage());
  }
  $id = $response->response['object']['id'];
  echo '<div class="alert alert-success">Страница '.$pagetitle.' успешно создан.</div>';
}
1. Получаем объекты всех страниц с родителем $parentId
2. Парсим их и pagetitle заносим в массив $exist_pagetitles
3. Сравниваем два массива на различия -> получаем массив с pagetitle страниц которых нет
4. Парсим полученный массив -> каждый $pagetitle присваиваем $res['pagetitle']
5. Создаем ресурс c нужным pagetitle