DbHelp.ru
Маленький Yii блог
Комментарии
Гость: cafe casino online virgin casino online cafe casino online vegas world casino games | https://online...
Гость: mohegan sun online casino hollywood casino online play online casino hallmark casino online | https:...
Гость: casino games slots free mohegan sun casino oxford casino potawatomi casino | https://freecasinogames...
Гость: vegas casino online huuuge casino huuuge casino high 5 casino | https://playonlinecasino.icu/ - empi...
Гость: slots for free free slots 777 hollywood casino free slots slots of vegas casino | https://onlinecasi...



Сервер Ultima Online - Forest Wars (от создателя данного блога)

Messager + jQuery

Рубрика: Компоненты

Оцените эту статью:

Рейтинг: 0.00 (0)
5 Апр. 2009
Опубликовать в Twitter Написать в Facebook Опубликовать в своем блоге livejournal.com

Yii Framework Blog img http://dbhelp.rumessagerНадо было мне как то выводить сообщения об ошибках на экран. Использовать исключения - плохой подход. Поэтому для того чтобы сообщать пользователям об ошибке - я решил написать небольшой виджет. 

Принцип работы его очень простой. Он должен принимать в себя - цвет сообщения, заголовок и текст ошибки. Для того чтобы красиво отображать - я решил использовать вместе с этим jQuery.

---

Первым делом войдите в папку protected/components и создайте файл Messager.php с текстом:

/**
 * Messager class file
 *
 * @author Alekseenko Timur <[email protected]>
 * @link http://www.dbhelp.ru/
 * @copyright Copyright 2009
 */

class Messager extends CWidget
{
    public $title = "Ошибка!";
    public $msg   = "";
    public $color = "#FFCCCC";
    
        public function init()
        {
            if (!empty($this->msg))
            $this->render('messager');
        }
        
        public function create($date = array())
        {
            if (!empty($date['title'])) {
                $this->title = $date['title'];
            }
            if (!empty($date['msg'])) {
                $this->msg = $date['msg'];
            }
            if (!empty($date['color'])) {
                $this->color = $date['color'];
            }                
        }
        
        public function returnConfig()
        {
            return array('title' => $this->title, 'msg' => $this->msg, 'color' => $this->color);
        }
}

После этого тамже создайте папку views если её у вас там нету и создайте там файлик messager.php, он будет служить отображением для виджита:

<div class="neat" style="background: <?=$this->color;?>;">
<b><?=$this->title;?></b><br><br>
<?=$this->msg;?>
</div>

<script>
$(".neat").animate({ opacity: "show" }, "slow");
</script>

Я естественно полагаю что вы умеете подключать jQuery. Теперь для того что б окошко сообщения выглядело красиво - добавим маленький css код в ваш общий css или в отображение:


div.neat {
    display: none;
    clear: both;
    margin: 1em 0;
    padding: 1em 15px;
    background: #FFCCCC;
}

Вот в принципе и все. Теперь когда мы хотим вызвать сообщение об ошибке на экран - в отображении мы просто пишем:


<?php $this->widget('Messager', array('title' => "Ошибка!",
                                      'msg'   => "Текст ошибки",
                                      'color' => "#color" )); ?>

Вот в принципе и все. Текст и цвет ошибки вы можете передавать к примеру с контроллера как это делаю я. Всё очень удобно, рекомендую и вам.

Как работает данный скрипт вы можете посмотреть на странице "Регистрация". Для этого вам надо быть авторизированным.



Если хотите опубликовать этот материал у себя - пожалуйста, разместите ссылку на страницу откуда вы его взяли.
Другие yii статьи:

  1. Сегодня обнаружил что Sam Dark как и обещал перевел интерисующюю практически всех часть документации про RBAC. next Благодаря таким людям  - ... "Перевод : Аутентификация и авторизация (RBAC)"

  2. ... "Версия 1.0.8"

  3. Я обычно часто просматриваю гугл сообщества в поисках чего-то нового (статьи, вопросы) и сам являюсь активным участником групп по ... "Сообщество Google"

