<?php

/**
 * otestuje existenci šablony a načte ji, případně načte hlavní stránku v daném zanoření. Funkce je analogická k funkci kernel_require_script
 * \param array $params: pole proměnných prevzatých z sablony. Musí obsahovat promenné $sub (počet vnoření) a $main (hlavní strana v daném vnoření)
 * \param object &$smarty: objekt smarty 
 * \global $webdoc je očkáváno $webdoc[templates_dir] pro určiní adresáře s šablonami
 * \return false pokud dojde k chybě 
 */
function smarty_function_include_template($params,&$smarty)
{
  global $webdoc;
  extract($params); //vytvoreni samostatnych promennych z pole $params
  $params["smarty_include_vars"]=Array(); //definovani novych promennych v $params, bez nich to nebude fungovat

  if (!$webdoc["database_connection"]) //ukonceni, pokud neni pripojeni k db
  {
    $params["smarty_include_tpl_file"]="$webdoc[templates_dir]message.tpl";
    $smarty->_smarty_include($params); //nacteni sablony pro zobrazeni chybove zpravy
    return false;
  }
 
  //text existence promennych $sub a $main
  if (!isset($sub))
  {
    $smarty->trigger_error("include_template: nebyl zadan parametr sub."); //Smarty error
    return false;
  }
  else $sub=(int)$sub;
  if (!isset($main))
  {
    $smarty->trigger_error("include_template: nebyl zadan parametr main.");
    return false;
  }

  $dir="pages/"; //slozka ve ktere je nacteny skript a sablona (stejna struktura)
  for ($i=1; $i<$sub; $i++) //zpracovani parametru $_GET["subpage$i"], kde $i je od 1 do $sub-1 a vytvoreni $dir
  {
    if (isset($_GET["subpage$i"])) $dir.=$_GET["subpage$i"]."/";
    else break;
  }
  if (!isset($_GET["subpage$sub"])) //test existence parametru $_GET["subpage$sub"]
  {
    if (is_file("./$dir$main.php")) $params["smarty_include_tpl_file"]="$webdoc[templates_dir]$dir$main.tpl"; //pokud neexistuje, nacte se hlavni stranka v danem zanoreni (existuje-li)
    else $params["smarty_include_tpl_file"]="$webdoc[templates_dir]not-found.tpl"; //pokud skript neexistuje: naplneni parametru cesty k sablone chybove stranky
  }
  else //pokud parametr existuje
  {
    if (is_file("./".$dir.$_GET["subpage$i"].".php")) $params["smarty_include_tpl_file"]=$webdoc["templates_dir"].$dir.$_GET["subpage$i"].".tpl"; //pokud skript existuje: naplneni parametru cesty k sablone daneho skriptu
    else $params["smarty_include_tpl_file"]="$webdoc[templates_dir]not-found.tpl"; //pokud skript neexistuje: naplneni parametru cesty k sablone chybove stranky
  }
  if (is_file($params["smarty_include_tpl_file"])) $smarty->_smarty_include($params); //test existence sablony
  else
  {
    //$smarty->trigger_error("include_template: sablona $params[smarty_include_tpl_file] nebyla nalezena."); //Smarty error (mozno zakomentovat)
    $webdoc["message"][]=database_get_message("template_not_found");
    $smarty->assign("webdoc",$webdoc);
    $params["smarty_include_tpl_file"]="$webdoc[templates_dir]message.tpl";
    $smarty->_smarty_include($params); //nacteni sablony pro zobrazeni chybove zpravy
    return false;    
  }
}

?>
