Dotclear

source: plugins/tinyMce/admin/page.php @ 3024

Revision 3024, 10.1 KB checked in by Moe, 12 years ago (diff)

TinyMCE 0.2.6: Dotclear 2.2 compatibility on pages

Line 
1<?php
2# -- BEGIN LICENSE BLOCK ---------------------------------------
3#
4# This file is part of Dotclear 2.
5#
6# Copyright (c) 2003-2010 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
13if (!defined('DC_CONTEXT_ADMIN')) { return; }
14dcPage::check('pages,contentadmin');
15
16$default_page = $core->getPostAdminURL('page',$_REQUEST['id']);
17
18$redir_url = $p_url.'&type=page';
19
20$post_id = '';
21$post_dt = '';
22$post_format = $core->auth->getOption('post_format');
23$post_password = '';
24$post_url = '';
25$post_lang = $core->auth->getInfo('user_lang');
26$post_title = '';
27$post_excerpt = '';
28$post_excerpt_xhtml = '';
29$post_content = '';
30$post_content_xhtml = '';
31$post_status = $core->auth->getInfo('user_post_status');
32$post_position = 0;
33$post_open_comment = false;
34$post_open_tb = false;
35
36$post_media = array();
37
38$page_title = __('New page');
39
40$can_view_page = true;
41$can_edit_page = $core->auth->check('pages,usage',$core->blog->id);
42$can_publish = $core->auth->check('pages,publish,contentadmin',$core->blog->id);
43$can_delete = false;
44
45// link
46$tmp = $redir_url;
47
48$redir_url = 'plugin.php?p=page&p=pages';
49
50$post_headlink = '<link rel="%s" title="%s" href="'.html::escapeURL($redir_url).'&amp;id=%s" />';
51$post_link = '<a href="'.html::escapeURL($redir_url).'&amp;id=%s" title="%s">%s</a>';
52
53$redir_url = $tmp;
54unset($tmp);
55
56$next_link = $prev_link = $next_headlink = $prev_headlink = null;
57
58# If user can't publish
59if (!$can_publish) {
60     $post_status = -2;
61}
62
63# Get page informations
64if (!empty($_REQUEST['id']))
65{
66     $params['post_type'] = 'page';
67     $params['post_id'] = $_REQUEST['id'];
68     
69     $post = $core->blog->getPosts($params);
70     
71     if ($post->isEmpty())
72     {
73          $core->error->add(__('This page does not exist.'));
74          $can_view_page = false;
75     }
76     else
77     {
78          $post_id = $post->post_id;
79          $post_dt = date('Y-m-d H:i',strtotime($post->post_dt));
80          $post_format = $post->post_format;
81         
82          # check post format
83          if (($post_format != 'xhtml') && (empty($_GET['xconv'])))
84          {
85               $core->error->add(__('This entry format is not XHTML.').' '.
86                    __('You have to convert this entry to XHTML format to use TinyMCE, this operation cannot be undone.').' '.
87                    '<a href="'.$p_url.'&amp;type=page&amp;id='.$post_id.'&amp;xconv=1" '.
88                    'id="tinyMce-convert" class="button">'.
89                         __('Convert this post to XHTML format').'</a> '.
90                    '<a href="'.$default_page.'" class="button">'.
91                         __('Return to the default page').'</a> ');
92               $can_view_page = false;
93          }
94         
95          $post_password = $post->post_password;
96          $post_url = $post->post_url;
97          $post_lang = $post->post_lang;
98          $post_title = $post->post_title;
99          $post_excerpt = $post->post_excerpt;
100          $post_excerpt_xhtml = $post->post_excerpt_xhtml;
101          $post_content = $post->post_content;
102          $post_content_xhtml = $post->post_content_xhtml;
103          $post_status = $post->post_status;
104          $post_position = (integer) $post->post_position;
105          $post_open_comment = (boolean) $post->post_open_comment;
106          $post_open_tb = (boolean) $post->post_open_tb;
107         
108          $page_title = __('Edit page');
109         
110          $can_edit_page = $post->isEditable();
111          $can_delete= $post->isDeletable();
112         
113          $next_rs = $core->blog->getNextPost($post,1);
114          $prev_rs = $core->blog->getNextPost($post,-1);
115         
116          if ($next_rs !== null) {
117               $next_link = sprintf($post_link,$next_rs->post_id,
118                    html::escapeHTML($next_rs->post_title),__('next page').'&nbsp;&#187;');
119               $next_headlink = sprintf($post_headlink,'next',
120                    html::escapeHTML($next_rs->post_title),$next_rs->post_id);
121          }
122         
123          if ($prev_rs !== null) {
124               $prev_link = sprintf($post_link,$prev_rs->post_id,
125                    html::escapeHTML($prev_rs->post_title),'&#171;&nbsp;'.__('previous page'));
126               $prev_headlink = sprintf($post_headlink,'previous',
127                    html::escapeHTML($prev_rs->post_title),$prev_rs->post_id);
128          }
129         
130          try {
131               $core->media = new dcMedia($core);
132               $post_media = $core->media->getPostMedia($post_id);
133          } catch (Exception $e) {}
134     }
135}
136
137# Format content
138if (!empty($_POST) && $can_edit_page)
139{
140     $post_format = $_POST['post_format'];
141     $post_excerpt = $_POST['post_excerpt'];
142     $post_content = $_POST['post_content'];
143     
144     $post_title = $_POST['post_title'];
145     
146     if (isset($_POST['post_status'])) {
147          $post_status = (integer) $_POST['post_status'];
148     }
149     
150     if (empty($_POST['post_dt'])) {
151          $post_dt = '';
152     } else {
153          $post_dt = strtotime($_POST['post_dt']);
154          $post_dt = date('Y-m-d H:i',$post_dt);
155     }
156     
157     $post_open_comment = !empty($_POST['post_open_comment']);
158     $post_open_tb = !empty($_POST['post_open_tb']);
159     $post_lang = $_POST['post_lang'];
160     $post_password = !empty($_POST['post_password']) ? $_POST['post_password'] : null;
161     $post_position = (integer) $_POST['post_position'];
162     
163     if (isset($_POST['post_url'])) {
164          $post_url = $_POST['post_url'];
165     }
166     
167     $core->blog->setPostContent(
168          $post_id,$post_format,$post_lang,
169          $post_excerpt,$post_excerpt_xhtml,$post_content,$post_content_xhtml
170     );
171}
172
173# Create or update post
174if (!empty($_POST) && !empty($_POST['save']) && $can_edit_page)
175{
176     $cur = $core->con->openCursor($core->prefix.'post');
177     
178     # Magic tweak :)
179     $core->blog->settings->system->post_url_format = $page_url_format;
180     
181     $cur->post_type = 'page';
182     $cur->post_title = $post_title;
183     $cur->post_dt = $post_dt ? date('Y-m-d H:i:00',strtotime($post_dt)) : '';
184     $cur->post_format = $post_format;
185     $cur->post_password = $post_password;
186     $cur->post_lang = $post_lang;
187     $cur->post_title = $post_title;
188     $cur->post_excerpt = $post_excerpt;
189     $cur->post_excerpt_xhtml = $post_excerpt_xhtml;
190     $cur->post_content = $post_content;
191     $cur->post_content_xhtml = $post_content_xhtml;
192     $cur->post_status = $post_status;
193     $cur->post_position = $post_position;
194     $cur->post_open_comment = (integer) $post_open_comment;
195     $cur->post_open_tb = (integer) $post_open_tb;
196     
197     if (isset($_POST['post_url'])) {
198          $cur->post_url = $post_url;
199     }
200     
201     # Update post
202     if ($post_id)
203     {
204          try
205          {
206               # --BEHAVIOR-- adminBeforePageUpdate
207               //$core->callBehavior('adminBeforePageUpdate',$cur,$post_id);
208               
209               $core->blog->updPost($post_id,$cur);
210               
211               # --BEHAVIOR-- adminAfterPageUpdate
212               //$core->callBehavior('adminAfterPageUpdate',$cur,$post_id);
213               
214               http::redirect($redir_url.'&id='.$post_id.'&upd=1');
215          }
216          catch (Exception $e)
217          {
218               $core->error->add($e->getMessage());
219          }
220     }
221}
222
223dcPage::open($page_title.' - '.__('Pages'),
224     dcPage::jsModal().
225     dcPage::jsConfirmClose('entry-form').
226     # --BEHAVIOR-- adminPostHeaders
227     //$core->callBehavior('adminPostHeaders').
228     $next_headlink."\n".$prev_headlink.
229     # TinyMCE Javascript
230     '<script type="text/javascript" src="index.php?pf='.
231          'tinyMce/js/tiny_mce_jquery/jquery.tinymce.js">'.
232     '</script>'.
233     '<script type="text/javascript" src="index.php?pf='.
234          'tinyMce/js/init_jquery.js">'.
235     '</script>'
236);
237
238if (!empty($_GET['upd'])) {
239          echo '<p class="message">'.__('Page has been successfully updated.').'</p>';
240}
241
242# XHTML conversion
243if (!empty($_GET['xconv']))
244{
245     $post_excerpt = $post_excerpt_xhtml;
246     $post_content = $post_content_xhtml;
247     $post_format = 'xhtml';
248     
249     echo '<p class="message">'.__('Don\'t forget to validate your XHTML conversion by saving your post.').'</p>';
250}
251
252echo '<h2>'.html::escapeHTML($core->blog->name).
253' &rsaquo; <a href="'.$p_url.'">'.__('Pages').'</a> &rsaquo; '.$page_title;
254
255if ($post_id && $post->post_status == 1) {
256     echo ' - <a id="post-preview" href="'.$post->getURL().'" class="button">'.__('View page').'</a>';
257} elseif ($post_id) {
258     $preview_url =
259     $core->blog->url.$core->url->getBase('pagespreview').'/'.
260     $core->auth->userID().'/'.
261     http::browserUID(DC_MASTER_KEY.$core->auth->userID().$core->auth->getInfo('user_pwd')).
262     '/'.$post->post_url;
263     echo ' - <a id="post-preview" href="'.$preview_url.'" class="button">'.__('Preview page').'</a>';
264}
265
266echo '</h2>';
267
268if ($post_id)
269{
270     echo '<p>';
271     if ($prev_link) { echo $prev_link; }
272     if ($next_link && $prev_link) { echo ' - '; }
273     if ($next_link) { echo $next_link; }
274     
275     # --BEHAVIOR-- adminPageNavLinks
276     //$core->callBehavior('adminPageNavLinks',isset($post) ? $post : null);
277     
278     # link to default page
279     echo('<p><a href="'.$default_page.'" class="button">'.
280          __('Return to the default page').'</a></p>');
281     
282     echo '</p>';
283}
284
285# Exit if we cannot view page
286if (!$can_view_page) {
287     echo '</body></html>';
288     return;
289}
290
291
292/* Post form if we can edit post
293-------------------------------------------------------- */
294if ($can_edit_page)
295{
296     echo '<div class="multi-part" title="'.__('Edit page').'" id="edit-entry">';
297     echo '<form action="'.html::escapeURL($redir_url).'" method="post" id="entry-form">';
298     echo form::hidden('p','tinyMce');
299     echo form::hidden('type','page');
300     
301     echo(
302          form::hidden('post_status',$post_status).
303          form::hidden('post_dt',$post_dt).
304          form::hidden('post_format',$post_format).
305         
306          form::hidden('post_open_comment',(integer) $post_open_comment).
307          form::hidden('post_open_tb',(integer) $post_open_tb).
308          form::hidden('post_lang',$post_lang).
309          form::hidden('post_password',html::escapeHTML($post_password)).
310          form::hidden('post_url',html::escapeHTML($post_url)).
311         
312          form::hidden('post_position',(string) $post_position)
313     );
314     
315     # --BEHAVIOR-- adminPageFormSidebar
316     //$core->callBehavior('adminPageFormSidebar',isset($post) ? $post : null);
317     
318     echo '<div><fieldset class="constrained">';
319     
320     echo
321     '<p class="col"><label class="required" title="'.__('Required field').'">'.__('Title:').
322     form::field('post_title',20,255,html::escapeHTML($post_title),'maximal',2).
323     '</label></p>'.
324     
325     '<p class="area" id="excerpt-area"><label for="post_excerpt">'.__('Excerpt:').'</label> '.
326     form::textarea('post_excerpt',50,5,html::escapeHTML($post_excerpt),'tinymce',2).
327     '</p>'.
328     
329     '<p class="area"><label class="required" title="'.__('Required field').'" '.
330     'for="post_content">'.__('Content:').'</label> '.
331     form::textarea('post_content',50,$core->auth->getOption('edit_size'),html::escapeHTML($post_content),'tinymce',2).
332     '</p>';
333     
334     # --BEHAVIOR-- adminPageForm
335     //$core->callBehavior('adminPageForm',isset($post) ? $post : null);
336     
337     echo
338     '<p>'.
339     ($post_id ? form::hidden('id',$post_id) : '').
340     '<input type="submit" value="'.__('save').' (s)" tabindex="4" '.
341     'accesskey="s" name="save" /> '.
342     $core->formNonce().
343     '</p>';
344     
345     echo '</fieldset></div>';          // End #entry-content
346     echo '</form>';
347     echo '</div>';
348}
349
350dcPage::close();
351
352?>
Note: See TracBrowser for help on using the repository browser.

Sites map