Autor Zpráva
nyllo
Profil
Dobrý den,

snažím se napsat loader na šablonu. Chtěl bych aby načetl veškeré soubory ve složce a ty následovně vypsal.

Tímto volám.
$themeLoad = new presentRouter('template');
$themeLoad->present__loader();
$themeLoad->present__extract();



Tento kód by měl načítat šablonu. Potřeboval bych upravit aby načítal ze složky apps/presents

class presentRouter
{
  private $themeFolder;
  private $themeFiles = array();
   
  public function __construct($themeFolder)
  {
    $this->themeFolder = $themeFolder;
  }
  
  public function present__loader()
  {
    $themeFolder = dir($this->themeFolder);

    while ($theme = $themeFolder->read())
    {
        if (is_file($this->themeFolder . '/' . $theme))
        {
            $this->themeFiles[] = $theme;
        }
    }
    $themeFolder->close();
    
    }
  
  public function present__extract()
  {
    foreach ($this->themeFiles as $files)
    {
      $loadFile = $this->themeFolder . '/' . $files;
      require($loadFile);
    }
  }
}

Předem děkuji za rady.
abc
Profil
Tu složku, ve které má hledat, mu předáváš v konstruktoru, tedy mu tu cestu předej tam...
$themeLoad = new presentRouter('app/presents');
nyllo
Profil
abc:

to už mě napadlo, v případě že použiji tento formát app/presents/%template% tak to problém neřeší

z nějakého mě neznámého důvodu to nenačítá obsah složky se šablonou.
abc
Profil
Protože ta třída očekává adresář - app/presents/%template% žádný adresář není
nyllo
Profil
abc:
Tak mám aplikovaný tento formát
$themeLoad = new presentRouter('app/presents/template');


$themeFolder se naplní
Directory Object ( [path] => apps/presents/bigbang/ [handle] => Resource id #37 )
nyllo
Profil
Tak jsem se to pokusil celé předělat. Bohužel to též nepomohlo.

$themeLoad = new presentRouter(THEME_folder_path . THEME_name);
$themeLoad->present__view('index');



class presentRouter
{
  private $themeFolder;
  private $themeClass;
   
  public function __construct($themeFolder)
  {
    $this->themeFolder = $themeFolder;
  }
  
  public function present__view($themeClass)
  {
    $themeFolder = $this->themeFolder;
   
    include($themeFolder . "/" . $themeClass . ".phtml");
  }

}

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: