Index: trunk/globals.php =================================================================== diff -u -r491 -r493 --- trunk/globals.php (.../globals.php) (revision 491) +++ trunk/globals.php (.../globals.php) (revision 493) @@ -616,15 +616,22 @@ function ReplaceBBCode($text) { - global $objConfig; + global $objConfig; - $tags = explode(",",$objConfig->Get("BBTags")); - for($i=0;$iGet("BBTags")); + for($i = 0; $i < count($tags); $i++) + { + $text = ReplaceTag(strtoupper($tags[$i]),$text); + } + + // BBCode: [url href="xxx"]xxx[/url] + $text = ReplaceURL($text); + + // BBCode: [code]xxx[/code] + $text = preg_replace('/\[code\]([^\]]*)\[\/code\]/Ue', 'highlight_string( stripslashes(_unhtmlentities("$1") ), true)', $text); + + return $text; } function GetMinValue($Table,$Field, $Where=NULL) Index: trunk/kernel/include/parse.php =================================================================== diff -u -r486 -r493 --- trunk/kernel/include/parse.php (.../parse.php) (revision 486) +++ trunk/kernel/include/parse.php (.../parse.php) (revision 493) @@ -512,123 +512,117 @@ function IncludeTemplate($tag, $SupressError=FALSE) { global $LogLevel, $objSession,$objLanguages; - + + $t = ''; + $ret = ''; $SupressError = ($SupressError || $tag->GetAttributeByName("_supresserror")); switch($tag->name) { - case "perm_include": - $perms = $tag->GetAttributeByName("_permission"); - if(strlen($perms)) - { - $plist = explode(",",$perms); - $value=0; - $CheckSys = $tag->GetAttributeByName("_system"); - for($p=0;$pHasCatPermission(trim($plist[$p]))) - { - $value = 1; - break; - } - else - { - if($CheckSys) - { - if($objSession->HasSystemPermission(trim($plist[$p]))) - { - $value = 1; - break; - } - } - } - } - if($value) - { - $t = $tag->GetAttributeByName("_template"); - } - else - $t = $tag->GetAttributeByName("_noaccess"); - } - else - { - $module = $tag->GetAttributeByName("_module"); - if(strlen($module)) - { - if(ModuleEnabled($module)) - { - $t = $tag->GetAttributeByName("_template"); - } - else - $t = $tag->GetAttributeByName("_noaccess"); - } - } - break; - case "lang_include": - $lang = $tag->GetAttributeByName("_language"); - if(strlen($lang)) - { - $LangId = $objSession->Get("Language"); - $l = $objLanguages->GetItem($LangId); - if(strtolower($lang)==strtolower($l->Get("PackName"))) + case 'perm_include': + $perms = $tag->GetAttributeByName('_permission'); + if(strlen($perms)) + { + $plist = explode(',',$perms); + $value=0; + $CheckSys = $tag->GetAttributeByName('_system'); + for($p=0;$pHasCatPermission(trim($plist[$p]))) + { + $value = 1; + break; + } + else + { + if($CheckSys) + { + if($objSession->HasSystemPermission(trim($plist[$p]))) + { + $value = 1; + break; + } + } + } + } + $t = $tag->GetAttributeByName( $value ? '_template' : '_noaccess'); + + } + else + { + $module = $tag->GetAttributeByName('_module'); + if(strlen($module)) + { + $t = $tag->GetAttributeByName( ModuleEnabled($module) ? '_template' : '_noaccess' ); + } + } + break; + + case "lang_include": + $lang = $tag->GetAttributeByName("_language"); + if(strlen($lang)) { - $t = $tag->GetAttributeByName("_template"); + $LangId = $objSession->Get("Language"); + $l = $objLanguages->GetItem($LangId); + if(strtolower($lang)==strtolower($l->Get("PackName"))) + { + $t = $tag->GetAttributeByName("_template"); + } } - } - break; - case "include": - $t = $tag->GetAttributeByName("_template"); - break; - }//switch + break; + case 'include': + $t = $tag->GetAttributeByName("_template"); + break; + } LogEntry("Parsing $t\n"); $LogLevel++; if($t) - { - if(!$this->InStack($t)) - { - //return $this->ParseTemplate($t); - //if(!$tag->GetAttributeByName("_nocache")); - $ret = $this->GetTemplateCache($t,$SupressError); - if(!strlen($ret)) - { - $req = $tag->GetAttributeByName("_dataexists"); - if($req) - { - global $content_set; - $content_set=1; - $temp = $this->ParseTemplate($t,0,0,$SupressError); - if($content_set) - { - $ret = $temp; - } - else - { - $t_nodata = $tag->GetAttributeByName("_nodatatemplate"); - if(strlen($t_nodata)) - { - $nodata_tag = new clsHtmlTag(); - $nodata = $tag; - $nodata->attributes = $tag->attributes; - $nodata->SetAttributeByName("_template",$t_nodata); - $nodata->SetAttributeByName("_nodatatemplate",""); - $nodata->SetAttributeByName("_dataexists",""); - $ret = $this->IncludeTemplate($nodata,$SupressError); - } - else - $ret = ""; - } - } - else - $ret = $this->ParseTemplate($t,0,0,$SupressError); - } - } - else - $ret = ""; - } - $LogLevel--; + { + if(!$this->InStack($t)) + { + //return $this->ParseTemplate($t); + //if(!$tag->GetAttributeByName("_nocache")); + $ret = $this->GetTemplateCache($t,$SupressError); + if(!strlen($ret)) + { + $req = $tag->GetAttributeByName("_dataexists"); + if($req) + { + global $content_set; + $content_set=1; + $temp = $this->ParseTemplate($t,0,0,$SupressError); + if($content_set) + { + $ret = $temp; + } + else + { + $t_nodata = $tag->GetAttributeByName("_nodatatemplate"); + if(strlen($t_nodata)) + { + $nodata_tag = new clsHtmlTag(); + $nodata = $tag; + $nodata->attributes = $tag->attributes; + $nodata->SetAttributeByName("_template",$t_nodata); + $nodata->SetAttributeByName("_nodatatemplate",""); + $nodata->SetAttributeByName("_dataexists",""); + $ret = $this->IncludeTemplate($nodata,$SupressError); + } + else + $ret = ""; + } + } + else + $ret = $this->ParseTemplate($t,0,0,$SupressError); + } + } + else + $ret = ""; + } + $LogLevel--; if($LogLevel<0) - $LogLevel=0; + $LogLevel=0; LogEntry("Finished Parsing $t\n"); return $ret; }