public function buildAction() { // create the index $index = Zend_Search_Lucene::create(APPLICATION_PATH . '/indexes'); // fetch all of the current pages $mdlPage = new Model_Page(); $currentPages = $mdlPage->fetchAll(); if ($currentPages->count() > 0) { // create a new search document for each page foreach ($currentPages as $p) { $page = new CMS_Content_Item_Page($p->id); $doc = new Zend_Search_Lucene_Document(); // you use an unindexed field for the id because you want the id to be // included in the search results but not searchable $doc->addField(Zend_Search_Lucene_Field::unIndexed('page_id', $page->id)); // you use text fields here because you want the content to be searchable // and to be returned in search results $doc->addField(Zend_Search_Lucene_Field::text('page_name', $page->name)); $doc->addField(Zend_Search_Lucene_Field::text('page_headline', $page->headline)); $doc->addField(Zend_Search_Lucene_Field::text('page_description', $page->description)); $doc->addField(Zend_Search_Lucene_Field::text('page_content', $page->content)); // add the document to the index $index->addDocument($doc); } } // optimize the index $index->optimize(); // pass the view data for reporting $this->view->indexSize = $index->numDocs(); }
public function __construct() { $mdlPage = new Model_Page(); $mdlContentNode = new Model_PageNode(); $select = $mdlPage->select(); $select->where("namespace = 'content'"); $pages = $mdlPage->fetchAll($select); if ($pages->count() > 0) { foreach ($pages as $page) { $contentNodes = $mdlContentNode->fetchContentObject($page->id); if (isset($contentNodes->content)) { //if the page does not have content it doesnt belong in the index (eg blocks) $title = $mdlPage->getPageTitle($page->id); $link = Digitalus_Toolbox_Page::getUrl($page); $link = strtolower($link); $contentNodes = $mdlContentNode->fetchContentObject($page->id); if (isset($contentNodes->teaser)) { $teaser = $contentNodes->teaser; } else { $teaser = Digitalus_Toolbox_String::truncateText($contentNodes->content); } $content = $contentNodes->content; $this->_addPage($link, $title, $teaser, $content); } } } }
public function init() { $this->setMethod('post'); // create new element $id = $this->createElement('hidden', 'id'); // element options $id->setDecorators(array('ViewHelper')); // add the element to the form $this->addElement($id); // create new element $menuId = $this->createElement('hidden', 'menu_id'); // element options $menuId->setDecorators(array('ViewHelper')); // add the element to the form $this->addElement($menuId); // create new element $label = $this->createElement('text', 'label'); // element options $label->setLabel('Label: '); $label->setRequired(TRUE); $label->addFilter('StripTags'); $label->setAttrib('size', 40); // add the element to the form $this->addElement($label); // create new element $pageId = $this->createElement('select', 'page_id'); // element options $pageId->setLabel('Select a page to link to: '); $pageId->setRequired(true); // populate this with the pages $mdlPage = new Model_Page(); $pages = $mdlPage->fetchAll(null, 'name'); $pageId->addMultiOption(0, 'None'); if ($pages->count() > 0) { foreach ($pages as $page) { $pageId->addMultiOption($page->id, $page->name); } } // add the element to the form $this->addElement($pageId); // create new element $link = $this->createElement('text', 'link'); // element options $link->setLabel('or specify a link: '); $link->setRequired(false); $link->setAttrib('size', 50); // add the element to the form $this->addElement($link); $submit = $this->addElement('submit', 'submit', array('label' => 'Submit')); }
public function listAction() { $pageModel = new Model_Page(); // fetch all of the current pages $select = $pageModel->select(); $select->order('name'); $currentPages = $pageModel->fetchAll($select); if ($currentPages->count() > 0) { $this->view->pages = $currentPages; } else { $this->view->pages = null; } }