Blake-R

Было сказано: Вторник, 14 Апрель 2009

>> Я естественно полагаю что вы умеете подключать jQuery.

А, может, интереснее было бы в самом классе Messager подключать через clientScript?

[adm] zolter

Было сказано: Вторник, 14 Апрель 2009

А что если пользователь до этого подключил в layouts.
Тогда если и компонент будет подключать - то получится два jquery вызова на странице =)

[guest] n1ck

Было сказано: Пятница, 12 Июнь 2009

вот кругом читаю, вроде бы как сам php код в норме, но отношение к структуре html - полный ппц, то теги не закрыты умышленно, br br вместо нижнего margin для элемента, то стили инлайново прописаны style="background: <?=$this->color;?>;", то script высыпается тупо в тело страницы...

как пример, возникает задача, заказчик говорит: нужно, чтобы одному пользователю показывался как

-date: message (в одну строку)

а другому

-date
-message (в две строки)

то по такому подходу, мы проверим что это за пользователь в модели, а потом выведем пару br либо не выведем.

Вместо того, чтобы подключить отдельный css для каждого класса, генерится комок кода делающий примитивную функцию, но занимающий 20 строк. Это определенно адвансед, надо пойти осознать...

[adm] zolter

Было сказано: Пятница, 12 Июнь 2009

to n1ck
понимаешь я html-у в принципе в этом блоге не учу. Я рассказываю вам про Yii и о том что мне пригодилось когда его ковырял. Если вас раздражают умышлено незакрытые теги (что совершенно не нарушает спецификацию языка html от w3) то причем тут я?. По какому принципе вы действуете закрывая теги? так захотелось? а я прочитал спецификацию, посмотрел примеры, и понял что w3 наоборот прапогандирует не закрытие тегов которые в этом не нуждаются. посмотрите для этого любой из примеров, и покажите мне где закрывают теги tr, td (http://www.w3.org/TR/html401/struct/tables.html). Или у вас есть основания не доверять w3? Я опять таки говорю, я пишу на html, а не на xhtml (который по спецификации требует закрытия всех тегов). Если вам не по душе такой подход - не надо его навязывать мне, и выставлять его еще и как "полный ппц по отношению к структуре html".

Далее, по поводу css и тп. Мне и так есть о чем писать кроме как рассказывать еще какие стили и куда указывать. Безусловно получить полностью готовый и красивый продукт - приятно, но у меня не так. Я не учу вас html-у, css-у и тп. Я рассказываю про php и yii, поэтому отвлекаться на стили и тп - не собираюсь. Вы получаете готовый пример реализации на yii, как он будет выглядеть визуально у вас - только ваше дело.

[adm] zolter

Было сказано: Пятница, 12 Июнь 2009

Угодить всем я не пытаюсь, поэтому могу только извинится за такой стиль программирования. :)

И кстати, я в принципе не верстальщик (и вообще этим делом не увлекаюсь) поэтому на правильности прописания (или не прописания) своих стилей я не настаиваю. Я не против если вы напишите корректировки к статьям которые вам не понравились в плане стилей/br-ов - и я с радостью подучусь на вашем примере сам, да и откорректирую статью согласно вашим поучениям. :)

[guest] Ponf

Было сказано: Пятница, 12 Июнь 2009

>> Я естественно полагаю что вы умеете подключать jQuery.

Хорошо, что Вы так полагаете, но тем не менее, те, кто не умеет где этому могут научиться?)))

[adm] zolter

Было сказано: Пятница, 12 Июнь 2009

