Author: Jan Schneider (jan@horde.org)
Author: Tyler Colbert (tyler@colberts.us)
Inheritance: extends Wicked_Page
Esempio n. 1
0
 /**
  * Renders this page in display or block mode.
  *
  * @return string  The page contents.
  * @throws Wicked_Exception
  */
 public function displayContents($isBlock)
 {
     global $injector, $page_output;
     $pages = array();
     foreach ($this->content() as $page) {
         $page = new Wicked_Page_StandardPage($page);
         $pages[] = $page->toView();
     }
     $page_output->addScriptFile('tables.js', 'horde');
     $view = $injector->createInstance('Horde_View');
     // Show search form and page header.
     return $view->render('pagelist/header') . $view->renderPartial('pagelist/page', array('collection' => $pages)) . $view->render('pagelist/footer');
 }
Esempio n. 2
0
 /**
  * Renders this page in display or block mode.
  *
  * @return string  The contents.
  * @throws Wicked_Exception
  */
 public function displayContents($isBlock)
 {
     global $injector, $page_output, $wicked;
     $page_output->addScriptFile('tables.js', 'horde');
     $view = $injector->createInstance('Horde_View');
     $content = $view->render('pagelist/header');
     $summaries = $wicked->getBackLinks($this->_referrer);
     foreach ($summaries as $page) {
         if (!empty($page['page_history'])) {
             $page = new Wicked_Page_StandardHistoryPage($page);
         } else {
             $page = new Wicked_Page_StandardPage($page);
         }
         $content .= $view->renderPartial('pagelist/page', array('object' => $page->toView()));
     }
     return $content . $view->render('pagelist/footer');
 }
Esempio n. 3
0
 /**
  * Renders this page in display mode.
  *
  * @throws Wicked_Exception
  */
 public function display()
 {
     global $injector, $page_output, $wicked;
     $view = $injector->createInstance('Horde_View');
     $view->action = Wicked::url('NewPage');
     $view->formInput = Horde_Util::formInput();
     $view->referrer = $this->referrer();
     $view->name = $this->pageName();
     if ($this->_results) {
         $page_output->addScriptFile('tables.js', 'horde');
         $view->pages = array();
         foreach ($this->_results as $page) {
             if (!empty($page['page_history'])) {
                 $page = new Wicked_Page_StandardHistoryPage($page);
             } else {
                 $page = new Wicked_Page_StandardPage($page);
             }
             $view->pages[] = $page->toView();
         }
     }
     $view->templates = $wicked->getMatchingPages('Template', Wicked_Page::MATCH_ENDS);
     $view->help = Horde_Help::link('wicked', 'Templates');
     return $view->render('edit/create');
 }
Esempio n. 4
0
 /**
  * Returns the requested page.
  *
  * @return Wicked_Page  The requested page.
  * @throws Wicked_Exception
  */
 public static function getPage($pagename, $pagever = null, $referrer = null)
 {
     global $conf, $notification, $wicked;
     if (empty($pagename)) {
         $pagename = 'Wiki/Home';
     }
     $classname = 'Wicked_Page_' . $pagename;
     if ($pagename == basename($pagename) && class_exists($classname)) {
         return new $classname($referrer);
     }
     /* If we have a version, but it is actually the most recent version,
      * ignore it. */
     if (!empty($pagever)) {
         $page = new Wicked_Page_StandardPage($pagename, false, null);
         if ($page->isValid() && $page->version() == $pagever) {
             return $page;
         }
         return new Wicked_Page_StandardHistoryPage($pagename, $pagever);
     }
     $page = new Wicked_Page_StandardPage($pagename);
     if ($page->isValid() || !$page->allows(Wicked::MODE_EDIT)) {
         return $page;
     }
     return new Wicked_Page_AddPage($pagename);
 }
Esempio n. 5
0
 public function pageUrl($linkpage = null, $actionId = null)
 {
     return parent::pageUrl($linkpage, $actionId)->add('version', $this->version());
 }
