CakePHP - Manual/Developing/Helpers/CreatingHelpers /wiki/Manual/Developing/Helpers/CreatingHelpers History/revisions of CakePHP/Manual/Developing/Helpers/CreatingHelpers en-us 2009-03-15 13:51:04 /wiki/Manual/Developing/Helpers/CreatingHelpers/show?time=2009-03-15+13%3A51%3A04 <div class="pageBefore"><img src="/wiki_/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" /></div><div class="page"> <b>Сравнение версий <a name=".manual.developing.helpers.creatinghelpers" href="/wiki/Manual/Developing/Helpers/CreatingHelpers" class="">/Manual&nbsp;/&nbsp;Developing&nbsp;/&nbsp;Helpers&nbsp;/&nbsp;Creating&nbsp;Helpers</a> за <a href="/wiki/Manual/Developing/Helpers/CreatingHelpers?time=2009-03-15+13%3A51%3A04">2009-03-15 13:51:04</a> и <a href="/wiki/Manual/Developing/Helpers/CreatingHelpers">2009-03-15 13:51:14</a></b><br /> <br /> <b>Добавлено:</b><br /> <div class="additions">Не&nbsp;забывайте, в&nbsp;случае необходимости, подключать <span class="missingpage">Form&nbsp;Helper</span><a href="/wiki/FormHelper/edit?add=1" title="Создать эту страницу">?</a> в&nbsp;массиве $helpers. <br /> Хелперы Html и&nbsp;Session (если сессии включены) всегда доступны.</div><br /> <b>Удалено:</b><br /> <div class="deletions">Не&nbsp;забывайте, в&nbsp;случае необходимости, подключать <span class="missingpage">Form&nbsp;Helper</span><a href="/wiki/FormHelper/edit?add=1" title="Создать эту страницу">?</a> в&nbsp;массиве $helpers. Хелперы Html и&nbsp;Session (если сессии включены) всегда доступны.</div></div> 2009-03-15 13:38:30 /wiki/Manual/Developing/Helpers/CreatingHelpers/show?time=2009-03-15+13%3A38%3A30 <div class="pageBefore"><img src="/wiki_/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" /></div><div class="page"> <b>Сравнение версий <a href="/wiki/Manual/Developing/Helpers/CreatingHelpers" class="">/Manual&nbsp;/&nbsp;Developing&nbsp;/&nbsp;Helpers&nbsp;/&nbsp;Creating&nbsp;Helpers</a> за <a href="/wiki/Manual/Developing/Helpers/CreatingHelpers?time=2009-03-15+13%3A38%3A30">2009-03-15 13:38:30</a> и <a href="/wiki/Manual/Developing/Helpers/CreatingHelpers?time=2009-03-15+13%3A51%3A04">2009-03-15 13:51:04</a></b><br /> <br /> <b>Добавлено:</b><br /> <div class="additions"><a name="h855-1"></a><h3>Использование вашего хелпера</h3> После того, как&nbsp;вы&nbsp;создали свой хелпер и&nbsp;разместили его&nbsp;в&nbsp;/app/views/helpers/, вы&nbsp;можете подключать его&nbsp;в&nbsp;ваши контроллеры, используя специальную переменную $helpers.<br /> Когда контроллер уже&nbsp;осведомлен об&nbsp;этом новом классе, вы&nbsp;можете использовать этот класс в&nbsp;ваших отображениях через переменную, названную также, как&nbsp;и&nbsp;хелпер: <br /> &lt;!-- создаем линк, используя новый хелпер --&gt;<br /> &lt;?php echo $link-&gt;makeEdit('Change this Recipe', '/recipes/edit/5') ?&gt;<br /> Не&nbsp;забывайте, в&nbsp;случае необходимости, подключать <span class="missingpage">Form&nbsp;Helper</span><a href="/wiki/FormHelper/edit?add=1" title="Создать эту страницу">?</a> в&nbsp;массиве $helpers. Хелперы Html и&nbsp;Session (если сессии включены) всегда доступны.</div></div> 2009-03-13 11:37:14 /wiki/Manual/Developing/Helpers/CreatingHelpers/show?time=2009-03-13+11%3A37%3A14 <div class="pageBefore"><img src="/wiki_/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" /></div><div class="page"> <b>Сравнение версий <a href="/wiki/Manual/Developing/Helpers/CreatingHelpers" class="">/Manual&nbsp;/&nbsp;Developing&nbsp;/&nbsp;Helpers&nbsp;/&nbsp;Creating&nbsp;Helpers</a> за <a href="/wiki/Manual/Developing/Helpers/CreatingHelpers?time=2009-03-13+11%3A37%3A14">2009-03-13 11:37:14</a> и <a href="/wiki/Manual/Developing/Helpers/CreatingHelpers?time=2009-03-15+13%3A38%3A30">2009-03-15 13:38:30</a></b><br /> <br /> <b>Добавлено:</b><br /> <div class="additions">Допустим, мы&nbsp;хотим создать хелпер, который будет использоваться в&nbsp;различных местах вашего приложения для&nbsp;вывода, специально созданного (со стилями из&nbsp;CSS) линка. Для&nbsp;этого вам&nbsp;необходимо создать новый класс в&nbsp;/app/views/helpers. Давайте назовем наш&nbsp;хелпер <!--notypo-->LinkHelper<!--/notypo-->. Реальный PHP&nbsp;файл с&nbsp;классом будет выглядеть так: <br /> <!--notypo--><div class="code"><code><span style="color: #000000"> <span style="color: #0000BB">&lt;?php<br /></span><span style="color: #FF8000">/*&nbsp;/app/views/helpers/link.php&nbsp;*/<br /></span><span style="color: #007700">class&nbsp;</span><span style="color: #0000BB">LinkHelper&nbsp;</span><span style="color: #007700">extends&nbsp;</span><span style="color: #0000BB">AppHelper&nbsp;</span><span style="color: #007700">{<br />&nbsp;&nbsp;&nbsp;&nbsp;function&nbsp;</span><span style="color: #0000BB">makeEdit</span><span style="color: #007700">(</span><span style="color: #0000BB">$title</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$url</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;здесь&nbsp;код&nbsp;по&nbsp;созданию&nbsp;линка&nbsp;...<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">}<br />}<br /></span><span style="color: #0000BB">?&gt;</span> </span> </code></div><!--/notypo--><br /> В&nbsp;Helper классе <!--notypo-->CakePHP<!--/notypo--> существует несколько методов, которые вы&nbsp;можете захотеть использовать:<br /> <div class="indent"> <strong>output(string $string)</strong></div> Используйте эту&nbsp;функцию для&nbsp;передачи любых данных обратно в&nbsp;ваше отображение.<br /> <!--notypo--><div class="code"><code><span style="color: #000000"> <span style="color: #0000BB">&lt;?php<br /></span><span style="color: #007700">function&nbsp;</span><span style="color: #0000BB">makeEdit</span><span style="color: #007700">(</span><span style="color: #0000BB">$title</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$url</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;Используем&nbsp;функцию&nbsp;хелпера&nbsp;output&nbsp;для&nbsp;передачи<br />&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;отформатированных&nbsp;данных&nbsp;обратно&nbsp;в&nbsp;отображение:<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">return&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">output</span><span style="color: #007700">(<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">"&lt;div&nbsp;class=\"editOuter\"&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;a&nbsp;href=\"</span><span style="color: #0000BB">$url</span><span style="color: #DD0000">\"&nbsp;class=\"edit\"&gt;</span><span style="color: #0000BB">$title</span><span style="color: #DD0000">&lt;/a&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/div&gt;"<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">);<br />}<br /></span><span style="color: #0000BB">?&gt;</span> </span> </code></div><!--/notypo--><br /> <hr noshade="noshade" size="1" /><a name="h855-1"></a><h3>Подключение других хелперов</h3> Вы&nbsp;можете захотеть использовать некоторую функциональность уже&nbsp;существующую в&nbsp;других хелперах. Для&nbsp;этого вы&nbsp;можете определить хелперы, которые хотите использовать, с&nbsp;помощью массива $helpers. <br /> <!--notypo--><div class="code"><code><span style="color: #000000"> <span style="color: #0000BB">&lt;?php<br /></span><span style="color: #FF8000">/*&nbsp;/app/views/helpers/link.php&nbsp;(использование&nbsp;других&nbsp;хелперов)&nbsp;*/<br /></span><span style="color: #007700">class&nbsp;</span><span style="color: #0000BB">LinkHelper&nbsp;</span><span style="color: #007700">extends&nbsp;</span><span style="color: #0000BB">AppHelper&nbsp;</span><span style="color: #007700">{<br />&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;</span><span style="color: #0000BB">$helpers&nbsp;</span><span style="color: #007700">=&nbsp;array(</span><span style="color: #DD0000">'Html'</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;function&nbsp;</span><span style="color: #0000BB">makeEdit</span><span style="color: #007700">(</span><span style="color: #0000BB">$title</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$url</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;Используем&nbsp;HTML&nbsp;хелпер&nbsp;для&nbsp;вывода<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;оформатированных&nbsp;данных:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$link&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">Html</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">link</span><span style="color: #007700">(</span><span style="color: #0000BB">$title</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$url</span><span style="color: #007700">,&nbsp;array(</span><span style="color: #DD0000">'class'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #DD0000">'edit'</span><span style="color: #007700">));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">output</span><span style="color: #007700">(</span><span style="color: #DD0000">"&lt;div&nbsp;class=\"editOuter\"&gt;</span><span style="color: #0000BB">$link</span><span style="color: #DD0000">&lt;/div&gt;"</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br /></span><span style="color: #0000BB">?&gt;</span> </span> </code></div><!--/notypo--></div><br /> <b>Удалено:</b><br /> <div class="deletions">...</div></div>