@@ -2127,32 +5363,36 @@ class Admin
)
);
$this->pagefoot();
+=======
+ // 2. delete parts
+ $query = "DELETE FROM %s WHERE tdesc=%d;";
+ $query = sprintf($query, sql_table('template'), (integer) $templateid);
+ DB::execute($query);
+
+ $data = array('templateid' => $templateid);
+ $manager->notify('PostDeleteAdminTemplate', $data);
+
+ self::action_admintemplateoverview();
+ return;
+>>>>>>> skinnable-master
}
- /**
- * @todo document this
- */
- function action_changemembersettings() {
- global $member, $CONF, $manager;
-
- $memberid = intRequestVar('memberid');
-
- // check if allowed
- ($member->getID() == $memberid) or $member->isAdmin() or $this->disallow();
-
- $name = trim(strip_tags(postVar('name')));
- $realname = trim(strip_tags(postVar('realname')));
- $password = postVar('password');
- $repeatpassword = postVar('repeatpassword');
- $email = strip_tags(postVar('email'));
- $url = strip_tags(postVar('url'));
-
- # replaced eregi() below with preg_match(). ereg* functions are deprecated in PHP 5.3.0
- # original eregi: !eregi("^https?://", $url)
-
- // begin if: sometimes user didn't prefix the URL with http:// or https://, this cause a malformed URL. Let's fix it.
- if (!preg_match('#^https?://#', $url) )
+ /**
+ * Admin::action_admintemplatenew()
+ *
+ * @param void
+ * @return void
+ */
+ static private function action_admintemplatenew()
+ {
+ global $member;
+ $member->isAdmin() or self::disallow();
+ $name = postVar('name');
+ $desc = postVar('desc');
+
+ if ( !isValidTemplateName($name) )
{
+<<<<<<< HEAD
$url = 'http://' . $url;
}
@@ -2161,7 +5401,7 @@ class Admin
$notes = strip_tags(postVar('notes'));
$locale = postVar('locale');
- $mem = Member::createFromID($memberid);
+ $mem =& $manager->getMember($memberid);
if ($CONF['AllowLoginEdit'] || $member->isAdmin()) {
@@ -2185,16 +5425,22 @@ class Admin
$this->error($pwderror);
}
}
+=======
+ self::error(_ERROR_BADTEMPLATENAME);
+ return;
+>>>>>>> skinnable-master
}
-
- if ( !NOTIFICATION::address_validation($email) )
+ else if ( !preg_match('#^admin/#', $name) )
{
- $this->error(_ERROR_BADMAILADDRESS);
+ self::error(_ERROR_BADADMINTEMPLATENAME);
+ return;
}
- if ( !$realname )
+ else if ( Template::exists($name) )
{
- $this->error(_ERROR_REALNAMEMISSING);
+ self::error(_ERROR_DUPTEMPLATENAME);
+ return;
}
+<<<<<<< HEAD
if ( ($locale != '') && (!in_array($locale, i18n::get_available_locale_list())) )
$this->error(_ERROR_NOSUCHTRANSLATION);
@@ -2266,44 +5512,109 @@ class Admin
}
}
+=======
+
+ $newTemplateId = Template::createNew($name, $desc);
+ self::action_admintemplateoverview();
+ return;
+ }
+
+>>>>>>> skinnable-master
/**
- * Admin::action_memberadd()
+ * Admin::action_admintemplateclone()
*
* @param void
* @return void
- *
- */
- function action_memberadd()
+ */
+ static private function action_admintemplateclone()
{
- global $member, $manager;
+ global $member;
+ $templateid = intRequestVar('templateid');
+ $member->isAdmin() or self::disallow();
- // check if allowed
- $member->isAdmin() or $this->disallow();
+ // 1. read old template
+ $name = Template::getNameFromId($templateid);
+ $desc = Template::getDesc($templateid);
- if ( postVar('password') != postVar('repeatpassword') )
+ // 2. create desc thing
+ $name = $name . "cloned";
+
+ // if a template with that name already exists:
+ if ( Template::exists($name) )
{
- $this->error(_ERROR_PASSWORDMISMATCH);
+ $i = 1;
+ while ( Template::exists($name . $i) )
+ {
+ $i++;
+ }
+ $name .= $i;
}
- if ( i18n::strlen(postVar('password')) < 6 )
+ $newid = Template::createNew($name, $desc);
+
+ // 3. create clone
+ // go through parts of old template and add them to the new one
+ $query = "SELECT tpartname, tcontent FROM %s WHERE tdesc=%d;";
+ $query = sprintf($query, sql_table('template'), (integer) $templateid);
+
+ $res = DB::getResult($query);
+ foreach ( $res as $row )
{
- $this->error(_ERROR_PASSWORDTOOSHORT);
+ self::addToTemplate($newid, $row['tpartname'], $row['tcontent']);
}
- $res = Member::create(postVar('name'), postVar('realname'), postVar('password'), postVar('email'), postVar('url'), postVar('admin'), postVar('canlogin'), postVar('notes'));
- if ( $res != 1 )
+ self::action_admintemplateoverview();
+ return;
+ }
+
+ /**
+ * Admin::action_skinoverview()
+ *
+ * @param void
+ * @return void
+ */
+ static private function action_skinoverview()
+ {
+ global $member, $manager;
+
+ $member->isAdmin() or self::disallow();
+
+ self::$skin->parse('skinoverview');
+ return;
+ }
+
+ /**
+ * Admin::action_skinnew()
+ *
+ * @param void
+ * @return void
+ */
+ static private function action_skinnew()
+ {
+ global $member;
+
+ $member->isAdmin() or self::disallow();
+
+ $name = trim(postVar('name'));
+ $desc = trim(postVar('desc'));
+
+ if ( !isValidSkinName($name) )
+ {
+ self::error(_ERROR_BADSKINNAME);
+ return;
+ }
+ else if ( SKIN::exists($name) )
{
- $this->error($res);
+ self::error(_ERROR_DUPSKINNAME);
+ return;
}
- // fire PostRegister event
- $newmem = new Member();
- $newmem->readFromName(postVar('name'));
- $manager->notify('PostRegister',array('member' => &$newmem));
+ SKIN::createNew($name, $desc);
- $this->action_usermanagement();
+ self::action_skinoverview();
return;
}
+<<<<<<< HEAD
/**
* Account activation
@@ -2332,7 +5643,7 @@ class Admin
if (!$info)
$this->error(_ERROR_ACTIVATE);
- $mem = Member::createFromId($info['vmember']);
+ $mem =& $manager->getMember($info['vmember']);
if (!$mem)
$this->error(_ERROR_ACTIVATE);
@@ -2417,8 +5728,9 @@ class Admin
*
* @author dekarma
*/
- function action_activatesetpwd() {
-
+ function action_activatesetpwd()
+ {
+ global $manager;
$key = postVar('key');
// clean up old activation keys
@@ -2430,7 +5742,7 @@ class Admin
if (!$info || ($info['type'] == 'addresschange'))
return $this->_showActivationPage($key, _ERROR_ACTIVATE);
- $mem = Member::createFromId($info['vmember']);
+ $mem =& $manager->getMember($info['vmember']);
if (!$mem)
return $this->_showActivationPage($key, _ERROR_ACTIVATE);
@@ -2586,7 +5898,7 @@ class Admin
// check if allowed
$member->blogAdminRights($blogid) or $this->disallow();
- $teammem = Member::createFromID($memberid);
+ $teammem =& $manager->getMember($memberid);
$blog =& $manager->getBlog($blogid);
$this->pagehead();
@@ -2640,7 +5952,7 @@ class Admin
// check if: - there remains at least one blog admin
// - (there remains at least one team member)
- $tmem = Member::createFromID($memberid);
+ $tmem =& $manager->getMember($memberid);
$manager->notify('PreDeleteTeamMember', array('member' => &$tmem, 'blogid' => $blogid));
@@ -2665,7 +5977,7 @@ class Admin
* @todo document this
*/
function action_teamchangeadmin() {
- global $member;
+ global $manager, $member;
$blogid = intRequestVar('blogid');
$memberid = intRequestVar('memberid');
@@ -2673,7 +5985,7 @@ class Admin
// check if allowed
$member->blogAdminRights($blogid) or $this->disallow();
- $mem = Member::createFromID($memberid);
+ $mem =& $manager->getMember($memberid);
// don't allow when there is only one admin at this moment
if ($mem->isBlogAdmin($blogid)) {
@@ -3168,154 +6480,515 @@ class Admin
$this->action_blogsettings();
}
+=======
/**
- * Admin::deleteOneCategory()
- * Delete a category by its id
+ * Admin::action_skinedit()
+ *
+ * @param void
+ * @return void
+ */
+ static private function action_skinedit()
+ {
+ global $member;
+
+ $member->isAdmin() or self::disallow();
+
+ self::$skin->parse('skinedit');
+ return;
+ }
+
+ /**
+ * Admin::action_skineditgeneral()
+ *
+ * @param void
+ * @return void
+ */
+ static private function action_skineditgeneral()
+ {
+ global $member;
+
+ $skinid = intRequestVar('skinid');
+
+ $member->isAdmin() or self::disallow();
+
+ $error = self::skineditgeneral($skinid);
+ if ( $error )
+ {
+ self::error($error);
+ return;
+ }
+
+ self::action_skinedit();
+ return;
+ }
+
+ static private function action_skinedittype($msg = '')
+ {
+ global $member;
+
+ $member->isAdmin() or self::disallow();
+
+ if ( $msg )
+ {
+ self::$headMess = $msg;
+ }
+
+ $type = requestVar('type');
+ $type = trim($type);
+ $type = strtolower($type);
+
+ if ( !isValidShortName($type) )
+ {
+ self::error(_ERROR_SKIN_PARTS_SPECIAL_FORMAT);
+ return;
+ }
+
+ self::$skin->parse('skinedittype');
+ return;
+ }
+>>>>>>> skinnable-master
+
+ /**
+ * Admin::action_skinupdate()
+ *
+ * @param void
+ * @return void
+ */
+ static private function action_skinupdate()
+ {
+ global $manager, $member;
+
+ $skinid = intRequestVar('skinid');
+ $content = trim(postVar('content'));
+ $type = postVar('type');
+
+ $member->isAdmin() or self::disallow();
+
+ $skin =& $manager->getSKIN($skinid);
+ $skin->update($type, $content);
+
+ self::action_skinedittype(_SKIN_UPDATED);
+ return;
+ }
+
+ /**
+ * Admin::action_skindelete()
+ *
+ * @param void
+ * @return void
+ */
+ static private function action_skindelete()
+ {
+ global $CONF, $member;
+
+ $member->isAdmin() or self::disallow();
+
+ $skinid = intRequestVar('skinid');
+
+ // don't allow default skin to be deleted
+ if ( $skinid == $CONF['BaseSkin'] )
+ {
+ self::error(_ERROR_DEFAULTSKIN);
+ return;
+ }
+
+ // don't allow deletion of default skins for blogs
+ $query = "SELECT bname FROM %s WHERE bdefskin=%d";
+ $query = sprintf($query, sql_table('blog'), (integer) $skinid);
+
+ $name = DB::getValue($query);
+ if ( $name )
+ {
+ self::error(_ERROR_SKINDEFDELETE . Entity::hsc($name));
+ return;
+ }
+
+ self::$skin->parse('skindelete');
+ return;
+ }
+
+ /**
+ * Admin::action_skindeleteconfirm()
+ *
+ * @param void
+ * @return void
+ */
+ static private function action_skindeleteconfirm()
+ {
+ global $member, $CONF;
+
+ $member->isAdmin() or self::disallow();
+
+ $skinid = intRequestVar('skinid');
+
+ // don't allow default skin to be deleted
+ if ( $skinid == $CONF['BaseSkin'] )
+ {
+ self::error(_ERROR_DEFAULTSKIN);
+ return;
+ }
+
+<<<<<<< HEAD
+ // check if catid is the only category left for blogid
+ $query = 'SELECT catid FROM '.sql_table('category').' WHERE cblog=' . $blogid;
+ $res = DB::getResult($query);
+ if ( $res->rowCount() == 1 )
+=======
+ // don't allow deletion of default skins for blogs
+ $query = "SELECT bname FROM %s WHERE bdefskin=%d;";
+ $query = sprintf($query, sql_table('blog'), (integer) $skinid);
+
+ $name = DB::getValue($query);
+ if ( $name )
+ {
+ self::error(_ERROR_SKINDEFDELETE . Entity::hsc($name));
+ return;
+ }
+
+ self::skindeleteconfirm($skinid);
+
+ self::action_skinoverview();
+ return;
+ }
+
+ /**
+ * Admin::action_skinremovetype()
+ *
+ * @param void
+ * @return void
+ */
+ static private function action_skinremovetype()
+ {
+ global $member, $CONF;
+
+ $member->isAdmin() or self::disallow();
+
+ $skinid = intRequestVar('skinid');
+ $skintype = requestVar('type');
+
+ if ( !isValidShortName($skintype) )
+>>>>>>> skinnable-master
+ {
+ self::error(_ERROR_SKIN_PARTS_SPECIAL_DELETE);
+ return;
+ }
+
+ self::$skin->parse('skinremovetype');
+ return;
+ }
+
+ /**
+ * Admin::action_skinremovetypeconfirm()
*
- * @param String $catid category id for deleting
- * @return Void
+ * @param void
+ * @return void
*/
- function deleteOneCategory($catid)
+ static private function action_skinremovetypeconfirm()
{
- global $manager, $member;
+ global $member;
- $catid = intval($catid);
- $blogid = getBlogIDFromCatID($catid);
+<<<<<<< HEAD
+ // change category for all items to the default category
+ $query = 'UPDATE '.sql_table('item')." SET icat=$destcatid WHERE icat=$catid";
+ DB::execute($query);
+=======
+ $member->isAdmin() or self::disallow();
+>>>>>>> skinnable-master
- if ( !$member->blogAdminRights($blogid) )
+ $skinid = intRequestVar('skinid');
+ $skintype = requestVar('type');
+
+<<<<<<< HEAD
+ // delete category
+ $query = 'DELETE FROM '.sql_table('category').' WHERE catid=' .$catid;
+ DB::execute($query);
+=======
+ $error = self::skinremovetypeconfirm($skinid, $skintype);
+ if ( $error )
{
- return ERROR_DISALLOWED;
+ self::error($error);
+ return;
}
+>>>>>>> skinnable-master
- // get blog
- $blog =& $manager->getBlog($blogid);
+ self::action_skinedit();
+ return;
+ }
+
+ /**
+ * Admin::action_skinclone()
+ *
+ * @param void
+ * @return void
+ */
+ static private function action_skinclone()
+ {
+ global $member;
- // check if the category is valid
- if ( !$blog || !$blog->isValidCategory($catid) )
- {
- return _ERROR_NOSUCHCATEGORY;
- }
+ $member->isAdmin() or self::disallow();
- $destcatid = $blog->getDefaultCategory();
+ $skinid = intRequestVar('skinid');
- // don't allow deletion of default category
- if ( $blog->getDefaultCategory() == $catid )
+ self::skinclone($skinid);
+
+ self::action_skinoverview();
+ return;
+ }
+
+ /**
+ * Admin::action_adminskinoverview()
+ *
+ * @param void
+ * @return void
+ */
+ static private function action_adminskinoverview()
+ {
+ global $member;
+
+ $member->isAdmin() or self::disallow();
+
+ self::$skin->parse('adminskinoverview');
+ return;
+ }
+
+ /**
+ * Admin::action_adminskinnew()
+ *
+ * @param void
+ * @return void
+ */
+ static private function action_adminskinnew()
+ {
+ global $member;
+
+ $member->isAdmin() or self::disallow();
+
+ $name = trim(postVar('name'));
+ $desc = trim(postVar('desc'));
+
+ if ( !isValidSkinName($name) )
{
- return _ERROR_DELETEDEFCATEGORY;
+ self::error(_ERROR_BADSKINNAME);
+ return;
}
-
- // check if catid is the only category left for blogid
- $query = 'SELECT catid FROM '.sql_table('category').' WHERE cblog=' . $blogid;
- $res = DB::getResult($query);
- if ( $res->rowCount() == 1 )
+ else if ( !preg_match('#^admin/#', $name) )
{
- return _ERROR_DELETELASTCATEGORY;
+ self::error(_ERROR_BADADMINSKINNAME);
+ return;
+ }
+ else if ( Skin::exists($name) )
+ {
+ self::error(_ERROR_DUPSKINNAME);
+ return;
}
- $manager->notify('PreDeleteCategory', array('catid' => $catid));
+ Skin::createNew($name, $desc);
- // change category for all items to the default category
- $query = 'UPDATE '.sql_table('item')." SET icat=$destcatid WHERE icat=$catid";
- DB::execute($query);
+ self::action_adminskinoverview();
+ return;
+ }
+
+ /**
+ * Admin::action_adminskinedit()
+ *
+ * @param void
+ * @return void
+ */
+ static private function action_adminskinedit()
+ {
+ global $member;
- // delete all associated plugin options
- NucleusPlugin::delete_option_values('category', $catid);
+ $member->isAdmin() or self::disallow();
- // delete category
- $query = 'DELETE FROM '.sql_table('category').' WHERE catid=' .$catid;
- DB::execute($query);
+ self::$skin->parse('adminskinedit');
- $manager->notify('PostDeleteCategory', array('catid' => $catid));
return;
}
/**
- * Admin::action_blogsettingsupdate
- * Updating blog settings
+ * Admin::action_adminskineditgeneral()
*
- * @param Void
- * @return Void
+ * @param void
+ * @return void
*/
- function action_blogsettingsupdate()
+ static private function action_adminskineditgeneral()
{
- global $member, $manager;
+ global $member;
- $blogid = intRequestVar('blogid');
+ $skinid = intRequestVar('skinid');
- $member->blogAdminRights($blogid) or $this->disallow();
+ $member->isAdmin() or self::disallow();
- $blog =& $manager->getBlog($blogid);
+ $error = self::skineditgeneral($skinid, 'AdminActions');
+ if ( $error )
+ {
+ self::error($error);
+ return;
+ }
- $notify_address = trim(postVar('notify'));
- $shortname = trim(postVar('shortname'));
- $updatefile = trim(postVar('update'));
+ self::action_adminskinedit();
+ return;
+ }
+
+ /**
+ * Admin::action_adminskinedittype()
+ *
+ * @param string $msg message for pageheader
+ * @return void
+ */
+ static private function action_adminskinedittype($msg = '')
+ {
+ global $member;
- $notifyComment = intPostVar('notifyComment');
- $notifyVote = intPostVar('notifyVote');
- $notifyNewItem = intPostVar('notifyNewItem');
+ $member->isAdmin() or self::disallow();
- if ( $notifyComment == 0 )
+ if ( $msg )
{
- $notifyComment = 1;
+ self::$headMess = $msg;
}
- if ( $notifyVote == 0 )
+ $type = requestVar('type');
+ $type = trim($type);
+ $type = strtolower($type);
+
+ if ( !isValidShortName($type) )
{
- $notifyVote = 1;
+ self::error(_ERROR_SKIN_PARTS_SPECIAL_FORMAT);
+ return;
}
- if ( $notifyNewItem == 0 )
+
+ self::$skin->parse('adminskinedittype');
+ return;
+ }
+
+ /**
+ * Admin::action_adminskinupdate()
+ *
+ * @param void
+ * @return void
+ */
+ static private function action_adminskinupdate()
+ {
+ global $manager, $member;
+
+ $skinid = intRequestVar('skinid');
+ $content = trim(postVar('content'));
+ $type = postVar('type');
+
+ $member->isAdmin() or self::disallow();
+
+ $skin =& $manager->getSkin($skinid, 'AdminActions', 'AdminSkin');
+ $skin->update($type, $content);
+
+ self::action_adminskinedittype(_SKIN_UPDATED);
+ return;
+ }
+
+ /**
+ * Admin::action_adminskindelete()
+ *
+ * @param void
+ * @return void
+ */
+ static private function action_adminskindelete()
+ {
+ global $CONF, $member;
+
+ $member->isAdmin() or self::disallow();
+
+ $skinid = intRequestVar('skinid');
+
+ // don't allow default skin to be deleted
+ if ( $skinid == $CONF['AdminSkin'] || $skinid == $CONF['BookmarkletSkin'] )
{
- $notifyNewItem = 1;
+ self::error(_ERROR_DEFAULTSKIN);
+ return;
}
- $notifyType = $notifyComment * $notifyVote * $notifyNewItem;
- if ( $notify_address && !NOTIFICATION::address_validation($notify_address) )
+ /* don't allow if someone use it as a default*/
+ $query = 'SELECT * FROM %s WHERE madminskin = %d or mbkmklt = %d;';
+ $res = DB::getResult(sprintf($query, sql_table('member'), $skinid, $skinid));
+
+ $members = array();
+ while ( $row = $res->fetch() ) {
+ $members[] = $row['mrealname'];
+ }
+ if ( count($members) )
{
- $this->error(_ERROR_BADNOTIFY);
+ self::error(_ERROR_SKINDEFDELETE . implode(' ' . _AND . ' ', $members));
+ return;
}
- if ( !isValidShortName($shortname) )
+ self::$skin->parse('adminskindelete');
+ return;
+ }
+
+ /**
+ * Admin::action_adminskindeleteconfirm()
+ *
+ * @param void
+ * @return void
+ */
+ static private function action_adminskindeleteconfirm()
+ {
+ global $member, $CONF;
+
+ $member->isAdmin() or self::disallow();
+
+ $skinid = intRequestVar('skinid');
+
+ // don't allow default skin to be deleted
+ if ( $skinid == $CONF['AdminSkin'] || $skinid == $CONF['BookmarkletSkin'] )
{
- $this->error(_ERROR_BADSHORTBLOGNAME);
+ self::error(_ERROR_DEFAULTSKIN);
+ return;
}
- if ( ($blog->getShortName() != $shortname) && $manager->existsBlog($shortname) )
- {
- $this->error(_ERROR_DUPSHORTBLOGNAME);
+ /* don't allow if someone use it as a default*/
+ $query = 'SELECT * FROM %s WHERE madminskin = %d or mbkmklt = %d;';
+ $res = DB::getResult(sprintf($query, sql_table('member'), $skinid, $skinid));
+
+ $members = array();
+ while ( $row = $res->fetch() ) {
+ $members[] = $row['mrealname'];
}
- // check if update file is writable
- if ( $updatefile && !is_writeable($updatefile) )
+ if ( count($members) )
{
- $this->error(_ERROR_UPDATEFILE);
+ self::error(_ERROR_SKINDEFDELETE . implode(' ' . _AND . ' ', $members));
+ return;
}
- $blog->setName(trim(postVar('name')));
- $blog->setShortName($shortname);
- $blog->setNotifyAddress($notify_address);
- $blog->setNotifyType($notifyType);
- $blog->setMaxComments(postVar('maxcomments'));
- $blog->setCommentsEnabled(postVar('comments'));
- $blog->setTimeOffset(postVar('timeoffset'));
- $blog->setUpdateFile($updatefile);
- $blog->setURL(trim(postVar('url')));
- $blog->setDefaultSkin(intPostVar('defskin'));
- $blog->setDescription(trim(postVar('desc')));
- $blog->setPublic(postVar('public'));
- $blog->setConvertBreaks(intPostVar('convertbreaks'));
- $blog->setAllowPastPosting(intPostVar('allowpastposting'));
- $blog->setDefaultCategory(intPostVar('defcat'));
- $blog->setSearchable(intPostVar('searchable'));
- $blog->setEmailRequired(intPostVar('reqemail'));
- $blog->writeSettings();
+ self::skindeleteconfirm($skinid);
- // store plugin options
- $aOptions = requestArray('plugoption');
- NucleusPlugin::apply_plugin_options($aOptions);
- $manager->notify('PostPluginOptionsUpdate',array('context' => 'blog', 'blogid' => $blogid, 'blog' => &$blog));
+ self::action_adminskinoverview();
+ return;
+ }
+
+ /**
+ * Admin::action_adminskinremovetype()
+ *
+ * @param void
+ * @return void
+ */
+ static private function action_adminskinremovetype()
+ {
+ global $member, $CONF;
+
+ $member->isAdmin() or self::disallow();
+
+ $skinid = intRequestVar('skinid');
+ $skintype = requestVar('type');
+
+ if ( !isValidShortName($skintype) )
+ {
+ self::error(_ERROR_SKIN_PARTS_SPECIAL_DELETE);
+ return;
+ }
- $this->action_overview(_MSG_SETTINGSCHANGED);
+ self::$skin->parse('adminskinremovetype');
return;
}
+<<<<<<< HEAD
/**
* @todo document this
@@ -3353,28 +7026,32 @@ class Admin
pagefoot();
}
+=======
+>>>>>>> skinnable-master
/**
- * Admin::action_deleteblogconfirm()
- * Delete Blog
+ * Admin::action_adminskinremovetypeconfirm()
*
- * @param Void
- * @return Void
+ * @param void
+ * @return void
*/
- function action_deleteblogconfirm()
+ static private function action_adminskinremovetypeconfirm()
{
- global $member, $CONF, $manager;
+ global $member;
- $blogid = intRequestVar('blogid');
- $manager->notify('PreDeleteBlog', array('blogid' => $blogid));
- $member->blogAdminRights($blogid) or $this->disallow();
+ $member->isAdmin() or self::disallow();
- // check if blog is default blog
- if ( $CONF['DefaultBlog'] == $blogid )
+ $skinid = intRequestVar('skinid');
+ $skintype = requestVar('type');
+
+ $error = self::skinremovetypeconfirm($skinid, $skintype);
+ if ( $error )
{
- $this->error(_ERROR_DELDEFBLOG);
+ self::error($error);
+ return;
}
+<<<<<<< HEAD
// delete all comments
$query = 'DELETE FROM '.sql_table('comment').' WHERE cblog='.$blogid;
DB::execute($query);
@@ -3387,26 +7064,61 @@ class Admin
$query = 'DELETE FROM '.sql_table('team').' WHERE tblog='.$blogid;
DB::execute($query);
- // delete all bans
- $query = 'DELETE FROM '.sql_table('ban').' WHERE blogid='.$blogid;
- DB::execute($query);
+ // delete all bans
+ $query = 'DELETE FROM '.sql_table('ban').' WHERE blogid='.$blogid;
+ DB::execute($query);
+
+ // delete all categories
+ $query = 'DELETE FROM '.sql_table('category').' WHERE cblog='.$blogid;
+ DB::execute($query);
+=======
+ self::action_adminskinedit();
+ return;
+ }
+
+ /**
+ * Admin::action_adminskinclone()
+ *
+ * @param void
+ * @return void
+ */
+ static private function action_adminskinclone()
+ {
+ global $member;
+
+ $member->isAdmin() or self::disallow();
- // delete all categories
- $query = 'DELETE FROM '.sql_table('category').' WHERE cblog='.$blogid;
- DB::execute($query);
+ $skinid = intRequestVar('skinid');
+>>>>>>> skinnable-master
- // delete all associated plugin options
- NucleusPlugin::delete_option_values('blog', $blogid);
+ self::skinclone($skinid, 'AdminActions');
+<<<<<<< HEAD
// delete the blog itself
$query = 'DELETE FROM '.sql_table('blog').' WHERE bnumber='.$blogid;
DB::execute($query);
+=======
+ self::action_adminskinoverview();
+ return;
+ }
+
+ /**
+ * Admin::action_adminskinieoverview()
+ *
+ * @param void
+ * @return void
+ */
+ static private function action_adminskinieoverview()
+ {
+ global $member;
+>>>>>>> skinnable-master
- $manager->notify('PostDeleteBlog', array('blogid' => $blogid));
+ $member->isAdmin() or self::disallow();
- $this->action_overview(_DELETED_BLOG);
+ self::$skin->parse('adminskinieoverview');
return;
}
+<<<<<<< HEAD
/**
* @todo document this
@@ -3418,7 +7130,7 @@ class Admin
($member->getID() == $memberid) or $member->isAdmin() or $this->disallow();
- $mem = Member::createFromID($memberid);
+ $mem =& $manager->getMember($memberid);
$this->pagehead();
?>
@@ -3446,46 +7158,38 @@ class Admin
*/
function action_memberdeleteconfirm() {
global $member;
+=======
+>>>>>>> skinnable-master
- $memberid = intRequestVar('memberid');
-
- ($member->getID() == $memberid) or $member->isAdmin() or $this->disallow();
-
- $error = $this->deleteOneMember($memberid);
- if ($error)
- $this->error($error);
-
- if ($member->isAdmin())
- $this->action_usermanagement();
- else
- $this->action_overview(_DELETED_MEMBER);
- }
-
/**
- * Admin::deleteOneMember()
- * Delete a member by id
+ * Admin::action_adminskinieimport()
*
- * @static
- * @params Integer $memberid member id
- * @return String null string or error messages
+ * @param void
+ * @return void
*/
- function deleteOneMember($memberid)
+ static private function action_adminskinieimport()
{
- global $manager;
+ global $member;
+<<<<<<< HEAD
$memberid = intval($memberid);
- $mem = Member::createFromID($memberid);
+ $mem =& $manager->getMember($memberid);
if ( !$mem->canBeDeleted() )
{
return _ERROR_DELETEMEMBER;
}
+=======
+ $member->isAdmin() or self::disallow();
+>>>>>>> skinnable-master
- $manager->notify('PreDeleteMember', array('member' => &$mem));
+ $skinFileRaw = postVar('skinfile');
+ $mode = postVar('mode');
- /* unlink comments from memberid */
- if ( $memberid )
+ $error = self::skinieimport($mode, $skinFileRaw);
+ if ( $error )
{
+<<<<<<< HEAD
$query = "UPDATE %s SET cmember=0, cuser=%s WHERE cmember=%d";
$query = sprintf($query, sql_table('comment'), DB::quoteValue($mem->getDisplayName()), $memberid);
DB::execute($query);
@@ -4329,23 +8033,47 @@ selector();
}
+=======
+ self::error($error);
+ return;
+ }
+
+ if ( !is_object(self::$skin) )
+ {
+ self::action_adminskiniedoimport();
+ }
+ else
+ {
+ self::$skin->parse('adminskinieimport');
+ }
+ return;
+ }
+
+>>>>>>> skinnable-master
/**
- * Admin::addToTemplate()
- *
- * @param Integer $id ID for template
- * @param String $partname parts name
- * @param String $content template contents
- * @return Integer record index
+ * Admin::action_adminskiniedoimport()
*
+ * @param void
+ * @return void
*/
- function addToTemplate($id, $partname, $content)
+ static private function action_adminskiniedoimport()
{
- // don't add empty parts:
- if ( !trim($content) )
+ global $DIR_SKINS, $member, $CONF;
+
+ $member->isAdmin() or self::disallow();
+
+ $mode = postVar('mode');
+ $skinFileRaw = postVar('skinfile');
+ $allowOverwrite = intPostVar('overwrite');
+
+ $error = self::skiniedoimport($mode, $skinFileRaw, $allowOverwrite);
+ if ( $error )
{
- return -1;
+ self::error($error);
+ return;
}
+<<<<<<< HEAD
$partname = DB::quoteValue($partname);
$content = DB::quoteValue($content);
@@ -5070,17 +8798,41 @@ selector();
$this->action_skinoverview();
}
+=======
+ if ( !is_object(self::$skin) )
+ {
+ global $DIR_SKINS;
+ $query = "SELECT min(sdnumber) FROM %s WHERE sdname != 'admin/bookmarklet' AND sdname LIKE 'admin/%%'";
+ $query = sprintf($query, sql_table('skin_desc'));
+ $res = intval(DB::getValue($query));
+ $query = "UPDATE %s SET value = %d WHERE name = 'AdminSkin'";
+ $query = sprintf($query, sql_table('config'), $res);
+ DB::execute($query);
+ if ( $res )
+ {
+ redirect($CONF['AdminURL']);
+ exit;
+ }
+ $skin = new Skin(0, 'AdminActions', 'AdminSkin');
+ $skin->parse('importAdmin', $DIR_SKINS . 'admin/defaultimporter.skn');
+ }
+ else
+ {
+ self::$skin->parse('adminskiniedoimport');
+ }
+ return;
+ }
+>>>>>>> skinnable-master
/**
- * Admin::skinclonetype()
+ * Admin::action_adminskinieexport()
*
- * @param String $skin Skin object
- * @param Integer $newid ID for this clone
- * @param String $type type of skin
- * @return Void
+ * @param void
+ * @return void
*/
- function skinclonetype($skin, $newid, $type)
+ static private function action_adminskinieexport()
{
+<<<<<<< HEAD
$newid = intval($newid);
$content = $skin->getContentFromDB($type);
@@ -5090,6 +8842,19 @@ selector();
$query = sprintf($query, sql_table('skin'), (integer) $newid, $content, $type);
DB::execute($query);
}
+=======
+ global $member;
+
+ $member->isAdmin() or self::disallow();
+
+ // load skinie class
+ $aSkins = requestIntArray('skin');
+ $aTemplates = requestIntArray('template');
+ $info = postVar('info');
+
+ self::skinieexport($aSkins, $aTemplates, $info);
+
+>>>>>>> skinnable-master
return;
}
@@ -5099,8 +8864,10 @@ selector();
* @param Void
* @return Void
*/
- function action_settingsedit() {
+ static private function action_settingsedit()
+ {
global $member, $manager, $CONF, $DIR_NUCLEUS, $DIR_MEDIA;
+<<<<<<< HEAD
$member->isAdmin() or $this->disallow();
@@ -5430,6 +9197,13 @@ selector();
);
$this->pagefoot();
+=======
+
+ $member->isAdmin() or self::disallow();
+
+ self::$skin->parse('settingsedit');
+ return;
+>>>>>>> skinnable-master
}
/**
@@ -5439,61 +9213,65 @@ selector();
* @param void
* @return void
*/
- function action_settingsupdate() {
+ static private function action_settingsupdate()
+ {
global $member, $CONF;
- $member->isAdmin() or $this->disallow();
+ $member->isAdmin() or self::disallow();
// check if email address for admin is valid
if ( !NOTIFICATION::address_validation(postVar('AdminEmail')) )
{
- $this->error(_ERROR_BADMAILADDRESS);
+ self::error(_ERROR_BADMAILADDRESS);
+ return;
}
// save settings
- $this->updateConfig('DefaultBlog', postVar('DefaultBlog'));
- $this->updateConfig('BaseSkin', postVar('BaseSkin'));
- $this->updateConfig('IndexURL', postVar('IndexURL'));
- $this->updateConfig('AdminURL', postVar('AdminURL'));
- $this->updateConfig('PluginURL', postVar('PluginURL'));
- $this->updateConfig('SkinsURL', postVar('SkinsURL'));
- $this->updateConfig('ActionURL', postVar('ActionURL'));
- $this->updateConfig('Locale', postVar('Locale'));
- $this->updateConfig('AdminEmail', postVar('AdminEmail'));
- $this->updateConfig('SessionCookie', postVar('SessionCookie'));
- $this->updateConfig('AllowMemberCreate',postVar('AllowMemberCreate'));
- $this->updateConfig('AllowMemberMail', postVar('AllowMemberMail'));
- $this->updateConfig('NonmemberMail', postVar('NonmemberMail'));
- $this->updateConfig('ProtectMemNames', postVar('ProtectMemNames'));
- $this->updateConfig('SiteName', postVar('SiteName'));
- $this->updateConfig('NewMemberCanLogon',postVar('NewMemberCanLogon'));
- $this->updateConfig('DisableSite', postVar('DisableSite'));
- $this->updateConfig('DisableSiteURL', postVar('DisableSiteURL'));
- $this->updateConfig('LastVisit', postVar('LastVisit'));
- $this->updateConfig('MediaURL', postVar('MediaURL'));
- $this->updateConfig('AllowedTypes', postVar('AllowedTypes'));
- $this->updateConfig('AllowUpload', postVar('AllowUpload'));
- $this->updateConfig('MaxUploadSize', postVar('MaxUploadSize'));
- $this->updateConfig('MediaPrefix', postVar('MediaPrefix'));
- $this->updateConfig('AllowLoginEdit', postVar('AllowLoginEdit'));
- $this->updateConfig('DisableJsTools', postVar('DisableJsTools'));
- $this->updateConfig('CookieDomain', postVar('CookieDomain'));
- $this->updateConfig('CookiePath', postVar('CookiePath'));
- $this->updateConfig('CookieSecure', postVar('CookieSecure'));
- $this->updateConfig('URLMode', postVar('URLMode'));
- $this->updateConfig('CookiePrefix', postVar('CookiePrefix'));
- $this->updateConfig('DebugVars', postVar('DebugVars'));
- $this->updateConfig('DefaultListSize', postVar('DefaultListSize'));
- $this->updateConfig('AdminCSS', postVar('AdminCSS'));
-
+ self::updateConfig('DefaultBlog', postVar('DefaultBlog'));
+ self::updateConfig('BaseSkin', postVar('BaseSkin'));
+ self::updateConfig('IndexURL', postVar('IndexURL'));
+ self::updateConfig('AdminURL', postVar('AdminURL'));
+ self::updateConfig('PluginURL', postVar('PluginURL'));
+ self::updateConfig('SkinsURL', postVar('SkinsURL'));
+ self::updateConfig('ActionURL', postVar('ActionURL'));
+ self::updateConfig('Locale', postVar('Locale'));
+ self::updateConfig('AdminEmail', postVar('AdminEmail'));
+ self::updateConfig('SessionCookie', postVar('SessionCookie'));
+ self::updateConfig('AllowMemberCreate', postVar('AllowMemberCreate'));
+ self::updateConfig('AllowMemberMail', postVar('AllowMemberMail'));
+ self::updateConfig('NonmemberMail', postVar('NonmemberMail'));
+ self::updateConfig('ProtectMemNames', postVar('ProtectMemNames'));
+ self::updateConfig('SiteName', postVar('SiteName'));
+ self::updateConfig('NewMemberCanLogon', postVar('NewMemberCanLogon'));
+ self::updateConfig('DisableSite', postVar('DisableSite'));
+ self::updateConfig('DisableSiteURL', postVar('DisableSiteURL'));
+ self::updateConfig('LastVisit', postVar('LastVisit'));
+ self::updateConfig('MediaURL', postVar('MediaURL'));
+ self::updateConfig('AllowedTypes', postVar('AllowedTypes'));
+ self::updateConfig('AllowUpload', postVar('AllowUpload'));
+ self::updateConfig('MaxUploadSize', postVar('MaxUploadSize'));
+ self::updateConfig('MediaPrefix', postVar('MediaPrefix'));
+ self::updateConfig('AllowLoginEdit', postVar('AllowLoginEdit'));
+ self::updateConfig('DisableJsTools', postVar('DisableJsTools'));
+ self::updateConfig('CookieDomain', postVar('CookieDomain'));
+ self::updateConfig('CookiePath', postVar('CookiePath'));
+ self::updateConfig('CookieSecure', postVar('CookieSecure'));
+ self::updateConfig('URLMode', postVar('URLMode'));
+ self::updateConfig('CookiePrefix', postVar('CookiePrefix'));
+ self::updateConfig('DebugVars', postVar('DebugVars'));
+ self::updateConfig('DefaultListSize', postVar('DefaultListSize'));
+ self::updateConfig('AdminCSS', postVar('AdminCSS'));
+ self::updateConfig('AdminSkin', postVar('adminskin'));
+ self::updateConfig('BookmarkletSkin', postVar('bookmarklet'));
+
// load new config and redirect (this way, the new locale will be used is necessary)
// note that when changing cookie settings, this redirect might cause the user
// to have to log in again.
getConfig();
redirect($CONF['AdminURL'] . '?action=manage');
- exit;
+ return;
}
-
+
/**
* Admin::action_systemoverview()
* Output system overview
@@ -5501,8 +9279,9 @@ selector();
* @param void
* @return void
*/
- function action_systemoverview()
+ static private function action_systemoverview()
{
+<<<<<<< HEAD
global $member, $nucleus, $CONF;
$this->pagehead();
@@ -5681,8 +9460,12 @@ selector();
echo _ADMIN_SYSTEMOVERVIEW_NOT_ADMIN;
}
$this->pagefoot();
+=======
+ self::$skin->parse('systemoverview');
+ return;
+>>>>>>> skinnable-master
}
-
+
/**
* Admin::updateConfig()
*
@@ -5690,8 +9473,9 @@ selector();
* @param string $val
* @return integer return the ID in which the latest query posted
*/
- function updateConfig($name, $val)
+ static private function updateConfig($name, $val)
{
+<<<<<<< HEAD
$name = DB::quoteValue($name);
$val = DB::quoteValue(trim($val));
@@ -5701,24 +9485,30 @@ selector();
{
$err = DB::getError();
die("Query error: " . $err[2]);
+=======
+ $query = "UPDATE %s SET value=%s WHERE name=%s";
+ $query = sprintf($query, sql_table('config'), DB::quoteValue($val), DB::quoteValue($name));
+ if ( DB::execute($query) === FALSE )
+ {
+ $err = DB::getError();
+ die(_ADMIN_SQLDIE_QUERYERROR . $err[2]);
+>>>>>>> skinnable-master
}
return DB::getInsertId();
}
/**
+ * Admin::error()
* Error message
- * @param string $msg message that will be shown
+ *
+ * @param string $msg message that will be shown
+ * @return void
*/
- function error($msg)
+ static public function error($msg)
{
- $this->pagehead();
-
- echo "
Error!
\n";
- echo $msg;
- echo "
\n";
- echo '
' . _BACK . "\n";
- $this->pagefoot();
- exit;
+ self::$headMess = $msg;
+ self::$skin->parse('adminerrorpage');
+ return;
}
/**
@@ -5728,19 +9518,35 @@ selector();
* @param void
* @return void
*/
- function disallow()
+ static public function disallow()
{
ActionLog::add(WARNING, _ACTIONLOG_DISALLOWED . serverVar('REQUEST_URI'));
- $this->error(_ERROR_DISALLOWED);
+ self::error(_ERROR_DISALLOWED);
+ return;
+ }
+
+ /**
+ * Admin::action_PluginAdmin()
+ * Output pluginadmin
+ *
+ * @param string $skinContents
+ * @param string $extrahead
+ * @return void
+ */
+ static public function action_PluginAdmin($skinContents, $extrahead = '')
+ {
+ self::$extrahead .= $extrahead;
+ self::$skin->parse('pluginadmin', $skinContents);
+ return;
}
/**
- * Admin::pagehead()
- * Output admin page head
+ * Admin::action_bookmarklet()
*
* @param void
* @return void
*/
+<<<<<<< HEAD
function pagehead($extrahead = '')
{
global $member, $nucleus, $CONF, $manager;
@@ -5797,194 +9603,131 @@ selector();
}
echo "
"._YOURSITE."\n";
echo '(';
+=======
+ static private function action_bookmarklet()
+ {
+ global $member, $manager;
+>>>>>>> skinnable-master
- if (array_key_exists('codename', $nucleus) && $nucleus['codename'] != '' )
- {
- $codenamestring = ' "' . $nucleus['codename'].'"';
- }
- else
- {
- $codenamestring = '';
- }
+ $blogid = intRequestVar('blogid');
+ $member->teamRights($blogid) or self::disallow();
- if ( $member->isLoggedIn() && $member->isAdmin() )
- {
- $checkURL = sprintf(_ADMIN_SYSTEMOVERVIEW_VERSIONCHECK_URL, getNucleusVersion(), getNucleusPatchLevel());
- echo '
Nucleus CMS ' . $nucleus['version'] . $codenamestring . '';
-
- $newestVersion = getLatestVersion();
- $newestCompare = str_replace('/','.',$newestVersion);
- $currentVersion = str_replace(array('/','v'),array('.',''),$nucleus['version']);
- if ( $newestVersion && version_compare($newestCompare, $currentVersion) > 0 )
- {
- echo "
\n";
- echo '
';
- echo _ADMIN_SYSTEMOVERVIEW_LATESTVERSION_TEXT . $newestVersion;
- echo "";
- }
- }
- else
- {
- echo 'Nucleus CMS ' . $nucleus['version'] . $codenamestring;
- }
- echo ')';
- echo '
';
+ self::$skin->parse('bookmarklet');
return;
}
/**
- * Admin::pagefoot()
- * Output admin page foot include quickmenu
+ * Admin::action_actionlog()
*
* @param void
* @return void
*/
- function pagefoot()
+ static private function action_actionlog()
{
- global $action, $member, $manager;
+ global $member, $manager;
- $manager->notify(
- 'AdminPrePageFoot',
- array('action' => $this->action)
- );
+ $member->isAdmin() or self::disallow();
- if ( $member->isLoggedIn() && ($action != 'showlogin') )
- {
- echo '