当前位置: 首页>>代码示例>>PHP>>正文


PHP PageList::setCaption方法代码示例

本文整理汇总了PHP中PageList::setCaption方法的典型用法代码示例。如果您正苦于以下问题:PHP PageList::setCaption方法的具体用法?PHP PageList::setCaption怎么用?PHP PageList::setCaption使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在PageList的用法示例。


在下文中一共展示了PageList::setCaption方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: run

 function run($dbi, $argstr, &$request, $basepage)
 {
     $args = $this->getArgs($argstr, $request);
     extract($args);
     if (strstr($sortby, 'mtime')) {
         trigger_error(_("sortby=mtime not supported with MostPopular"), E_USER_WARNING);
         $sortby = '';
     }
     $columns = $info ? explode(",", $info) : array();
     array_unshift($columns, 'hits');
     if (!$request->getArg('count')) {
         //$args['count'] = $dbi->numPages(false,$exclude);
         $allpages = $dbi->mostPopular(0, $sortby);
         $args['count'] = $allpages->count();
     } else {
         $args['count'] = $request->getArg('count');
     }
     //$dbi->touch();
     $pages = $dbi->mostPopular($limit, $sortby);
     $pagelist = new PageList($columns, $exclude, $args);
     while ($page = $pages->next()) {
         $hits = $page->get('hits');
         // don't show pages with no hits if most popular pages
         // wanted
         if ($hits == 0 && $limit > 0) {
             break;
         }
         $pagelist->addPage($page);
     }
     $pages->free();
     if (!$noheader) {
         if ($limit > 0) {
             $pagelist->setCaption(_("The %d most popular pages of this wiki:"));
         } else {
             if ($limit < 0) {
                 $pagelist->setCaption(_("The %d least popular pages of this wiki:"));
             } else {
                 $pagelist->setCaption(_("Visited pages on this wiki, ordered by popularity:"));
             }
         }
     }
     return $pagelist;
 }
开发者ID:pombredanne,项目名称:tuleap,代码行数:43,代码来源:MostPopular.php

示例2: run

 function run($dbi, $argstr, &$request, $basepage)
 {
     $args = $this->getArgs($argstr, $request);
     extract($args);
     if (empty($page) && empty($prefix) && empty($suffix)) {
         return '';
     }
     if ($prefix) {
         $suffix = false;
         $descrip = fmt("Page names with prefix '%s'", $prefix);
     } elseif ($suffix) {
         $descrip = fmt("Page names with suffix '%s'", $suffix);
     } elseif ($page) {
         $words = preg_split('/[\\s:-;.,]+/', SplitPagename($page));
         $words = preg_grep('/\\S/', $words);
         $prefix = reset($words);
         $suffix = end($words);
         $descrip = fmt("These pages share an initial or final title word with '%s'", WikiLink($page, 'auto'));
     }
     // Search for pages containing either the suffix or the prefix.
     $search = $match = array();
     if (!empty($prefix)) {
         $search[] = $this->_quote($prefix);
         $match[] = '^' . preg_quote($prefix, '/');
     }
     if (!empty($suffix)) {
         $search[] = $this->_quote($suffix);
         $match[] = preg_quote($suffix, '/') . '$';
     }
     if ($search) {
         $query = new TextSearchQuery(join(' OR ', $search));
     } else {
         $query = new NullTextSearchQuery();
     }
     // matches nothing
     $match_re = '/' . join('|', $match) . '/';
     $pagelist = new PageList($info, $exclude, $args);
     if (!$noheader) {
         $pagelist->setCaption($descrip);
     }
     $pages = $dbi->titleSearch($query);
     while ($page = $pages->next()) {
         $name = $page->getName();
         if (!preg_match($match_re, $name)) {
             continue;
         }
         $pagelist->addPage($page);
     }
     return $pagelist;
 }
开发者ID:hugcoday,项目名称:wiki,代码行数:50,代码来源:LikePages.php

示例3: run

 function run($dbi, $argstr, &$request, $basepage)
 {
     $args = $this->getArgs($argstr, $request);
     if ($args['basepage']) {
         $pagename = $args['basepage'];
     } else {
         $pagename = $request->getArg('pagename');
     }
     // FIXME: explodePageList from stdlib doesn't seem to work as
     // expected when there are no subpages. (see also
     // UnfoldSubPages plugin)
     $subpages = explodePageList($pagename . SUBPAGE_SEPARATOR . '*');
     if (!$subpages) {
         return $this->error(_("The current page has no subpages defined."));
     }
     extract($args);
     $content = HTML();
     $subpages = array_reverse($subpages);
     if ($maxpages) {
         $subpages = array_slice($subpages, 0, $maxpages);
     }
     $descrip = fmt("SubPages of %s:", WikiLink($pagename, 'auto'));
     if ($info) {
         $info = explode(",", $info);
         if (in_array('count', $info)) {
             $args['types']['count'] = new _PageList_Column_ListSubpages_count('count', _("#"), 'center');
         }
     }
     $pagelist = new PageList($info, $exclude, $args);
     if (!$noheader) {
         $pagelist->setCaption($descrip);
     }
     foreach ($subpages as $page) {
         // A page cannot include itself. Avoid doublettes.
         static $included_pages = array();
         if (in_array($page, $included_pages)) {
             $content->pushContent(HTML::p(sprintf(_("recursive inclusion of page %s ignored"), $page)));
             continue;
         }
         array_push($included_pages, $page);
         //if ($relative) {
         // TODO: add relative subpage name display to PageList class
         //}
         $pagelist->addPage($page);
         array_pop($included_pages);
     }
     $content->pushContent($pagelist);
     return $content;
 }
