Очень странное поведение сайта
Был создан сайт, практически с нуля. После того как началось тестирование, выяснилось, что страницы сайта созданные подключение сниппетов (напимер [[!php-reg]] на странце ресурсов, вдруг это имеет значение) не работают, то есть просто не обновляются. Чтобы они заработали нужно залогиниться на xx.ru/manager, а без этого ничего не работает. Не подскажете в чем дело?
Комментарии (49)
RSS свернуть / развернутьviktormatush
PAKOTxx
viktormatush
PAKOTxx
viktormatush
PAKOTxx
+ копать код сниппетов, они должны работать для всех пользователей, а не только для тех, кто сделал логин…
viktormatush
Где можно посмотреть права работы сниппетов?
PAKOTxx
viktormatush
PAKOTxx
valikras
PAKOTxx
PAKOTxx
выводиться только бла-бла-бла?
valikras
valikras
PAKOTxx
viktormatush
— <?php
echo "<script language='javascript' type='text/javascript'
src='assets/components/tinymce/jscripts/tiny_mce/tiny_mce.js'>
";
echo "";
$id = $modx->getLoginUserID();
$result=$modx->db->query(«SELECT * FROM modx_user_attributes WHERE id=$id»);
$row = $modx->db->getRow($result);
if ($row[role]==0)
{
echo "";
}
if ($row[role]==1)
{
$result=$modx->db->query(«SELECT * FROM modx_site_metatags WHERE new=1»);
while( $row = $modx->db->getRow($result))
{
echo $row[name];
echo "
";
echo $row[tagvalue];
echo "
";
echo "Разрешить";
echo " Забраковать";
echo " <a href='/uver/?par=3&id=$row[id]''>Изменить";
echo "
";
echo "--------";
echo "
";
}
}
if ($row[role]==4)
{
echo "";
echo «Введите название новости:
»;
echo «Выберите раздел новости:
»;
echo "";
echo "Новости компаний";
echo "Конкурсы";
echo "Акции и бонусы";
echo "Обучение";
echo "Аналитика";
echo "
";
echo «Введите текст новости:
»;
echo "";
echo "";
}
echo "";
— И если я вызываю этот сниппет — перенавправление на index.php. А если в этот момент с этого же браузера залогинен админ в xx.ru/manager/ то всё прекрасно работает
PAKOTxx
modx_user_attributes — это атрибуты уже зарегистрированного пользователя, а все остальные пользователи, даже те, которые «хотят зарегистрироваться» идут лесом.
viktormatush
valikras
viktormatush
valikras
valikras
Я понимаю как работает эта функция, я понимаю что она берет залогиненого пользователя. Это сниппет личного кабинета. Почему тогда, когда пользоватлей ЗАЛОГИНЕН(регистрация подтверждена, он существует) этот сниппет не срабатывает, если не залогинен админ в /manager/? Простите если не понимаю чего-то элементарного, это мой первый проект на modx
PAKOTxx
Я не осуждаю, вы думаете мой первый снипет лучше был? Я его храню как реликвию!!!
Потом $modx->db->query — в ообще не пойму как срабатывает?
valikras
PAKOTxx
PAKOTxx
ManManovich
ManManovich
PAKOTxx
valikras
id internalKey fullname role email phone mobilephone blocked blockeduntil blockedafter logincount lastlogin thislogin failedlogincount sessionid dob gender address country city state zip fax photo comment website extended
PAKOTxx
valikras
valikras
Кстати
Проблема вот в чем — всё работает правильно ТОЛЬКО если с данного браузера залогинен администратор. У меня была мысль может где-то в настройках стоит ограничение на функционал? Ну то есть допустим когда сайт временно закрывают… Т.к. он был закрыт, потом кто-то (не знаю кто, из персонала) его вроде как открыл… Может он что не так сделал?
— Это реально? Что отключен функционал сайта? То есть не до конца всё включили?
PAKOTxx
viktormatush
Вызовы echo не рекомендуют делать, лучше склеивать результат через $output .=
и выводить как return $output;
viktormatush
PAKOTxx
1) опишите, что вам нужно сделать;
2) прочитайте статью выше о том как сделать пользовательские сниппеты;
3) посмотрите как нужно делать переносы строки в php и html;
4) перепишите код сниппета завтра на свежую голову, приняв во внимание п.2, п3, дальше завтра п.1 и п.3 покажете здесь, еще раз всё разберём и обсудим. Всем спокойной ночи!
viktormatush
2) Хорошо
4) Проблема вот в чем — всё работает правильно ТОЛЬКО если с данного браузера залогинен администратор. У меня была мысль может где-то в настройках стоит ограничение на функционал? Ну то есть допустим когда сайт временно закрывают… Т.к. он был закрыт, потом кто-то (не знаю кто, из персонала) его вроде как открыл… Может он что не так сделал?
PAKOTxx
В MODX Revolution не нужно использовать SQL запросы, все уже продумано до нас. Есть xPDO, есть куча полезных методов, например:
Куча полезных методов движка, вам особо рекомендую regClientStartupCSS и regClientStartupScript, для подключения css и js на страницу.
Также имеются методы класса User. Тоже очень полезные.
Рекомендую ваше художество заново переписать, с использованием MODX Api, то есть, этих прекрасных методов, иначе будет полный геморой и дальше.
Тогда ваши сниппеты начнут использовать кэширование, права доступа, слушаться настроек админки и работать как надо.
Я вообще не понимаю, зачем вам MODX если вы пишите в нем смесь php, html и sql, а также не пользуетесь шаблонами и чанками? Не проще было сразу без движка, файлы php создавать?
bezumkin
[[!Register]] [[$lgnRegisterForm]]
Насколько я знаю это стандартная форма, я ее не трогал. И всё равно идет пенаправление. То есть получается что не выполняется ни 1 чанк, ни 1 сниппет. Возможно кто-то сталкивался в чем дело? Какие-то права или что-то в этом роде?
PAKOTxx
valikras
PAKOTxx
valikras
PAKOTxx
valikras
PAKOTxx
Вот вам для ознакомления:
community.modx-cms.ru/blog/documentation/869.html
Ничего сложного там нет.
TuncaH
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.