Witam serdecznie,
po przeczytaniu wszystkich artykułow na wiki oraz sporej czesci dokumentacji, postanowilem uczynic OPT 'moim' systemem szablonow, czyli uzywac go w swoich aplikacjach. Po wielu probach ciagle leze na lopatkach. Zapewne problem jest banalny ale po wielu dniach (wiem, wstyd) ciagle nie moge odnalezc rozwiazania swojego problemu. Lecz powiedzialem sobie 'ten albo zaden' i jestem zdeterminowany aby osiagnac swoj cel.
Na poczatek troche zrodel:
front controller:
$tpl = new Opt_Class;
$tpl -> sourceDir = TEMPLATES;
$tpl -> compileDir = TEMPLATES_C;
$tpl -> contentType = Opt_Output_Http::XHTML;
$tpl -> prologRequired = TRUE;
$tpl -> debugConsole = TRUE;
$tpl -> errorReporting = E_ALL | E_NOTICE;
$tpl -> setup();
if(isset($_POST['rejestracja']) && $_POST['rejestracja'] === 'true') {
$user = new Users();
$user -> add($_POST);
$menuView = new Opt_View('user_register_menu.tpl');
$contentView = new Opt_View('user_register_confirm.tpl');
}
else {
$menuView = new Opt_View('user_register_menu.tpl');
$contentView = new Opt_View('user_register_form.tpl');
}
$layoutView = new Opt_View('layout.tpl');
$layoutView -> contentType = 'text/html; charset=UTF-8';
$layoutView -> menuView = array(0 =>
array('view' => $menuView)
);
$layoutView -> contentView = array(0 =>
array('view' => $contentView)
);
$out = new Opt_Output_Http;
$out -> setContentType(Opt_Output_Http::XHTML, 'utf-8');
$out -> render($layoutView);
layout.tpl (glowny szablon):
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<opt:root>
<opt:prolog />
<opt:dtd template="xhtml10transitional" />
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="stylesheet" type="text/css" href="templates/css/style.css" />
<title>layout</title>
</head>
<body>
<div id="CONTAINER">
<div id="HEADER"><h1>to jest naglowek</h1></div>
<div id="MENU">
<opt:section name="menuView">
<opt:include from="menuView" />
</opt:section>
</div>
<div id="CONTENT">
<opt:section name="contentView">
<opt:include from="contentView"/>
</opt:section>
</div>
</div>
<div id="FOOTER">footer</div>
</body>
</html>
</opt:root>
menu.tpl:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<opt:root>
<ul>
<li><a href="index.php">Anuluj rejestrację!</a></li>
</ul>
</opt:root>
W czym problem? Tak jak w temacie. W trybie debugConsole wszystko wydaje sie byc w porzadku, procz pojawiajacej sie deklaracji XML w kazdym widoku. To raz. Jesli wylacze tryb debugConsole pojawia sie taki o to komunikat w przegladarce (FF jesli chodzi o scislosc, inaczej zachowuje sie IE8, po prostu jest komunikat o niedostepnosci witryny):
XML Parsing Error: no element found
Location: http://localhost/sklep/register.php
Line Number 1, Column 1:
ponadto nie mam mozliwosci podejrzenia zrodla strony.
Apache 2.2, PHP 5.3, win32