开发者ID:pombredanne,项目名称:tuleap,代码行数:49,代码来源:ListSubpages.php

示例4: run

 function run($dbi, $argstr, &$request, $basepage)
 {
     $args = $this->getArgs($argstr, $request);
     extract($args);
     if ($debug) {
         $timer = new DebugTimer();
     }
     $group = $request->getGroup();
     if (method_exists($group, '_allUsers')) {
         $allusers = $group->_allUsers();
     } else {
         $allusers = array();
     }
     $args['count'] = count($allusers);
     // deleted pages show up as version 0.
     $pagelist = new PageList($info, $exclude, $args);
     if (!$noheader) {
         $pagelist->setCaption(_("Authenticated users on this wiki (%d total):"));
     }
     if ($include_empty and empty($info)) {
         $pagelist->_addColumn('version');
     }
     list($offset, $pagesize) = $pagelist->limit($args['limit']);
     if (!$pagesize) {
         $pagelist->addPageList($allusers);
     } else {
         for ($i = $offset; $i < $offset + $pagesize - 1; $i++) {
             if ($i >= $args['count']) {
                 break;
             }
             $pagelist->addPage($allusers[$i]);
         }
     }
     /*
     $page_iter = $dbi->getAllPages($include_empty, $sortby, $limit);
     while ($page = $page_iter->next()) {
         if ($page->isUserPage($include_empty))
             $pagelist->addPage($page);
     }
     */
     if ($debug) {
         return HTML($pagelist, HTML::p(fmt("Elapsed time: %s s", $timer->getStats())));
     } else {
         return $pagelist;
     }
 }
开发者ID:pombredanne,项目名称:tuleap,代码行数:46,代码来源:AllUsers.php

示例5: run

 function run($dbi, $argstr, &$request, $basepage)
 {
     $args = $this->getArgs($argstr, $request);
     extract($args);
     // There's probably a more efficient way to do this (eg a
     // tailored SQL query via the backend, but this does the job
     $allpages_iter = $dbi->getAllPages($include_empty);
     $pages = array();
     while ($page = $allpages_iter->next()) {
         $links_iter = $page->getBackLinks();
         // Test for absence of backlinks. If a page is linked to
         // only by itself, it is still an orphan
         $parent = $links_iter->next();
         if (!$parent or $parent->getName() == $page->getName() and !$links_iter->next()) {
             $pages[] = $page;
         }
     }
     $args['count'] = count($pages);
     $pagelist = new PageList($info, $exclude, $args);
     if (!$noheader) {
         $pagelist->setCaption(_("Orphaned Pages in this wiki (%d total):"));
     }
     // deleted pages show up as version 0.
     if ($include_empty) {
         $pagelist->_addColumn('version');
     }
     list($offset, $pagesize) = $pagelist->limit($args['limit']);
     if (!$pagesize) {
         $pagelist->addPageList($pages);
     } else {
         for ($i = $offset; $i < $offset + $pagesize - 1; $i++) {
             if ($i >= $args['count']) {
                 break;
             }
             $pagelist->addPage($pages[$i]);
         }
     }
     return $pagelist;
 }
开发者ID:pombredanne,项目名称:tuleap,代码行数:39,代码来源:OrphanedPages.php

示例6: run


