Example #1
0
 function makeActionButton($action, $label = false, $page_or_rev = false, $options = false)
 {
     extract($this->_get_name_and_rev($page_or_rev));
     if (is_array($action)) {
         $attr = $action;
         $action = isset($attr['action']) ? $attr['action'] : 'browse';
     } else {
         $attr['action'] = $action;
     }
     $class = is_safe_action($action) ? 'new' : 'wikiadmin';
     /* if selected action is current then prepend selected */
     global $request;
     if ($request->getArg("action") == $action) {
         $class = "selected {$class}";
     }
     //$class = "selected";
     if (!empty($options['class'])) {
         $class = $options['class'];
     }
     if (!$label) {
         $label = $this->_labelForAction($action);
     }
     if ($version) {
         $attr['version'] = $version;
     }
     if ($action == 'browse') {
         unset($attr['action']);
     }
     $options = $this->fixAccesskey($options);
     return $this->makeButton($label, WikiURL($pagename, $attr), $class, $options);
 }
Example #2
0
 function makeActionButton($action, $label = false, $page_or_rev = false)
 {
     extract($this->_get_name_and_rev($page_or_rev));
     if (is_array($action)) {
         $attr = $action;
         $action = isset($attr['action']) ? $attr['action'] : 'browse';
     } else {
         $attr['action'] = $action;
     }
     $class = is_safe_action($action) ? 'named-wiki' : 'wikiadmin';
     if (!$label) {
         $label = $this->_labelForAction($action);
     }
     if ($version) {
         $attr['version'] = $version;
     }
     if ($action == 'browse') {
         unset($attr['action']);
     }
     return $this->makeButton($label, WikiURL($pagename, $attr), $class);
 }
Example #3
0
function LinkPhpwikiURL($url, $text = '', $basepage = false)
{
    $args = array();
    if (!preg_match('/^ phpwiki: ([^?]*) [?]? (.*) $/x', $url, $m)) {
        return HTML::span(array('class' => 'error'), _("BAD phpwiki: URL"));
    }
    if ($m[1]) {
        $pagename = urldecode($m[1]);
    }
    $qargs = $m[2];
    if (empty($pagename) && preg_match('/^(diff|edit|links|info)=([^&]+)$/', $qargs, $m)) {
        // Convert old style links (to not break diff links in
        // RecentChanges).
        $pagename = urldecode($m[2]);
        $args = array("action" => $m[1]);
    } else {
        $args = SplitQueryArgs($qargs);
    }
    if (empty($pagename)) {
        $pagename = $GLOBALS['request']->getArg('pagename');
    }
    if (isset($args['action']) && $args['action'] == 'browse') {
        unset($args['action']);
    }
    /*FIXME:
        if (empty($args['action']))
        $class = 'wikilink';
        else if (is_safe_action($args['action']))
        $class = 'wikiaction';
      */
    if (empty($args['action']) || is_safe_action($args['action'])) {
        $class = 'wikiaction';
    } else {
        // Don't allow administrative links on unlocked pages.
        $dbi = $GLOBALS['request']->getDbh();
        $page = $dbi->getPage($basepage ? $basepage : $pagename);
        if (!$page->get('locked')) {
            return HTML::span(array('class' => 'wikiunsafe'), HTML::u(_("Lock page to enable link")));
        }
        $class = 'wikiadmin';
    }
    if (!$text) {
        $text = HTML::span(array('class' => 'rawurl'), $url);
    }
    $wikipage = new WikiPageName($pagename);
    if (!$wikipage->isValid()) {
        global $WikiTheme;
        return $WikiTheme->linkBadWikiWord($wikipage, $url);
    }
    return HTML::a(array('href' => WikiURL($pagename, $args), 'class' => $class), $text);
}