Как создать редактируемые элементы в CakePHP? - PullRequest
0 голосов
/ 20 февраля 2012

Я хочу использовать в приложении cakephp слайдер контента (например, http://css -tricks.com / examples / FeaturedContentSlider / ).Содержимое этого элемента может быть изменено в админ-панели.Я просто хочу разместить код в макете, чтобы вставить элемент на сайт.Как создать такой элемент?Это должен быть Помощник, Плагин или как?

Ответы [ 2 ]

0 голосов
/ 20 февраля 2012

Это довольно просто.Думайте об элементе как о представлении.Установите переменную в контроллере (в зависимости от параметров администратора, которые, вероятно, хранятся в базе данных), используя $this->set('myvar', $data);, и обращайтесь к переменным в представлении, как обычно:

Где-то в вашем представлении.ctp

<?php echo $this->element('contentslider'); ?>

Просмотр / Элементы / contentslider.ctp

<?php 
/* print all images in the set array */
foreach($myvar['images'] as $image){
echo $image['url'];
}
/* print link only if admin is logged in */
if ($myvar['adminloggedin'] == true){
echo $this->Html->link('/admin'/);
}
?>

и т. д.Идея здесь в том, что вы относитесь к элементу так же, как к представлению.Установите переменные в вашем контроллере и получите доступ к ним в элементе с помощью простой логики for и if для печати динамического содержимого.Таким образом, для вашего слайдера изображений вы можете создать цикл for, подобный следующему:

<?php
$i = 0;
foreach($myvar['images'] as $image){
$i++;?>
<div class="panel" title="Panel <?php echo $i; ?>">
                <div class="wrapper">
                    <img src="images/tempphoto-<?php echo $i; ?>.jpg" alt="temp">
                    <div class="photo-meta-data">
                        Photo Credit: <a href="<?php ehco $image['url']; ?>">Kaustav Bhattacharya</a><br>
                        <span><?php echo $image['description']; ?></span>
                    </div>
                </div>
            </div>
}
?>
0 голосов
/ 20 февраля 2012
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...