//.........这里部分代码省略.........
             $ratings = $this_page_user->get_ratings();
         } else {
             $caption = _("Here are your %d page ratings:");
             $ratings = $current_user_ratings;
         }
         $i = 0;
         foreach ($ratings as $pagename => $page_ratings) {
             // limit is currently only honored for "own" ratings
             if ($limit > 0 && $i >= $limit) {
                 break;
             }
             if (isset($page_ratings[$dimension])) {
                 array_push($pageids, $pagename);
                 $i++;
             }
         }
         // $caption = _("Here are your %d page ratings:");
         //make $ratings the user's ratings again if it had been treated as the current page
         // name's ratings
         $ratings = $current_user_ratings;
     }
     // if userids is null or empty, fill it with just the active user
     if (!isset($userids) || !is_array($userids) || !count($userids)) {
         // TKL: moved getBuddies call inside if statement because it was
         // causing the userids[] parameter to be ignored
         if (is_string($active_userid) && strlen($active_userid) && $active_user->isSignedIn() && !$userPage) {
             if (isset($category_page)) {
                 $userids = getBuddies($active_userid, $dbi, $category_page->getName());
             } else {
                 $userids = getBuddies($active_userid, $dbi);
             }
         } elseif ($userPage) {
             //we're on a user page, show that user's ratings as the only column
             $userids = array();
             array_push($userids, $userPage);
         } else {
             $userids = array();
             // XXX: this wipes out the category caption...
             // $caption = _("You must be logged in to view ratings.");
         }
     }
     // find out which users we should show ratings for
     // users allowed in the prediction calculation
     $allowed_users = array();
     // users actually allowed to be shown to the user
     $allowed_users_toshow = array();
     foreach ($userids as $userid) {
         $user =& RatingsUserFactory::getUser($userid);
         if ($user->allow_view_ratings($active_user)) {
             array_push($allowed_users_toshow, $user);
         }
         // all users should be allowed in calculation
         array_push($allowed_users, $user);
         // This line ensures $user is not a reference type after this loop
         // If it is a reference type, that can produce very unexpected behavior!
         unset($user);
     }
     // if no buddies, use allusers in prediction calculation
     if (count($userids) == 0 || $userPage) {
         $allowed_users = array();
         //$people_iter = $dbi->get_users_rated();
         $people_dbi = RatingsDb::getTheRatingsDb();
         $people_iter = $people_dbi->sql_get_users_rated();
         while ($people_array = $people_iter->next()) {
             $userid = $people_array['pagename'];
             $user =& RatingsUserFactory::getUser($userid);
             array_push($allowed_users, $user);
         }
     }
     $columns = $info ? explode(",", $info) : array();
     // build our table...
     $pagelist = new PageList($columns, $exclude, array('dimension' => $dimension, 'users' => $allowed_users_toshow));
     // augment columns
     //$preds = new _PageList_Column_prediction('prediction', _("Pred"), 'right', $dimension, $allowed_users);
     $preds = array('_PageList_column_prediction', 'custom:prediction', _("Pred"), 'right', ' ', $allowed_users);
     $pagelist->addColumnObject($preds);
     //$widget = new _PageList_Column_ratingwidget('ratingwidget', _("Rate"), 'left', $dimension);
     $widget = array('_PageList_column_ratingwidget', 'custom:ratingwidget', _("Rate"), 'center');
     $pagelist->addColumnObject($widget);
     $noRatingUsers = array();
     if (!$nobuds) {
         foreach ($allowed_users_toshow as $idx => $user) {
             // For proper caching behavior, get a ref, don't user $user
             $u =& $allowed_users_toshow[$idx];
             //$col = new _PageList_Column_ratingvalue('ratingvalue', $u->getId(), 'right', $dimension, $u);
             $col = array('_PageList_Column_ratingvalue', 'custom:ratingvalue', $u->getId(), 'right', ' ', $u);
             $pagelist->addColumnObject($col);
             unset($u);
         }
     }
     // add rows -- each row represents an item (page)
     foreach ($pageids as $pagename) {
         // addPage can deal with cases where it is passed a string
         $pagelist->addPage($pagename);
     }
     if (!$noheader) {
         $pagelist->setCaption(_($caption));
     }
     return $pagelist;
 }
开发者ID:pombredanne,项目名称:tuleap,代码行数:101,代码来源:UserRatings.php

示例7: run

 function run($dbi, $argstr, &$request, $basepage)
 {
     global $WikiTheme;
     $args = $this->getArgs($argstr, $request);
     if (empty($args['page'])) {
         $args['page'] = "*";
     }
     $form = $this->showForm($dbi, $request, $args);
     extract($args);
     if (empty($s)) {
         return $form;
     }
     $pagequery = new TextSearchQuery($page, $args['case_exact'], $args['regex']);
     $linkquery = new TextSearchQuery($s, $args['case_exact'], $args['regex']);
     $links = $dbi->linkSearch($pagequery, $linkquery, $direction == 'in' ? 'linkfrom' : 'linkto');
     $pagelist = new PageList($args['info'], $args['exclude'], $args);
     $pagelist->_links = array();
     while ($link = $links->next()) {
         $pagelist->addPage($link['pagename']);
         $pagelist->_links[] = $link;
     }
     $pagelist->addColumnObject(new _PageList_Column_LinkSearch_link('link', _("Link"), $pagelist));
     if (!$noheader) {
         // We put the form into the caption just to be able to return one pagelist object,
         // and to still have the convenience form at the top. we could workaround this by
         // putting the form as WikiFormRich into the actionpage. but thid doesnt look as
         // nice as this here.
         $pagelist->setCaption(HTML($noform ? '' : HTML($form, HTML::hr()), fmt("LinkSearch result for \"%s\" in pages \"%s\", direction %s", $s, $page, $direction)));
     }
     return $pagelist;
 }
开发者ID:hugcoday,项目名称:wiki,代码行数:31,代码来源:LinkSearch.php

