/** * Displays a single entry and related actions * * @author Michael Klier <*****@*****.**> * * @param $entry * @param $query */ private function xhtml_entry_item($entry, $query) { global $lang; global $ID; static $class = 'odd'; ptln('<tr class="' . $class . '">'); $class = $class == 'odd' ? 'even' : 'odd'; ptln('<td class="entry_created">' . dformat($entry['created']) . '</td>'); ptln('<td class="entry_author">' . hsc($entry['author']) . '</td>'); ptln('<td class="entry_title">' . html_wikilink(':' . $entry['page'], $entry['title']) . '</td>'); ptln('<td class="entry_set_blog">' . $this->xhtml_entry_edit_form($entry, $query, 'blog') . '</th>'); ptln('<td class="entry_set_commentstatus">' . $this->xhtml_entry_edit_form($entry, $query, 'commentstatus') . '</th>'); $this->commenthelper->setPid($entry['pid']); // search comments of this entry link ptln('<td class="entry_comments">'); $count = $this->commenthelper->get_count(null, true); if ($count > 0) { $params = array('do' => 'admin', 'page' => 'blogtng', 'btng[admin]' => 'search', 'btng[query][filter]' => 'comment', 'btng[query][pid]' => $entry['pid']); ptln('<a href="' . wl($ID, $params) . '" title="' . $this->getLang('comments') . '">' . $count . '</a>'); } else { ptln($count); } ptln('</td>'); // tags filter links ptln('<td class="entry_tags">'); $this->taghelper->load($entry['pid']); $tags = $this->taghelper->getTags(); $count = count($tags); for ($i = 0; $i < $count; $i++) { $params = array('do' => 'admin', 'page' => 'blogtng', 'btng[admin]' => 'search', 'btng[query][filter]' => 'tags', 'btng[query][string]' => $tags[$i]); $link = '<a href="' . wl($ID, $params) . '" title="' . $tags[$i] . '">' . $tags[$i] . '</a>'; if ($i < $count - 1) { $link .= ', '; } ptln($link); } ptln('</td>'); // edit links ptln('<td class="entry_edit">'); $params = array('id' => $entry['page'], 'do' => 'edit'); ptln('<a href="' . wl($ID, $params) . '" class="blogtng_btn_edit" title="' . $lang['btn_secedit'] . '">' . $lang['btn_secedit'] . '</a>'); ptln('</td>'); ptln('</tr>'); }
/** * 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()); }