Esempio n. 6
0
 /**
  * Renders this page in content mode.
  *
  * @return string  The page content.
  * @throws Wicked_Exception
  */
 public function content()
 {
     global $wicked;
     $days = (int) Horde_Util::getGet('days', 3);
     $summaries = $wicked->getRecentChanges($days);
     if (count($summaries) < 10) {
         $summaries = $wicked->mostRecent(10);
     }
     $bydate = array();
     $changes = array();
     foreach ($summaries as $page) {
         $page = new Wicked_Page_StandardPage($page);
         $createDate = $page->versionCreated();
         $tm = localtime($createDate, true);
         $createDate = mktime(0, 0, 0, $tm['tm_mon'], $tm['tm_mday'], $tm['tm_year'], $tm['tm_isdst']);
         $version_url = $page->pageUrl()->add('version', $page->version());
         $diff_url = Horde::url('diff.php')->add(array('page' => $page->pageName(), 'v1' => '?', 'v2' => $page->version()));
         $diff_alt = sprintf(_("Show changes for %s"), $page->version());
         $diff_img = Horde::img('diff.png', $diff_alt);
         $pageInfo = array('author' => $page->author(), 'name' => $page->pageName(), 'url' => $page->pageUrl(), 'version' => $page->version(), 'version_url' => $version_url, 'version_alt' => sprintf(_("Show version %s"), $page->version()), 'diff_url' => $diff_url, 'diff_alt' => $diff_alt, 'diff_img' => $diff_img, 'created' => $page->formatVersionCreated(), 'change_log' => $page->changeLog());
         $bydate[$createDate][$page->versionCreated()][$page->version()] = $pageInfo;
     }
     krsort($bydate);
     foreach ($bydate as $bysecond) {
         $day = array();
         krsort($bysecond);
         foreach ($bysecond as $pageList) {
             krsort($pageList);
             $day = array_merge($day, array_values($pageList));
         }
         $changes[] = array('date' => $day[0]['created'], 'pages' => $day);
     }
     return $changes;
 }
Esempio n. 7
0
 /**
  * Renders this page in display mode.
  *
  * @param string $searchtext  The title to search for.
  *
  * @return string  The content.
  * @throws Wicked_Exception
  */
 public function display($searchtext)
 {
     global $injector, $notification, $page_output, $wicked;
     $view = $injector->createInstance('Horde_View');
     if (!$searchtext) {
         return $view->render('pagelist/search') . $view->render('pagelist/footer');
     }
     /* Prepare exact match section */
     $exact = array();
     $page = new Wicked_Page_StandardPage($searchtext);
     if ($wicked->pageExists($searchtext)) {
         $exact[] = $page->toView();
     } else {
         $exact[] = (object) array('author' => '', 'context' => Wicked::url($searchtext, false)->link(array('title' => sprintf(_("Create %s"), $searchtext))) . sprintf(_("%s does not exist. You can create it now."), '<strong>' . htmlspecialchars($searchtext) . '</strong>') . '</a>', 'date' => '', 'name' => htmlspecialchars($searchtext), 'timestamp' => 0, 'version' => '', 'url' => Wicked::url($searchtext, false));
     }
     /* Prepare page title matches */
     $titles = array();
     foreach ($this->_results['titles'] as $page) {
         if (!empty($page['page_history'])) {
             $page = new Wicked_Page_StandardHistoryPage($page);
         } else {
             $page = new Wicked_Page_StandardPage($page);
         }
         $titles[] = $page->toView();
     }
     /* Prepare page text matches */
     $pages = array();
     foreach ($this->_results['pages'] as $page) {
         if (!empty($page['page_history'])) {
             $page = new Wicked_Page_StandardHistoryPage($page);
         } else {
             $page = new Wicked_Page_StandardPage($page);
         }
         $object = $page->toView();
         $object->context = $this->getContext($page, $searchtext);
         $pages[] = $object;
     }
     $page_output->addScriptFile('tables.js', 'horde');
     $header = $injector->createInstance('Horde_View');
     $header->th_page = _("Page");
     $header->th_version = _("Current Version");
     $header->th_author = _("Last Author");
     $header->th_updated = _("Last Update");
     $view = $injector->createInstance('Horde_View');
     // Show search form and page header.
     $content = $view->render('pagelist/search');
     // Show exact match.
     $header->title = _("Exact Match");
     $content .= $header->render('pagelist/results_header') . $view->renderPartial('pagelist/page', array('collection' => $exact)) . $view->render('pagelist/results_footer');
     // Show page title matches.
     $header->title = _("Page Title Matches");
     $content .= $header->render('pagelist/results_header') . $view->renderPartial('pagelist/page', array('collection' => $titles)) . $view->render('pagelist/results_footer');
     // Show page text matches.
     $header->title = _("Page Text Matches");
     $content .= $header->render('pagelist/results_header') . $view->renderPartial('pagelist/page', array('collection' => $pages)) . $view->render('pagelist/results_footer');
     return $content;
 }