Re: Баги в Monstra
El'Drako отвечу вечером где то после 22:00 по Киевски.
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Монстра → Разработка → Баги в Monstra
El'Drako отвечу вечером где то после 22:00 по Киевски.
нифига через main не работает.
вот функции класса плагина:
public static function main() { Debug::dump($_SESSION); } public static function form($type) { $errors = array(); if ($type == 'vlogin' || $type == 'hlogin') { if (User::$out2 =='') { User::$out2 = View::factory('siwusers/views/frontend/form') ->assign('login_name', $name) ->assign('login_pass', $pass) ->assign('login_save', $loginsave) ->assign('type', $type) ->assign('errors', $errors) ->render(); } return User::$out2; } public static function display($type) { echo User::form($type); } public static function content() { return User::$out; }
в шаблоне
<?php User::display('vlogin'); ?>
нажимаю на submit, но функция main не обрабатывается - дамп не выводится. как и положено, срабатывает вызов display и из неё form. и всё.
можно конечно и main из form вызвать, но нафига я тогда код туда переносил, если функция вызывается только по Site::content и соответствующему uri?
Итого вернулись к тому, с чего начали.
в общем, нужна функция в классе плагина, которая бы всегда вызывалась перед выводом Site::Content().
что значит функция main не обрабатывается ? Смотрим(правим) плагин SandBox в нем main срабатывает. Надеюсь ты берешь во внимание то что submit - это же самое что редирект.
>> нужна функция в классе плагина, которая бы всегда вызывалась перед выводом Site::Content()
так и есть main вызывается раньше любой другой функции. живой пример: Pages (pages.plugin.php)
p.s.
по остальному отвечу вечером.
по submit срабатывает форма
<form method="post" action="<?php echo Site::url(); ?>">
соответственно открывается главная страничка. её шаблон:
<?php Chunk::get('header'); ?> <body> <div id="wrap"> <?php Chunk::get('body-header'); ?> <div> <?php if (Notification::get('success')) Alert::success(Notification::get('success')); ?> <?php if (Notification::get('error')) Alert::error(Notification::get('error')); ?> </div> <div class="center_content"> <div class="left_content"> <div > <?php Action::run('theme_pre_content'); ?> <div class="clear"></div> </div> <div class="feat_prod_box"> <?php echo Site::content(); ?> <div class="clear"></div> </div> <div > <?php Action::run('theme_post_content'); ?> <div class="clear"></div> </div> <div class="clear"></div> </div><!--end of left content--> <div class="right_content"> <!-- Блок логина --> <?php User::display('vlogin'); ?> <!-- Блок логина закрыт -->
когда я сделал как привёл в предыдущем посте, то <?php User::display('vlogin'); ?> вообще отказалась выводится, т.к. основной код, перенесённый в main() плагина вообще не вызывался. Ведь так и должно же быть, т.к. майн вызывается только когда мы заходим на страничку плагина-компонента.
Сейчас эту проблему обошёл так:
<?php Chunk::get('header'); ?> <body> <div id="wrap"> <?php Chunk::get('body-header'); ?> <div> <?php if (Notification::get('success')) Alert::success(Notification::get('success')); ?> <?php if (Notification::get('error')) Alert::error(Notification::get('error')); ?> </div> <div class="center_content"> <div class="left_content"> <div > <?php Action::run('theme_pre_content'); ?> <div class="clear"></div> </div> <div class="feat_prod_box"> <?php $ul=User::display('vlogin'); ?> <?php echo Site::content(); ?> <div class="clear"></div> </div> <div > <?php Action::run('theme_post_content'); ?> <div class="clear"></div> </div> <div class="clear"></div> </div><!--end of left content--> <div class="right_content"> <!-- Блок логина --> <?php echo $ul; ?> <!-- Блок логина закрыт -->
пришел домой...
Вот решил проверить срабатывает или не срабатывает.
/** * Sandbox simple class */ class Sandbox extends Frontend { /** * Sandbox main function */ public static function main(){ if (Request::post('test')) { Option::add('test', 'It Works!'); } } /** * Set Sandbox title */ public static function title(){ return 'Sandbox title'; } /** * Set Sandbox keywords */ public static function keywords(){ return 'Sandbox keywords'; } /** * Set Sandbox description */ public static function description(){ return 'Sandbox description'; } /** * Set Sandbox content */ public static function content(){ return (Option::get('test').'<form method="post"><input type="submit" name="test" /></form>'); } /** * Set Sandbox template */ public static function template() { return 'index'; } }
Опция добавилась(при самбмите) и отобразилась(когда страница перегрузилась).
Awilum
посмотрите внимательно мой предыдущий пост с кусками кода.
там совсем другая ситуация.
вы рассматриваете штатный вывод плагина при обращении к нему по его uri.
я же говорю про ситуацию, когда на главной странице выводятся несколько шорткодов разных плагинов (см. вызов display выше), причём один из них находится внутри материала, выводимого через Site::content(). Как в такой ситуации задать последовательность их вызова, исключая порядок их положения в шаблоне?
Шорткоды обрабатывается с той же последовательностью, с которой подключаются плагины(приоритет плагина).
>> Как в такой ситуации задать последовательность их вызова, исключая порядок их положения в шаблоне?
Изменить последовательность загрузки плагинов(приоритет)
p.s. тогда наверное один плагин может не увидеть другой плагин(если попробовать использовать его методы). какая та путаница.
проверял приоритет.
авторизация = 20.
новости = 21.
шорткод новостей в тексте статьи home. шорткод формы логина вызывается из шаблона выше через display.
т.е. получается первым вызывается плагин pages, который вызывает шорткод новостей из под себя, а затем уже идут остальные плагины по приоритетам.
тоже фигово - под каждую ситуацию шаблонов не напасёшься...
>>вызывается плагин pages, который вызывает шорткод новостей
шорткоды авторизации первее должны обработаться.
>>авторизация = 20.
т.к. это сторонний плагин, я в бокс не лезу
в общем, разобрались.
El'Drako по поводу проверки на новую версию монстры. Проверка выполняется после загрузки всех скриптов, а в 1.2.0 она точно будет будет выполняться последний так как ее приоритет будет 9999.
Интернет отключил и проверил. Работает отлично.
тогда это просто отлично.
в 1.1.6 режим техобслуживания не работает.
проверил только что 1.2.0b (так как с этим ничего не менялось) работает. админ и редактор могут посещать сайт, а простые люде нет.
а, звиняюсь. я то был уже в админке.
тогда предложение - выводить на сайте для админов предупреждение об этом флаге.
Версия 1.2.1
Debugging - (gg)
Дебаггинг - (гг)
Вообще, лучше в русской локале сделать "Отладка".
Не везде исправлен перевод (button). В сниппетах (delete), в плагинах - установить новые(install).
Если добавляется отзыв с такой имагой в сообщении:
<img src="http://monstra.ru/admin/index.php?id=pages&action=delete_page&name=pagename">
то сносится страница "pagename".
>>Если добавляется отзыв с такой имагой в сообщении:
Templ, можно больше подробностей ?
В приниципе екшен удаления можно усложнить, проверять по хешу этой страницы (который хранится для каждой страницы)
http://monstra.ru/admin/index.php?id=pages&action=delete_page&name=pagename&uid=s2a22awd
никто же uid страницы публично не знает...
вообщем для плагина страниц исправлено https://github.com/Awilum/monstra-cms/c … 8c69b8db42
заюзал токен... остальные плагины пофиксю тоже...
В Monstra 2.0.0 в профиле пользователя добавлено поле "Обо мне". Но что-то не получается менять в нём информацию...
1. Ошибки перевода с английского на русский.
Вместо "профиль" PROFILE.
2. Письма регистрации и восстановлений пароля приходят на английском
А если письмо содержит русские символы, получается вот так: Ваши данные Ð´Ð»Ñ Ð´Ð¾Ñтупа к ANYDIR – беÑплатный хоÑтинг
>>может при установке плагинов заново собирать minify js, css?
ок. я посмотрю эту проблему.
www/plugins/box/users/languages/ru.lang.php
36 строка:
'Wrong <b>login</b> or <b>password</b>' => 'Неправильный <b>логин</b> или <b>пароль</b>',
Заменить на:
'Wrong <b>username</b> or <b>password</b>' => 'Неправильный <b>логин</b> или <b>пароль</b>',
Нашлась одна бага неприятная или я чегото не догоняю.
Делаем страницу с названием Каталог, ей в родители ставим Хоум. В Хоуме делаем ссылку на Каталог, и вуаля, получает 404. И так с любими ссылками на страницу в который выбран парент отличный от отсутствующего. (Если заходить на страницу через сайтмап то все гуд.)
Также если выбран украинский язык то плагин ТиниМЦЕ редактора не ставится, стоило переключить на английский и вуаля, все заработало, с остальными языками не проверял, я только дето часик играюсь с онстрой.
В тиниМЦЕ в вставке картинок, загрузке через КЦфайндер показывает папку "рут" а не "аплоад"
Монстра → Разработка → Баги в Monstra
Форум работает на PunBB, при поддержке Informer Technologies, Inc