<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Комментарии на: Ko3: знаете ли вы? Часть 2</title>
	<atom:link href="http://brotkin.ru/2009/11/11/do-you-know-2/feed/" rel="self" type="application/rss+xml" />
	<link>http://brotkin.ru/2009/11/11/do-you-know-2/</link>
	<description>ковыряемся в Internet</description>
	<lastBuildDate>Mon, 30 Jan 2012 23:38:09 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
	<item>
		<title>От: janson</title>
		<link>http://brotkin.ru/2009/11/11/do-you-know-2/comment-page-1/#comment-485</link>
		<dc:creator>janson</dc:creator>
		<pubDate>Mon, 30 Nov 2009 15:02:21 +0000</pubDate>
		<guid isPermaLink="false">http://brotkin.ru/?p=276#comment-485</guid>
		<description>да, я ошибся. :)
Всё работает как надо.</description>
		<content:encoded><![CDATA[<p>да, я ошибся. <img src='http://brotkin.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
Всё работает как надо.</p>
]]></content:encoded>
	</item>
	<item>
		<title>От: BIakaVeron</title>
		<link>http://brotkin.ru/2009/11/11/do-you-know-2/comment-page-1/#comment-484</link>
		<dc:creator>BIakaVeron</dc:creator>
		<pubDate>Mon, 30 Nov 2009 14:39:13 +0000</pubDate>
		<guid isPermaLink="false">http://brotkin.ru/?p=276#comment-484</guid>
		<description>Эм... Если не ошибаюсь, она не останавливается на первой, просто на каждое поле может быть не более одной ошибки. Т.е. если на логине висит несколько правил и ни одно не соблюдено, ошибка сгенерируется только по первому из них.
Если хотите обойти это ограничение, то можете изменить класс Validate, используя каскадную файловую систему Kohana.</description>
		<content:encoded><![CDATA[<p>Эм&#8230; Если не ошибаюсь, она не останавливается на первой, просто на каждое поле может быть не более одной ошибки. Т.е. если на логине висит несколько правил и ни одно не соблюдено, ошибка сгенерируется только по первому из них.<br />
Если хотите обойти это ограничение, то можете изменить класс Validate, используя каскадную файловую систему Kohana.</p>
]]></content:encoded>
	</item>
	<item>
		<title>От: janson</title>
		<link>http://brotkin.ru/2009/11/11/do-you-know-2/comment-page-1/#comment-483</link>
		<dc:creator>janson</dc:creator>
		<pubDate>Mon, 30 Nov 2009 14:23:22 +0000</pubDate>
		<guid isPermaLink="false">http://brotkin.ru/?p=276#comment-483</guid>
		<description>before() спас положение.

В Controller_Main прописал также метод action_login()  с отображением формы пользователю и выводом ошибки.

В before() если пользователь не залогинен, и не имеет прав доступа - подменяю action:

Request::instance()-&gt;action = &#039;login&#039;;

В противном случае - выполнение продолжается по намеченному плану.

:)


Но кстати возник вопрос по обработке ошибок: по умолчанию Kohana останавливается после первой ошибки валидации и возвращает её, не проверяя введенные данные дальше.
Есть какой-то способ, заставить фреймворк проверять все данные формы?</description>
		<content:encoded><![CDATA[<p>before() спас положение.</p>
<p>В Controller_Main прописал также метод action_login()  с отображением формы пользователю и выводом ошибки.</p>
<p>В before() если пользователь не залогинен, и не имеет прав доступа &#8211; подменяю action:</p>
<p>Request::instance()-&gt;action = &#8216;login&#8217;;</p>
<p>В противном случае &#8211; выполнение продолжается по намеченному плану.<br />
 <img src='http://brotkin.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Но кстати возник вопрос по обработке ошибок: по умолчанию Kohana останавливается после первой ошибки валидации и возвращает её, не проверяя введенные данные дальше.<br />
Есть какой-то способ, заставить фреймворк проверять все данные формы?</p>
]]></content:encoded>
	</item>
	<item>
		<title>От: BIakaVeron</title>
		<link>http://brotkin.ru/2009/11/11/do-you-know-2/comment-page-1/#comment-482</link>
		<dc:creator>BIakaVeron</dc:creator>
		<pubDate>Mon, 30 Nov 2009 10:48:39 +0000</pubDate>
		<guid isPermaLink="false">http://brotkin.ru/?p=276#comment-482</guid>
		<description>1. Да.
2. Ничего проблематичного. Я использую сессии. Кроме того, редирект очищает глобальные массивы $_POST и $_GET, что весьма полезно при работе с формами.
Опять же, что будет с пользователем после того, как он залогинится? Как и куда Вы будете его перенаправлять?</description>
		<content:encoded><![CDATA[<p>1. Да.<br />
2. Ничего проблематичного. Я использую сессии. Кроме того, редирект очищает глобальные массивы $_POST и $_GET, что весьма полезно при работе с формами.<br />
Опять же, что будет с пользователем после того, как он залогинится? Как и куда Вы будете его перенаправлять?</p>
]]></content:encoded>
	</item>
	<item>
		<title>От: janson</title>
		<link>http://brotkin.ru/2009/11/11/do-you-know-2/comment-page-1/#comment-481</link>
		<dc:creator>janson</dc:creator>
		<pubDate>Mon, 30 Nov 2009 10:42:23 +0000</pubDate>
		<guid isPermaLink="false">http://brotkin.ru/?p=276#comment-481</guid>
		<description>2. редирект использовать не хочу. Ведь в случае ошибки логина будет проблематично передать в запрос информацию о самой ошибке. Опять же - лишние редиректы при проверках мне кажутся недостаточно хорошим решением. :)

попробую сегодня с before() пошаманить. Спасибо.</description>
		<content:encoded><![CDATA[<p>2. редирект использовать не хочу. Ведь в случае ошибки логина будет проблематично передать в запрос информацию о самой ошибке. Опять же &#8211; лишние редиректы при проверках мне кажутся недостаточно хорошим решением. <img src='http://brotkin.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>попробую сегодня с before() пошаманить. Спасибо.</p>
]]></content:encoded>
	</item>
	<item>
		<title>От: janson</title>
		<link>http://brotkin.ru/2009/11/11/do-you-know-2/comment-page-1/#comment-480</link>
		<dc:creator>janson</dc:creator>
		<pubDate>Mon, 30 Nov 2009 10:39:35 +0000</pubDate>
		<guid isPermaLink="false">http://brotkin.ru/?p=276#comment-480</guid>
		<description>&gt;1. Вместо конструктора используйте before().

В этом случае нужно будет в наследуемых классах явно обозначать метод before() ?

before()
{
    parent::before();
}</description>
		<content:encoded><![CDATA[<p>&gt;1. Вместо конструктора используйте before().</p>
<p>В этом случае нужно будет в наследуемых классах явно обозначать метод before() ?</p>
<p>before()<br />
{<br />
    parent::before();<br />
}</p>
]]></content:encoded>
	</item>
	<item>
		<title>От: BIakaVeron</title>
		<link>http://brotkin.ru/2009/11/11/do-you-know-2/comment-page-1/#comment-479</link>
		<dc:creator>BIakaVeron</dc:creator>
		<pubDate>Mon, 30 Nov 2009 05:42:20 +0000</pubDate>
		<guid isPermaLink="false">http://brotkin.ru/?p=276#comment-479</guid>
		<description>1. Вместо конструктора используйте before().
2. Если хочется поменять экшен, просто работайте с Request::$action, он доступен для изменения.
3. Так просто прервать работу фреймворка не получится. Можно бросить Exception, можно сделать редирект (я обычно использую именно его, если надо проводить различные проверки все самого экшена).</description>
		<content:encoded><![CDATA[<p>1. Вместо конструктора используйте before().<br />
2. Если хочется поменять экшен, просто работайте с Request::$action, он доступен для изменения.<br />
3. Так просто прервать работу фреймворка не получится. Можно бросить Exception, можно сделать редирект (я обычно использую именно его, если надо проводить различные проверки все самого экшена).</p>
]]></content:encoded>
	</item>
	<item>
		<title>От: janson</title>
		<link>http://brotkin.ru/2009/11/11/do-you-know-2/comment-page-1/#comment-478</link>
		<dc:creator>janson</dc:creator>
		<pubDate>Sun, 29 Nov 2009 16:57:11 +0000</pubDate>
		<guid isPermaLink="false">http://brotkin.ru/?p=276#comment-478</guid>
		<description>Иван, есть вопрос. Не знаю, большой или нет, но он есть :)

