diff --git a/e107.htaccess b/e107.htaccess index 5d6aa12e6..8edbcbea8 100644 --- a/e107.htaccess +++ b/e107.htaccess @@ -1,15 +1,29 @@ -RewriteEngine On +### enable rewrites + Options +FollowSymLinks + RewriteEngine On ### Set this to your e107 site root -RewriteBase / + RewriteBase / -### NEWS ### +### send 404 on missing files in these folders + RewriteCond %{REQUEST_URI} !^/(e107_images|e107_files)/ + +### don't rewrite for existing files, directories and links + RewriteCond %{REQUEST_FILENAME} !-f + RewriteCond %{REQUEST_FILENAME} !-d + RewriteCond %{REQUEST_FILENAME} !-l + +### NEWS SEF URLs - set 'news' to the 'URL identifier' value (news Administration area) ### + RewriteRule ^news/(.*)$ news.php?rewrite=$1 [L] + +### REMOVE ### RewriteRule ^news/?$ news.php #item, default, cat actions -RewriteRule ^news/([a-z]+)-([0-9]+)-([0-9]+)(\.html)?$ news.php?$1.$2.$3 [L] +#RewriteRule ^news/([a-z]+)-([0-9]+)-([0-9]+)(\.html)?$ news.php?$1.$2.$3 [L] #extend, cat, list actions -RewriteRule ^news/([a-z]+)-([0-9]+)(\.html)?$ news.php?$1.$2 [L] +#RewriteRule ^news/([a-z]+)-([0-9]+)(\.html)?$ news.php?$1.$2 [L] +### REMOVE END ### #ErrorDocument 400 /error.php?400 diff --git a/e107_admin/newspost.php b/e107_admin/newspost.php index ef170bcac..d28d2306f 100644 --- a/e107_admin/newspost.php +++ b/e107_admin/newspost.php @@ -9,8 +9,8 @@ * News Administration * * $Source: /cvs_backup/e107_0.8/e107_admin/newspost.php,v $ - * $Revision: 1.51 $ - * $Date: 2009-09-12 18:25:41 $ + * $Revision: 1.52 $ + * $Date: 2009-09-13 16:37:17 $ * $Author: secretr $ */ require_once("../class2.php"); @@ -697,6 +697,7 @@ class admin_newspost $id = e107::getDb()->db_Insert('news_category', $inserta); if($id) { + $inserta['data']['category_id'] = $id; //Manage rewrite if(!empty($_POST['news_rewrite_string'])) { @@ -710,7 +711,8 @@ class admin_newspost $rwinserta['data']['news_rewrite_type'] = 2; $rwinserta['_FIELD_TYPES']['news_rewrite_type'] = 'int'; - e107::getDb()->db_Insert('news_rewrite', $rwinserta); + $rid = e107::getDb()->db_Insert('news_rewrite', $rwinserta); + $rwinserta['data']['news_rewrite_id'] = $rid; if(e107::getDb()->getLastErrorNumber()) { $this->error = true; @@ -722,15 +724,14 @@ class admin_newspost $this->show_message('mySQL error #'.e107::getDb()->getLastErrorNumber().': '.e107::getDb()->getLastErrorText(), E_MESSAGE_DEBUG); return; } + $this->set_rwcache($_POST['news_rewrite_string'], $rwinserta['data']); + e107::getAdminLog()->log_event('NEWS_10', $rwinserta, E_LOG_INFORMATIVE, ''); } //admin log now supports DB array and method chaining - //$_POST['category_name'].', '.$_POST['category_icon'] - unset($inserta['data']['category_meta_description']); //too long for logging? - e107::getAdminLog() - ->log_event('NEWS_04', $inserta, E_LOG_INFORMATIVE, '') - ->log_event('NEWS_04', $rwinserta, E_LOG_INFORMATIVE, ''); //XXX fix lan for SEF string log or just don't log it? + e107::getAdminLog()->log_event('NEWS_04', $inserta, E_LOG_INFORMATIVE, ''); + $this->show_message(NWSLAN_35, E_MESSAGE_SUCCESS); $this->clear_cache(); @@ -812,6 +813,12 @@ class admin_newspost $inserta['data']['news_rewrite_type'] = 2; $inserta['_FIELD_TYPES']['news_rewrite_type'] = 'int'; + $oldsef = array(); + //'news_rewrite_source='.intval($this->getId()).' AND news_rewrite_type=2' + if(e107::getDb()->db_Select('news_rewrite', '*', 'news_rewrite_id='.intval($rid))) + { + $oldsef = e107::getDb()->db_Fetch(); + } $upcheck = e107::getDb()->db_Update("news_category", $updatea); $rwupcheck = false; if($upcheck || !e107::getDb()->getLastErrorNumber()) @@ -827,6 +834,7 @@ class admin_newspost else { $rwupcheck = e107::getDb()->db_Insert('news_rewrite', $inserta); + $inserta['data']['news_rewrite_id'] = $rwupcheck; } if(e107::getDb()->getLastErrorNumber()) { @@ -840,27 +848,15 @@ class admin_newspost $this->show_message('mySQL error #'.e107::getDb()->getLastErrorNumber().': '.e107::getDb()->getLastErrorText(), E_MESSAGE_DEBUG); return; } - - if ($upcheck || $rwupcheck) - { - $this->show_message(NWSLAN_36, E_MESSAGE_SUCCESS); - $this->set_rwcache($_POST['news_rewrite_string'], $inserta['data']); - //TODO - add to WIKI docs - e107::getEvent()->trigger("newscatupd", array_merge($updatea['data'], $inserta['data'])); - return; - } - $this->show_message(LAN_NO_CHANGE); - return; } else { //remove SEF if required - if(e107::getDb()->db_Select('news_rewrite', 'news_rewrite_id, news_rewrite_string', 'news_rewrite_source='.$this->getId().' AND news_rewrite_type=2')) + if($oldsef) { - $tmp = e107::getDb()->db_Fetch(); - e107::getDb()->db_Delete('news_rewrite', 'news_rewrite_id='.$tmp['news_rewrite_id']); - $this->clear_rwcache($tmp['news_rewrite_string']); - unset($tmp); + $this->clear_rwcache($oldsef['news_rewrite_string']); + e107::getDb()->db_Delete('news_rewrite', 'news_rewrite_id='.$oldsef['news_rewrite_id']); + e107::getAdminLog()->log_event('NEWS_11', $oldsef, E_LOG_INFORMATIVE, ''); $inserta = array( 'data' => array()); $rwupcheck = true; } @@ -870,8 +866,9 @@ class admin_newspost if ($upcheck || $rwupcheck) { //admin log now supports DB array and method chaining - if($upcheck) e107::getAdminLog()->log_event('NEWS_04', $updatea['data'], E_LOG_INFORMATIVE, ''); - if($rwupcheck) e107::getAdminLog()->log_event('NEWS_04', $inserta['data'], E_LOG_INFORMATIVE, ''); //XXX fix lan for SEF string log or just don't log it? + $updatea['data']['category_id'] = $this->getId(); + if($upcheck) e107::getAdminLog()->log_event('NEWS_05', $updatea['data'], E_LOG_INFORMATIVE, ''); + if($rwupcheck && $inserta['data']) e107::getAdminLog()->log_event('NEWS_10', $inserta['data'], E_LOG_INFORMATIVE, ''); $this->show_message(NWSLAN_36, E_MESSAGE_SUCCESS); $this->clear_cache(); @@ -883,6 +880,10 @@ class admin_newspost { $this->show_message(LAN_NO_CHANGE); } + + if(varset($oldsef['news_rewrite_string'])) $this->clear_rwcache($oldsef['news_rewrite_string']); + if($_POST['news_rewrite_string']) $this->set_rwcache($_POST['news_rewrite_string'], $inserta['data']); + $this->setId(0); } else @@ -909,34 +910,29 @@ class admin_newspost function _observe_save_prefs() { - global $pref, $admin_log; - - $e107 = e107::getInstance(); - $temp = array(); $temp['newsposts'] = intval($_POST['newsposts']); $temp['newsposts_archive'] = intval($_POST['newsposts_archive']); - $temp['newsposts_archive_title'] = $e107->tp->toDB($_POST['newsposts_archive_title']); + $temp['newsposts_archive_title'] = e107::getParser()->toDB($_POST['newsposts_archive_title']); $temp['news_cats'] = intval($_POST['news_cats']); $temp['nbr_cols'] = intval($_POST['nbr_cols']); $temp['subnews_attach'] = intval($_POST['subnews_attach']); $temp['subnews_resize'] = intval($_POST['subnews_resize']); $temp['subnews_class'] = intval($_POST['subnews_class']); $temp['subnews_htmlarea'] = intval($_POST['subnews_htmlarea']); - $temp['news_subheader'] = $e107->tp->toDB($_POST['news_subheader']); + $temp['news_subheader'] = e107::getParser()->toDB($_POST['news_subheader']); $temp['news_newdateheader'] = intval($_POST['news_newdateheader']); $temp['news_unstemplate'] = intval($_POST['news_unstemplate']); $temp['news_editauthor'] = intval($_POST['news_editauthor']); + $temp['news_sefbase'] = preg_replace('#[^\w\pL\-]#u', '', $_POST['news_sefbase']); - if ($admin_log->logArrayDiffs($temp, $pref, 'NEWS_06')) + e107::getConfig()->updatePref($temp); + + if(e107::getConfig()->save(false)) { - save_prefs(); // Only save if changes + e107::getAdminLog()->logArrayDiffs($temp, e107::getPref(), 'NEWS_06'); $this->clear_cache(); - $this->show_message(NWSLAN_119, E_MESSAGE_SUCCESS); - } - else - { - $this->show_message(LAN_NEWS_47); + //$this->show_message(NWSLAN_119, E_MESSAGE_SUCCESS); } } @@ -1834,20 +1830,31 @@ class admin_newspost function ajax_exec_catorder() { //interactive category order - e107::getDb()->db_Update('news_category', 'category_order='.intval($this->getId()).' WHERE category_id='.intval($this->getSubAction())); + $check = e107::getDb()->db_Update('news_category', 'category_order='.intval($this->getId()).' WHERE category_id='.intval($this->getSubAction())); if(e107::getDb()->getLastErrorNumber()) { echo 'mySQL Error #'.e107::getDb()->getLastErrorNumber().': '.e107::getDb()->getLastErrorText(); + return; + } + if($check) + { + e107::getAdminLog()->log_event('NEWS_05', 'category_id='.intval($this->getSubAction()).', category_order='.intval($this->getId()), E_LOG_INFORMATIVE, ''); } } function ajax_exec_catmanager() { //interactive category manage permissions - e107::getDb()->db_Update('news_category', 'category_manager='.intval($this->getId()).' WHERE category_id='.intval($this->getSubAction())); + $check = e107::getDb()->db_Update('news_category', 'category_manager='.intval($this->getId()).' WHERE category_id='.intval($this->getSubAction())); if(e107::getDb()->getLastErrorNumber()) { echo 'mySQL Error #'.e107::getDb()->getLastErrorNumber().': '.e107::getDb()->getLastErrorText(); + retrun; + } + if($check) + { + $class_name = e107::getUserClass()->uc_get_classname($this->getId()); + e107::getAdminLog()->log_event('NEWS_05', 'category_id='.intval($this->getSubAction()).', category_manager='.intval($this->getId()).' ('.$class_name.')', E_LOG_INFORMATIVE, ''); } } @@ -2098,7 +2105,7 @@ class admin_newspost require_once(e_HANDLER."form_handler.php"); $frm = new e_form(true); //enable inner tabindex counter - $e107 = &e107::getInstance(); + $e107 = e107::getInstance(); $text = "
@@ -2110,6 +2117,13 @@ class admin_newspost + + ".NWSLAN_127." + + ".$frm->text('news_sefbase', $pref['news_sefbase'])." +
".sprintf(NWSLAN_128, e_ADMIN_ABS.'eurl.php').''.SITEURL.($pref['news_sefbase'] ? $pref['news_sefbase'].'/' : '')."
+ + ".NWSLAN_86." diff --git a/e107_files/default_install.xml b/e107_files/default_install.xml index 2ec5b00e0..ba42ef9bd 100644 --- a/e107_files/default_install.xml +++ b/e107_files/default_install.xml @@ -116,6 +116,7 @@ 10 0 + news 0 0 diff --git a/e107_files/e_url/core/news/apache_mod_rewrite/main.php b/e107_files/e_url/core/news/apache_mod_rewrite/main.php index 9f66bfb10..4991db54c 100644 --- a/e107_files/e_url/core/news/apache_mod_rewrite/main.php +++ b/e107_files/e_url/core/news/apache_mod_rewrite/main.php @@ -1,33 +1,50 @@ \ No newline at end of file diff --git a/e107_files/e_url/core/news/main.php b/e107_files/e_url/core/news/main.php index 1bcd612b2..12487e6a7 100644 --- a/e107_files/e_url/core/news/main.php +++ b/e107_files/e_url/core/news/main.php @@ -1,7 +1,7 @@ \ No newline at end of file diff --git a/e107_files/shortcode/batch/news_shortcodes.php b/e107_files/shortcode/batch/news_shortcodes.php index 279f23d8b..6eb69e52a 100644 --- a/e107_files/shortcode/batch/news_shortcodes.php +++ b/e107_files/shortcode/batch/news_shortcodes.php @@ -1,7 +1,7 @@ e107->url->getUrl('core:news', 'main', 'action=cat&value='.$this->news_item['news_category'])."'>"; + return "news_item['news_category'].'&sef='.$this->news_item['news_category_rewrite_string'])."'>"; } function sc_newsauthor($parm) @@ -155,7 +155,7 @@ class news_shortcodes function sc_newscategory($parm) { $category_name = $this->e107->tp->toHTML($this->news_item['category_name'], FALSE ,'defs'); - return "param['catlink'] : "#")."' href='".$this->e107->url->getUrl('core:news', 'main', 'action=cat&value='.$this->news_item['news_category'])."'>".$category_name.""; + return "param['catlink'] : "#")."' href='".$this->e107->url->getUrl('core:news', 'main', 'action=list&id='.$this->news_item['news_category'].'&sef='.$this->news_item['news_category_rewrite_string'])."'>".$category_name.""; } function sc_newsdate($parm) @@ -247,7 +247,7 @@ class news_shortcodes } else { - return $es1."news_item['news_id'])."'>".EXTENDEDSTRING."".$es2; + return $es1."news_item['news_id'].'&sef='.$this->news_item['news_rewrite_string'])."'>".EXTENDEDSTRING."".$es2; } } return ''; @@ -276,14 +276,40 @@ class news_shortcodes return ($this->news_item['news_summary']) ? $this->news_item['news_summary'].'
' : ''; } - function sc_newsthumbnail() + function sc_newsthumbnail($parm = '') { - return (isset($this->news_item['news_thumbnail']) && $this->news_item['news_thumbnail']) ? "news_item['news_id']}&value2={$this->news_item['news_category']}")."'>" : ''; + switch($parm) + { + case 'src': + return (isset($this->news_item['news_thumbnail']) && $this->news_item['news_thumbnail'] ? e_IMAGE_ABS.$this->news_item['news_thumbnail'] : ''); + break; + + case 'tag': + return (isset($this->news_item['news_thumbnail']) && $this->news_item['news_thumbnail'] ? "" : ''); + break; + + default: + return (isset($this->news_item['news_thumbnail']) && $this->news_item['news_thumbnail']) ? "news_item['news_id']}&catid={$this->news_item['news_category']}&sef={$this->news_item['news_rewrite_string']}")."'>" : ''; + break; + } } - function sc_newsimage() + function sc_newsimage($parm = '') { - return (isset($this->news_item['news_thumbnail']) && $this->news_item['news_thumbnail']) ? "news_item['news_id']}&value2={$this->news_item['news_category']}")."'>" : ''; + switch($parm) + { + case 'src': + return (isset($this->news_item['news_thumbnail']) && $this->news_item['news_thumbnail'] ? e_IMAGE_ABS.$this->news_item['news_thumbnail'] : ''); + break; + + case 'tag': + return (isset($this->news_item['news_thumbnail']) && $this->news_item['news_thumbnail'] ? "" : ''); + break; + + default: + return (isset($this->news_item['news_thumbnail']) && $this->news_item['news_thumbnail']) ? "news_item['news_id']}&catid={$this->news_item['news_category']}&sef={$this->news_item['news_rewrite_string']}")."'>" : ''; + break; + } } function sc_sticky_icon() @@ -291,12 +317,18 @@ class news_shortcodes return $this->news_item['news_sticky'] ? $this->param['image_sticky'] : ''; } - function sc_newstitlelink() + function sc_newstitlelink($parm = '') { - return "param['itemlink'] : 'null')."' href='".$this->e107->url->getUrl('core:news', 'main', "action=item&value1={$this->news_item['news_id']}&value2={$this->news_item['news_category']}")."'>".$this->news_item['news_title'].''; + parse_str($parm, $parms); + $url = $this->e107->url->getUrl('core:news', 'main', "action=".vartrue($parms['action'], 'extend')."&id={$this->news_item['news_id']}&sef={$this->news_item['news_rewrite_string']}"); + if(isset($parms['href'])) + { + return $url; + } + return "param['itemlink'] : 'null')."' href='{$url}'>".$this->news_item['news_title'].''; } - function sc_newscaticon() + function sc_newscaticon($parm = '') { $category_icon = str_replace('../', '', trim($this->news_item['category_icon'])); if (!$category_icon) { return ''; } @@ -308,10 +340,24 @@ class news_shortcodes { $category_icon = e_IMAGE_ABS.'icons/'.$category_icon; } - + + //TODO - remove inline styles if($this->param['caticon'] == ''){$this->param['caticon'] = 'border:0px';} - //TODO use CSS class - return "news_item['news_category']}")."'>"; + + switch($parm) + { + case 'src': + return $category_icon; + break; + + case 'tag': + return ""; + break; + + default: + return "news_item['news_category']}&sef={$this->news_item['news_category_rewrite_string']}")."'>"; + break; + } } function sc_newsinfo() diff --git a/e107_handlers/admin_log_class.php b/e107_handlers/admin_log_class.php index 7d59778d9..6d2adbbb3 100644 --- a/e107_handlers/admin_log_class.php +++ b/e107_handlers/admin_log_class.php @@ -11,8 +11,8 @@ | GNU General Public License (http://gnu.org). | | $Source: /cvs_backup/e107_0.8/e107_handlers/admin_log_class.php,v $ - | $Revision: 1.15 $ - | $Date: 2009-09-10 19:08:36 $ + | $Revision: 1.16 $ + | $Date: 2009-09-13 16:37:18 $ | $Author: secretr $ To do: 1. Do we need to check for presence of elements of debug_backtrace() to avoid notices? @@ -92,7 +92,6 @@ class e_admin_log */ function log_event($event_title, $event_detail, $event_type = E_LOG_INFORMATIVE , $event_code = '') { - global $e107,$tp; if ($event_code == '') { if (strlen($event_title) <= 10) @@ -111,12 +110,13 @@ class e_admin_log $tmp = array(); if (isset($event_detail['data'])) { - foreach ($event_detail as $v) - { - $tmp[] = $v; - } + $event_detail = $event_detail['data']; } - $event_detail = implode(', ', $tmp); + foreach ($event_detail as $k => $v) + { + $tmp[] = $k.'=>'.$v; + } + $event_detail = implode("[!br!]\n", $tmp); unset($tmp); } @@ -388,5 +388,3 @@ class e_admin_log } } - -?> diff --git a/e107_handlers/e107_class.php b/e107_handlers/e107_class.php index cfdb7376b..685513641 100644 --- a/e107_handlers/e107_class.php +++ b/e107_handlers/e107_class.php @@ -9,8 +9,8 @@ * e107 Main * * $Source: /cvs_backup/e107_0.8/e107_handlers/e107_class.php,v $ - * $Revision: 1.48 $ - * $Date: 2009-09-13 10:31:09 $ + * $Revision: 1.49 $ + * $Date: 2009-09-13 16:37:18 $ * $Author: secretr $ */ @@ -99,6 +99,17 @@ class e107 * @var array */ protected static $_known_handlers = array ( + 'db' => '{e_HANDLER}mysql_class.php', + 'ecache' => '{e_HANDLER}cache_handler.php', + 'user_class' => '{e_HANDLER}userclass_class.php', + 'e107_event' => '{e_HANDLER}event_class.php', + 'ArrayData' => '{e_HANDLER}arraystorage_class.php', + 'eURL' => '{e_HANDLER}e107Url.php', + 'e_file' => '{e_HANDLER}file_class.php', + 'e_admin_log' => '{e_HANDLER}admin_log_class.php', + 'notify' => '{e_HANDLER}notify_class.php', + 'e_online' => '{e_HANDLER}online_class.php', + 'convert' => '{e_HANDLER}date_handler.php', 'e_news_item' => '{e_HANDLER}news_class.php', 'e_news_tree' => '{e_HANDLER}news_class.php', 'news' => '{e_HANDLER}news_class.php', @@ -645,7 +656,7 @@ class e107 */ public static function getDb($instance_id = '') { - return self::getSingleton('db', e_HANDLER.'mysql_class.php', $instance_id); + return self::getSingleton('db', true, $instance_id); } /** @@ -655,7 +666,7 @@ class e107 */ public static function getCache() { - return self::getSingleton('ecache', e_HANDLER.'cache_handler.php'); + return self::getSingleton('ecache', true); } /** @@ -665,7 +676,7 @@ class e107 */ public static function getUserClass() { - return self::getSingleton('user_class', e_HANDLER.'userclass_class.php'); + return self::getSingleton('user_class', true); } /** @@ -685,7 +696,7 @@ class e107 */ public static function getEvent() { - return self::getSingleton('e107_event', e_HANDLER.'event_class.php'); + return self::getSingleton('e107_event', true); } /** @@ -695,7 +706,7 @@ class e107 */ public static function getArrayStorage() { - return self::getSingleton('ArrayData', e_HANDLER.'arraystorage_class.php'); + return self::getSingleton('ArrayData', true); } /** @@ -705,7 +716,7 @@ class e107 */ public static function getMenu() { - return self::getSingleton('e_menu', e_HANDLER.'menu_class.php'); + return self::getSingleton('e_menu', true); } /** @@ -715,7 +726,7 @@ class e107 */ public static function getUrl() { - return self::getSingleton('eURL', e_HANDLER.'e107Url.php'); + return self::getSingleton('eURL', true); } /** @@ -728,9 +739,9 @@ class e107 { if($singleton) { - return self::getSingleton('e_file', e_HANDLER.'file_class.php'); + return self::getSingleton('e_file', true); } - return self::getObject('e_file', null, e_HANDLER.'file_class.php'); + return self::getObject('e_file', null, true); } /** @@ -740,7 +751,7 @@ class e107 */ public static function getAdminLog() { - return self::getSingleton('e_admin_log', e_HANDLER.'admin_log_class.php'); + return self::getSingleton('e_admin_log', true); } /** @@ -750,7 +761,7 @@ class e107 */ public static function getDateConvert() { - return self::getSingleton('convert', e_HANDLER.'date_handler.php'); + return self::getSingleton('convert', true); } /** @@ -760,7 +771,7 @@ class e107 */ public static function getNotify() { - return self::getSingleton('notify', e_HANDLER.'notify_class.php'); + return self::getSingleton('notify', true); } /** @@ -770,7 +781,7 @@ class e107 */ public static function getOnline() { - return self::getSingleton('e_online', e_HANDLER.'online_class.php'); + return self::getSingleton('e_online', true); } /** diff --git a/e107_handlers/form_handler.php b/e107_handlers/form_handler.php index 166fd952c..12d898324 100644 --- a/e107_handlers/form_handler.php +++ b/e107_handlers/form_handler.php @@ -9,8 +9,8 @@ * Form Handler * * $Source: /cvs_backup/e107_0.8/e107_handlers/form_handler.php,v $ - * $Revision: 1.40 $ - * $Date: 2009-08-25 08:41:41 $ + * $Revision: 1.41 $ + * $Date: 2009-09-13 16:37:18 $ * $Author: secretr $ * */ @@ -162,7 +162,7 @@ class e_form function bbarea($name, $value, $help_mod = '', $help_tagid='') { $options = array('class' => 'tbox large e-wysiwyg'); - if(!defsettrue('e_WYSIWYG')) + if(!deftrue('e_WYSIWYG')) { require_once(e_HANDLER."ren_help.php"); $options['other'] = "onselect='storeCaret(this);' onclick='storeCaret(this);' onkeyup='storeCaret(this);'"; diff --git a/e107_handlers/news_class.php b/e107_handlers/news_class.php index 0080d3215..082ec1608 100644 --- a/e107_handlers/news_class.php +++ b/e107_handlers/news_class.php @@ -9,8 +9,8 @@ * News handler * * $Source: /cvs_backup/e107_0.8/e107_handlers/news_class.php,v $ - * $Revision: 1.21 $ - * $Date: 2009-09-13 10:29:56 $ + * $Revision: 1.22 $ + * $Date: 2009-09-13 16:37:18 $ * $Author: secretr $ */ @@ -624,14 +624,20 @@ class news { $rewrite_data['data']['news_rewrite_source'] = $news_data['news_id']; $rewrite_data['_FIELD_TYPES']['news_rewrite_source'] = 'int'; + $old_rewrite_data = array(); + if(e107::getDb()->db_Select('news_rewrite', '*', 'news_rewrite_source='.intval($rewrite_data['data']['news_rewrite_source']).' AND news_rewrite_type='.intval($rewrite_data['data']['news_rewrite_type']))) + { + $old_rewrite_data = e107::getDb()->db_Fetch(); + } + //Delete if required if (empty($rewrite_data['data']['news_rewrite_string'])) { - if(e107::getDb()->db_Select('news_rewrite', 'news_rewrite_id,news_rewrite_string', 'news_rewrite_source='.intval($rewrite_data['data']['news_rewrite_source']).' AND news_rewrite_type='.intval($rewrite_data['data']['news_rewrite_type']))) + if($old_rewrite_data) { - $check = e107::getDb()->db_Fetch(); - self::clearRewriteCache($check['news_rewrite_string']); - e107::getDb()->db_Delete('news_rewrite', 'news_rewrite_id='.$check['news_rewrite_id']); + self::clearRewriteCache($old_rewrite_data['news_rewrite_string']); + e107::getDb()->db_Delete('news_rewrite', 'news_rewrite_id='.$old_rewrite_data['news_rewrite_id']); + e107::getAdminLog()->logArrayAll('NEWS_13', $old_rewrite_data); return true; } @@ -644,7 +650,9 @@ class news { $rewrite_data['data']['news_rewrite_id'] = 0; if($rewrite_data['data']['news_rewrite_id'] = e107::getDb()->db_Insert('news_rewrite', $rewrite_data)) { + if($old_rewrite_data) self::clearRewriteCache($old_rewrite_data['news_rewrite_string']); self::setRewriteCache($rewrite_data['data']['news_rewrite_string'], $rewrite_data['data']); + e107::getAdminLog()->logArrayAll('NEWS_12', $rewrite_data['data']); return true; } eMessage::getInstance()->add('Friendly URL string related problem detected!', E_MESSAGE_ERROR, $session_message); @@ -665,7 +673,9 @@ class news { if(e107::getDb()->db_Update('news_rewrite', $rewrite_data)) { $rewrite_data['data']['news_rewrite_id'] = $id; + if($old_rewrite_data) self::clearRewriteCache($old_rewrite_data['news_rewrite_string']); self::setRewriteCache($rewrite_data['data']['news_rewrite_string'], $rewrite_data['data']); + e107::getAdminLog()->logArrayAll('NEWS_12', $rewrite_data['data']); return true; } elseif (e107::getDb()->getLastErrorNumber()) @@ -679,13 +689,19 @@ class news { return 'error'; } + $rewrite_data['data']['news_rewrite_id'] = $id; + if($old_rewrite_data) self::clearRewriteCache($old_rewrite_data['news_rewrite_string']); + self::setRewriteCache($rewrite_data['data']['news_rewrite_string'], $rewrite_data['data']); + return false; } $rewrite_data['data']['news_rewrite_id'] = 0; if($rewrite_data['data']['news_rewrite_id'] = e107::getDb()->db_Insert('news_rewrite', $rewrite_data)) { + if($old_rewrite_data) self::clearRewriteCache($old_rewrite_data['news_rewrite_string']); self::setRewriteCache($rewrite_data['data']['news_rewrite_string'], $rewrite_data['data']); + e107::getAdminLog()->logArrayAll('NEWS_12', $rewrite_data['data']); return true; } diff --git a/e107_languages/English/admin/lan_log_messages.php b/e107_languages/English/admin/lan_log_messages.php index 48df24236..c29c39406 100644 --- a/e107_languages/English/admin/lan_log_messages.php +++ b/e107_languages/English/admin/lan_log_messages.php @@ -1,6 +1,6 @@ eURL config
Resolved URL based on current value: "); + define("LAN_NEWS_5", "Error! - Was unable to update news item into database!"); define("LAN_NEWS_6", "News entered into database."); define("LAN_NEWS_7", "Error! - Was unable to enter news item into database!"); diff --git a/news.php b/news.php index 238629107..e43e1af43 100644 --- a/news.php +++ b/news.php @@ -9,8 +9,8 @@ * News frontend * * $Source: /cvs_backup/e107_0.8/news.php,v $ - * $Revision: 1.18 $ - * $Date: 2009-09-13 10:29:56 $ + * $Revision: 1.19 $ + * $Date: 2009-09-13 16:37:18 $ * $Author: secretr $ */ @@ -39,6 +39,14 @@ if (!defined("ITEMVIEW")) define("ITEMVIEW", varset($pref['newsposts'],15)); } +/* +WORK IN PROGRESS +if(isset($_GET['rewrite'])) +{ + $query = $_GET['rewrite']; +} +var_dump($query);*/ + if (e_QUERY) { $tmp = explode(".", e_QUERY);