示例8: run

 function run($dbi, $argstr, &$request, $basepage)
 {
     global $WikiTheme;
     $this->_supported_operators = array(':=', '<', '<=', '>', '>=', '!=', '==', '=~');
     $args = $this->getArgs($argstr, $request);
     $posted = $request->getArg('semsearch');
     $request->setArg('semsearch', false);
     if ($request->isPost() and isset($posted['help'])) {
         $request->redirect(WikiURL(_("Help/SemanticSearchAdvancedPlugin"), array('redirectfrom' => $basepage), true));
     }
     $allrelations = $dbi->listRelations();
     $form = $this->showForm($dbi, $request, $args, $allrelations);
     if (isset($this->_norelations_warning)) {
         $form->pushContent(HTML::div(array('class' => 'warning'), _("Warning:") . $this->_norelations_warning));
     }
     extract($args);
     // For convenience, peace and harmony we allow GET requests also.
     if (!$args['s']) {
         // check for good GET request
         return $form;
     }
     // nobody called us, so just display our form
     // In reality we have to iterate over all found pages.
     // To makes things shorter extract the next AND required expr and
     // iterate only over this, then recurse into the next AND expr.
     // => Split into an AND and OR expression tree.
     $parsed_relations = $this->detectRelationsAndAttributes($args['s']);
     $regex = '';
     if ($parsed_relations) {
         $regex = preg_grep("/[\\*\\?]/", $parsed_relations);
     } else {
         $this->error("Invalid query: No relations or attributes in the query {$s} found");
     }
     $pagelist = new PageList($args['info'], $args['exclude'], $args);
     if (!$noheader) {
         $pagelist->setCaption(HTML($noform ? '' : HTML($form, HTML::hr()), fmt("Semantic %s Search Result for \"%s\" in pages \"%s\"", '', $s, $page)));
     }
     if (!$regex and $missing = array_diff($parsed_relations, $allrelations)) {
         return $pagelist;
     }
     $relquery = new TextSearchQuery(join(" ", $parsed_relations));
     if (!$relquery->match(join(" ", $allrelations))) {
         return $pagelist;
     }
     $pagequery = new TextSearchQuery($page, $args['case_exact'], $args['regex']);
     // if we have only numeric or text ops we can optimize.
     //$parsed_attr_ops = $this->detectAttrOps($args['s']);
     //TODO: writeme
     $linkquery = new TextSearchQuery($s, $args['case_exact'], $args['regex']);
     $links = $dbi->linkSearch($pagequery, $linkquery, 'relation', $relquery);
     $pagelist->_links = array();
     while ($link = $links->next()) {
         $pagelist->addPage($link['pagename']);
         $pagelist->_links[] = $link;
     }
     $pagelist->addColumnObject(new _PageList_Column_SemanticSearch_relation('relation', _("Relation"), $pagelist));
     $pagelist->addColumnObject(new _PageList_Column_SemanticSearch_link('link', _("Link"), $pagelist));
     return $pagelist;
 }
开发者ID:hugcoday,项目名称:wiki,代码行数:59,代码来源:SemanticSearchAdvanced.php

示例9: run

 function run($dbi, $argstr, $request, $basepage)
 {
     global $WikiTheme;
     $args = $this->getArgs($argstr, $request);
     $caption = _("All pages with all links in this wiki (%d total):");
     if (!empty($args['owner'])) {
         $pages = PageList::allPagesByOwner($args['owner'], $args['include_empty'], $args['sortby'], $args['limit']);
         if ($args['owner']) {
             $caption = fmt("List of pages owned by [%s] (%d total):", WikiLink($args['owner'], 'if_known'), count($pages));
         }
     } elseif (!empty($args['author'])) {
         $pages = PageList::allPagesByAuthor($args['author'], $args['include_empty'], $args['sortby'], $args['limit']);
         if ($args['author']) {
             $caption = fmt("List of pages last edited by [%s] (%d total):", WikiLink($args['author'], 'if_known'), count($pages));
         }
     } elseif (!empty($args['creator'])) {
         $pages = PageList::allPagesByCreator($args['creator'], $args['include_empty'], $args['sortby'], $args['limit']);
         if ($args['creator']) {
             $caption = fmt("List of pages created by [%s] (%d total):", WikiLink($args['creator'], 'if_known'), count($pages));
         }
     } else {
         if (!$request->getArg('count')) {
             $args['count'] = $dbi->numPages($args['include_empty'], $args['exclude_from']);
         } else {
             $args['count'] = $request->getArg('count');
         }
         $pages = $dbi->getAllPages($args['include_empty'], $args['sortby'], $args['limit'], $args['exclude_from']);
     }
     if ($args['format'] == 'html') {
         $args['types']['links'] = new _PageList_Column_LinkDatabase_links('links', _("Links"), 'left');
         $pagelist = new PageList($args['info'], $args['exclude_from'], $args);
         if (!$args['noheader']) {
             $pagelist->setCaption($caption);
         }
         return $pagelist;
     } elseif ($args['format'] == 'text') {
         $request->discardOutput();
         $request->buffer_output(false);
         if (!headers_sent()) {
             header("Content-Type: text/plain");
         }
         $request->checkValidators();
         while ($page = $pages->next()) {
             echo $page->getName();
             $links = $page->getPageLinks(false, $args['sortby'], $args['limit'], $args['exclude']);
             while ($link = $links->next()) {
                 echo " ", $link->getName();
             }
             echo "\n";
         }
         flush();
         if (empty($WikiTheme->DUMP_MODE)) {
             $request->finish();
         }
     } elseif ($args['format'] == 'xml') {
         // For hypergraph.jar. Best dump it to a local sitemap.xml periodically
         global $WikiTheme, $charset;
         $currpage = $request->getArg('pagename');
         $request->discardOutput();
         $request->buffer_output(false);
         if (!headers_sent()) {
             header("Content-Type: text/xml");
         }
         $request->checkValidators();
         echo "<?xml version=\"1.0\" encoding=\"{$charset}\"?>";
         // As applet it prefers only "GraphXML.dtd", but then we must copy it to the webroot.
         $dtd = $WikiTheme->_findData("GraphXML.dtd");
         echo "<!DOCTYPE GraphXML SYSTEM \"{$dtd}\">\n";
         echo "<GraphXML xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n";
         echo "<graph id=\"", MangleXmlIdentifier(WIKI_NAME), "\">\n";
         echo '<style><line tag="node" class="main" colour="#ffffff"/><line tag="node" class="child" colour="blue"/><line tag="node" class="relation" colour="green"/></style>', "\n\n";
         while ($page = $pages->next()) {
             $pageid = MangleXmlIdentifier($page->getName());
             $pagename = $page->getName();
             echo "<node name=\"{$pageid}\"";
             if ($pagename == $currpage) {
                 echo " class=\"main\"";
             }
             echo "><label>{$pagename}</label>";
             echo "<dataref><ref xlink:href=\"", WikiURL($pagename, '', true), "\"/></dataref></node>\n";
             $links = $page->getPageLinks(false, $args['sortby'], $args['limit'], $args['exclude']);
             while ($link = $links->next()) {
                 $edge = MangleXmlIdentifier($link->getName());
                 echo "<edge source=\"{$pageid}\" target=\"{$edge}\" />\n";
             }
             echo "\n";
         }
         echo "</graph>\n";
         echo "</GraphXML>\n";
         if (empty($WikiTheme->DUMP_MODE)) {
             unset($GLOBALS['ErrorManager']->_postponed_errors);
             $request->finish();
         }
     } else {
         return $this->error(fmt("Unsupported format argument %s", $args['format']));
     }
 }
