Dotclear

source: admin/post.php @ 1210:1387e8c54c05

Revision 1210:1387e8c54c05, 20.6 KB checked in by akewea, 12 years ago (diff)

Ajout d'un bouton "annuler" sur la page de saisie d'un billet, qui redirige vers le dashboard en création et vers la liste des billets en modification.

Line 
1<?php
2# -- BEGIN LICENSE BLOCK ---------------------------------------
3#
4# This file is part of Dotclear 2.
5#
6# Copyright (c) 2003-2013 Olivier Meunier & Association Dotclear
7# Licensed under the GPL version 2.0 license.
8# See LICENSE file or
9# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
10#
11# -- END LICENSE BLOCK -----------------------------------------
12
13require dirname(__FILE__).'/../inc/admin/prepend.php';
14
15dcPage::check('usage,contentadmin');
16
17$post_id = '';
18$cat_id = '';
19$post_dt = '';
20$post_format = $core->auth->getOption('post_format');
21$post_password = '';
22$post_url = '';
23$post_lang = $core->auth->getInfo('user_lang');
24$post_title = '';
25$post_excerpt = '';
26$post_excerpt_xhtml = '';
27$post_content = '';
28$post_content_xhtml = '';
29$post_notes = '';
30$post_status = $core->auth->getInfo('user_post_status');
31$post_selected = false;
32$post_open_comment = $core->blog->settings->system->allow_comments;
33$post_open_tb = $core->blog->settings->system->allow_trackbacks;
34
35$page_title = __('New entry');
36
37$can_view_page = true;
38$can_edit_post = $core->auth->check('usage,contentadmin',$core->blog->id);
39$can_publish = $core->auth->check('publish,contentadmin',$core->blog->id);
40$can_delete = false;
41
42$post_headlink = '<link rel="%s" title="%s" href="post.php?id=%s" />';
43$post_link = '<a href="post.php?id=%s" title="%s">%s</a>';
44
45$next_link = $prev_link = $next_headlink = $prev_headlink = null;
46
47# If user can't publish
48if (!$can_publish) {
49     $post_status = -2;
50}
51
52# Getting categories
53$categories_combo = array('&nbsp;' => '');
54try {
55     $categories = $core->blog->getCategories(array('post_type'=>'post'));
56     while ($categories->fetch()) {
57          $categories_combo[] = new formSelectOption(
58               str_repeat('&nbsp;&nbsp;',$categories->level-1).($categories->level-1 == 0 ? '' : '&bull; ').html::escapeHTML($categories->cat_title),
59               $categories->cat_id
60          );
61     }
62} catch (Exception $e) { }
63
64# Status combo
65foreach ($core->blog->getAllPostStatus() as $k => $v) {
66     $status_combo[$v] = (string) $k;
67}
68$img_status_pattern = '<img class="img_select_option" alt="%1$s" title="%1$s" src="images/%2$s" />';
69
70# Formaters combo
71foreach ($core->getFormaters() as $v) {
72     $formaters_combo[$v] = $v;
73}
74
75# Languages combo
76$rs = $core->blog->getLangs(array('order'=>'asc'));
77$all_langs = l10n::getISOcodes(0,1);
78$lang_combo = array('' => '', __('Most used') => array(), __('Available') => l10n::getISOcodes(1,1));
79while ($rs->fetch()) {
80     if (isset($all_langs[$rs->post_lang])) {
81          $lang_combo[__('Most used')][$all_langs[$rs->post_lang]] = $rs->post_lang;
82          unset($lang_combo[__('Available')][$all_langs[$rs->post_lang]]);
83     } else {
84          $lang_combo[__('Most used')][$rs->post_lang] = $rs->post_lang;
85     }
86}
87unset($all_langs);
88unset($rs);
89
90# Validation flag
91$bad_dt = false;
92
93# Get entry informations
94if (!empty($_REQUEST['id']))
95{
96     $params['post_id'] = $_REQUEST['id'];
97     
98     $post = $core->blog->getPosts($params);
99     
100     if ($post->isEmpty())
101     {
102          $core->error->add(__('This entry does not exist.'));
103          $can_view_page = false;
104     }
105     else
106     {
107          $post_id = $post->post_id;
108          $cat_id = $post->cat_id;
109          $post_dt = date('Y-m-d H:i',strtotime($post->post_dt));
110          $post_format = $post->post_format;
111          $post_password = $post->post_password;
112          $post_url = $post->post_url;
113          $post_lang = $post->post_lang;
114          $post_title = $post->post_title;
115          $post_excerpt = $post->post_excerpt;
116          $post_excerpt_xhtml = $post->post_excerpt_xhtml;
117          $post_content = $post->post_content;
118          $post_content_xhtml = $post->post_content_xhtml;
119          $post_notes = $post->post_notes;
120          $post_status = $post->post_status;
121          $post_selected = (boolean) $post->post_selected;
122          $post_open_comment = (boolean) $post->post_open_comment;
123          $post_open_tb = (boolean) $post->post_open_tb;
124         
125          $page_title = __('Edit entry');
126         
127          $can_edit_post = $post->isEditable();
128          $can_delete= $post->isDeletable();
129         
130          $next_rs = $core->blog->getNextPost($post,1);
131          $prev_rs = $core->blog->getNextPost($post,-1);
132         
133          if ($next_rs !== null) {
134               $next_link = sprintf($post_link,$next_rs->post_id,
135                    html::escapeHTML($next_rs->post_title),__('next entry').'&nbsp;&#187;');
136               $next_headlink = sprintf($post_headlink,'next',
137                    html::escapeHTML($next_rs->post_title),$next_rs->post_id);
138          }
139         
140          if ($prev_rs !== null) {
141               $prev_link = sprintf($post_link,$prev_rs->post_id,
142                    html::escapeHTML($prev_rs->post_title),'&#171;&nbsp;'.__('previous entry'));
143               $prev_headlink = sprintf($post_headlink,'previous',
144                    html::escapeHTML($prev_rs->post_title),$prev_rs->post_id);
145          }
146         
147          try {
148               $core->media = new dcMedia($core);
149          } catch (Exception $e) {}
150     }
151}
152
153# Format excerpt and content
154if (!empty($_POST) && $can_edit_post)
155{
156     $post_format = $_POST['post_format'];
157     $post_excerpt = $_POST['post_excerpt'];
158     $post_content = $_POST['post_content'];
159     
160     $post_title = $_POST['post_title'];
161     
162     $cat_id = (integer) $_POST['cat_id'];
163     
164     if (isset($_POST['post_status'])) {
165          $post_status = (integer) $_POST['post_status'];
166     }
167     
168     if (empty($_POST['post_dt'])) {
169          $post_dt = '';
170     } else {
171          try
172          {
173               $post_dt = strtotime($_POST['post_dt']);
174               if ($post_dt == false || $post_dt == -1) {
175                    $bad_dt = true;
176                    throw new Exception(__('Invalid publication date'));
177               }
178               $post_dt = date('Y-m-d H:i',$post_dt);
179          }
180          catch (Exception $e)
181          {
182               $core->error->add($e->getMessage());
183          }
184     }
185     
186     $post_open_comment = !empty($_POST['post_open_comment']);
187     $post_open_tb = !empty($_POST['post_open_tb']);
188     $post_selected = !empty($_POST['post_selected']);
189     $post_lang = $_POST['post_lang'];
190     $post_password = !empty($_POST['post_password']) ? $_POST['post_password'] : null;
191     
192     $post_notes = $_POST['post_notes'];
193     
194     if (isset($_POST['post_url'])) {
195          $post_url = $_POST['post_url'];
196     }
197     
198     $core->blog->setPostContent(
199          $post_id,$post_format,$post_lang,
200          $post_excerpt,$post_excerpt_xhtml,$post_content,$post_content_xhtml
201     );
202}
203
204# Delete post
205if (!empty($_POST['delete']) && $can_delete)
206{
207     try {
208          # --BEHAVIOR-- adminBeforePostDelete
209          $core->callBehavior('adminBeforePostDelete',$post_id);
210          $core->blog->delPost($post_id);
211          http::redirect('posts.php');
212     } catch (Exception $e) {
213          $core->error->add($e->getMessage());
214     }
215}
216
217# Create or update post
218if (!empty($_POST) && !empty($_POST['save']) && $can_edit_post && !$bad_dt)
219{
220     $cur = $core->con->openCursor($core->prefix.'post');
221     
222     $cur->post_title = $post_title;
223     $cur->cat_id = ($cat_id ? $cat_id : null);
224     $cur->post_dt = $post_dt ? date('Y-m-d H:i:00',strtotime($post_dt)) : '';
225     $cur->post_format = $post_format;
226     $cur->post_password = $post_password;
227     $cur->post_lang = $post_lang;
228     $cur->post_title = $post_title;
229     $cur->post_excerpt = $post_excerpt;
230     $cur->post_excerpt_xhtml = $post_excerpt_xhtml;
231     $cur->post_content = $post_content;
232     $cur->post_content_xhtml = $post_content_xhtml;
233     $cur->post_notes = $post_notes;
234     $cur->post_status = $post_status;
235     $cur->post_selected = (integer) $post_selected;
236     $cur->post_open_comment = (integer) $post_open_comment;
237     $cur->post_open_tb = (integer) $post_open_tb;
238     
239     if (isset($_POST['post_url'])) {
240          $cur->post_url = $post_url;
241     }
242     
243     # Update post
244     if ($post_id)
245     {
246          try
247          {
248               # --BEHAVIOR-- adminBeforePostUpdate
249               $core->callBehavior('adminBeforePostUpdate',$cur,$post_id);
250               
251               $core->blog->updPost($post_id,$cur);
252               
253               # --BEHAVIOR-- adminAfterPostUpdate
254               $core->callBehavior('adminAfterPostUpdate',$cur,$post_id);
255               
256               http::redirect('post.php?id='.$post_id.'&upd=1');
257          }
258          catch (Exception $e)
259          {
260               $core->error->add($e->getMessage());
261          }
262     }
263     else
264     {
265          $cur->user_id = $core->auth->userID();
266         
267          try
268          {
269               # --BEHAVIOR-- adminBeforePostCreate
270               $core->callBehavior('adminBeforePostCreate',$cur);
271               
272               $return_id = $core->blog->addPost($cur);
273               
274               # --BEHAVIOR-- adminAfterPostCreate
275               $core->callBehavior('adminAfterPostCreate',$cur,$return_id);
276               
277               http::redirect('post.php?id='.$return_id.'&crea=1');
278          }
279          catch (Exception $e)
280          {
281               $core->error->add($e->getMessage());
282          }
283     }
284}
285
286/* DISPLAY
287-------------------------------------------------------- */
288$default_tab = 'edit-entry';
289if (!$can_edit_post) {
290     $default_tab = '';
291}
292if (!empty($_GET['co'])) {
293     $default_tab = 'comments';
294}
295
296dcPage::open($page_title.' - '.__('Entries'),
297     dcPage::jsDatePicker().
298     dcPage::jsToolBar().
299     dcPage::jsModal().
300     dcPage::jsMetaEditor().
301     dcPage::jsLoad('js/_post.js').
302     dcPage::jsConfirmClose('entry-form','comment-form').
303     # --BEHAVIOR-- adminPostHeaders
304     $core->callBehavior('adminPostHeaders').
305     dcPage::jsPageTabs($default_tab).
306     $next_headlink."\n".$prev_headlink
307);
308
309if (!empty($_GET['upd'])) {
310     dcPage::message(__('Entry has been successfully updated.'));
311}
312elseif (!empty($_GET['crea'])) {
313     dcPage::message(__('Entry has been successfully created.'));
314}
315elseif (!empty($_GET['attached'])) {
316     dcPage::message(__('File has been successfully attached.'));
317}
318elseif (!empty($_GET['rmattach'])) {
319     dcPage::message(__('Attachment has been successfully removed.'));
320}
321
322if (!empty($_GET['creaco'])) {
323     dcPage::message(__('Comment has been successfully created.'));
324}
325
326# XHTML conversion
327if (!empty($_GET['xconv']))
328{
329     $post_excerpt = $post_excerpt_xhtml;
330     $post_content = $post_content_xhtml;
331     $post_format = 'xhtml';
332     
333     dcPage::message(__('Don\'t forget to validate your XHTML conversion by saving your post.'));
334}
335
336echo '<h2>'.html::escapeHTML($core->blog->name).' &rsaquo; '.'<a href="posts.php">'.__('Entries').'</a> &rsaquo; <span class="page-title">'.$page_title;
337if ($post_id) {
338     switch ($post_status) {
339          case 1:
340               $img_status = sprintf($img_status_pattern,__('published'),'check-on.png');
341               break;
342          case 0:
343               $img_status = sprintf($img_status_pattern,__('unpublished'),'check-off.png');
344               break;
345          case -1:
346               $img_status = sprintf($img_status_pattern,__('scheduled'),'scheduled.png');
347               break;
348          case -2:
349               $img_status = sprintf($img_status_pattern,__('pending'),'check-wrn.png');
350               break;
351          default:
352               $img_status = '';
353     }
354     echo ' &ldquo;'.$post_title.'&rdquo;'.' '.$img_status;
355}
356echo '</span></h2>';
357
358if ($post_id && $post->post_status == 1) {
359     echo '<p><a href="'.$post->getURL().'" onclick="window.open(this.href);return false;" title="'.$post_title.' ('.__('new window').')'.'">'.__('Go to this entry on the site').' <img src="images/outgoing-blue.png" alt="" /></a></p>';
360}
361if ($post_id)
362{
363     echo '<p>';
364     if ($prev_link) { echo $prev_link; }
365     if ($next_link && $prev_link) { echo ' - '; }
366     if ($next_link) { echo $next_link; }
367     
368     # --BEHAVIOR-- adminPostNavLinks
369     $core->callBehavior('adminPostNavLinks',isset($post) ? $post : null);
370     
371     echo '</p>';
372}
373
374# Exit if we cannot view page
375if (!$can_view_page) {
376     dcPage::helpBlock('core_post');
377     dcPage::close();
378     exit;
379}
380
381/* Post form if we can edit post
382-------------------------------------------------------- */
383if ($can_edit_post)
384{
385     echo '<div class="multi-part" title="'.__('Edit entry').'" id="edit-entry">';
386     echo '<form action="post.php" method="post" id="entry-form">';
387     echo '<div id="entry-wrapper">';
388     echo '<div id="entry-content"><div class="constrained">';
389     
390     echo
391     '<p class="col"><label class="required"><abbr title="'.__('Required field').'">*</abbr> '.__('Title:').
392     form::field('post_title',20,255,html::escapeHTML($post_title),'maximal').
393     '</label></p>'.
394     
395     '<p class="area" id="excerpt-area"><label for="post_excerpt">'.__('Excerpt:').'</label> '.
396     form::textarea('post_excerpt',50,5,html::escapeHTML($post_excerpt)).
397     '</p>'.
398     
399     '<p class="area"><label class="required" '.
400     'for="post_content"><abbr title="'.__('Required field').'">*</abbr> '.__('Content:').'</label> '.
401     form::textarea('post_content',50,$core->auth->getOption('edit_size'),html::escapeHTML($post_content)).
402     '</p>'.
403     
404     '<p class="area" id="notes-area"><label for="post_notes">'.__('Notes:').'</label>'.
405     form::textarea('post_notes',50,5,html::escapeHTML($post_notes)).
406     '</p>';
407     
408     # --BEHAVIOR-- adminPostForm
409     $core->callBehavior('adminPostForm',isset($post) ? $post : null);
410     
411     echo
412     '<p>'.
413     ($post_id ? form::hidden('id',$post_id) : '').
414     '<input type="submit" value="'.__('Save').' (s)" '.
415     'accesskey="s" name="save" /> ';
416     if ($post_id) {
417          $preview_url =
418          $core->blog->url.$core->url->getURLFor('preview',$core->auth->userID().'/'.
419          http::browserUID(DC_MASTER_KEY.$core->auth->userID().$core->auth->getInfo('user_pwd')).
420          '/'.$post->post_url);
421          echo '<a id="post-preview" href="'.$preview_url.'" class="button" accesskey="p">'.__('Preview').' (p)'.'</a> ';
422     }
423     $cancel_url = $post_id ? 'posts.php' : 'index.php';
424     echo
425     '<a id="post-cancel" href="'.$cancel_url.'" class="button" accesskey="c">'.__('Cancel').' (c)</a>';
426     echo
427     ($can_delete ? '<input type="submit" class="delete" value="'.__('Delete').'" name="delete" />' : '').
428     $core->formNonce().
429     '</p>';
430     
431     echo '</div></div>';          // End #entry-content
432     echo '</div>';      // End #entry-wrapper
433
434     echo '<div id="entry-sidebar">';
435     
436     echo
437     '<p><label for="cat_id">'.__('Category:').
438     form::combo('cat_id',$categories_combo,$cat_id,'maximal').
439     '</label></p>'.
440     
441     '<p><label for="post_status">'.__('Entry status:').
442     form::combo('post_status',$status_combo,$post_status,'','',!$can_publish).
443     '</label></p>'.
444     
445     '<p><label for="post_dt">'.__('Published on:').
446     form::field('post_dt',16,16,$post_dt,($bad_dt ? 'invalid' : '')).
447     '</label></p>'.
448     
449     '<p><label for="post_format">'.__('Text formating:').
450     form::combo('post_format',$formaters_combo,$post_format).
451     '</label>'.
452     '</p>'.
453     '<p>'.($post_id && $post_format != 'xhtml' ? '<a id="convert-xhtml" class="button" href="post.php?id='.$post_id.'&amp;xconv=1">'.__('Convert to XHTML').'</a>' : '').'</p>'.
454     
455     '<p><label for="post_open_comment" class="classic">'.form::checkbox('post_open_comment',1,$post_open_comment).' '.
456     __('Accept comments').'</label></p>'.
457     ($core->blog->settings->system->allow_comments ? 
458          (isContributionAllowed($post_id,strtotime($post_dt),true) ? 
459               '' :
460               '<p class="form-note warn">'.__('Warning: Comments are not more accepted for this entry.').'</p>') : 
461          '<p class="form-note warn">'.__('Warning: Comments are not accepted on this blog.').'</p>').
462
463     '<p><label for="post_open_tb" class="classic">'.form::checkbox('post_open_tb',1,$post_open_tb).' '.
464     __('Accept trackbacks').'</label></p>'.
465     ($core->blog->settings->system->allow_trackbacks ? 
466          (isContributionAllowed($post_id,strtotime($post_dt),false) ? 
467               '' :
468               '<p class="form-note warn">'.__('Warning: Trackbacks are not more accepted for this entry.').'</p>') : 
469          '<p class="form-note warn">'.__('Warning: Trackbacks are not accepted on this blog.').'</p>').
470
471     '<p><label for="post_selected" class="classic">'.form::checkbox('post_selected',1,$post_selected).' '.
472     __('Selected entry').'</label></p>'.
473     
474     '<p><label for="post_lang">'.__('Entry lang:').
475     form::combo('post_lang',$lang_combo,$post_lang).
476     '</label></p>'.
477     
478     '<p><label for="post_password">'.__('Entry password:').
479     form::field('post_password',10,32,html::escapeHTML($post_password),'maximal').
480     '</label></p>'.
481     
482     '<div class="lockable">'.
483     '<p><label for="post_url">'.__('Basename:').
484     form::field('post_url',10,255,html::escapeHTML($post_url),'maximal').
485     '</label></p>'.
486     '<p class="form-note warn">'.
487     __('Warning: If you set the URL manually, it may conflict with another entry.').
488     '</p>'.
489     '</div>';
490     
491     # --BEHAVIOR-- adminPostFormSidebar
492     $core->callBehavior('adminPostFormSidebar',isset($post) ? $post : null);
493     
494     echo '</div>';      // End #entry-sidebar
495
496     echo '</form>';
497     
498     # --BEHAVIOR-- adminPostForm
499     $core->callBehavior('adminPostAfterForm',isset($post) ? $post : null);
500     
501     echo '</div>';
502     
503     if ($post_id && $post->post_status == 1) {
504          echo '<p><a href="trackbacks.php?id='.$post_id.'" class="multi-part">'.
505          __('Ping blogs').'</a></p>';
506     }
507     
508}
509
510
511/* Comments and trackbacks
512-------------------------------------------------------- */
513if ($post_id)
514{
515     $params = array('post_id' => $post_id, 'order' => 'comment_dt ASC');
516     
517     $comments = $core->blog->getComments(array_merge($params,array('comment_trackback'=>0)));
518     $trackbacks = $core->blog->getComments(array_merge($params,array('comment_trackback'=>1)));
519     
520     # Actions combo box
521     $combo_action = array();
522     if ($can_edit_post && $core->auth->check('publish,contentadmin',$core->blog->id))
523     {
524          $combo_action[__('publish')] = 'publish';
525          $combo_action[__('unpublish')] = 'unpublish';
526          $combo_action[__('mark as pending')] = 'pending';
527          $combo_action[__('mark as junk')] = 'junk';
528     }
529     
530     if ($can_edit_post && $core->auth->check('delete,contentadmin',$core->blog->id))
531     {
532          $combo_action[__('Delete')] = 'delete';
533     }
534     
535     # --BEHAVIOR-- adminCommentsActionsCombo
536     $core->callBehavior('adminCommentsActionsCombo',array(&$combo_action));
537     
538     $has_action = !empty($combo_action) && (!$trackbacks->isEmpty() || !$comments->isEmpty());
539     
540     echo
541     '<div id="comments" class="multi-part" title="'.__('Comments').'">';
542     
543     if ($has_action) {
544          echo '<form action="comments_actions.php" id="form-comments" method="post">';
545     }
546     
547     echo '<h3>'.__('Trackbacks').'</h3>';
548     
549     if (!$trackbacks->isEmpty()) {
550          showComments($trackbacks,$has_action,true);
551     } else {
552          echo '<p>'.__('No trackback').'</p>';
553     }
554     
555     echo '<h3>'.__('Comments').'</h3>';
556     if (!$comments->isEmpty()) {
557          showComments($comments,$has_action);
558     } else {
559          echo '<p>'.__('No comment').'</p>';
560     }
561     
562     if ($has_action) {
563          echo
564          '<div class="two-cols">'.
565          '<p class="col checkboxes-helpers"></p>'.
566         
567          '<p class="col right"><label for="action" class="classic">'.__('Selected comments action:').'</label> '.
568          form::combo('action',$combo_action).
569          form::hidden('redir','post.php?id='.$post_id.'&amp;co=1').
570          $core->formNonce().
571          '<input type="submit" value="'.__('ok').'" /></p>'.
572          '</div>'.
573          '</form>';
574     }
575     
576     echo '</div>';
577}
578
579/* Add a comment
580-------------------------------------------------------- */
581if ($post_id)
582{
583     echo
584     '<div class="multi-part" id="add-comment" title="'.__('Add a comment').'">'.
585     '<h3>'.__('Add a comment').'</h3>'.
586     
587     '<form action="comment.php" method="post" id="comment-form">'.
588     '<div class="constrained">'.
589     '<p><label for="comment_author" class="required"><abbr title="'.__('Required field').'">*</abbr> '.__('Name:').
590     form::field('comment_author',30,255,html::escapeHTML($core->auth->getInfo('user_cn'))).
591     '</label></p>'.
592     
593     '<p><label for="comment_email">'.__('Email:').
594     form::field('comment_email',30,255,html::escapeHTML($core->auth->getInfo('user_email'))).
595     '</label></p>'.
596     
597     '<p><label for="comment_site">'.__('Web site:').
598     form::field('comment_site',30,255,html::escapeHTML($core->auth->getInfo('user_url'))).
599     '</label></p>'.
600     
601     '<p class="area"><label for="comment_content" class="required"><abbr title="'.__('Required field').'">*</abbr> '.
602     __('Comment:').'</label> '.
603     form::textarea('comment_content',50,8,html::escapeHTML('')).
604     '</p>'.
605     
606     '<p>'.form::hidden('post_id',$post_id).
607     $core->formNonce().
608     '<input type="submit" name="add" value="'.__('Save').'" /></p>'.
609     '</div>'.
610     '</form>'.
611     '</div>';
612}
613
614# Controls comments or trakbacks capabilities
615function isContributionAllowed($id,$dt,$com=true)
616{
617     global $core;
618
619     if (!$id) {
620          return true;
621     }
622     if ($com) {
623          if (($core->blog->settings->system->comments_ttl == 0) || 
624               (time() - $core->blog->settings->system->comments_ttl*86400 < $dt)) {
625               return true;
626          }
627     } else {
628          if (($core->blog->settings->system->trackbacks_ttl == 0) || 
629               (time() - $core->blog->settings->system->trackbacks_ttl*86400 < $dt)) {
630               return true;
631          }
632     }
633     return false;
634}
635
636# Show comments or trackbacks
637function showComments($rs,$has_action,$tb=false)
638{
639     echo
640     '<table class="comments-list"><tr>'.
641     '<th colspan="2">'.__('Author').'</th>'.
642     '<th>'.__('Date').'</th>'.
643     '<th class="nowrap">'.__('IP address').'</th>'.
644     '<th>'.__('Status').'</th>'.
645     '<th>&nbsp;</th>'.
646     '</tr>';
647     
648     while($rs->fetch())
649     {
650          $comment_url = 'comment.php?id='.$rs->comment_id;
651         
652          $img = '<img alt="%1$s" title="%1$s" src="images/%2$s" />';
653          switch ($rs->comment_status) {
654               case 1:
655                    $img_status = sprintf($img,__('published'),'check-on.png');
656                    break;
657               case 0:
658                    $img_status = sprintf($img,__('unpublished'),'check-off.png');
659                    break;
660               case -1:
661                    $img_status = sprintf($img,__('pending'),'check-wrn.png');
662                    break;
663               case -2:
664                    $img_status = sprintf($img,__('junk'),'junk.png');
665                    break;
666          }
667         
668          echo
669          '<tr class="line'.($rs->comment_status != 1 ? ' offline' : '').'"'.
670          ' id="c'.$rs->comment_id.'">'.
671         
672          '<td class="nowrap">'.
673          ($has_action ? form::checkbox(array('comments[]'),$rs->comment_id,'','','',0,'title="'.($tb ? __('select this trackback') : __('select this comment')).'"') : '').'</td>'.
674          '<td class="maximal">'.html::escapeHTML($rs->comment_author).'</td>'.
675          '<td class="nowrap">'.dt::dt2str(__('%Y-%m-%d %H:%M'),$rs->comment_dt).'</td>'.
676          '<td class="nowrap"><a href="comments.php?ip='.$rs->comment_ip.'">'.$rs->comment_ip.'</a></td>'.
677          '<td class="nowrap status">'.$img_status.'</td>'.
678          '<td class="nowrap status"><a href="'.$comment_url.'">'.
679          '<img src="images/edit-mini.png" alt="" title="'.__('Edit this comment').'" /></a></td>'.
680         
681          '</tr>';
682     }
683     
684     echo '</table>';
685}
686
687dcPage::helpBlock('core_post','core_wiki');
688dcPage::close();
689?>
Note: See TracBrowser for help on using the repository browser.

Sites map