Exemplo n.º 1
0
function plugin_includesubmenu_convert()
{
    global $vars;
    $ShowPageName = FALSE;
    if (func_num_args()) {
        $aryargs = func_get_args();
        if ($aryargs[0] == 'showpagename') {
            $ShowPageName = TRUE;
        }
    }
    $SubMenuPageName = '';
    $tmppage = strip_bracket($vars['page']);
    //下階層のSubMenuページ名
    $SubMenuPageName1 = $tmppage . '/SubMenu';
    //同階層のSubMenuページ名
    $LastSlash = strrpos($tmppage, '/');
    if ($LastSlash === FALSE) {
        $SubMenuPageName2 = 'SubMenu';
    } else {
        $SubMenuPageName2 = substr($tmppage, 0, $LastSlash) . '/SubMenu';
    }
    //echo "$SubMenuPageName1 <br />";
    //echo "$SubMenuPageName2 <br />";
    //下階層にSubMenuがあるかチェック
    //あれば、それを使用
    if (is_page($SubMenuPageName1)) {
        //下階層にSubMenu有り
        $SubMenuPageName = $SubMenuPageName1;
    } else {
        if (is_page($SubMenuPageName2)) {
            //同階層にSubMenu有り
            $SubMenuPageName = $SubMenuPageName2;
        } else {
            //SubMenu無し
            return "";
        }
    }
    $wiki = WikiFactory::Wiki($SubMenuPageName);
    $body = $wiki->render();
    if ($ShowPageName) {
        $s_page = htmlsc($SubMenuPageName);
        $link = '<a href="' . $wiki->get_uri('edit') . '">$s_page</a>';
        $body = "<h1>{$link}</h1>\n{$body}";
    }
    return $body;
}
Exemplo n.º 2
0
function protect_body($plugin)
{
    global $auth_api, $protect;
    $body = '';
    if ($plugin === 'login') {
        $plugin = '';
    }
    $wiki = WikiFactory::Wiki($protect);
    if ($wiki->isReadable() && empty($plugin)) {
        $body .= $wiki->render();
    } else {
        $plugin = empty($plugin) ? 'login' : $plugin;
        if (exist_plugin_convert($plugin)) {
            $body .= do_plugin_convert($plugin);
        }
    }
    if (empty($body)) {
        if (PLUGIN_PROTECT_MUST_PAGE) {
            die('The attestation setting is not done.');
        }
        die;
    }
    return $body;
}
Exemplo n.º 3
0
 function addRow($pagename, $rescan = FALSE)
 {
     // Generate/Regenerate regex if needed
     if ($this->_generate_regex() === FALSE) {
         return FALSE;
     }
     if (isset($this->_added[$pagename])) {
         return TRUE;
     }
     $this->_added[$pagename] = TRUE;
     //		$source = plugin_tracker_get_source($pagename, TRUE);
     $source = plugin_tracker_get_source($pagename, TRUE, $this->page_line);
     // Plus!
     $wiki = Factory::Wiki($pagename);
     $filetime = $wiki->time();
     if ($source === FALSE) {
         $source = null;
     }
     // Compat: 'move to [[page]]' (like bugtrack plugin)
     $matches = array();
     if (!$rescan && !empty($source) && preg_match('/move\\sto\\s(.+)/', $source, $matches)) {
         $to_page = strip_bracket(trim($matches[1]));
         if (WikiFactory::Wiki($to_page)->isValied()) {
             unset($source, $matches);
             // Release
             return $this->addRow($to_page, TRUE);
             // Recurse(Rescan) once
         }
     }
     // Default column
     $row = array('_page' => $pagename, '_real' => $pagename, '_update' => $filetime, '_past' => $filetime);
     // Load / Redefine cell
     $matches = array();
     if (preg_match($this->pattern, $source, $matches)) {
         array_shift($matches);
         // $matches[0] = all of the captured string
         foreach ($this->pattern_fields as $key => $fieldname) {
             $row[$fieldname] = trim($matches[$key]);
             unset($matches[$key]);
         }
         $this->rows[] = $row;
     } else {
         if (PLUGIN_TRACKER_LIST_SHOW_ERROR_PAGE) {
             $this->rows[] = $row;
             // Error
         }
     }
     return TRUE;
 }