はじまりの大地
This commit is contained in:
@@ -0,0 +1,207 @@
|
||||
<?php
|
||||
/**
|
||||
* Provide navigation sidebar functionality to Dokuwiki Templates
|
||||
*
|
||||
* @author Christopher Smith <chris@jalakai.co.uk>
|
||||
* @author Esther Brunner <wikidesign@gmail.com>
|
||||
* @author Don Bowman <don@lynsoft.co.uk>
|
||||
*/
|
||||
|
||||
/**
|
||||
* Recursive function to establish best sidebar file to be used
|
||||
*/
|
||||
function getSidebarFN($ns, $file) {//func
|
||||
|
||||
/****** check for wiki page = $ns:$file (or $file where no namespace) ******/
|
||||
$nsFile = ($ns) ? "$ns:$file" : $file;
|
||||
if (file_exists(wikiFN($nsFile)) && auth_quickaclcheck($nsFile))
|
||||
return $nsFile;
|
||||
|
||||
/****** no namespace left, exit with no file found ******/
|
||||
if (!$ns)
|
||||
return '';
|
||||
|
||||
/****** remove deepest namespace level and call function recursively ******/
|
||||
$i = strrpos($ns, ":");
|
||||
$ns = ($i) ? substr($ns, 0, $i) : false;
|
||||
return getSidebarFN($ns, $file);
|
||||
|
||||
}//function getSidebarFN($ns, $file)
|
||||
|
||||
|
||||
/**
|
||||
* Display the sidebar
|
||||
*/
|
||||
function minima_sidebar() {//func
|
||||
|
||||
/****** declare global variables ******/
|
||||
global $ID, $REV, $ACT, $conf;
|
||||
|
||||
/****** save global variables ******/
|
||||
$saveID = $ID;
|
||||
$saveREV = $REV;
|
||||
// $saveACT = $ACT;
|
||||
|
||||
/****** find file to be displayed in navigation sidebar ******/
|
||||
$sidebar = tpl_getConf('sidebar_page');
|
||||
$fileSidebar = getSidebarFN(getNS($ID), $sidebar);
|
||||
|
||||
/****** show main sidebar if necessary ******/
|
||||
if (tpl_getConf('minima_main_sidebar') && $fileSidebar != $sidebar) {//do
|
||||
$ID = $sidebar;
|
||||
$REV = '';
|
||||
echo p_wiki_xhtml($ID, $REV, false);
|
||||
// $ACT = 'show';
|
||||
// tpl_content(false);
|
||||
echo "<hr>";
|
||||
}//if (tpl_getConf('minima_main_sidebar') && $fileSidebar != $sidebar)
|
||||
|
||||
/****** show current sidebar ******/
|
||||
if ($fileSidebar) {//do
|
||||
$ID = $fileSidebar;
|
||||
$REV = '';
|
||||
echo p_wiki_xhtml($ID, $REV, false);
|
||||
// $ACT = 'show';
|
||||
// tpl_content(false);
|
||||
}//if ($fileSidebar)
|
||||
|
||||
/****** show index ******/
|
||||
else {//if (!$fileSidebar)
|
||||
// $REV = '';
|
||||
// $ACT = 'index';
|
||||
global $IDX;
|
||||
html_index($IDX);
|
||||
// tpl_content(false);
|
||||
}//if (!$fileSidebar)
|
||||
|
||||
/****** restore global variables ******/
|
||||
$ID = $saveID;
|
||||
$REV = $saveREV;
|
||||
// $ACT = $saveACT;
|
||||
|
||||
}//function minima_sidebar()
|
||||
|
||||
|
||||
/**
|
||||
* Return the correct ID for <div class="dokuwiki">
|
||||
*/
|
||||
function minima_classID() {//func
|
||||
echo 'minima__'.tpl_getConf('width').'_'.tpl_getConf('sidebar_position');
|
||||
}//function minima_classID()
|
||||
|
||||
|
||||
/**
|
||||
* Checks if the color scheme has changed
|
||||
*/
|
||||
function minima_checkColor() {//func
|
||||
|
||||
/****** set local variables ******/
|
||||
$color = tpl_getConf('color');
|
||||
$file = tpl_incdir().'style.ini';
|
||||
$file2 = tpl_incdir().'style_'.$color.'.ini';
|
||||
$ini = parse_ini_file($file);
|
||||
|
||||
/****** change theme as requested ******/
|
||||
if ($ini['__theme__'] != '_'.$color) {//do
|
||||
|
||||
if ((@file_exists($file2)) && (@unlink($file)) && (@copy($file2, $file))) {//do
|
||||
global $conf;
|
||||
if ($conf['fperm']) chmod($file, $conf['fperm']);
|
||||
}//if ((@file_exists($file2)) && (@unlink($file)) && (@copy($file2, $file)))
|
||||
|
||||
else {//if not ((@file_exists($file2)) && (@unlink($file)) && (@copy($file2, $file)))
|
||||
msg('Could not set correct style.ini file for your chosen color scheme.', -1);
|
||||
}//else {//if not ...
|
||||
|
||||
}//if ($ini['__theme__'] != '_'.$color)
|
||||
|
||||
}//function minima_checkColor()
|
||||
|
||||
|
||||
/**
|
||||
* Display tabs for easy navigation
|
||||
*/
|
||||
function minima_tabs() {//func
|
||||
|
||||
/****** declare global variables ******/
|
||||
global $ID;
|
||||
|
||||
/****** set local variables ******/
|
||||
$out = '';
|
||||
|
||||
/****** get tabs file name ******/
|
||||
$ns = getNS($ID);
|
||||
$tabsFile = wikiFN(($ns).':'.tpl_getConf('tabs_page'));
|
||||
|
||||
/****** show tabs ******/
|
||||
if ((@file_exists($tabsFile)) && (auth_quickaclcheck($tabs))) {//do
|
||||
$ins = p_cached_instructions($tabsFile);
|
||||
|
||||
/****** process each tab ******/
|
||||
foreach ($ins as $in) {//do
|
||||
|
||||
/****** collect internal links to pages in same namespace ******/
|
||||
if ($in[0] == 'internallink') {//do
|
||||
list($id, $hash) = explode('#', $in[1][0], 2);
|
||||
resolve_pageid(getNS($ID), $id, $exists);
|
||||
|
||||
/****** ignore links to other namespaces ******/
|
||||
if (getNS($id) != $ns)
|
||||
continue;
|
||||
|
||||
/****** ignore links to non-existent pages ******/
|
||||
if (!$exists)
|
||||
continue;
|
||||
|
||||
/****** determine link title ******/
|
||||
$title = hsc($in[1][1]);
|
||||
if (!$title)
|
||||
$title = hsc(p_get_first_heading($id));
|
||||
if (!$title)
|
||||
$title = hsc(ucwords(noNS($id)));
|
||||
|
||||
/****** now construct the output link ******/
|
||||
if ($id == $ID)
|
||||
$out .= '<span class="activetab">'.$title.'</span> ';
|
||||
else
|
||||
$out .= '<a href="'.wl($id).'" class="tab">'.$title.'</a> ';
|
||||
|
||||
}//if ($in[0] == 'internallink')
|
||||
|
||||
/****** first header of tabs.txt is heading for whole namespace ******/
|
||||
elseif (($in[0] == 'header') && (!$heading)) {//do
|
||||
$heading = $in[1][0];
|
||||
$level = $in[1][1];
|
||||
}//if (($in[0] == 'header') && (!$heading))
|
||||
|
||||
}//foreach ($ins as $in)
|
||||
|
||||
/****** add heading to list ******/
|
||||
if ($heading)
|
||||
$out = '<h'.$level.'>'.$heading.'</h'.$level.'>'.$out;
|
||||
|
||||
/****** show list ******/
|
||||
if ($out <> "")
|
||||
echo '<div class="tabs">'.$out.'</div>';
|
||||
|
||||
}//if ((@file_exists($tabsFile)) && (auth_quickaclcheck($tabs)))
|
||||
|
||||
}//function minima_tabs()
|
||||
|
||||
|
||||
/**
|
||||
* Outputs the namespace title
|
||||
*/
|
||||
function minima_nstitle() {//func
|
||||
|
||||
/****** declare global variables ******/
|
||||
global $ID;
|
||||
|
||||
/****** get namespace title ******/
|
||||
$title = p_get_metadata(getNS($ID).':'.tpl_getConf('tabs_page'), 'title');
|
||||
|
||||
/****** show namespace title ******/
|
||||
if ($title)
|
||||
echo $title.': ';
|
||||
|
||||
}//function minima_nstitle()
|
||||
Reference in New Issue
Block a user