1
0
mirror of https://github.com/e107inc/e107.git synced 2025-07-31 20:00:37 +02:00

More News work, front-end started (rewrites are BROKEN), work in progres

This commit is contained in:
secretr
2009-09-13 16:37:18 +00:00
parent f4d987b98e
commit 70ad1fa8b1
13 changed files with 269 additions and 122 deletions

View File

@@ -1,15 +1,29 @@
<IfModule mod_rewrite.c> <IfModule mod_rewrite.c>
RewriteEngine On ### enable rewrites
Options +FollowSymLinks
RewriteEngine On
### Set this to your e107 site root ### 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 RewriteRule ^news/?$ news.php
#item, default, cat actions #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 #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 ###
</IfModule> </IfModule>
#ErrorDocument 400 /error.php?400 #ErrorDocument 400 /error.php?400

View File

@@ -9,8 +9,8 @@
* News Administration * News Administration
* *
* $Source: /cvs_backup/e107_0.8/e107_admin/newspost.php,v $ * $Source: /cvs_backup/e107_0.8/e107_admin/newspost.php,v $
* $Revision: 1.51 $ * $Revision: 1.52 $
* $Date: 2009-09-12 18:25:41 $ * $Date: 2009-09-13 16:37:17 $
* $Author: secretr $ * $Author: secretr $
*/ */
require_once("../class2.php"); require_once("../class2.php");
@@ -697,6 +697,7 @@ class admin_newspost
$id = e107::getDb()->db_Insert('news_category', $inserta); $id = e107::getDb()->db_Insert('news_category', $inserta);
if($id) if($id)
{ {
$inserta['data']['category_id'] = $id;
//Manage rewrite //Manage rewrite
if(!empty($_POST['news_rewrite_string'])) if(!empty($_POST['news_rewrite_string']))
{ {
@@ -710,7 +711,8 @@ class admin_newspost
$rwinserta['data']['news_rewrite_type'] = 2; $rwinserta['data']['news_rewrite_type'] = 2;
$rwinserta['_FIELD_TYPES']['news_rewrite_type'] = 'int'; $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()) if(e107::getDb()->getLastErrorNumber())
{ {
$this->error = true; $this->error = true;
@@ -722,15 +724,14 @@ class admin_newspost
$this->show_message('mySQL error #'.e107::getDb()->getLastErrorNumber().': '.e107::getDb()->getLastErrorText(), E_MESSAGE_DEBUG); $this->show_message('mySQL error #'.e107::getDb()->getLastErrorNumber().': '.e107::getDb()->getLastErrorText(), E_MESSAGE_DEBUG);
return; return;
} }
$this->set_rwcache($_POST['news_rewrite_string'], $rwinserta['data']); $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 //admin log now supports DB array and method chaining
//$_POST['category_name'].', '.$_POST['category_icon'] e107::getAdminLog()->log_event('NEWS_04', $inserta, E_LOG_INFORMATIVE, '');
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?
$this->show_message(NWSLAN_35, E_MESSAGE_SUCCESS); $this->show_message(NWSLAN_35, E_MESSAGE_SUCCESS);
$this->clear_cache(); $this->clear_cache();
@@ -812,6 +813,12 @@ class admin_newspost
$inserta['data']['news_rewrite_type'] = 2; $inserta['data']['news_rewrite_type'] = 2;
$inserta['_FIELD_TYPES']['news_rewrite_type'] = 'int'; $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); $upcheck = e107::getDb()->db_Update("news_category", $updatea);
$rwupcheck = false; $rwupcheck = false;
if($upcheck || !e107::getDb()->getLastErrorNumber()) if($upcheck || !e107::getDb()->getLastErrorNumber())
@@ -827,6 +834,7 @@ class admin_newspost
else else
{ {
$rwupcheck = e107::getDb()->db_Insert('news_rewrite', $inserta); $rwupcheck = e107::getDb()->db_Insert('news_rewrite', $inserta);
$inserta['data']['news_rewrite_id'] = $rwupcheck;
} }
if(e107::getDb()->getLastErrorNumber()) 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); $this->show_message('mySQL error #'.e107::getDb()->getLastErrorNumber().': '.e107::getDb()->getLastErrorText(), E_MESSAGE_DEBUG);
return; 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 else
{ {
//remove SEF if required //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(); $this->clear_rwcache($oldsef['news_rewrite_string']);
e107::getDb()->db_Delete('news_rewrite', 'news_rewrite_id='.$tmp['news_rewrite_id']); e107::getDb()->db_Delete('news_rewrite', 'news_rewrite_id='.$oldsef['news_rewrite_id']);
$this->clear_rwcache($tmp['news_rewrite_string']); e107::getAdminLog()->log_event('NEWS_11', $oldsef, E_LOG_INFORMATIVE, '');
unset($tmp);
$inserta = array( 'data' => array()); $inserta = array( 'data' => array());
$rwupcheck = true; $rwupcheck = true;
} }
@@ -870,8 +866,9 @@ class admin_newspost
if ($upcheck || $rwupcheck) if ($upcheck || $rwupcheck)
{ {
//admin log now supports DB array and method chaining //admin log now supports DB array and method chaining
if($upcheck) e107::getAdminLog()->log_event('NEWS_04', $updatea['data'], E_LOG_INFORMATIVE, ''); $updatea['data']['category_id'] = $this->getId();
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? 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->show_message(NWSLAN_36, E_MESSAGE_SUCCESS);
$this->clear_cache(); $this->clear_cache();
@@ -883,6 +880,10 @@ class admin_newspost
{ {
$this->show_message(LAN_NO_CHANGE); $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); $this->setId(0);
} }
else else
@@ -909,34 +910,29 @@ class admin_newspost
function _observe_save_prefs() function _observe_save_prefs()
{ {
global $pref, $admin_log;
$e107 = e107::getInstance();
$temp = array(); $temp = array();
$temp['newsposts'] = intval($_POST['newsposts']); $temp['newsposts'] = intval($_POST['newsposts']);
$temp['newsposts_archive'] = intval($_POST['newsposts_archive']); $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['news_cats'] = intval($_POST['news_cats']);
$temp['nbr_cols'] = intval($_POST['nbr_cols']); $temp['nbr_cols'] = intval($_POST['nbr_cols']);
$temp['subnews_attach'] = intval($_POST['subnews_attach']); $temp['subnews_attach'] = intval($_POST['subnews_attach']);
$temp['subnews_resize'] = intval($_POST['subnews_resize']); $temp['subnews_resize'] = intval($_POST['subnews_resize']);
$temp['subnews_class'] = intval($_POST['subnews_class']); $temp['subnews_class'] = intval($_POST['subnews_class']);
$temp['subnews_htmlarea'] = intval($_POST['subnews_htmlarea']); $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_newdateheader'] = intval($_POST['news_newdateheader']);
$temp['news_unstemplate'] = intval($_POST['news_unstemplate']); $temp['news_unstemplate'] = intval($_POST['news_unstemplate']);
$temp['news_editauthor'] = intval($_POST['news_editauthor']); $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->clear_cache();
$this->show_message(NWSLAN_119, E_MESSAGE_SUCCESS); //$this->show_message(NWSLAN_119, E_MESSAGE_SUCCESS);
}
else
{
$this->show_message(LAN_NEWS_47);
} }
} }
@@ -1834,20 +1830,31 @@ class admin_newspost
function ajax_exec_catorder() function ajax_exec_catorder()
{ {
//interactive category order //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()) if(e107::getDb()->getLastErrorNumber())
{ {
echo 'mySQL Error #'.e107::getDb()->getLastErrorNumber().': '.e107::getDb()->getLastErrorText(); 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() function ajax_exec_catmanager()
{ {
//interactive category manage permissions //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()) if(e107::getDb()->getLastErrorNumber())
{ {
echo 'mySQL Error #'.e107::getDb()->getLastErrorNumber().': '.e107::getDb()->getLastErrorText(); 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"); require_once(e_HANDLER."form_handler.php");
$frm = new e_form(true); //enable inner tabindex counter $frm = new e_form(true); //enable inner tabindex counter
$e107 = &e107::getInstance(); $e107 = e107::getInstance();
$text = " $text = "
<form method='post' action='".e_SELF."?pref' id='core-newspost-settings-form'> <form method='post' action='".e_SELF."?pref' id='core-newspost-settings-form'>
@@ -2110,6 +2117,13 @@ class admin_newspost
<col class='col-control' /> <col class='col-control' />
</colgroup> </colgroup>
<tbody> <tbody>
<tr>
<td class='label'>".NWSLAN_127."</td>
<td class='control'>
".$frm->text('news_sefbase', $pref['news_sefbase'])."
<div class='field-help'>".sprintf(NWSLAN_128, e_ADMIN_ABS.'eurl.php').'<strong>'.SITEURL.($pref['news_sefbase'] ? $pref['news_sefbase'].'/' : '')."</strong></div>
</td>
</tr>
<tr> <tr>
<td class='label'>".NWSLAN_86."</td> <td class='label'>".NWSLAN_86."</td>
<td class='control'> <td class='control'>

View File

@@ -116,6 +116,7 @@
<core name='newsposts'>10</core> <core name='newsposts'>10</core>
<core name='newsposts_archive'>0</core> <core name='newsposts_archive'>0</core>
<core name='newsposts_archive_title'></core> <core name='newsposts_archive_title'></core>
<core name='news_sefbase'>news</core>
<core name='noLanguageSubs'>0</core> <core name='noLanguageSubs'>0</core>
<core name='null'></core> <core name='null'></core>
<core name='old_np'>0</core> <core name='old_np'>0</core>

View File

@@ -1,33 +1,50 @@
<?php <?php
/* /*
* Copyright e107 Inc e107.org, Licensed under GNU GPL (http://www.gnu.org/licenses/gpl.txt) * Copyright e107 Inc e107.org, Licensed under GNU GPL (http://www.gnu.org/licenses/gpl.txt)
* $Id: main.php,v 1.2 2008-12-03 12:38:08 secretr Exp $ * $Id: main.php,v 1.3 2009-09-13 16:37:18 secretr Exp $
* *
* eURL configuration script * eURL configuration script
*/ */
function url_news_main($parms) function url_news_main($parms)
{ {
$base = e_HTTP.'news/'.$parms['action']; //$base = e_HTTP.$sefbase.$parms['action'];
$base = e_HTTP.(e107::getPref('news_sefbase') ? e107::getPref('news_sefbase').'/' : '');
switch ($parms['action']) switch ($parms['action'])
{ {
//Main news page
case 'all': case 'all':
return $base; return $base;
break;
//Category List
case 'cat': case 'cat':
case 'extend':
case 'list'://TODO - find out what are list params case 'list'://TODO - find out what are list params
case 'month': //TODO - find out what are month params return $base.varsettrue($parms['sef'], $parms['action'].'/'.$parms['id']).(varsettrue($parms['page']) ? '/'.$parms['page'] : '');
case 'day': //TODO - find out what are day params break;
return $base.'-'.varsettrue($parms['value'],'0').'.html';
//Item page
case 'item': case 'item':
case 'extend':
return $base.varsettrue($parms['sef'], $parms['action'].'/'.$parms['id']);
break;
//Category List default (no category ID)
case 'default': case 'default':
return $base."-{$parms['value1']}-".varset($parms['value2'], '0').".html"; return $base."default/{$parms['value1']}-".varset($parms['value2'], '0');
break;
//Category List by date/month
case 'month':
case 'day':
return $base.$parms['action'].'/'.varsettrue($parms['value'],'0');
break;
case 'nextprev': case 'nextprev':
return e_HTTP."news/{$parms['to_action']}-{$parms['subaction']}-[FROM].html"; return e_HTTP."news/{$parms['to_action']}/{$parms['subaction']}/[FROM].html";
default: default:
return false; return $base;
break;
} }
} }
?>

View File

@@ -1,7 +1,7 @@
<?php <?php
/* /*
* Copyright e107 Inc e107.org, Licensed under GNU GPL (http://www.gnu.org/licenses/gpl.txt) * Copyright e107 Inc e107.org, Licensed under GNU GPL (http://www.gnu.org/licenses/gpl.txt)
* $Id: main.php,v 1.3 2008-12-03 12:38:07 secretr Exp $ * $Id: main.php,v 1.4 2009-09-13 16:37:17 secretr Exp $
* *
* eURL configuration script * eURL configuration script
*/ */
@@ -10,24 +10,40 @@ function url_news_main($parms)
$base = e_HTTP.'news.php?'.$parms['action']; $base = e_HTTP.'news.php?'.$parms['action'];
switch ($parms['action']) switch ($parms['action'])
{ {
//Main news page
case 'all': case 'all':
return $base; return $base;
break;
//Category List
case 'cat': case 'cat':
case 'extend':
case 'list'://TODO - find out what are list params case 'list'://TODO - find out what are list params
case 'month': //TODO - find out what are month params return $base.'.'.varsettrue($parms['id'],'0').(varsettrue($parms['page']) ? '.'.$parms['page'] : '');
case 'day': //TODO - find out what are day params break;
return $base.'.'.varsettrue($parms['value'],'0');
//Item page
case 'item': case 'item':
case 'extend':
return $base.'.'.varsettrue($parms['id'],'0');
break;
//Category List default (no category ID)
case 'default': case 'default':
return $base.".{$parms['value1']}.".varset($parms['value2'], '0'); return $base.".{$parms['value1']}.".varset($parms['value2'], '0');
break;
//Category List by date/month
case 'month': //TODO - find out what are month params
case 'day': //TODO - find out what are day params
return $base.'-'.varsettrue($parms['id'],'0');
break;
case 'nextprev': case 'nextprev':
return e_HTTP."news.php?{$parms['to_action']}.{$parms['subaction']}.[FROM]"; return e_HTTP."news.php?{$parms['to_action']}.{$parms['subaction']}.[FROM]";
default: default:
return false; return e_HTTP.'news.php';
break;
} }
} }
?>

View File

@@ -1,7 +1,7 @@
<?php <?php
/* /*
* Copyright e107 Inc e107.org, Licensed under GNU GPL (http://www.gnu.org/licenses/gpl.txt) * Copyright e107 Inc e107.org, Licensed under GNU GPL (http://www.gnu.org/licenses/gpl.txt)
* $Id: news_shortcodes.php,v 1.25 2009-08-24 08:34:55 secretr Exp $ * $Id: news_shortcodes.php,v 1.26 2009-09-13 16:37:17 secretr Exp $
* *
* News shortcode batch * News shortcode batch
*/ */
@@ -78,7 +78,7 @@ class news_shortcodes
} }
if (!$category_icon) { return ''; } if (!$category_icon) { return ''; }
return "<a href='".$this->e107->url->getUrl('core:news', 'main', 'action=cat&value='.$this->news_item['news_category'])."'><img style='".$this->param['caticon']."' src='".$category_icon."' alt='' /></a>"; return "<a href='".$this->e107->url->getUrl('core:news', 'main', 'action=list&id='.$this->news_item['news_category'].'&sef='.$this->news_item['news_category_rewrite_string'])."'><img style='".$this->param['caticon']."' src='".$category_icon."' alt='' /></a>";
} }
function sc_newsauthor($parm) function sc_newsauthor($parm)
@@ -155,7 +155,7 @@ class news_shortcodes
function sc_newscategory($parm) function sc_newscategory($parm)
{ {
$category_name = $this->e107->tp->toHTML($this->news_item['category_name'], FALSE ,'defs'); $category_name = $this->e107->tp->toHTML($this->news_item['category_name'], FALSE ,'defs');
return "<a class='".$GLOBALS['NEWS_CSSMODE']."_category' style='".(isset($this->param['catlink']) ? $this->param['catlink'] : "#")."' href='".$this->e107->url->getUrl('core:news', 'main', 'action=cat&value='.$this->news_item['news_category'])."'>".$category_name."</a>"; return "<a class='".$GLOBALS['NEWS_CSSMODE']."_category' style='".(isset($this->param['catlink']) ? $this->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."</a>";
} }
function sc_newsdate($parm) function sc_newsdate($parm)
@@ -247,7 +247,7 @@ class news_shortcodes
} }
else else
{ {
return $es1."<a href='".$this->e107->url->getUrl('core:news', 'main', 'action=extend&value='.$this->news_item['news_id'])."'>".EXTENDEDSTRING."</a>".$es2; return $es1."<a href='".$this->e107->url->getUrl('core:news', 'main', 'action=extend&id='.$this->news_item['news_id'].'&sef='.$this->news_item['news_rewrite_string'])."'>".EXTENDEDSTRING."</a>".$es2;
} }
} }
return ''; return '';
@@ -276,14 +276,40 @@ class news_shortcodes
return ($this->news_item['news_summary']) ? $this->news_item['news_summary'].'<br />' : ''; return ($this->news_item['news_summary']) ? $this->news_item['news_summary'].'<br />' : '';
} }
function sc_newsthumbnail() function sc_newsthumbnail($parm = '')
{ {
return (isset($this->news_item['news_thumbnail']) && $this->news_item['news_thumbnail']) ? "<a href='".$this->e107->url->getUrl('core:news', 'main', "action=item&value1={$this->news_item['news_id']}&value2={$this->news_item['news_category']}")."'><img class='news_image' src='".e_IMAGE_ABS."newspost_images/".$this->news_item['news_thumbnail']."' alt='' style='".$this->param['thumbnail']."' /></a>" : ''; 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'] ? "<img class='news_image' src='".e_IMAGE_ABS."newspost_images/".$this->news_item['news_thumbnail']."' alt='' style='".$this->param['thumbnail']."' />" : '');
break;
default:
return (isset($this->news_item['news_thumbnail']) && $this->news_item['news_thumbnail']) ? "<a href='".$this->e107->url->getUrl('core:news', 'main', "action=extend&id={$this->news_item['news_id']}&catid={$this->news_item['news_category']}&sef={$this->news_item['news_rewrite_string']}")."'><img class='news_image' src='".e_IMAGE_ABS."newspost_images/".$this->news_item['news_thumbnail']."' alt='' style='".$this->param['thumbnail']."' /></a>" : '';
break;
}
} }
function sc_newsimage() function sc_newsimage($parm = '')
{ {
return (isset($this->news_item['news_thumbnail']) && $this->news_item['news_thumbnail']) ? "<a href='".$this->e107->url->getUrl('core:news', 'main', "action=item&value1={$this->news_item['news_id']}&value2={$this->news_item['news_category']}")."'><img class='news_image' src='".e_IMAGE_ABS."newspost_images/".$this->news_item['news_thumbnail']."' alt='' style='".$this->param['thumbnail']."' /></a>" : ''; 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'] ? "<img class='news_image' src='".e_IMAGE_ABS."newspost_images/".$this->news_item['news_thumbnail']."' alt='' style='".$this->param['thumbnail']."' />" : '');
break;
default:
return (isset($this->news_item['news_thumbnail']) && $this->news_item['news_thumbnail']) ? "<a href='".$this->e107->url->getUrl('core:news', 'main', "action=extend&id={$this->news_item['news_id']}&catid={$this->news_item['news_category']}&sef={$this->news_item['news_rewrite_string']}")."'><img class='news_image' src='".e_IMAGE_ABS."newspost_images/".$this->news_item['news_thumbnail']."' alt='' style='".$this->param['thumbnail']."' /></a>" : '';
break;
}
} }
function sc_sticky_icon() function sc_sticky_icon()
@@ -291,12 +317,18 @@ class news_shortcodes
return $this->news_item['news_sticky'] ? $this->param['image_sticky'] : ''; return $this->news_item['news_sticky'] ? $this->param['image_sticky'] : '';
} }
function sc_newstitlelink() function sc_newstitlelink($parm = '')
{ {
return "<a style='".(isset($this->param['itemlink']) ? $this->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'].'</a>'; 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 "<a style='".(isset($this->param['itemlink']) ? $this->param['itemlink'] : 'null')."' href='{$url}'>".$this->news_item['news_title'].'</a>';
} }
function sc_newscaticon() function sc_newscaticon($parm = '')
{ {
$category_icon = str_replace('../', '', trim($this->news_item['category_icon'])); $category_icon = str_replace('../', '', trim($this->news_item['category_icon']));
if (!$category_icon) { return ''; } if (!$category_icon) { return ''; }
@@ -308,10 +340,24 @@ class news_shortcodes
{ {
$category_icon = e_IMAGE_ABS.'icons/'.$category_icon; $category_icon = e_IMAGE_ABS.'icons/'.$category_icon;
} }
//TODO - remove inline styles
if($this->param['caticon'] == ''){$this->param['caticon'] = 'border:0px';} if($this->param['caticon'] == ''){$this->param['caticon'] = 'border:0px';}
//TODO use CSS class
return "<a href='".$this->e107->url->getUrl('core:news', 'main', "action=cat&value={$this->news_item['news_category']}")."'><img style='".$this->param['caticon']."' src='".$category_icon."' alt='' /></a>"; switch($parm)
{
case 'src':
return $category_icon;
break;
case 'tag':
return "<img class='news_image' src='{$category_icon}' alt='' style='".$this->param['caticon']."' />";
break;
default:
return "<a href='".$this->e107->url->getUrl('core:news', 'main', "action=list&id={$this->news_item['news_category']}&sef={$this->news_item['news_category_rewrite_string']}")."'><img style='".$this->param['caticon']."' src='".$category_icon."' alt='' /></a>";
break;
}
} }
function sc_newsinfo() function sc_newsinfo()

View File

@@ -11,8 +11,8 @@
| GNU General Public License (http://gnu.org). | GNU General Public License (http://gnu.org).
| |
| $Source: /cvs_backup/e107_0.8/e107_handlers/admin_log_class.php,v $ | $Source: /cvs_backup/e107_0.8/e107_handlers/admin_log_class.php,v $
| $Revision: 1.15 $ | $Revision: 1.16 $
| $Date: 2009-09-10 19:08:36 $ | $Date: 2009-09-13 16:37:18 $
| $Author: secretr $ | $Author: secretr $
To do: To do:
1. Do we need to check for presence of elements of debug_backtrace() to avoid notices? 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 = '') function log_event($event_title, $event_detail, $event_type = E_LOG_INFORMATIVE , $event_code = '')
{ {
global $e107,$tp;
if ($event_code == '') if ($event_code == '')
{ {
if (strlen($event_title) <= 10) if (strlen($event_title) <= 10)
@@ -111,12 +110,13 @@ class e_admin_log
$tmp = array(); $tmp = array();
if (isset($event_detail['data'])) if (isset($event_detail['data']))
{ {
foreach ($event_detail as $v) $event_detail = $event_detail['data'];
{
$tmp[] = $v;
}
} }
$event_detail = implode(', ', $tmp); foreach ($event_detail as $k => $v)
{
$tmp[] = $k.'=>'.$v;
}
$event_detail = implode("[!br!]\n", $tmp);
unset($tmp); unset($tmp);
} }
@@ -388,5 +388,3 @@ class e_admin_log
} }
} }
?>

