home.php dosyamda blocklarımı ayrı ayrı php dosyalarında barındırıp bunları anasayfaya çekmeye çalışıyorum. Fakat çektiğim dosyanın include 'block.php'; şeklinde görünmesini istemediğim için viewblock adlı bir fonksiyon yaptım ve örnek veriyorum
<?= viewblock("newproducts"); ?> şeklinde yaptığım zaman bloğumu oraya çekmesini istedim. Fonksiyonum aşağıdaki gibi:
fonksiyonum:
if (!function_exists('viewblock'))
{
function viewblock($module)
{
$blockpath = "app/views/blocks/{$module}.php";
return (include $blockpath);
}
}
block kodlarım aşağıdaki gibi.
<?php $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++; } ?>aldığım 2 hata:
Notice: Undefined variable: newproducts in /Applications/XAMPP/xamppfiles/htdocs/proje/app/views/blocks/newproducts.php on line 10
Warning: Invalid argument supplied for foreach() in /Applications/XAMPP/xamppfiles/htdocs/proje/app/views/blocks/newproducts.php on line 10
fonksiyon kullanmak yerine php dosyasını direkt olarak include etsem herhangi bir problem yok. Niye burada hata veriyor anlam veremedim.