Начал писать авторизацию на Ko3.
Сделать решил следующим образом:

Создаю Controller_Main extends Controller_Template {}
В конструкторе, вставляю проверку на авторизацию. И по результатам проверки, соответственно нужно сделать одно из двух:
1. вывести форму логина
2. вывести запрошенный контроллер и экшн.

Все остальные контроллеры наследуются от Controller_Main

Но проблема в том, что я не знаю, как прервать поток выполнения, или же подменить вызываемый контроллер и экшн. :(

Например в __construct() есть код:

    if (!$this-&gt;a2-&gt;logged_in() &#124;&#124; $this-&gt;user-&gt;role !== &#039;admin&#039;)
    {
        echo Request::factory(&#039;login&#039;)-&gt;execute();
    }
    else
    {
        // всё окейно. Зашел админ
    }


в данном случае форма логина выводится, но - поток выполнения приложения не прерывается, и успешно выводит запрошенный пользователем результат.

Что можно сделать, для решения этой задачи?</description>
		<content:encoded><![CDATA[<p>Иван, есть вопрос. Не знаю, большой или нет, но он есть <img src='http://brotkin.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Начал писать авторизацию на Ko3.<br />
Сделать решил следующим образом:</p>
<p>Создаю Controller_Main extends Controller_Template {}<br />
В конструкторе, вставляю проверку на авторизацию. И по результатам проверки, соответственно нужно сделать одно из двух:<br />
1. вывести форму логина<br />
2. вывести запрошенный контроллер и экшн.</p>
<p>Все остальные контроллеры наследуются от Controller_Main</p>
<p>Но проблема в том, что я не знаю, как прервать поток выполнения, или же подменить вызываемый контроллер и экшн. <img src='http://brotkin.ru/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<p>Например в __construct() есть код:</p>
<p>    if (!$this-&gt;a2-&gt;logged_in() || $this-&gt;user-&gt;role !== &#8216;admin&#8217;)<br />
    {<br />
        echo Request::factory(&#8216;login&#8217;)-&gt;execute();<br />
    }<br />
    else<br />
    {<br />
        // всё окейно. Зашел админ<br />
    }</p>
<p>в данном случае форма логина выводится, но &#8211; поток выполнения приложения не прерывается, и успешно выводит запрошенный пользователем результат.</p>
<p>Что можно сделать, для решения этой задачи?</p>
]]></content:encoded>
	</item>
	<item>
		<title>От: BIakaVeron</title>
		<link>http://brotkin.ru/2009/11/11/do-you-know-2/comment-page-1/#comment-477</link>
		<dc:creator>BIakaVeron</dc:creator>
		<pubDate>Tue, 17 Nov 2009 06:51:50 +0000</pubDate>
		<guid isPermaLink="false">http://brotkin.ru/?p=276#comment-477</guid>
		<description>Странно, думал, что писал о Database ранее... Посмотрите &lt;a href=&quot;http://maxyc.ru/2009/11/kohana3-db/&quot; rel=&quot;nofollow&quot;&gt;здесь&lt;/a&gt;, если что-то будет непонятно - будем творить ;)</description>
		<content:encoded><![CDATA[<p>Странно, думал, что писал о Database ранее&#8230; Посмотрите <a href="http://maxyc.ru/2009/11/kohana3-db/" rel="nofollow">здесь</a>, если что-то будет непонятно &#8211; будем творить <img src='http://brotkin.ru/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>От: Chode</title>
		<link>http://brotkin.ru/2009/11/11/do-you-know-2/comment-page-1/#comment-476</link>
		<dc:creator>Chode</dc:creator>
		<pubDate>Mon, 16 Nov 2009 17:52:15 +0000</pubDate>
		<guid isPermaLink="false">http://brotkin.ru/?p=276#comment-476</guid>
		<description>Можно отдельные пост об использовании нового модуля Database в Mysql ?
Мне, как новичку очень пригодиться</description>
		<content:encoded><![CDATA[<p>Можно отдельные пост об использовании нового модуля Database в Mysql ?<br />
Мне, как новичку очень пригодиться</p>
]]></content:encoded>
	</item>
</channel>
</rss>