开发者ID:pombredanne,项目名称:tuleap,代码行数:97,代码来源:LinkDatabase.php

示例10: run


//.........这里部分代码省略.........
             $pagelist->addColumnObject(new _PageList_Column_SemanticSearch_relation('relation', _("Relation"), $pagelist));
         }
         if (!$args['info'] or $args['info'] and isset($pagelist->_columns_seen['linkto'])) {
             $pagelist->addColumnObject(new _PageList_Column_SemanticSearch_link('linkto', _("Link"), $pagelist));
         }
     }
     // can we merge two different pagelist?
     if (!empty($attribute)) {
         $relquery = $this->regex_query($attribute, $args['case_exact'], $args['regex']);
         if (!in_array($attr_op, $this->_supported_operators)) {
             return HTML($form, $this->error(fmt("Illegal operator: %s", HTML::tt($attr_op))));
         }
         $s_base = preg_replace("/,/", "", $s);
         $units = new Units();
         if (!is_numeric($s_base)) {
             $s_base = $units->basevalue($s_base);
             $is_numeric = is_numeric($s_base);
         } else {
             $is_numeric = true;
         }
         // check which type to search with:
         // at first check if forced text matcher
         if ($attr_op == '=~') {
             if ($s == '*') {
                 $s = '.*';
             }
             // help the poor user. we need pcre syntax.
             $linkquery = new TextSearchQuery("{$s}", $args['case_exact'], 'pcre');
             $querydesc = "{$attribute} {$attr_op} {$s}";
         } elseif ($is_numeric) {
             // do comparison with numbers
             /* We want to search for multiple attributes also. linkSearch can do this.
              * But we have to construct the query somehow. (that's why we try the AND OR dhtml)
              *     population < 1 million AND area > 50 km2
              * Here we check only for one attribute per page.
              * See SemanticSearchAdvanced for the full expression.
              */
             // it might not be the best idea to use '*' as variable to expand. hmm.
             if ($attribute == '*') {
                 $attribute = '_star_';
             }
             $searchtype = "Numeric";
             $query = $attribute . " " . $attr_op . " " . $s_base;
             $linkquery = new SemanticAttributeSearchQuery($query, $attribute, $units->baseunit($s));
             if ($attribute == '_star_') {
                 $attribute = '*';
             }
             $querydesc = $attribute . " " . $attr_op . " " . $s;
             // no number or unit: check other text matchers or '*' MATCH_ALL
         } elseif (in_array($attr_op, $this->_text_operators)) {
             if ($attr_op == '=~') {
                 if ($s == '*') {
                     $s = '.*';
                 }
                 // help the poor user. we need pcre syntax.
                 $linkquery = new TextSearchQuery("{$s}", $args['case_exact'], 'pcre');
             } else {
                 $linkquery = $this->regex_query($s, $args['case_exact'], $args['regex']);
             }
             $querydesc = "{$attribute} {$attr_op} {$s}";
             // should we fail or skip when the user clicks on Relations?
         } elseif (isset($posted['relations']) and $posted['relations']) {
             $linkquery = false;
             // skip
         } else {
             $querydesc = $attribute . " " . $attr_op . " " . $s;
             return HTML($form, $this->error(fmt("Only text operators can be used with strings: %s", HTML::tt($querydesc))));
         }
         if ($linkquery) {
             $links = $dbi->linkSearch($pagequery, $linkquery, 'attribute', $relquery);
             if (empty($relation)) {
                 $pagelist = new PageList($args['info'], $args['exclude'], $args);
                 $pagelist->_links = array();
             }
             while ($link = $links->next()) {
                 $pagelist->addPage($link['pagename']);
                 $pagelist->_links[] = $link;
             }
             // default (=empty info) wants all three. but we want to override this.
             if (!$args['info'] or $args['info'] and isset($pagelist->_columns_seen['attribute'])) {
                 $pagelist->addColumnObject(new _PageList_Column_SemanticSearch_relation('attribute', _("Attribute"), $pagelist));
             }
             if (!$args['info'] or $args['info'] and isset($pagelist->_columns_seen['value'])) {
                 $pagelist->addColumnObject(new _PageList_Column_SemanticSearch_link('value', _("Value"), $pagelist));
             }
         }
     }
     if (!isset($pagelist)) {
         $querydesc = _("<empty>");
         $pagelist = new PageList();
     }
     if (!$noheader) {
         // We put the form into the caption just to be able to return one pagelist object,
         // and to still have the convenience form at the top. we could workaround this by
         // putting the form as WikiFormRich into the actionpage. but thid doesnt look as
         // nice as this here.
         $pagelist->setCaption(HTML($noform ? '' : HTML($form, HTML::hr()), fmt("Semantic %s Search Result for \"%s\" in pages \"%s\"", $searchtype, $querydesc, $page)));
     }
     return $pagelist;
 }
