Example #1
0
 /**
  * Add next and prev meta headers for navigating through
  * blog posts
  *
  * @param Doku_Event $event  event object by reference
  * @param array      $param  empty array as passed to register_hook()
  * @return void|bool
  */
 function handle_metaheader_output(Doku_Event $event, $param)
 {
     global $ACT, $ID;
     if ($ACT != 'show') {
         return false;
     }
     $pid = md5($ID);
     $this->entryhelper->load_by_pid($pid);
     if ($this->entryhelper->get_blog() == '') {
         return true;
     }
     $relatedentries = $this->entryhelper->getAdjacentLinks($ID);
     if (isset($relatedentries['prev'])) {
         $event->data['link'][] = array('rel' => 'prev', 'href' => wl($relatedentries['prev']['page'], ''));
     }
     if (isset($relatedentries['next'])) {
         $event->data['link'][] = array('rel' => 'next', 'href' => wl($relatedentries['next']['page'], ''));
     }
     return true;
 }
Example #2
0
 /**
  * Displays a preview of the comment
  *
  * @param array $data submitted comment properties
  */
 private function xhtml_comment_preview($data)
 {
     $this->entryhelper->load_by_pid($data['pid']);
     $blogname = $this->entryhelper->get_blog();
     ptln('<div id="blogtng__comment_preview">');
     ptln(p_locale_xhtml('preview'));
     ptln('<br />');
     $comment = new blogtng_comment();
     $comment->init($data);
     $comment->output($blogname);
     ptln('</div>');
 }
Example #3
0
 /**
  * Adds additional fields of used by the BlogTNG plugin to the editor.
  *
  * @param Doku_Event $event
  * @param $param
  */
 function handle_editform_output(Doku_Event $event, $param)
 {
     global $ID, $INFO;
     $pos = $event->data->findElementByAttribute('type', 'submit');
     if (!$pos) {
         return;
     }
     // no submit button found, source view
     $pos -= 1;
     $pid = md5($ID);
     $this->entryhelper->load_by_pid($pid);
     $isNotExistingBlog = $this->entryhelper->entry['blog'] === null;
     $blog = $this->tools->getParam('post/blog');
     if (!$blog) {
         $blog = $this->entryhelper->get_blog();
     }
     if (!$blog && !$INFO['exists']) {
         $blog = $this->getConf('default_blog');
     }
     $blogs = $this->entryhelper->get_blogs();
     $event->data->insertElement($pos, form_openfieldset(array('_legend' => 'BlogTNG', 'class' => 'edit', 'id' => 'blogtng__edit')));
     $pos += 1;
     $event->data->insertElement($pos, form_makeMenuField('btng[post][blog]', $blogs, $blog, 'Blog', 'blogtng__blog', 'edit'));
     $pos += 1;
     $this->taghelper->load($pid);
     $tags = $this->_get_post_tags();
     if ($tags === false) {
         $tags = $this->taghelper->getTags();
     }
     if (!$tags && $isNotExistingBlog) {
         $tags = helper_plugin_blogtng_tools::filterExplodeCSVinput($this->getConf('default_tags'));
     }
     $allowed_tags = $this->_get_allowed_tags();
     if (count($allowed_tags) > 0) {
         $event->data->insertElement($pos++, form_makeOpenTag('div', array('class' => 'blogtng__tags_checkboxes')));
         foreach ($this->_get_allowed_tags() as $val) {
             $data = array('style' => 'margin-top: 0.3em;');
             if (in_array($val, $tags)) {
                 $data['checked'] = 'checked';
             }
             $event->data->insertElement($pos++, form_makeCheckboxField('btng[post][tags][]', $val, $val, '', '', $data));
         }
         $event->data->insertElement($pos++, form_makeCloseTag('div'));
     } else {
         $event->data->insertElement($pos, form_makeTextField('btng[post][tags]', join(', ', $tags), 'Tags', 'blogtng__tags', 'edit'));
         $pos += 1;
     }
     $commentstatus = $this->tools->getParam('post/commentstatus');
     if (!$commentstatus) {
         $commentstatus = $this->entryhelper->entry['commentstatus'];
     }
     if (!$commentstatus) {
         $commentstatus = $this->getConf('default_commentstatus');
     }
     $event->data->insertElement($pos, form_makeMenuField('btng[post][commentstatus]', array('enabled', 'closed', 'disabled'), $commentstatus, $this->getLang('commentstatus'), 'blogtng__commentstatus', 'edit'));
     $pos += 1;
     if ($this->getConf('editform_set_date')) {
         $postdate = $this->tools->getParam('post/date');
         if ($postdate) {
             $YY = $postdate['YY'];
             $MM = $postdate['MM'];
             $DD = $postdate['DD'];
             $hh = $postdate['hh'];
             $mm = $postdate['mm'];
         } else {
             $created = $this->entryhelper->entry['created'];
             if ($created) {
                 $YY = strftime('%Y', $created);
                 $MM = strftime('%m', $created);
                 $DD = strftime('%d', $created);
                 $hh = strftime('%H', $created);
                 $mm = strftime('%M', $created);
             } else {
                 $time = time();
                 $YY = strftime('%Y', $time);
                 $MM = strftime('%m', $time);
                 $DD = strftime('%d', $time);
                 $hh = strftime('%H', $time);
                 $mm = strftime('%M', $time);
             }
         }
         $event->data->insertElement($pos, form_makeTextField('btng[post][date][YY]', $YY, 'YYYY', 'blogtng__date_YY', 'edit btng__date_YY', array('maxlength' => 4)));
         $pos += 1;
         $event->data->insertElement($pos, form_makeTextField('btng[post][date][MM]', $MM, 'MM', 'blogtng__date_MM', 'edit btng__date', array('maxlength' => 2)));
         $pos += 1;
         $event->data->insertElement($pos, form_makeTextField('btng[post][date][DD]', $DD, 'DD', 'blogtng__date_DD', 'edit btng__date', array('maxlength' => 2)));
         $pos += 1;
         $event->data->insertElement($pos, form_makeTextField('btng[post][date][hh]', $hh, 'hh', 'blogtng__date_hh', 'edit btng__date', array('maxlength' => 2)));
         $pos += 1;
         $event->data->insertElement($pos, form_makeTextField('btng[post][date][mm]', $mm, 'mm', 'blogtng__date_mm', 'edit btng__date', array('maxlength' => 2)));
         $pos += 1;
     }
     $event->data->insertElement($pos, form_closefieldset());
 }