View File

@@ -9,8 +9,8 @@
* e107 Main * e107 Main
* *
* $Source: /cvs_backup/e107_0.8/e107_handlers/e107_class.php,v $ * $Source: /cvs_backup/e107_0.8/e107_handlers/e107_class.php,v $
* $Revision: 1.48 $ * $Revision: 1.49 $
* $Date: 2009-09-13 10:31:09 $ * $Date: 2009-09-13 16:37:18 $
* $Author: secretr $ * $Author: secretr $
*/ */
@@ -99,6 +99,17 @@ class e107
* @var array * @var array
*/ */
protected static $_known_handlers = 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_item' => '{e_HANDLER}news_class.php',
'e_news_tree' => '{e_HANDLER}news_class.php', 'e_news_tree' => '{e_HANDLER}news_class.php',
'news' => '{e_HANDLER}news_class.php', 'news' => '{e_HANDLER}news_class.php',
@@ -645,7 +656,7 @@ class e107
*/ */
public static function getDb($instance_id = '') 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() 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() 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() 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() 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() 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() 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) 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() 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() 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() 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() public static function getOnline()
{ {
return self::getSingleton('e_online', e_HANDLER.'online_class.php'); return self::getSingleton('e_online', true);
} }
/** /**

View File

@@ -9,8 +9,8 @@
* Form Handler * Form Handler
* *
* $Source: /cvs_backup/e107_0.8/e107_handlers/form_handler.php,v $ * $Source: /cvs_backup/e107_0.8/e107_handlers/form_handler.php,v $
* $Revision: 1.40 $ * $Revision: 1.41 $
* $Date: 2009-08-25 08:41:41 $ * $Date: 2009-09-13 16:37:18 $
* $Author: secretr $ * $Author: secretr $
* *
*/ */
@@ -162,7 +162,7 @@ class e_form
function bbarea($name, $value, $help_mod = '', $help_tagid='') function bbarea($name, $value, $help_mod = '', $help_tagid='')
{ {
$options = array('class' => 'tbox large e-wysiwyg'); $options = array('class' => 'tbox large e-wysiwyg');
if(!defsettrue('e_WYSIWYG')) if(!deftrue('e_WYSIWYG'))
{ {
require_once(e_HANDLER."ren_help.php"); require_once(e_HANDLER."ren_help.php");
$options['other'] = "onselect='storeCaret(this);' onclick='storeCaret(this);' onkeyup='storeCaret(this);'"; $options['other'] = "onselect='storeCaret(this);' onclick='storeCaret(this);' onkeyup='storeCaret(this);'";

View File

@@ -9,8 +9,8 @@
* News handler * News handler
* *
* $Source: /cvs_backup/e107_0.8/e107_handlers/news_class.php,v $ * $Source: /cvs_backup/e107_0.8/e107_handlers/news_class.php,v $
* $Revision: 1.21 $ * $Revision: 1.22 $
* $Date: 2009-09-13 10:29:56 $ * $Date: 2009-09-13 16:37:18 $
* $Author: secretr $ * $Author: secretr $
*/ */
@@ -624,14 +624,20 @@ class news {
$rewrite_data['data']['news_rewrite_source'] = $news_data['news_id']; $rewrite_data['data']['news_rewrite_source'] = $news_data['news_id'];
$rewrite_data['_FIELD_TYPES']['news_rewrite_source'] = 'int'; $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 //Delete if required
if (empty($rewrite_data['data']['news_rewrite_string'])) 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($old_rewrite_data['news_rewrite_string']);
self::clearRewriteCache($check['news_rewrite_string']); e107::getDb()->db_Delete('news_rewrite', 'news_rewrite_id='.$old_rewrite_data['news_rewrite_id']);
e107::getDb()->db_Delete('news_rewrite', 'news_rewrite_id='.$check['news_rewrite_id']); e107::getAdminLog()->logArrayAll('NEWS_13', $old_rewrite_data);
return true; return true;
} }
@@ -644,7 +650,9 @@ class news {
$rewrite_data['data']['news_rewrite_id'] = 0; $rewrite_data['data']['news_rewrite_id'] = 0;
if($rewrite_data['data']['news_rewrite_id'] = e107::getDb()->db_Insert('news_rewrite', $rewrite_data)) 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']); self::setRewriteCache($rewrite_data['data']['news_rewrite_string'], $rewrite_data['data']);
e107::getAdminLog()->logArrayAll('NEWS_12', $rewrite_data['data']);
return true; return true;
} }
eMessage::getInstance()->add('Friendly URL string related problem detected!', E_MESSAGE_ERROR, $session_message); 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)) if(e107::getDb()->db_Update('news_rewrite', $rewrite_data))
{ {
$rewrite_data['data']['news_rewrite_id'] = $id; $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']); self::setRewriteCache($rewrite_data['data']['news_rewrite_string'], $rewrite_data['data']);
e107::getAdminLog()->logArrayAll('NEWS_12', $rewrite_data['data']);
return true; return true;
} }
elseif (e107::getDb()->getLastErrorNumber()) elseif (e107::getDb()->getLastErrorNumber())
@@ -679,13 +689,19 @@ class news {
return 'error'; 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; return false;
} }
$rewrite_data['data']['news_rewrite_id'] = 0; $rewrite_data['data']['news_rewrite_id'] = 0;
if($rewrite_data['data']['news_rewrite_id'] = e107::getDb()->db_Insert('news_rewrite', $rewrite_data)) 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']); self::setRewriteCache($rewrite_data['data']['news_rewrite_string'], $rewrite_data['data']);
e107::getAdminLog()->logArrayAll('NEWS_12', $rewrite_data['data']);
return true; return true;
} }