开发者ID:hugcoday,项目名称:wiki,代码行数:101,代码来源:SemanticSearch.php

示例11: run

 function run($dbi, $argstr, &$request, $basepage)
 {
     $args = $this->getArgs($argstr, $request);
     if (empty($args['s'])) {
         return HTML();
     }
     extract($args);
     $query = new TextSearchQuery($s, $case_exact, $regex);
     $pages = $dbi->fullSearch($query, $sortby, $limit, $exclude);
     $lines = array();
     $hilight_re = $hilight ? $query->getHighlightRegexp() : false;
     $count = 0;
     if ($quiet) {
         // see how easy it is with PageList...
         unset($args['info']);
         $args['listtype'] = 'dl';
         $args['types'] = array(new _PageList_Column_content('rev:hi_content', _("Content"), "left", $s, $hilight_re));
         $list = new PageList(false, $exclude, $args);
         $list->setCaption(fmt("Full text search results for '%s'", $s));
         while ($page = $pages->next()) {
             $list->addPage($page);
         }
         return $list;
     }
     // Todo: we should better define a new PageListDL class for dl/dt/dd lists
     // But the new column types must have a callback then. (showhits)
     // See e.g. WikiAdminSearchReplace for custom pagelist columns
     $list = HTML::dl();
     if (!$limit or !is_int($limit)) {
         $limit = 0;
     }
     // expand all page wildcards to a list of pages which should be ignored
     if ($exclude) {
         $exclude = explodePageList($exclude);
     }
     while ($page = $pages->next() and (!$limit or $count < $limit)) {
         $name = $page->getName();
         if ($exclude and in_array($name, $exclude)) {
             continue;
         }
         $count++;
         $list->pushContent(HTML::dt(WikiLink($page)));
         if ($hilight_re) {
             $list->pushContent($this->showhits($page, $hilight_re));
         }
         unset($page);
     }
     if ($limit and $count >= $limit) {
         //todo: pager link to list of next matches
         $list->pushContent(HTML::dd(fmt("only %d pages displayed", $limit)));
     }
     if (!$list->getContent()) {
         $list->pushContent(HTML::dd(_("<no matches>")));
     }
     if (!empty($pages->stoplisted)) {
         $list = HTML(HTML::p(fmt(_("Ignored stoplist words '%s'"), join(', ', $pages->stoplisted))), $list);
     }
     if ($noheader) {
         return $list;
     }
     return HTML(HTML::p(fmt("Full text search results for '%s'", $s)), $list);
 }
开发者ID:hugcoday,项目名称:wiki,代码行数:62,代码来源:FullTextSearch.php

示例12: run

 function run($dbi, $argstr, &$request, $basepage)
 {
     $args = $this->getArgs($argstr, $request);
     if (empty($args['s'])) {
         return '';
     }
     $query = new TextSearchQuery($args['s'], $args['case_exact'], $args['regex']);
     $pages = $dbi->titleSearch($query, $args['sortby'], $args['limit'], $args['exclude']);
     $pagelist = new PageList($args['info'], $args['exclude'], $args);
     while ($page = $pages->next()) {
         $pagelist->addPage($page);
         $last_name = $page->getName();
     }
     if ($args['format'] == 'livesearch') {
         $request->discardOutput();
         $request->buffer_output(false);
         echo '<div class="LSRes">';
         echo $pagelist->asXml();
         echo '</div>';
         if (empty($WikiTheme->DUMP_MODE)) {
             unset($GLOBALS['ErrorManager']->_postponed_errors);
             $request->finish();
         }
     }
     // Provide an unknown WikiWord link to allow for page creation
     // when a search returns no results
     if (!$args['noheader']) {
         $s = $args['s'];
         if (!$pagelist->getTotal() and !$query->_regex) {
             $s = WikiLink($args['s'], 'auto');
         }
         $pagelist->setCaption(fmt("Title search results for '%s'", $s));
     }
     if ($args['auto_redirect'] && $pagelist->getTotal() == 1) {
         return HTML($request->redirect(WikiURL($last_name, false, 'absurl'), false), $pagelist);
     }
     return $pagelist;
 }
