理解諾亞的分類/讓我們探索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); 很特別,因為它似乎與資料的處理有關。在諾亞中,他們將資料從檢視中抽象出來(一件非常好的事情)