Dotclear

source: plugins/rateIt/_admin.php @ 1865

Revision 1865, 5.9 KB checked in by JcDenis, 13 years ago (diff)

rateIt 0.9.7:

  • Added entryFirstImage to wigdet
  • Fixed bug with date sorting on widget
  • Fixed bug with plugin ativityReport
  • Removed about tabs and fixed typo
Line 
1<?php
2# -- BEGIN LICENSE BLOCK ----------------------------------
3# This file is part of rateIt, a plugin for Dotclear 2.
4#
5# Copyright (c) 2009 JC Denis and contributors
6# jcdenis@gdwd.com
7#
8# Licensed under the GPL version 2.0 license.
9# A copy of this license is available in LICENSE file or at
10# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
11# -- END LICENSE BLOCK ------------------------------------
12
13if (!defined('DC_CONTEXT_ADMIN')){return;}
14
15if ($core->blog->settings->rateit_active === null) return;
16
17$_menu['Plugins']->addItem(
18     __('Rate it'),
19     'plugin.php?p=rateIt','index.php?pf=rateIt/icon.png',
20     preg_match('/plugin.php\?p=rateIt(&.*)?$/',$_SERVER['REQUEST_URI']),
21     $core->auth->check('usage,contentadmin',$core->blog->id));
22
23require dirname(__FILE__).'/_widgets.php';
24
25$core->addBehavior('adminBeforePostDelete',array('rateItAdmin','adminBeforePostDelete'));
26$core->addBehavior('adminPostsActionsCombo',array('rateItAdmin','adminPostsActionsCombo'));
27$core->addBehavior('adminPostsActions',array('rateItAdmin','adminPostsActions'));
28$core->addBehavior('adminPostsActionsContent',array('rateItAdmin','adminPostsActionsContent'));
29
30if ($core->blog->settings->rateit_importexport_active) {
31
32     $core->addBehavior('exportFull',array('rateitBackup','exportFull'));
33     $core->addBehavior('exportSingle',array('rateitBackup','exportSingle'));
34     $core->addBehavior('importInit',array('rateitBackup','importInit'));
35     $core->addBehavior('importSingle',array('rateitBackup','importSingle'));
36     $core->addBehavior('importFull',array('rateitBackup','importFull'));
37}
38
39class rateItAdmin
40{
41     public static function adminBeforePostDelete($post_id)
42     {
43          $post_id = (integer) $post_id;
44          $rateIt = new rateIt($GLOBALS['core']);
45          $rateIt->del('post',$post_id);
46     }
47
48     public static function adminPostsActionsCombo($args)
49     {
50          global $core;
51          if ($core->blog->settings->rateit_active 
52           && $core->auth->check('delete,contentadmin',$core->blog->id)) {
53               $args[0][__('delete rating')] = 'rateit_empty';
54          }
55     }
56
57     public static function adminPostsActions($core,$posts,$action,$redir)
58     {
59          if ($action != 'rateit_do_empty') return;
60
61          try {
62               $rateIt = new rateIt($core);
63               while ($posts->fetch()) {
64                    $rateIt->del('post',$posts->post_id);
65               }
66               $core->blog->triggerBlog();
67               http::redirect($redir);
68          }
69          catch (Exception $e) {
70               $core->error->add($e->getMessage());
71          }
72     }
73
74     public static function adminPostsActionsContent($core,$action,$hidden_fields)
75     {
76          if ($action != 'rateit_empty') return;
77
78          echo 
79          '<div id="rateit-edit">'.
80          '<h3>'.__('delete rating').'</h3>'.
81          '<form action="posts_actions.php" method="post"><div>'.
82          '<p>'.__('Do you really want to delete all votes for these entries?').'</p>'.
83          '<ul>';
84          foreach($_POST['entries'] as $post) {
85               $rs = $core->blog->getPosts(array('post_id'=>$post,'no_content'=>true));
86               echo '<li><a href="post.php?id='.$rs->post_id.'">'.$rs->post_title.'</a></li>';
87          }
88          echo 
89          '</ul>'.
90          '<p>'.
91          $hidden_fields.
92          $core->formNonce().
93          form::hidden(array('action'),'rateit_do_empty').
94          '<input type="submit" value="'.__('Delete').'" /></p>'.
95          '</div></form>'.
96          '</div>';
97     }
98}
99
100class rateItBackup
101{
102     public static function exportSingle($core,$exp,$blog_id)
103     {
104          $exp->export('rateit',
105               'SELECT blog_id, rateit_id, rateit_type, rateit_note, rateit_quotient, rateit_ip, rateit_time '.
106               'FROM '.$core->prefix.'rateit '.
107               "WHERE blog_id = '".$blog_id."'"
108          );
109     }
110
111     public static function exportFull($core,$exp)
112     {
113          $exp->exportTable('rateit');
114     }
115
116     public static function importInit($bk,$core)
117     {
118          $bk->cur_rateit = $core->con->openCursor($core->prefix.'rateit');
119     }
120
121     public static function importSingle($line,$bk,$core)
122     {
123          if ($line->__name != 'rateit') return;
124
125          if ($line->rateit_type == 'post' && isset($bk->old_ids['post'][(integer) $line->rateit_id])) {
126               $line->rateit_id = $bk->old_ids['post'][(integer) $line->rateit_id];
127          }
128
129          elseif ($line->rateit_type == 'comment') {
130               # Can't retreive old/new comment_id
131               # See: http://dev.dotclear.org/2.0/ticket/789#comment:1
132               return;
133          }
134
135          elseif ($line->rateit_type == 'category' && isset($bk->old_ids['category'][(integer) $line->rateit_id])) {
136               $line->rateit_id = $bk->old_ids['category'][(integer) $line->rateit_id];
137          }
138
139          elseif ($line->rateit_type == 'gal' && isset($bk->old_ids['post'][(integer) $line->rateit_id])) {
140               $line->rateit_id = $bk->old_ids['post'][(integer) $line->rateit_id];
141          }
142
143          elseif ($line->rateit_type == 'galitem' && isset($bk->old_ids['post'][(integer) $line->rateit_id])) {
144               $line->rateit_id = $bk->old_ids['post'][(integer) $line->rateit_id];
145          }
146
147          elseif ($line->rateit_type == 'tag') {
148               $line->rateit_id = (string) $line->rateit_id;
149          }
150
151          else return;
152
153
154          $bk->cur_rateit->clean();
155          $bk->cur_rateit->blog_id   = (string) $core->blog_id;
156          $bk->cur_rateit->rateit_id   = (string) $line->rateit_id;
157          $bk->cur_rateit->rateit_type   = (string) $line->rateit_type;
158          $bk->cur_rateit->rateit_note   = (integer) $line->rateit_note;
159          $bk->cur_rateit->rateit_quotient   = (integer) $line->rateit_quotient;
160          $bk->cur_rateit->rateit_ip   = (string) $line->rateit_ip;
161          $bk->cur_rateit->rateit_time   = (string) $line->rateit_time;
162          $bk->cur_rateit->insert();
163     }
164
165     public static function importFull($line,$bk,$core)
166     {
167          if ($line->__name == 'rateit') {
168               $bk->cur_rateit->clean();
169               $bk->cur_rateit->blog_id   = (string) $line->blog_id;
170               $bk->cur_rateit->rateit_id   = (string) $line->rateit_id;
171               $bk->cur_rateit->rateit_type   = (string) $line->rateit_type;
172               $bk->cur_rateit->rateit_note   = (integer) $line->rateit_note;
173               $bk->cur_rateit->rateit_quotient   = (integer) $line->rateit_quotient;
174               $bk->cur_rateit->rateit_ip   = (string) $line->rateit_ip;
175               $bk->cur_rateit->rateit_time   = (string) $line->rateit_time;
176               $bk->cur_rateit->insert();
177          }
178     }
179}
180?>
Note: See TracBrowser for help on using the repository browser.

Sites map