开发者ID:pombredanne,项目名称:tuleap,代码行数:38,代码来源:TitleSearch.php

示例13: run

 function run($dbi, $argstr, &$request, $basepage)
 {
     $args = $this->getArgs($argstr, $request);
     if (!empty($args['exclude_from'])) {
         $args['exclude_from'] = is_string($args['exclude_from']) ? explodePageList($args['exclude_from']) : $args['exclude_from'];
     }
     // <! plugin-list !>
     extract($args);
     if ($page == _("WantedPages")) {
         $page = "";
     }
     // There's probably a more memory-efficient way to do this (eg
     // a tailored SQL query via the backend, but this gets the job
     // done.
     // TODO: Move this to backend/dumb/WantedPagesIter.php
     if (!$page) {
         $GLOBALS['WikiTheme']->addPageListColumn(array('wanted' => array('_PageList_Column_WantedPages_wanted', 'custom:wanted', _("Wanted From"), 'left')));
     }
     $pagelist = new PageList($page ? '' : 'pagename,wanted', $exclude, $args);
     // search button?
     $pagelist->_wpagelist = array();
     if (!$page) {
         list($offset, $maxcount) = $pagelist->limit($limit);
         $wanted_iter = $dbi->wantedPages($exclude_from, $exclude, $sortby, $limit);
         while ($row = $wanted_iter->next()) {
             $wanted = $row['pagename'];
             $wantedfrom = $row['wantedfrom'];
             // ignore duplicates:
             if (empty($pagelist->_wpagelist[$wanted])) {
                 $pagelist->addPage($wanted);
             }
             $pagelist->_wpagelist[$wanted][] = $wantedfrom;
         }
         $wanted_iter->free();
         // update limit, but it's still a hack.
         $pagelist->_options['limit'] = "{$offset}," . min($pagelist->getTotal(), $maxcount);
     } elseif ($dbi->isWikiPage($page)) {
         //only get WantedPages links for one page
         $page_handle = $dbi->getPage($page);
         $links = $page_handle->getPageLinks(true);
         // include_empty
         while ($link_handle = $links->next()) {
             if (!$dbi->isWikiPage($linkname = $link_handle->getName())) {
                 $pagelist->addPage($linkname);
                 //if (!array_key_exists($linkname, $this->_wpagelist))
                 $pagelist->_wpagelist[$linkname][] = 1;
             }
         }
     }
     /*
             if ($sortby) {
                 ksort($this->_wpagelist);
                 arsort($this->_wpagelist);
             }*/
     if (!$noheader) {
         if ($page) {
             $pagelist->setCaption(sprintf(_("Wanted Pages for %s:"), $page));
         } else {
             $pagelist->setCaption(sprintf(_("Wanted Pages in this wiki:")));
         }
     }
     // reference obviously doesn't work, so force an update to add _wpagelist to parentobj
     if (isset($pagelist->_columns[1]) and $pagelist->_columns[1]->_field == 'wanted') {
         $pagelist->_columns[1]->parentobj =& $pagelist;
     }
     return $pagelist;
 }
开发者ID:pombredanne,项目名称:tuleap,代码行数:67,代码来源:WantedPages.php

