Это довольно просто.Думайте об элементе как о представлении.Установите переменную в контроллере (в зависимости от параметров администратора, которые, вероятно, хранятся в базе данных), используя $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>
}
?>