Dotclear

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

Revision 2705, 10.2 KB checked in by Moe, 13 years ago (diff)

TinyMCE 0.2.3: fixed bug with settings with Pages plugin (closes #505)

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

Sites map