示例14: run

 function run($dbi, $argstr, &$request, $basepage)
 {
     $args = $this->getArgs($argstr, $request);
     extract($args);
     if (empty($page) and $page != '0') {
         return '';
     }
     // exclude is now already expanded in WikiPlugin::getArgs()
     if (empty($exclude)) {
         $exclude = array();
     }
     if (!$include_self) {
         $exclude[] = $page;
     }
     if ($info) {
         $info = explode(",", $info);
         if (in_array('count', $info)) {
             $args['types']['count'] = new _PageList_Column_BackLinks_count('count', _("#"), 'center');
         }
     }
     if (!empty($limit)) {
         $args['limit'] = $limit;
     }
     $args['dosort'] = !empty($args['sortby']);
     // override DB sort (??)
     $pagelist = new PageList($info, $exclude, $args);
     // support logical AND: page1,page2
     $pages = explodePageList($page);
     $count = count($pages);
     if (count($pages) > 1) {
         // AND: the intersection of all these pages
         $bl = array();
         foreach ($pages as $p) {
             $dp = $dbi->getPage($p);
             $bi = $dp->getBackLinks(false, $sortby, 0, $exclude);
             while ($b = $bi->next()) {
                 $name = $b->getName();
                 if (isset($bl[$name])) {
                     $bl[$name]++;
                 } else {
                     $bl[$name] = 1;
                 }
             }
         }
         foreach ($bl as $b => $v) {
             if ($v == $count) {
                 $pagelist->addPage($b);
             }
         }
     } else {
         $p = $dbi->getPage($page);
         $pagelist->addPages($p->getBackLinks(false, $sortby, 0, $exclude));
     }
     $total = $pagelist->getTotal();
     // Localization note: In English, the differences between the
     // various phrases spit out here may seem subtle or negligible
     // enough to tempt you to combine/normalize some of these
     // strings together, but the grammar employed most by other
     // languages does not always end up with so subtle a
     // distinction as it does with English in this case. :)
     if (!$noheader) {
         if ($page == $request->getArg('pagename') and !$dbi->isWikiPage($page)) {
             // BackLinks plugin is more than likely being called
             // upon for an empty page on said page, while either
             // 'browse'ing, 'create'ing or 'edit'ing.
             //
             // Don't bother displaying a WikiLink 'unknown', just
             // the Un~WikiLink~ified (plain) name of the uncreated
             // page currently being viewed.
             $pagelink = $page;
             if ($pagelist->isEmpty()) {
                 return HTML::p(fmt("No other page links to %s yet.", $pagelink));
             }
             if ($total == 1) {
                 $pagelist->setCaption(fmt("One page would link to %s:", $pagelink));
             } else {
                 $pagelist->setCaption(fmt("%s pages would link to %s:", $total, $pagelink));
             }
         } else {
             if ($count) {
                 $tmp_pages = $pages;
                 $p = array_shift($tmp_pages);
                 $pagelink = HTML(WikiLink($p, 'auto'));
                 foreach ($tmp_pages as $p) {
                     $pagelink->pushContent(" ", _("AND"), " ", WikiLink($p, 'auto'));
                 }
             } else {
                 // BackLinks plugin is being displayed on a normal page.
                 $pagelink = WikiLink($page, 'auto');
             }
             if ($pagelist->isEmpty()) {
                 return HTML::p(fmt("No page links to %s.", $pagelink));
             }
             //trigger_error("DEBUG: " . $pagelist->getTotal());
             if ($total == 1) {
                 $pagelist->setCaption(fmt("One page links to %s:", $pagelink));
             } else {
                 $pagelist->setCaption(fmt("%s pages link to %s:", $limit > 0 ? $total : _("Those"), $pagelink));
             }
         }
//.........这里部分代码省略.........
开发者ID:hugcoday,项目名称:wiki,代码行数:101,代码来源:BackLinks.php

示例15: run

 function run($dbi, $argstr, &$request, $basepage)
 {
     $args = $this->getArgs($argstr, $request);
     extract($args);
     if (empty($page) and $page != '0') {
         return '';
     }
     // exclude is now already expanded in WikiPlugin::getArgs()
     if (empty($exclude)) {
         $exclude = array();
     }
     if (!$include_self) {
         $exclude[] = $page;
     }
     if ($info) {
         $info = explode(",", $info);
         if (in_array('count', $info)) {
             $args['types']['count'] = new _PageList_Column_BackLinks_count('count', _("#"), 'center');
         }
     }
     $args['dosort'] = !empty($args['sortby']);
     // override DB sort (??)
     $pagelist = new PageList($info, $exclude, $args);
     $p = $dbi->getPage($page);
     $pagelist->addPages($p->getBackLinks(false, $sortby, $limit, $exclude));
     // Localization note: In English, the differences between the
     // various phrases spit out here may seem subtle or negligible
     // enough to tempt you to combine/normalize some of these
     // strings together, but the grammar employed most by other
     // languages does not always end up with so subtle a
     // distinction as it does with English in this case. :)
     if (!$noheader) {
         if ($page == $request->getArg('pagename') and !$dbi->isWikiPage($page)) {
             // BackLinks plugin is more than likely being called
             // upon for an empty page on said page, while either
             // 'browse'ing, 'create'ing or 'edit'ing.
             //
             // Don't bother displaying a WikiLink 'unknown', just
             // the Un~WikiLink~ified (plain) name of the uncreated
             // page currently being viewed.
             $pagelink = $page;
             if ($pagelist->isEmpty()) {
                 return HTML::p(fmt("No other page links to %s yet.", $pagelink));
             }
             if ($pagelist->getTotal() == 1) {
                 $pagelist->setCaption(fmt("One page would link to %s:", $pagelink));
             } else {
                 $pagelist->setCaption(fmt("%s pages would link to %s:", $pagelist->getTotal(), $pagelink));
             }
         } else {
             // BackLinks plugin is being displayed on a normal page.
             $pagelink = WikiLink($page, 'auto');
             if ($pagelist->isEmpty()) {
                 return HTML::p(fmt("No page links to %s.", $pagelink));
             }
             //trigger_error("DEBUG: " . $pagelist->getTotal());
             if ($pagelist->getTotal() == 1) {
                 $pagelist->setCaption(fmt("One page links to %s:", $pagelink));
             } else {
                 $pagelist->setCaption(fmt("%s pages link to %s:", $pagelist->getTotal(), $pagelink));
             }
         }
     }
     return $pagelist;
 }
开发者ID:pombredanne,项目名称:tuleap,代码行数:65,代码来源:BackLinks.php


注:本文中的PageList::setCaption方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。