View File

@@ -1,6 +1,6 @@
<?php <?php
// e107 Language File. // e107 Language File.
// $Id: lan_log_messages.php,v 1.36 2008-12-21 12:53:42 e107steved Exp $ // $Id: lan_log_messages.php,v 1.37 2009-09-13 16:37:18 secretr Exp $
/* /*
The definitions in this file are for standard 'explanatory' messages which might be entered The definitions in this file are for standard 'explanatory' messages which might be entered
@@ -317,7 +317,10 @@ define('LAN_AL_NEWS_06', 'News preferences updated');
define('LAN_AL_NEWS_07', 'Submitted news authorised'); define('LAN_AL_NEWS_07', 'Submitted news authorised');
define('LAN_AL_NEWS_08', 'News item added'); define('LAN_AL_NEWS_08', 'News item added');
define('LAN_AL_NEWS_09', 'News item updated'); define('LAN_AL_NEWS_09', 'News item updated');
define('LAN_AL_NEWS_10', ''); define('LAN_AL_NEWS_10', 'News category rewrite changed');
define('LAN_AL_NEWS_11', 'News category rewrite deleted');
define('LAN_AL_NEWS_12', 'News rewrite changed');
define('LAN_AL_NEWS_13', 'News rewrite deleted');
// Comments // Comments
//--------- //---------

View File

@@ -4,9 +4,9 @@
| e107 website system - Language File. | e107 website system - Language File.
| |
| $Source: /cvs_backup/e107_0.8/e107_languages/English/admin/lan_newspost.php,v $ | $Source: /cvs_backup/e107_0.8/e107_languages/English/admin/lan_newspost.php,v $
| $Revision: 1.11 $ | $Revision: 1.12 $
| $Date: 2009-07-03 02:27:03 $ | $Date: 2009-09-13 16:37:18 $
| $Author: e107coders $ | $Author: secretr $
+----------------------------------------------------------------------------+ +----------------------------------------------------------------------------+
*/ */
define("NWSLAN_1", "News story deleted."); define("NWSLAN_1", "News story deleted.");
@@ -118,7 +118,7 @@ define("NWSLAN_115", "News posts to display in archive ?");
define("NWSLAN_116", "First update the preferences with the changed display per page setting, then update again after setting the news archive preference. (0 is un-activated)"); define("NWSLAN_116", "First update the preferences with the changed display per page setting, then update again after setting the news archive preference. (0 is un-activated)");
define("NWSLAN_117", "Set the title for the news archive"); define("NWSLAN_117", "Set the title for the news archive");
// define("NWSLAN_118", "View Images"); already defined above. // define("NWSLAN_118", "View Images"); already defined above.
define("NWSLAN_119", "Settings Saved"); //define("NWSLAN_119", "Settings Saved"); - already done in pref handler
define("NWSLAN_120", "Text to show at the top of Submit News"); define("NWSLAN_120", "Text to show at the top of Submit News");
define("NWSLAN_121", "Nothing found for %s"); define("NWSLAN_121", "Nothing found for %s");
define("NWSLAN_122", "Icon"); define("NWSLAN_122", "Icon");
@@ -129,6 +129,9 @@ define("NWSLAN_124", "User");
define("NWSLAN_125", "Email"); define("NWSLAN_125", "Email");
define("NWSLAN_126", "IP"); define("NWSLAN_126", "IP");
define("NWSLAN_127", "URL identifier");
define("NWSLAN_128", "Set a string to be used in news pages URL. This will only work proper .htaccess rules and <a href='%s'>eURL config</a><br />Resolved URL based on current value: ");
define("LAN_NEWS_5", "Error! - Was unable to update news item into database!"); define("LAN_NEWS_5", "Error! - Was unable to update news item into database!");
define("LAN_NEWS_6", "News entered into database."); define("LAN_NEWS_6", "News entered into database.");
define("LAN_NEWS_7", "Error! - Was unable to enter news item into database!"); define("LAN_NEWS_7", "Error! - Was unable to enter news item into database!");

View File

@@ -9,8 +9,8 @@
* News frontend * News frontend
* *
* $Source: /cvs_backup/e107_0.8/news.php,v $ * $Source: /cvs_backup/e107_0.8/news.php,v $
* $Revision: 1.18 $ * $Revision: 1.19 $
* $Date: 2009-09-13 10:29:56 $ * $Date: 2009-09-13 16:37:18 $
* $Author: secretr $ * $Author: secretr $
*/ */
@@ -39,6 +39,14 @@ if (!defined("ITEMVIEW"))
define("ITEMVIEW", varset($pref['newsposts'],15)); define("ITEMVIEW", varset($pref['newsposts'],15));
} }
/*
WORK IN PROGRESS
if(isset($_GET['rewrite']))
{
$query = $_GET['rewrite'];
}
var_dump($query);*/
if (e_QUERY) if (e_QUERY)
{ {
$tmp = explode(".", e_QUERY); $tmp = explode(".", e_QUERY);