Şimdi bu dediğinin çalışması için $source değişkenini viewblock fonksiyonunu çalıştırmadan önce eşitlemem lazım. Yani
$source = $newproducts;
viewblock('newproducts', $source);şeklinde yaparsam bir problem yok. Peki bunun olduğu sayfada bir blok daha tanımladığım zaman yine $source = $newmembers; gibi bir tanımlama yapmam gerekecek. Üstteki kodla çakışma olmaz mı?
eşitlemeyi modul dosyası içinde yapacaksın
yani function
if (!function_exists('viewblock'))
{
function viewblock($module, $source= '')
{
$blockpath = "app/views/blocks/{$module}.php";
if(include($blockpath) == TRUE){
return TRUE;
}else{
return FALSE;
}
}
}
modul dosyası
<?php
$newproducts = $source;
$np=0; foreach ($newproducts as $newproduct){ ?>
<section class="item news<?php if($np==0){ ?> active<?php } ?>">
<img src="<?= $newproduct['image']; ?>">
<div class="title">
<a href="/products/<?= $newproduct['id']; ?>/"><?= $newproduct['title']; ?></a>
</div>
<p><strong>Ürün Fiyatı:</strong> <?= $newproduct['price']; ?></p>
<a href="/products/<?= $newproduct['id']; ?>/" class="details">Detaylı Bilgi</a>
</section>
<?php $np++; } ?>
ekstra bir parametre varsa fonksiyonun içine source değişkeniyle bunu gönder, sonra modül içinde bu değişken gerekliyse bunu modül içindeki değişkene eşitle.
fonksiyon mantığınız tam olarak oturmamış hocam.
fonksiyon dışarıya kapalı bir ortamdır, kendi değişken ve işlemlerine sahiptir.
Fonksiyon içine dışarıdan istediğiniz değişkenleri sokar, istediğiniz işlemi yapar ve sonucu döndürürsünüz.