Permalink
Cannot retrieve contributors at this time
Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.
Sign up
Fetching contributors…

<?php | |
/** | |
* edit entry panel | |
* | |
* Type: | |
* Name: | |
* Date: | |
* Purpose: | |
* Input: | |
* | |
* @author NoWhereMan <real_nowhereman at users dot sf dot com> | |
* | |
*/ | |
class admin_entry_write extends AdminPanelActionValidated { | |
var $validators = array( | |
array('subject', 'subject', 'notEmpty', false, false, 'trim,stripslashes'), | |
array('content', 'content', 'notEmpty', false, false, 'stripslashes'), | |
); | |
var $events = array('save', 'preview', 'savecontinue'); | |
var $draft = false; | |
function _makePreview($arr, $id=null) { | |
if (!$id) { | |
$arr['subject'] = apply_filters('title_save_pre', $arr['subject']); | |
$arr['content'] = apply_filters('content_save_pre', $arr['content']); | |
} | |
if ($this->draft || $this->draft = draft_exists($this->id)) { | |
if (isset($arr['categories']) | |
&& is_array($arr['categories']) && !in_array('draft', $arr['categories']) ) { | |
$arr['categories'][] = 'draft'; | |
} else { | |
$arr['categories'][] = 'draft'; | |
} | |
} | |
// unfiltered content (for editing) | |
$this->smarty->assign('post', $arr); | |
if (THEME_LEGACY_MODE) { | |
theme_entry_filters($arr, $id); | |
} | |
// content for preview | |
$this->smarty->assign('entry', $arr); | |
$this->smarty->assign('preview', true); | |
} | |
function makePageTitle($title, $sep) { | |
global $lang, $panel; | |
if ($this->draft) { | |
$this->smarty->append( | |
'warnings', | |
$lang['admin']['entry']['write']['msgs']['draft'] | |
); | |
} | |
return "$title $sep {$lang['admin']['entry']['write']['head']}"; | |
} | |
function draft_class($string) { | |
return "$string draft"; | |
} | |
function _getCatsFlags() { | |
//$this->smarty->assign('saved_categories', entry_categories_format()); | |
$this->smarty->assign('saved_flags', entry_flags_get()); | |
} | |
function setup() { | |
$this->id = @$_REQUEST['entry']; | |
$this->smarty->assign('id', $this->id); | |
} | |
function main() { | |
global $lang; | |
$id = $this->id; | |
if (isset($_REQUEST['entry'])) { | |
$arr = draft_parse($id); | |
if (!$arr) | |
$arr = entry_parse($id); | |
else | |
$this->smarty->assign('draft', true); | |
// if entry does not exists | |
if ($arr) { | |
$this->_makePreview($arr, $id); | |
} | |
} | |
$this->_getCatsFlags(); | |
add_filter('wp_title', array(&$this, 'makePageTitle'), 10, 2); | |
if ($this->draft) add_filter('admin_body_class', array(&$this, 'draft_class')); | |
} | |
function _getposteddata() { | |
$arr['version'] = system_ver(); | |
$arr['subject'] = ($_POST['subject']); | |
$arr['content'] = ($_POST['content']); | |
$author = user_get(); | |
$arr['author'] = $author['userid']; | |
$arr['date'] = !empty($_POST['timestamp'])?$_POST['timestamp']:date_time(); | |
$cats = !empty($_POST['cats'])?$_POST['cats']:array(); | |
$flags = !empty($_POST['flags'])?$_POST['flags']:array(); | |
$catids = array_merge(array_keys($flags), array_keys($cats)); | |
$this->draft = isset($flags['draft']); | |
if ($catids) | |
$arr['categories'] = $catids; | |
return $arr; | |
} | |
function onsave($do_preview = false) { | |
$id = $this->id; | |
$data = $this->_getposteddata(); | |
if ($this->draft) { | |
$success=draft_save($data, $id, true); | |
$this->smarty->assign('success', $success? 1 : -1 ); | |
} else { | |
$success=entry_save($data, $id); | |
$this->smarty->assign('success', is_numeric($success)? $success : 1 ); | |
} | |
// if ($success) sess_remove('entry'); | |
if ($do_preview) | |
$this->_makePreview($data); | |
if ($success<0) { | |
$this->main(); | |
return PANEL_NOREDIRECT; | |
} | |
return 1; | |
} | |
function onpreview() { | |
global $lang; | |
$this->_makePreview($this->_getposteddata()); | |
$this->_getCatsFlags(); | |
add_filter('wp_title', array(&$this, 'makePageTitle'), 10, 2); | |
if ($this->draft) add_filter('admin_body_class', array(&$this, 'draft_class')); | |
return 0; | |
} | |
function onsavecontinue() { | |
global $lang; | |
$this->onsave(true); | |
$this->_getCatsFlags(); | |
add_filter('wp_title', array(&$this, 'makePageTitle'), 10, 2); | |
if ($this->draft) add_filter('admin_body_class', array(&$this, 'draft_class')); | |
} | |
function onerror() { | |
$this->main(); | |
return 0; | |
} | |
} | |
?> |