Home PageКаталог Изменения НовыеКомментарии Пользователи Регистрация
CakePHP: Manual/Developing/Helpers/CreatingHelpers ...

Создание помощников


Если встроенный хелпер (или представленный на Cakeforge Пекарни) не подходит вам, то хелперы легко создать.


Допустим, мы хотим создать хелпер, который будет использоваться в различных местах вашего приложения для вывода, специально созданного (со стилями из CSS) линка. Для этого вам необходимо создать новый класс в /app/views/helpers. Давайте назовем наш хелпер LinkHelper. Реальный PHP файл с классом будет выглядеть так:


<?php
/* /app/views/helpers/link.php */

class LinkHelper extends AppHelper {
    function 
makeEdit($title$url) {
        
// здесь код по созданию линка ...
    
}
}
?>


В Helper классе CakePHP существует несколько методов, которые вы можете захотеть использовать:


output(string $string)

Используйте эту функцию для передачи любых данных обратно в ваше отображение.


<?php
function makeEdit($title$url) {
    
// Используем функцию хелпера output для передачи
    // отформатированных данных обратно в отображение:
    
return $this->output(
        
"<div class=\"editOuter\">
         <a href=\"$url\" class=\"edit\">$title</a>
         </div>"
    
);
}
?>



Подключение других хелперов


Вы можете захотеть использовать некоторую функциональность уже существующую в других хелперах. Для этого вы можете определить хелперы, которые хотите использовать, с помощью массива $helpers.


<?php
/* /app/views/helpers/link.php (использование других хелперов) */
class LinkHelper extends AppHelper {
    var 
$helpers = array('Html');

    function 
makeEdit($title$url) {
        
// Используем HTML хелпер для вывода
        // оформатированных данных:

        
$link $this->Html->link($title$url, array('class' => 'edit'));

        return 
$this->output("<div class=\"editOuter\">$link</div>");
    }
}
?>



Использование вашего хелпера


После того, как вы создали свой хелпер и разместили его в /app/views/helpers/, вы можете подключать его в ваши контроллеры, используя специальную переменную $helpers.


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


<!-- создаем линк, используя новый хелпер -->
<?php echo $link->makeEdit('Change this Recipe''/recipes/edit/5'?>


Не забывайте, в случае необходимости, подключать FormHelper в массиве $helpers. 
Хелперы Html и Session (если сессии включены) всегда доступны.


<< Использование помощников | Создание функциональности для всех помощников >>


 
Комментарии
Добавить комментарий:

Файлов нет. [Показать файлы/форму]