理解诺亚的分类/让我们探索gorumMain
外观
< 理解诺亚的分类
function gorumMain(&$s) { global $gorumroll,$lll,$whatHappened,$infoText,$gorumcontent; global $initClassName,$navBarText; global $upperTemplate,$lowerTemplate; global $globHtmlHead, $HTTP_GET_VARS;
这包括所有必需的全局变量。像这样的全局变量不需要定义,你可以直接包含和使用它们。就像你不需要定义作用域变量一样。
$s=""; $init = new $initClassName; $init->initializeSystemSettings(); $base = new $gorumroll->class; $olc=$gorumroll->list."_".$gorumroll->method."_lllcancel"; if (isset($lll[$olc])) {$lll["cancel"]=$lll[$olc];}
似乎主程序的下一步是做出布尔决策。它确定先前的创建/更新/编辑/删除是否让用户点击了取消。然后它会分成两种情况
if( $gorumroll->submit==$lll["cancel"] ) { $whatHappened="form_submitted"; $infoText = $lll["operation_cancelled"]; // html template file meghatarozasa a teljes oldal layoutjahoz // (ELD stilusu template-ezes, ha van ilyen) kitalalja, hogy mi // lesz a template file, amit a showApp hasznal: $init->getTemplate(); goBackward($base);
诺亚的奇妙之处在于它内置的向后导航,就像这里看到的那样。如果你取消,它会把你送回你来自的地方。
$init->getTemplateAfter(); processMethod($base, $processResult); } else { $whatHappened=""; processMethod($base, $processResult); // html template file meghatarozasa a teljes oldal layoutjahoz // (ELD stilusu template-ezes, ha van ilyen) kitalalja, hogy mi // lesz a template file, amit a showApp hasznal: $init->getTemplate(); if( $whatHappened ) // Ez jelzi, hogy meg egy processMethod kell { goBackward($base); $init->getTemplateAfter(); processMethod($base, $processResult); } }
现在下一步与头、顶和页脚模板有关
if (ereg("\.php$",$upperTemplate)) {//just check $ret=@fopen($upperTemplate,"r"); if (!$ret) { $infoText = sprintf($lll["incl_header_err"],$upperTemplate); } @fclose($f); } if (ereg("\.php$",$lowerTemplate)) {//just check $ret=@fopen($lowerTemplate,"r"); if (!$ret) { if (!isset($infoText)) $infoText=""; $infoText.="
".sprintf($lll["incl_footer_err"],$lowerTemplate); } @fclose($f); }
这里出现了真正有趣的渲染内容。showNavBar 绘制了这些文本,比如提交添加等。
//show functions $gorumcontent=""; $navBarText=$base->showNavBar();//TODO: a navbar altalanos cucc? $gorumcontent.= $processResult; $globHtmlHead=$init->showHtmlHead();
这链接了头文件^^
if( isset($HTTP_GET_VARS["inf"]) ) $infoText=$HTTP_GET_VARS["inf"]; $sApp=$init->showApp();
这里就是诺亚实际工作的执行点,它会沿着层次结构向下运行,执行正确的类。渲染你的详细信息/列表或其他
$s.=$globHtmlHead;//fontos, hogy felulirhato legyen az app-ban
现在它获取了上部和下部模板
$upperTemplate=trim($upperTemplate); if (ereg("\.php$",$upperTemplate)) { $ret=@include($upperTemplate); } else $s.="$upperTemplate\n"; $lowerTemplate=trim($lowerTemplate);
最后,它将你的应用程序的输出添加到最终的文本中。
$s.=$sApp; if (ereg("\.php$",$lowerTemplate)) $ret=@include($lowerTemplate); else $s.="$lowerTemplate\n"; }
processMethod($base, $processResult); 很特别,因为它似乎与数据的处理有关。在诺亚中,他们将数据从视图中抽象出来(一件非常好的事情)