Met adlı üyeden alıntı: mesajı görüntüle
$newproducts global olmadığı için fonksiyon içine taşınamıyordur. Fonksiyon içinde global olarak tanımlamalı yada en başta global değişken olarak tanımlamalısınız.

if (!function_exists('viewblock'))
{
   function viewblock($module)
   {
      global $newproducts;
      $blockpath = "app/views/blocks/{$module}.php";
      return (include $blockpath);
   }
}
veya en başından $GLOBALS['newproducts'] gibi global değişken olarak tanımlamalısınız.Bir başka seçenek fonksiyona yeni bir parametre ekleyip girdi olarak alabilirsiniz, son seçenek en uygun olanı diyebilirim. Tabi ki yapıyı siz biliyorsunuz en uygun olana siz karar vermesiliniz.
malesef. daha önceden de denedim bunu ama sonuç alamadım. Hatta bunu yaptıktan sonra aldığım hata mesajı şu şekilde:

Warning: Invalid argument supplied for foreach() in /Applications/XAMPP/xamppfiles/htdocs/proje/app/views/blocks/newproducts.php on line 10
1