Changeset 771 for devel/lib

Show
Ignore:
Timestamp:
12/21/06 20:27:35 (2 years ago)
Author:
ben
Message:

Some extra hooks for templates, to allow plugin programmers to add various site bling across all templates.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • devel/lib/templates.php

    r735 r771  
    667667        global $template_id; 
    668668        global $page_owner; 
     669        global $CFG; 
    669670         
    670671        global $page_template_cache; 
     
    697698    // Grab the template content 
    698699        if ($template_id == -1 || ($parameter['context'] != "css" && $parameter['context'] != "pageshell")) { 
    699             $template_element = $template[$parameter['context']]; 
     700            $template_element = $template[$parameter['context']];             
    700701        } else { 
    701702            $template_context = addslashes($parameter['context']); 
     
    711712                    $template_element = $template[$parameter['context']]; 
    712713                } 
     714        } 
     715         
     716        if (!empty($CFG->templates->variables_substitute) && (is_callable($CFG->templates->variables_substitute[$parameter['context']]) || is_array($CFG->templates->variables_substitute[$parameter['context']]))) { 
     717            if (is_array($CFG->templates->variables_substitute[$parameter['context']])) { 
     718                foreach ($CFG->templates->variables_substitute[$parameter['context']] as $sub_function) { 
     719                    $template_element .= $sub_function($vars); 
     720                } 
     721            } else { 
     722                $template_element .= $CFG->templates->variables_substitute[$parameter['context']]($vars); 
     723            } 
    713724        } 
    714725 
     
    11211132    //error_log("tvs " . print_r($template_variable,1)); 
    11221133 
     1134    $result = ""; 
    11231135    if (isset($variables[$template_variable])) { 
    1124         return $variables[$template_variable]; 
     1136        $result .= $variables[$template_variable]; 
    11251137    } else { 
    11261138        $vars = array(); 
     
    11331145        case "username": 
    11341146            if (logged_on) { 
    1135                 return $_SESSION['username']; 
     1147                $result = $_SESSION['username']; 
    11361148            } else { 
    1137                 return __gettext("Guest"); 
     1149                $result = __gettext("Guest"); 
    11381150            } 
    11391151            break; 
    11401152        case "usericonid": 
    11411153            if (logged_on) { 
    1142                 return user_info("icon",$_SESSION['userid']); 
     1154                $result = user_info("icon",$_SESSION['userid']); 
    11431155            } else { 
    1144                 return 0; 
     1156                $result = 0; 
    11451157            } 
    11461158            break; 
    11471159        case "name": 
    11481160            if (logged_on) { 
    1149                 return htmlspecialchars($_SESSION['name'], ENT_COMPAT, 'utf-8'); 
     1161                $result = htmlspecialchars($_SESSION['name'], ENT_COMPAT, 'utf-8'); 
    11501162            } else { 
    1151                 return __gettext("Guest"); 
     1163                $result = __gettext("Guest"); 
    11521164            } 
    11531165            break; 
    11541166        case "userfullname": 
    11551167            if (logged_on) { 
    1156                 return htmlspecialchars($_SESSION['name'], ENT_COMPAT, 'utf-8'); 
     1168                $result = htmlspecialchars($_SESSION['name'], ENT_COMPAT, 'utf-8'); 
    11571169            } else { 
    1158                 return __gettext("Guest") . " [<a href=\"".url."login/index.php\">" . __gettext("Log in") . "</a>]"; 
     1170                $result = __gettext("Guest") . " [<a href=\"".url."login/index.php\">" . __gettext("Log in") . "</a>]"; 
    11591171            } 
    11601172            break; 
    11611173        case "menu": 
    11621174            if (logged_on) { 
    1163                 return templates_draw(array( 
     1175                $result = templates_draw(array( 
    11641176                                            'menuitems' => menu_join('', $PAGE->menu), 
    11651177                                            'context' =>   'menu' 
     
    11691181 
    11701182        case "submenu": 
    1171             return templates_draw(array( 
     1183            $result = templates_draw(array( 
    11721184                                        'submenuitems' => menu_join('&nbsp;|&nbsp;', $PAGE->menu_sub), 
    11731185                                        'context' => 'submenu' 
     
    11771189        case "topmenu": 
    11781190            if (logged_on) { 
    1179                 return templates_draw(array( 
     1191                $result = templates_draw(array( 
    11801192                                            'topmenuitems' => menu_join('', $PAGE->menu_top), 
    11811193                                            'context' => 'topmenu' 
     
    11851197 
    11861198        case "url": 
    1187             return url; 
     1199            $result = url; 
    11881200            break; 
    11891201         
    11901202        case "sitename": 
    1191             return $CFG->sitename; 
     1203            $result = $CFG->sitename; 
    11921204            break; 
    11931205 
    11941206        case "tagline": 
    1195             return $CFG->tagline; 
     1207            $result = $CFG->tagline; 
    11961208            break; 
    11971209 
    11981210        case "metatags": 
    11991211            // $run_result = "<link href=\"/".$template_variable.".css\" rel=\"stylesheet\" type=\"text/css\" />"; 
    1200             return  "<style type=\"text/css\"><!--\n" 
     1212            $result =   "<style type=\"text/css\"><!--\n" 
    12011213                . templates_draw(array( 
    12021214                                       'template' => $template_id, 
     
    12141226            } 
    12151227            if (defined('ELGG_PERFTOFOOT') || $CFG->debug > 7 || $CFG->perfdebug > 7) { 
    1216                 return $perf['html']; 
     1228                $result = $perf['html']; 
    12171229            } 
    12181230 
     
    12441256                } 
    12451257            } 
    1246             return $result; 
     1258             
    12471259            break; 
    12481260        case 'people': 
     
    12941306END; 
    12951307            } 
    1296             return $result; 
     1308             
    12971309            break; 
    12981310             
     
    13161328                $tag_count++; 
    13171329            } 
    1318             return $result; 
     1330             
    13191331            break; 
    13201332        case "populartags": 
     
    13451357                $tag_count++; 
    13461358            } 
    1347             return $result; 
     1359             
    13481360            break; 
    13491361        default: 
    1350             if (!empty($CFG->templates->variables_substitute) && is_callable($CFG->templates->variables_substitute[$template_variable])) { 
    1351                 return $CFG->templates->variables_substitute[$template_variable]($vars); 
    1352             } 
    1353             break; 
    1354              
    1355         } 
    1356     } 
     1362            break; 
     1363             
     1364        } 
     1365    } 
     1366    if (!empty($CFG->templates->variables_substitute) && (is_callable($CFG->templates->variables_substitute[$template_variable]) || is_array($CFG->templates->variables_substitute[$template_variable]))) { 
     1367        if (is_array($CFG->templates->variables_substitute[$template_variable])) { 
     1368            foreach ($CFG->templates->variables_substitute[$template_variable] as $sub_function) { 
     1369                $result .= $sub_function($vars); 
     1370            } 
     1371        } else { 
     1372            $result .= $CFG->templates->variables_substitute[$template_variable]($vars); 
     1373        } 
     1374    } 
     1375    $run_result .= $result; 
    13571376    return $run_result; 
    13581377}