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