can_edit_post) { return; } try { $form->check($_ctx); $form->cat_id = (integer) $form->cat_id; if (!empty($form->post_dt)) { try { $post_dt = strtotime($form->post_dt); if ($post_dt == false || $post_dt == -1) { $bad_dt = true; throw new Exception(__('Invalid publication date')); } $form->post_dt = date('Y-m-d H:i',$post_dt); } catch (Exception $e) { $core->error->add($e->getMessage()); } } $post_excerpt = $form->post_excerpt; $post_content = $form->post_content; $post_excerpt_xhtml = ''; $post_content_xhtml = ''; $core->blog->setPostContent( $form->id,$form->post_format,$form->post_lang, $post_excerpt,$post_excerpt_xhtml,$post_content,$post_content_xhtml ); $form->post_excerpt = $post_excerpt; $form->post_content = $post_content; $form->post_excerpt_xhtml = $post_excerpt_xhtml; $form->post_content_xhtml = $post_content_xhtml; $cur = $core->con->openCursor($core->prefix.'post'); $cur->post_title = $form->post_title; $cur->cat_id = $form->cat_id ? $form->cat_id : null; $cur->post_dt = $form->post_dt ? date('Y-m-d H:i:00',strtotime($form->post_dt)) : ''; $cur->post_format = $form->post_format; $cur->post_password = $form->post_password; $cur->post_lang = $form->post_lang; $cur->post_title = $form->post_title; $cur->post_excerpt = $form->post_excerpt; $cur->post_excerpt_xhtml = $form->post_excerpt_xhtml; $cur->post_content = $form->post_content; $cur->post_content_xhtml = $form->post_content_xhtml; $cur->post_notes = $form->post_notes; $cur->post_status = $form->post_status; $cur->post_selected = (integer) $form->post_selected; $cur->post_open_comment = (integer) $form->post_open_comment; $cur->post_open_tb = (integer) $form->post_open_tb; if (!empty($form->post_url)) { $cur->post_url = $form->post_url; } # Update post if ($form->id) { # --BEHAVIOR-- adminBeforePostUpdate $core->callBehavior('adminBeforePostUpdate',$cur,$form->id); $core->blog->updPost($form->id,$cur); # --BEHAVIOR-- adminAfterPostUpdate $core->callBehavior('adminAfterPostUpdate',$cur,$form->id); http::redirect('post.php?id='.$form->id.'&upd=1'); } else { $cur->user_id = $core->auth->userID(); # --BEHAVIOR-- adminBeforePostCreate $core->callBehavior('adminBeforePostCreate',$cur); $return_id = $core->blog->addPost($cur); # --BEHAVIOR-- adminAfterPostCreate $core->callBehavior('adminAfterPostCreate',$cur,$return_id); http::redirect('post.php?id='.$return_id.'&crea=1'); } } catch (Exception $e) { $_ctx->addError($e->getMessage()); } } public static function deletePost($form) { global $core,$_ctx; if ($form->can_delete) { try { $post_id = $form->id; $core->callBehavior('adminBeforePostDelete',$post_id); $core->blog->delPost($post_id); http::redirect('posts.php'); exit; } catch (Exception $e) { $_ctx->addError($e->getMessage()); } } } } $page_title = __('New entry'); $post_id=''; $can_view_page = true; $can_edit_post = $core->auth->check('usage,contentadmin',$core->blog->id); $can_publish = $core->auth->check('publish,contentadmin',$core->blog->id); $can_delete = false; $post_headlink = ''; $post_link = '%s'; $next_link = $prev_link = $next_headlink = $prev_headlink = null; # If user can't publish if (!$can_publish) { $form->post_status = -2; } # Getting categories $categories_combo = array(' ' => ''); try { $categories = $core->blog->getCategories(array('post_type'=>'post')); while ($categories->fetch()) { $categories_combo[$categories->cat_id] = str_repeat('  ',$categories->level-1). ($categories->level-1 == 0 ? '' : '• '). html::escapeHTML($categories->cat_title); } } catch (Exception $e) { } # Status combo foreach ($core->blog->getAllPostStatus() as $k => $v) { $status_combo[$k] = $v; } # Formaters combo foreach ($core->getFormaters() as $v) { $formaters_combo[$v] = $v; } # Languages combo $rs = $core->blog->getLangs(array('order'=>'asc')); $all_langs = l10n::getISOcodes(0,1); $lang_combo = array('' => '', __('Most used') => array(), __('Available') => l10n::getISOcodes(0,1)); while ($rs->fetch()) { if (isset($all_langs[$rs->post_lang])) { $lang_combo[__('Most used')][$rs->post_lang] = $all_langs[$rs->post_lang]; unset($lang_combo[__('Available')][$rs->post_lang]); } else { $lang_combo[__('Most used')][$rs->post_lang] = $all_langs[$rs->post_lang]; } } unset($all_langs); unset($rs); $form = new dcForm($core,'post','post.php'); $form ->addField( new dcFieldText('post_title','', array( 'maxlength' => 255, 'required' => true, 'label' => __('Title:')))) ->addField( new dcFieldTextArea('post_excerpt','', array( 'cols' => 50, 'rows' => 5, 'label' => __("Excerpt:").''. __('Add an introduction to the post.').''))) ->addField( new dcFieldTextArea('post_content','', array( 'required' => true, 'label' => __("Content:")))) ->addField( new dcFieldTextArea('post_notes','', array( 'label' => __("Notes")))) ->addField( new dcFieldSubmit('save',__('Save'),array( 'action' => array('PostActions','savePost')))) ->addField( new dcFieldSubmit('delete',__('Delete'),array( 'action' => array('PostActions','deletePost')))) ->addField( new dcFieldCombo('post_status',$core->auth->getInfo('user_post_status'),$status_combo,array( 'disabled' => !$can_publish, 'label' => __('Entry status')))) ->addField( new dcFieldCombo('cat_id','',$categories_combo,array( "label" => __('Category')))) ->addField( new dcFieldCombo('new_cat_parent','',$categories_combo,array( "label" => __('Parent:')))) ->addField( new dcFieldText('new_cat_title','', array( 'maxlength' => 255, 'label' => __('Title')))) ->addField( new dcFieldText('post_dt','',array( "label" => __('Publication date and hour')))) ->addField( new dcFieldCombo('post_format',$core->auth->getOption('post_format'),$formaters_combo,array( "label" => __('Text formating')))) ->addField( new dcFieldCheckbox ('post_open_comment',$core->blog->settings->system->allow_comments,array( "label" => __('Accept comments')))) ->addField( new dcFieldCheckbox ('post_open_tb',$core->blog->settings->system->allow_trackbacks,array( "label" => __('Accept trackbacks')))) ->addField( new dcFieldCheckbox ('post_selected',array(1=>false),array( "label" => __('Selected entry')))) ->addField( new dcFieldCombo ('post_lang',$core->auth->getInfo('user_lang'),$lang_combo, array( "label" => __('Entry lang:')))) ->addField( new dcFieldText('post_password','',array( "maxlength" => 32, "label" => __('Entry password:')))) ->addField( new dcFieldText('post_url','',array( "maxlength" => 255, "label" => __('Basename:')))) ->addField( new dcFieldHidden ('id','')) ; # Get entry informations if (!empty($_REQUEST['id'])) { $params['post_id'] = $_REQUEST['id']; $post = $core->blog->getPosts($params); if ($post->isEmpty()) { $core->error->add(__('This entry does not exist.')); $can_view_page = false; } else { $form->id = $post_id = $post->post_id; $form->cat_id = $post->cat_id; $form->post_dt = date('Y-m-d H:i',strtotime($post->post_dt)); $form->post_format = $post->post_format; $form->post_password = $post->post_password; $form->post_url = $post->post_url; $form->post_lang = $post->post_lang; $form->post_title = $post->post_title; $form->post_excerpt = $post->post_excerpt; $form->post_excerpt_xhtml = $post->post_excerpt_xhtml; $form->post_content = $post->post_content; $form->post_content_xhtml = $post->post_content_xhtml; $form->post_notes = $post->post_notes; $form->post_status = $post->post_status; $form->post_selected = (boolean) $post->post_selected; $form->post_open_comment = (boolean) $post->post_open_comment; $form->post_open_tb = (boolean) $post->post_open_tb; $form->can_edit_post = $post->isEditable(); $form->can_delete= $post->isDeletable(); $next_rs = $core->blog->getNextPost($post,1); $prev_rs = $core->blog->getNextPost($post,-1); if ($next_rs !== null) { $_ctx->next_post = array('id' => $next_rs->post_id,'title' => $next_rs->post_title); } if ($prev_rs !== null) { $_ctx->prev_post = array('id' => $prev_rs->post_id,'title' => $prev_rs->post_title); } $page_title = __('Edit entry'); } } if ($post_id) { $_ctx->post_id = $post->post_id; $_ctx->preview_url = $core->blog->url.$core->url->getURLFor('preview',$core->auth->userID().'/'. http::browserUID(DC_MASTER_KEY.$core->auth->userID().$core->auth->getInfo('user_pwd')). '/'.$post->post_url); $form_comment = new dcForm($core,'add-comment','comment.php'); $form_comment ->addField( new dcFieldText('comment_author','', array( 'maxlength' => 255, 'required' => true, 'label' => __('Name:')))) ->addField( new dcFieldText('comment_email','', array( 'maxlength' => 255, 'required' => true, 'label' => __('Email:')))) ->addField( new dcFieldText('comment_site','', array( 'maxlength' => 255, 'label' => __('Web site:')))) ->addField( new dcFieldTextArea('comment_content','', array( 'required' => true, 'label' => __('Comment:')))) ->addField( new dcFieldHidden('post_id',$post_id)) ->addField( new dcFieldSubmit('add',__('Save'),array( 'action' => 'addComment'))) ; } $form->setup(); $sidebar_blocks = new ArrayObject(array( 'status-box' => array( 'title' => __('Status'), 'items' => array('post_status','post_dt','post_lang','post_format')), 'metas-box' => array( 'title' => __('Ordering'), 'items' => array('post_selected','cat_id')), 'options-box' => array( 'title' => __('Options'), 'items' => array('post_open_comment','post_open_tb','post_password','post_url')) )); $main_blocks = new ArrayObject(array( "post_title","post_excerpt","post_content","post_notes" )); $_ctx->sidebar_blocks = $sidebar_blocks; $_ctx->main_blocks = $main_blocks; /* DISPLAY -------------------------------------------------------- */ $default_tab = 'edit-entry'; if (!$can_edit_post) { $default_tab = ''; } if (!empty($_GET['co'])) { $default_tab = 'comments'; } $page_title_edit = __('Edit entry'); $_ctx ->setBreadCrumb( array( html::escapeHTML($core->blog->name) => '', __('Entries') => 'posts.php', ($post_id ? $page_title_edit : $page_title) => '' )) ->default_tab = $default_tab; $_ctx->post_status = $form->post_status; $_ctx->post_title = $form->post_title; if ($form->post_status == 1) { $_ctx->post_url = $post->getURL(); } if (!empty($_GET['upd'])) { $_ctx->setAlert(__('Entry has been successfully updated.')); } elseif (!empty($_GET['crea'])) { $_ctx->setAlert(__('Entry has been successfully created.')); } elseif (!empty($_GET['attached'])) { $_ctx->setAlert(__('File has been successfully attached.')); } elseif (!empty($_GET['rmattach'])) { $_ctx->setAlert(__('Attachment has been successfully removed.')); } if (!empty($_GET['creaco'])) { $_ctx->setAlert(__('Comment has been successfully created.')); } $core->tpl->display('post.html.twig'); ?>