Постараюсь в ближайшие дни написать статью как правильно подключать JS скрипты и CSS через Yii. А пока что можете просто почитать маленьку тему на форуме (http://www.yiiframework.ru/forum/viewtopic.php?f=3&t=95) и сделать примерно так как описано в примере там :)

[guest] Гость

Было сказано: Пятница, 12 Июнь 2009

Я так понял, что дело даже не в учить или не учить CSS, а дело в полном отсутствии разделить код от представления. Если этот момент наглядно в мануале (а ваша статья на это и претендует) принебрегается, то как можно переходить к следующему усложнению архитектуры с тремя волшебными буквами MVC.
Мы используем всю мощь php5 и при этом пишем ахинею, уж извините. Это в стиле иметь в руках бензопилу, но по-старинке применять ее как топор - не включая рубить ударами.

Верстальщик или нет... w3c..

xhtml 1.0 strict - это не что-то альтернативное html 4.0 -ю, а это непосредственно работа консорциума над своими ошибками и говорить, мол я предпочитаю html 4.0 - несколько некорректно, он себя изжил также как карбюраторный двигатель и все кто от него ушел об этом ни разу не жалеют. Я не буду толкать свою позицию, но не за горами html5 - очередная работа над ошибками и принятие новых более красивых решений.

ps: не всегда стандарты нужно слушать, microsoft (а именно их браузер номер один на сегодня к сожалению) с завидной регулярностью клал на стандарты и приходится это учитывать.

А стремиться кодить на php5 в максимально современном стиле не закрывать тег - это как-то противостоит дург-другу. имхо

[adm] zolter

Было сказано: Пятница, 12 Июнь 2009

Ну в принципе ваши слова в чем то имеют смысл :)
Ладно, в будущем буду учить хорошему, а не как халтурить с html4 :)

[guest] Гость

Было сказано: Суббота, 31 Октябрь 2009

Можно ли вызвать мессадж после некоего ajax запроса? Если Да, то как? Допустим, такая ситуация: добавление комментария происходит через Ajax и надо вывести по результату этот информ блок.

[adm] zolter

Было сказано: Суббота, 31 Октябрь 2009

Конечно. Я правда незнаю как именно у вас сделана отправка комментариев, но в большенстве случаев это будет выглядеть вот так:

<?php echo CHtml::ajaxSubmitButton (
"OK",
CController::createUrl('admin/addcountry_ajax'),
array('success' => 'function(a){ alert("Ваше сообщение"); }')
)

[guest] Гость

Было сказано: Вторник, 31 Январь 2017

