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); }
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); }
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); }