guest test post
[url=http://googlee.te/]bbcode[/url]
<a href="http://googlee.te/">html</a>
http://googlee.te/ simple

[guest] Гость

Было сказано: Четверг, 23 Февраль 2017

guest test post
[url=http://googlee.te/]bbcode[/url]
<a href="http://googlee.te/">html</a>
http://googlee.te/ simple

[guest] Гость

Было сказано: Воскресенье, 26 Февраль 2017

guest test post
[url=http://googlee.te/]bbcode[/url]
<a href="http://googlee.te/">html</a>
http://googlee.te/ simple

[guest] Гость

Было сказано: Суббота, 04 Март 2017

guest test post
[url=http://googlee.te/]bbcode[/url]
<a href="http://googlee.te/">html</a>
http://googlee.te/ simple

[guest] Гость

Было сказано: Вторник, 14 Март 2017

guest test post
[url=http://googlee.te/]bbcode[/url]
<a href="http://googlee.te/">html</a>
http://googlee.te/ simple

[guest] Гость

Было сказано: Воскресенье, 26 Март 2017

guest test post
[url=http://googlee.te/]bbcode[/url]
<a href="http://googlee.te/">html</a>
http://googlee.te/ simple

[guest] Гость

Было сказано: Среда, 14 Июнь 2017

http://rufifa.info

[guest] Гость

Было сказано: Четверг, 08 Март 2018

guest test post
[url=http://temresults2018.com/]bbcode[/url]
<a href="http://temresults2018.com/">html</a>
http://temresults2018.com/ simple

[guest] Гость

Было сказано: Среда, 04 Апрель 2018


Seriously plenty of amazing info.
cialis sicuro in linea cialis patent expiration [url=http://cialisyoues.com/#]Cialis lowest price[/url] low cost cialis 20mg [url=http://cialisvipsale.com/#]Buy cheap cialis in canada[/url]
pastillas cialis y alcoho cialis online deutschland [url=http://cialisyoues.com/#]Cialis 5 mg[/url] cialis sale online [url=http://cialisvipsale.com/#]Canadian cialis[/url]
cialis para que sirve cialis 20 mg cut in half [url=http://cialisyoues.com/#]Cialis tablets australia[/url]
prices for cialis 50mg <a href="http://cialisvipsale.com/#">Buy cialis online no prescription</a>
http://cialisyoues.com/


[url=http://powtalk.org/index.php?topic=62064.new#new#]Discount cialis[/url]
[url=http://www.peoplescarwash.com/blog/cmt-commerce-customizable-products?page=463#comment-203663#]Cialis 20mg[/url]
[url=http://akpi.ir/forums/topic/tadalafil-5mg/#post-451043#]Cialis uk[/url]
[url=http://www.divorcingapsychopathblog.com/forums/topic/hsejsbcr/page/8/#post-924551#]Cialis pills[/url]
[url=http://www.moneyandsinglemoms.com/forums/topic/free-galleries/page/15/#post-1204#]Cialis from canada[/url]

[guest] Гость

Было сказано: Воскресенье, 29 Апрель 2018

cialis without a doctor's prescription purchase once a day cialis trusted tabled cialis softabs cialis soft tabs for sale generic cialis pro we choice cialis uk cialis 20 mg effectiveness cialis sans ordonnance cialis lilly tadalafi [url=http://cialisvus.com/#]generic cialis[/url] are there generic cialis [url=http://cialisvus.com/#]online cialis[/url] cialis without a doctor's prescription cialis name brand cheap venta de cialis canada sublingual cialis online cialis tablets for sale overnight cialis tadalafil cialis 5 mg scheda tecnica cialis generic tadalafil buy how do cialis pills work buy generic cialis
can i take cialis and ecstasy cialis 20 mg cost cialis generic availability cialis kamagra levitra i recommend cialis generico cialis savings card cialis ahumada tadalafil 5mg free generic cialis import cialis cialis generisches kanada buy cialis online cheapest [url=http://cialisvus.com/#]cialis from canada[/url] are there generic cialis [url=http://cialisvus.com/#]cialis for sale[/url] cialis ahumada cialis sale online cialis generico in farmacia cialis without a doctor's prescription cialis uk tesco price cialis
costo in farmacia cialis cialis manufacturer coupon calis cialis generic availability rezeptfrei cialis apotheke cialis italia gratis generic cialis pro cialis super kamagra canada discount drugs cialis [url=http://cialisvus.com/#]cialis daily[/url] cialis 5 mg buy [url=http://cialisvus.com/#]200 cialis coupon[/url] are there generic cialis cialis dosage cialis 10 doctissimo acheter cialis meilleur pri cialis prezzo in linea basso cialis ahumada cialis usa cost low dose cialis blood pressure look here cialis order on line cialis pills boards
cialis dosage generic cialis with dapoxetine cialis daily dose generic cialis online click now buy cialis brand cialis generic tadalafil buy cialis generique cialis generisches kanada cialis online deutschland ou acheter du cialis pas cher cialis side effects dangers [url=http://cialisvus.com/#]cialis generique[/url] side effects for cialis [url=http://cialisvus.com/#]cialis 20 mg[/url] comprar cialis 10 espa241a cialis farmacias guadalajara cialis kaufen bankberweisung cialis online cialis daily new zealand look here cialis cheap canada cialis tadalafil can i take cialis and ecstasy buy cialis online legal

Оставить комментарий


Код:
Имя: