diff --git a/class2.php b/class2.php
index 8b73af090..ca7f9f3b0 100644
--- a/class2.php
+++ b/class2.php
@@ -9,8 +9,8 @@
* General purpose file
*
* $Source: /cvs_backup/e107_0.8/class2.php,v $
-* $Revision: 1.142 $
-* $Date: 2009-09-13 10:29:56 $
+* $Revision: 1.143 $
+* $Date: 2009-09-14 18:22:15 $
* $Author: secretr $
*
*/
@@ -84,7 +84,7 @@ if($register_globals == true)
}
define('e_AJAX_REQUEST', isset($_REQUEST['ajax_used']));
-$_REQUEST['ajax_used'] = ''; unset($_REQUEST['ajax_used']);
+unset($_REQUEST['ajax_used']);
if(isset($_E107['minimal']) || e_AJAX_REQUEST)
{
diff --git a/e107.htaccess b/e107.htaccess
index 8edbcbea8..3c5d70424 100644
--- a/e107.htaccess
+++ b/e107.htaccess
@@ -3,7 +3,7 @@
Options +FollowSymLinks
RewriteEngine On
-### Set this to your e107 site root
+### Set this to your e107 site root, path relative to web root
RewriteBase /
### send 404 on missing files in these folders
@@ -15,15 +15,18 @@
RewriteCond %{REQUEST_FILENAME} !-l
### NEWS SEF URLs - set 'news' to the 'URL identifier' value (news Administration area) ###
+ RewriteRule ^news/?$ news.php [L]
RewriteRule ^news/(.*)$ news.php?rewrite=$1 [L]
+
+ ## Use this on your own risk.
+ ## Quick & dirty solution for news rewrite without (empty) 'URL identifier',
+ ## extremely useful for blog site owners
+ ## Keep in mind it should be your last RewriteRule!
+ ## You also might want to change your Front page (administration) to your site root, e.g. '/'
+ #DirectoryIndex news.php index.php index.html
+ #RewriteRule ^(.*)$ 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]
-#extend, cat, list actions
-#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 d28d2306f..f2080774c 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.52 $
- * $Date: 2009-09-13 16:37:17 $
+ * $Revision: 1.53 $
+ * $Date: 2009-09-14 18:22:15 $
* $Author: secretr $
*/
require_once("../class2.php");
@@ -1133,7 +1133,7 @@ class admin_newspost
$row = e107::getDb()->db_Fetch();
$_POST['news_title'] = $row['news_title'];
- $_POST['data'] = $row['news_body'];
+ $_POST['news_body'] = $row['news_body'];
$_POST['news_author'] = $row['news_author'];
$_POST['news_extended'] = $row['news_extended'];
$_POST['news_allow_comments'] = $row['news_allow_comments'];
@@ -1194,23 +1194,23 @@ class admin_newspost
{
if ($sql->db_Select("submitnews", "*", "submitnews_id=".$this->getId(), TRUE))
{
- //list($id, $submitnews_name, $submitnews_email, $_POST['news_title'], $submitnews_category, $_POST['data'], $submitnews_datestamp, $submitnews_ip, $submitnews_auth, $submitnews_file) = $sql->db_Fetch();
+ //list($id, $submitnews_name, $submitnews_email, $_POST['news_title'], $submitnews_category, $_POST['news_body'], $submitnews_datestamp, $submitnews_ip, $submitnews_auth, $submitnews_file) = $sql->db_Fetch();
$row = $sql->db_Fetch();
$_POST['news_title'] = $row['submitnews_title'];
- $_POST['data'] = $row['submitnews_item'];
+ $_POST['news_body'] = $row['submitnews_item'];
$_POST['cat_id'] = $row['submitnews_category'];
if (defsettrue('e_WYSIWYG'))
{
- if (substr($_POST['data'],-7,7) == '[/html]') $_POST['data'] = substr($_POST['data'],0,-7);
- if (substr($_POST['data'],0,6) == '[html]') $_POST['data'] = substr($_POST['data'],6);
- $_POST['data'] .= "
".NWSLAN_49." {$row['submitnews_name']}";
- $_POST['data'] .= ($row['submitnews_file'])? "": '';
+ if (substr($_POST['news_body'],-7,7) == '[/html]') $_POST['news_body'] = substr($_POST['news_body'],0,-7);
+ if (substr($_POST['news_body'],0,6) == '[html]') $_POST['news_body'] = substr($_POST['news_body'],6);
+ $_POST['news_body'] .= "
".NWSLAN_49." {$row['submitnews_name']}";
+ $_POST['news_body'] .= ($row['submitnews_file'])? "": '';
}
else
{
- $_POST['data'] .= "\n[[b]".NWSLAN_49." {$row['submitnews_name']}[/b]]";
- $_POST['data'] .= ($row['submitnews_file'])?"\n\n[img]{e_NEWSIMAGE}{$row['submitnews_file']}[/img]": "";
+ $_POST['news_body'] .= "\n[[b]".NWSLAN_49." {$row['submitnews_name']}[/b]]";
+ $_POST['news_body'] .= ($row['submitnews_file'])?"\n\n[img]{e_NEWSIMAGE}{$row['submitnews_file']}[/img]": "";
}
}
@@ -1226,7 +1226,7 @@ class admin_newspost
//XXX DB UPLOADS STILL SUPPORTED?
$upload_file = "pub_" . (preg_match('#Binary\s(.*?)\/#', $row['upload_file'], $match) ? $match[1] : $row['upload_file']);
$_POST['news_title'] = LAN_UPLOAD.": ".$row['upload_name'];
- $_POST['data'] = $row['upload_description']."\n[b]".NWSLAN_49." [link=".$e107->url->getUrl('core:user', 'main', 'id='.$post_author_id)."]".$post_author_name."[/link][/b]\n\n[file=request.php?".$upload_file."]{$row['upload_name']}[/file]\n";
+ $_POST['news_body'] = $row['upload_description']."\n[b]".NWSLAN_49." [link=".$e107->url->getUrl('core:user', 'main', 'id='.$post_author_id)."]".$post_author_name."[/link][/b]\n\n[file=request.php?".$upload_file."]{$row['upload_name']}[/file]\n";
}
}
@@ -1353,8 +1353,8 @@ class admin_newspost
+ * $newsdata = e107::getRegistry('core/news/schook_data');
+ * //returns array('data' => (array) $current_news_data, 'params' => array() $current_params)
+ *
+ *
+ * @param string $parm
+ * @return string
+ */
+ function sc_newsitem_schook($parm)
+ {
+ $parm = explode('|', $parm, 2);
+ $parm[1] = 'news_id='.$this->news_item['news_id'].(varset($parm[1]) ? '&'.$parm[1] : '');
+ e107::setRegistry('core/news/schook_data', array('data' => $this->news_item, 'params' => $this->param));
+ return $this->e107->tp->parseTemplate('{'.strtoupper($parm[0]).'='.$parm[1].'}');
+ }
function sc_newsinfo()
{
diff --git a/e107_handlers/e107_class.php b/e107_handlers/e107_class.php
index 685513641..aa9a1caa4 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.49 $
- * $Date: 2009-09-13 16:37:18 $
+ * $Revision: 1.50 $
+ * $Date: 2009-09-14 18:22:15 $
* $Author: secretr $
*/
@@ -119,7 +119,8 @@ class e107
'e_menu' => '{e_HANDLER}menu_class.php',
'e107plugin' => '{e_HANDLER}plugin_class.php',
'xmlClass' => '{e_HANDLER}xml_class.php',
- 'e107_traffic' => '{e_HANDLER}traffic_class.php'
+ 'e107_traffic' => '{e_HANDLER}traffic_class.php',
+ 'comment' => '{e_HANDLER}comment_class.php'
);
/**
diff --git a/e107_handlers/news_class.php b/e107_handlers/news_class.php
index 082ec1608..7930aa81d 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.22 $
- * $Date: 2009-09-13 16:37:18 $
+ * $Revision: 1.23 $
+ * $Date: 2009-09-14 18:22:15 $
* $Author: secretr $
*/
@@ -340,6 +340,9 @@ class e_news_tree extends e_model
}
class news {
+
+ protected static $_rewrite_data = array();
+ protected static $_rewrite_map = null;
//FIXME - LANs
//TODO - synch WIKI docs, add rewrite data to the event data
@@ -718,6 +721,97 @@ class news {
return false;
}
+ public static function retrieveRewriteString($news_id, $type = 1)
+ {
+ //XXX - Best way we have now, discuss
+ if(null === self::$_rewrite_map)
+ {
+ $tmp = e107::getCache()->retrieve_sys('nomd5_news_rewrite_map');
+ if(false !== $tmp && ($tmp = e107::getArrayStorage()->ReadArray($tmp)))
+ {
+ self::$_rewrite_map = $tmp;
+ }
+ else
+ {
+ self::$_rewrite_map = array();
+ if(e107::getDb()->db_Select('news_rewrite'))
+ {
+ while ($tmp = e107::getDb()->db_Fetch())
+ {
+ self::$_rewrite_map[$tmp['news_rewrite_type']][$tmp['news_rewrite_source']] = $tmp['news_rewrite_string'];
+ }
+ }
+ e107::getCache()->set_sys('nomd5_news_rewrite_map', e107::getArrayStorage()->WriteArray(self::$_rewrite_map, false));
+ }
+ unset($tmp);
+ }
+
+ //convert type if needed
+ if(is_string($type))
+ {
+ switch($type)
+ {
+ case 'item':
+ case 'extend':
+ $type = 1;
+ break;
+
+ default:
+ $type = 2;
+ break;
+ }
+ }
+
+ return (isset(self::$_rewrite_map[$type][$news_id]) ? self::$_rewrite_map[$type][$news_id] : '');
+ }
+
+ public static function retrieveRewriteData($sefstr, $force = true)
+ {
+ //check runtime cache
+ if(isset(self::$_rewrite_data[$sefstr]))
+ {
+ return self::$_rewrite_data[$sefstr];
+ }
+
+ //check server cache if allowed
+ if(!$force && ($ret = self::getRewriteCache($sefstr, true)))
+ {
+ self::$_rewrite_data[$sefstr] = $ret;
+ return self::$_rewrite_data[$sefstr];
+ }
+
+ //search DB
+ $ret = array();
+ if(e107::getDb()->db_Select('news_rewrite', '*', "news_rewrite_string='".e107::getParser()->toDB($sefstr)."'"))
+ {
+ $ret = e107::getDb()->db_Fetch();
+ }
+
+ //set runtime cache
+ self::$_rewrite_data[$sefstr] = $ret;
+
+ //set server cache
+ if($ret)
+ {
+ self::setRewriteCache($sefstr, $ret);
+ }
+
+ return self::$_rewrite_data[$sefstr];
+ }
+
+ public static function getRewriteCache($sefstr, $toArray = true)
+ {
+ $sefstr = md5($sefstr);
+
+ $ret = ecache::retrieve_sys('news_sefurl'.$sefstr, false, true);
+
+ if($ret && $toArray)
+ {
+ return e107::getArrayStorage()->ReadArray($ret);
+ }
+ return $ret;
+ }
+
public static function clearRewriteCache($sefstr = '')
{
if($sefstr) $sefstr = md5($sefstr);
@@ -731,7 +825,7 @@ class news {
ecache::set_sys("news_sefurl".$sefstr, $data, true);
}
- function render_newsitem($news, $mode = 'default', $n_restrict = '', $NEWS_TEMPLATE = '', $param='')
+ function render_newsitem($news, $mode = 'default', $n_restrict = '', $NEWS_TEMPLATE = '', $param = array())
{
global $e107, $tp, $sql, $override, $pref, $ns, $NEWSSTYLE, $NEWSLISTSTYLE, $news_shortcodes, $loop_uid;
if ($override_newsitem = $override -> override_check('render_newsitem')) {
@@ -756,19 +850,21 @@ class news {
$news['comment_total'] = 0;
}
- if (!$param)
- {
- $param['caticon'] = ICONSTYLE;
- $param['commentoffstring'] = COMMENTOFFSTRING;
- $param['commentlink'] = COMMENTLINK;
- $param['trackbackstring'] = (defined("TRACKBACKSTRING") ? TRACKBACKSTRING : "");
- $param['trackbackbeforestring'] = (defined("TRACKBACKBEFORESTRING") ? TRACKBACKBEFORESTRING : "");
- $param['trackbackafterstring'] = (defined("TRACKBACKAFTERSTRING") ? TRACKBACKAFTERSTRING : "");
- $param['itemlink'] = (defined("NEWSLIST_ITEMLINK")) ? NEWSLIST_ITEMLINK : "";
- $param['thumbnail'] =(defined("NEWSLIST_THUMB")) ? NEWSLIST_THUMB : "border:0px";
- $param['catlink'] = (defined("NEWSLIST_CATLINK")) ? NEWSLIST_CATLINK : "";
- $param['caticon'] = (defined("NEWSLIST_CATICON")) ? NEWSLIST_CATICON : ICONSTYLE;
- }
+ $tmp = array();
+ $tmp['caticon'] = ICONSTYLE;
+ $tmp['commentoffstring'] = COMMENTOFFSTRING;
+ $tmp['commentlink'] = COMMENTLINK;
+ $tmp['trackbackstring'] = (defined("TRACKBACKSTRING") ? TRACKBACKSTRING : "");
+ $tmp['trackbackbeforestring'] = (defined("TRACKBACKBEFORESTRING") ? TRACKBACKBEFORESTRING : "");
+ $tmp['trackbackafterstring'] = (defined("TRACKBACKAFTERSTRING") ? TRACKBACKAFTERSTRING : "");
+ $tmp['itemlink'] = (defined("NEWSLIST_ITEMLINK")) ? NEWSLIST_ITEMLINK : "";
+ $tmp['thumbnail'] =(defined("NEWSLIST_THUMB")) ? NEWSLIST_THUMB : "border:0px";
+ $tmp['catlink'] = (defined("NEWSLIST_CATLINK")) ? NEWSLIST_CATLINK : "";
+ $tmp['caticon'] = (defined("NEWSLIST_CATICON")) ? NEWSLIST_CATICON : ICONSTYLE;
+
+ if(!$param) $param = array();
+ $param = array_merge($tmp, $param);
+
// Next three images aren't always defined by the caller, even if most of $param is.
if (!isset($param['image_nonew_small']))
diff --git a/e107_languages/English/lan_news.php b/e107_languages/English/lan_news.php
index 6c41f8ab6..40aaec509 100644
--- a/e107_languages/English/lan_news.php
+++ b/e107_languages/English/lan_news.php
@@ -4,9 +4,9 @@
| e107 website system - Language File.
|
| $Source: /cvs_backup/e107_0.8/e107_languages/English/lan_news.php,v $
-| $Revision: 1.1.1.1 $
-| $Date: 2006-12-02 04:34:39 $
-| $Author: mcfly_e107 $
+| $Revision: 1.2 $
+| $Date: 2009-09-14 18:22:16 $
+| $Author: secretr $
+----------------------------------------------------------------------------+
*/
define("PAGE_NAME", "News");
@@ -36,6 +36,7 @@ define("LAN_NEWS_21", "News updated in database.");
// define("LAN_NEWS_22", "Go to page: ");
define("LAN_NEWS_23", "News Categories");
define("LAN_NEWS_24", "create pdf of this news item");
+define("LAN_NEWS_25", "Edit");
define("LAN_NEWS_82", "News - Category");
define("LAN_NEWS_83", "No news items at the moment - please check back soon.");
diff --git a/news.php b/news.php
index e43e1af43..6f2def42c 100644
--- a/news.php
+++ b/news.php
@@ -9,8 +9,8 @@
* News frontend
*
* $Source: /cvs_backup/e107_0.8/news.php,v $
- * $Revision: 1.19 $
- * $Date: 2009-09-13 16:37:18 $
+ * $Revision: 1.20 $
+ * $Date: 2009-09-14 18:22:15 $
* $Author: secretr $
*/
@@ -39,17 +39,9 @@ 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);
+ $tmp = e107::getUrl()->parseRequest('core:news', 'main', urldecode(e_QUERY));
$action = $tmp[0]; // At least one parameter here
$sub_action = varset($tmp[1],''); // Usually a numeric category, but don't presume yet
$id = varset($tmp[2],''); // ID of specific news item where required
@@ -62,6 +54,7 @@ if (e_QUERY)
// Usually the first query parameter is the action.
// For any of the 'list' modes (inc month, day), the action being second is a legacy situation
// .... which can hopefully go sometime
+//SecretR: Gone, gone...
if (is_numeric($action) && isset($tmp[1]) && (($tmp[1] == 'list') || ($tmp[1] == 'month') || ($tmp[1] == 'day')))
{
$action = $tmp[1];
@@ -87,6 +80,19 @@ Variables Used:
$ix = new news;
$nobody_regexp = "'(^|,)(".str_replace(",", "|", e_UC_NOBODY).")(,|$)'";
+//Add rewrite search to db queries only if needed
+$rewrite_join = $rewrite_cols = $rewrite_join_cat = $rewrite_cols_cat = '';
+if(NEWS_REWRITE)
+{
+ //item
+ $rewrite_join = 'LEFT JOIN #news_rewrite AS nr ON n.news_id=nr.news_rewrite_source AND nr.news_rewrite_type=1';
+ $rewrite_cols = ', nr.*';
+
+ //category
+ $rewrite_join_cat = 'LEFT JOIN #news_rewrite AS ncr ON n.news_category=ncr.news_rewrite_source AND ncr.news_rewrite_type=2';
+ $rewrite_cols_cat = ', ncr.news_rewrite_id AS news_category_rewrite_id, ncr.news_rewrite_string AS news_category_rewrite_string ';
+}
+
//------------------------------------------------------
// DISPLAY NEWS IN 'CATEGORY' FORMAT HERE
//------------------------------------------------------
@@ -114,9 +120,14 @@ if ($action == 'cat' || $action == 'all')
if(!defined("NEWSALL_LIMIT")) { define("NEWSALL_LIMIT",10); }
// show archive of all news items using list-style template.
$news_total = $sql->db_Count("news", "(*)", "WHERE news_class REGEXP '".e_CLASS_REGEXP."' AND NOT (news_class REGEXP ".$nobody_regexp.") AND news_start < ".time()." AND (news_end=0 || news_end>".time().")");
- $query = "SELECT n.*, u.user_id, u.user_name, u.user_customtitle, nc.category_name, nc.category_icon FROM #news AS n
+ $query = "
+ SELECT n.*, u.user_id, u.user_name, u.user_customtitle, nc.category_name, nc.category_icon,
+ nc.category_meta_keywords, nc.category_meta_description{$rewrite_cols_cat}{$rewrite_cols}
+ FROM #news AS n
LEFT JOIN #user AS u ON n.news_author = u.user_id
LEFT JOIN #news_category AS nc ON n.news_category = nc.category_id
+ {$rewrite_join}
+ {$rewrite_join_cat}
WHERE n.news_class REGEXP '".e_CLASS_REGEXP."' AND NOT (n.news_class REGEXP ".$nobody_regexp.") AND n.news_start < ".time()."
AND (n.news_end=0 || n.news_end>".time().")
ORDER BY n.news_sticky DESC, n.news_datestamp DESC
@@ -128,17 +139,29 @@ if ($action == 'cat' || $action == 'all')
// show archive of all news items in a particular category using list-style template.
$news_total = $sql->db_Count("news", "(*)", "WHERE news_class REGEXP '".e_CLASS_REGEXP."' AND NOT (news_class REGEXP ".$nobody_regexp.") AND news_start < ".time()." AND (news_end=0 || news_end>".time().") AND news_category=".intval($sub_action));
if(!defined("NEWSLIST_LIMIT")) { define("NEWSLIST_LIMIT",10); }
- $query = "SELECT n.*, u.user_id, u.user_name, u.user_customtitle, nc.category_name, nc.category_icon FROM #news AS n
+ $query = "
+ SELECT n.*, u.user_id, u.user_name, u.user_customtitle, nc.category_name, nc.category_icon, nc.category_meta_keywords,
+ nc.category_meta_description{$rewrite_cols_cat}{$rewrite_cols}
+ FROM #news AS n
LEFT JOIN #user AS u ON n.news_author = u.user_id
LEFT JOIN #news_category AS nc ON n.news_category = nc.category_id
- WHERE n.news_class REGEXP '".e_CLASS_REGEXP."' AND NOT (n.news_class REGEXP ".$nobody_regexp.")
+ {$rewrite_join}
+ {$rewrite_join_cat}
+ WHERE n.news_category=".intval($sub_action)."
AND n.news_start < ".time()." AND (n.news_end=0 || n.news_end>".time().")
- AND n.news_category=".intval($sub_action)."
+ AND n.news_class REGEXP '".e_CLASS_REGEXP."' AND NOT (n.news_class REGEXP ".$nobody_regexp.")
ORDER BY n.news_datestamp DESC
LIMIT ".intval($newsfrom).",".NEWSLIST_LIMIT;
}
-
- if($category_name)
+
+ $newsList = array();
+ if($sql->db_Select_gen($query))
+ {
+ $newsList = $sql->db_getList();
+ }
+
+ if($action == 'cat') setNewsFrontMeta($newsList[1], 'category');
+ elseif($category_name)
{
define("e_PAGETITLE", $tp->toHTML($category_name,FALSE,"TITLE"));
}
@@ -167,12 +190,14 @@ if ($action == 'cat' || $action == 'all')
\n";
}
+
+ $param = array();
$param['itemlink'] = (defined("NEWSLIST_ITEMLINK")) ? NEWSLIST_ITEMLINK : "";
$param['thumbnail'] =(defined("NEWSLIST_THUMB")) ? NEWSLIST_THUMB : "border:0px";
$param['catlink'] = (defined("NEWSLIST_CATLINK")) ? NEWSLIST_CATLINK : "";
$param['caticon'] = (defined("NEWSLIST_CATICON")) ? NEWSLIST_CATICON : ICONSTYLE;
- $sql->db_Select_gen($query);
- $newsList = $sql->db_getList();
+ $param['current_action'] = $action;
+
foreach($newsList as $row)
{
$text .= $ix->render_newsitem($row, 'return', '', $NEWSLISTSTYLE, $param);
@@ -218,10 +243,15 @@ if ($action == "extend")
if(isset($pref['trackbackEnabled']) && $pref['trackbackEnabled'])
{
- $query = "SELECT COUNT(tb.trackback_pid) AS tb_count, n.*, u.user_id, u.user_name, u.user_customtitle, nc.category_name, nc.category_icon FROM #news AS n
+ $query = "
+ SELECT COUNT(tb.trackback_pid) AS tb_count, n.*, u.user_id, u.user_name, u.user_customtitle, nc.category_name,
+ nc.category_icon, nc.category_meta_keywords, nc.category_meta_description{$rewrite_cols_cat}{$rewrite_cols}
+ FROM #news AS n
LEFT JOIN #user AS u ON n.news_author = u.user_id
LEFT JOIN #news_category AS nc ON n.news_category = nc.category_id
LEFT JOIN #trackback AS tb ON tb.trackback_pid = n.news_id
+ {$rewrite_join}
+ {$rewrite_join_cat}
WHERE n.news_id=".intval($sub_action)." AND n.news_class REGEXP '".e_CLASS_REGEXP."'
AND NOT (n.news_class REGEXP ".$nobody_regexp.")
AND n.news_start < ".time()." AND (n.news_end=0 || n.news_end>".time().")
@@ -229,14 +259,38 @@ if ($action == "extend")
}
else
{
- $query = "SELECT n.*, u.user_id, u.user_name, u.user_customtitle, nc.category_name, nc.category_icon FROM #news AS n
+ $query = "
+ SELECT n.*, u.user_id, u.user_name, u.user_customtitle, nc.category_name, nc.category_icon, nc.category_meta_keywords,
+ nc.category_meta_description{$rewrite_cols_cat}{$rewrite_cols}
+ FROM #news AS n
LEFT JOIN #user AS u ON n.news_author = u.user_id
LEFT JOIN #news_category AS nc ON n.news_category = nc.category_id
- WHERE n.news_class REGEXP '".e_CLASS_REGEXP."' AND NOT (n.news_class REGEXP ".$nobody_regexp.") AND n.news_start < ".time()." AND (n.news_end=0 || n.news_end>".time().") AND n.news_id=".intval($sub_action);
+ {$rewrite_join}
+ {$rewrite_join_cat}
+ WHERE n.news_class REGEXP '".e_CLASS_REGEXP."'
+ AND NOT (n.news_class REGEXP ".$nobody_regexp.")
+ AND n.news_start < ".time()."
+ AND (n.news_end=0 || n.news_end>".time().")
+ AND n.news_id=".intval($sub_action);
}
$sql->db_Select_gen($query);
$news = $sql->db_Fetch();
-
+
+ //***NEW [SecretR] - comments handled inside now
+ if(!$news['news_allow_comments'] && isset($_POST['commentsubmit']))
+ {
+ $pid = intval(varset($_POST['pid'], 0)); // ID of the specific comment being edited (nested comments - replies)
+
+ $clean_authorname = $_POST['author_name'];
+ $clean_comment = $_POST['comment'];
+ $clean_subject = $_POST['subject'];
+
+ e107::getSingleton('comment')->enter_comment($clean_authorname, $clean_comment, 'news', $sub_action, $pid, $clean_subject);
+ }
+
+ //More SEO
+ setNewsFrontMeta($news);
+ /*
if($news['news_title'])
{
if($pref['meta_news_summary'] && $news['news_title'])
@@ -244,11 +298,21 @@ if ($action == "extend")
define("META_DESCRIPTION",SITENAME.": ".$news['news_title']." - ".$news['news_summary']);
}
define("e_PAGETITLE",$news['news_title']);
- }
+ }*/
require_once(HEADERF);
+
+ $param = array();
+ $param['current_action'] = $action;
+
ob_start();
- $ix->render_newsitem($news, "extend");
+ $ix->render_newsitem($news, 'extend', '', '', $param);
+ if(!$news['news_allow_comment'])
+ {
+ global $comment_edit_query; //FIXME - kill me
+ $comment_edit_query = 'comment.news.'.$news['news_id'];
+ e107::getSingleton('comment')->compose_comment('news', 'comment', $news['news_id'], null, $news['news_title'], FALSE);
+ }
$cache_data = ob_get_contents();
ob_end_flush();
setNewsCache($cacheString, $cache_data);
@@ -274,9 +338,14 @@ switch ($action)
case "list" :
$sub_action = intval($sub_action);
// $news_total = $sql->db_Count("news", "(*)", "WHERE news_category={$sub_action} AND news_class REGEXP '".e_CLASS_REGEXP."' AND NOT (news_class REGEXP ".$nobody_regexp.") AND news_start < ".time()." AND (news_end=0 || news_end>".time().")");
- $query = "SELECT SQL_CALC_FOUND_ROWS n.*, u.user_id, u.user_name, u.user_customtitle, nc.category_name, nc.category_icon FROM #news AS n
+ $query = "
+ SELECT SQL_CALC_FOUND_ROWS n.*, u.user_id, u.user_name, u.user_customtitle, nc.category_name,
+ nc.category_icon, nc.category_meta_keywords, nc.category_meta_description{$rewrite_cols_cat}{$rewrite_cols}
+ FROM #news AS n
LEFT JOIN #user AS u ON n.news_author = u.user_id
LEFT JOIN #news_category AS nc ON n.news_category = nc.category_id
+ {$rewrite_join}
+ {$rewrite_join_cat}
WHERE n.news_class REGEXP '".e_CLASS_REGEXP."' AND NOT (n.news_class REGEXP ".$nobody_regexp.")
AND n.news_start < ".time()." AND (n.news_end=0 || n.news_end>".time().")
AND n.news_category={$sub_action}
@@ -289,19 +358,29 @@ switch ($action)
$news_total = 1;
if(isset($pref['trackbackEnabled']) && $pref['trackbackEnabled'])
{
- $query = "SELECT COUNT(tb.trackback_pid) AS tb_count, n.*, u.user_id, u.user_name, u.user_customtitle, nc.category_name, nc.category_icon FROM #news AS n
+ $query = "
+ SELECT COUNT(tb.trackback_pid) AS tb_count, n.*, u.user_id, u.user_name, u.user_customtitle, nc.category_name,
+ nc.category_icon, nc.category_meta_keywords, nc.category_meta_description{$rewrite_cols_cat}{$rewrite_cols}
+ FROM #news AS n
LEFT JOIN #user AS u ON n.news_author = u.user_id
LEFT JOIN #news_category AS nc ON n.news_category = nc.category_id
LEFT JOIN #trackback AS tb ON tb.trackback_pid = n.news_id
+ {$rewrite_join}
+ {$rewrite_join_cat}
WHERE n.news_id={$sub_action} AND n.news_class REGEXP '".e_CLASS_REGEXP."' AND NOT (n.news_class REGEXP ".$nobody_regexp.")
AND n.news_start < ".time()." AND (n.news_end=0 || n.news_end>".time().")
GROUP by n.news_id";
}
else
{
- $query = "SELECT n.*, u.user_id, u.user_name, u.user_customtitle, nc.category_name, nc.category_icon FROM #news AS n
+ $query = "
+ SELECT n.*, u.user_id, u.user_name, u.user_customtitle, nc.category_name, nc.category_icon,
+ nc.category_meta_keywords, nc.category_meta_description{$rewrite_cols_cat}{$rewrite_cols}
+ FROM #news AS n
LEFT JOIN #user AS u ON n.news_author = u.user_id
LEFT JOIN #news_category AS nc ON n.news_category = nc.category_id
+ {$rewrite_join}
+ {$rewrite_join_cat}
WHERE n.news_id={$sub_action} AND n.news_class REGEXP '".e_CLASS_REGEXP."' AND NOT (n.news_class REGEXP ".$nobody_regexp.")
AND n.news_start < ".time()." AND (n.news_end=0 || n.news_end>".time().")";
}
@@ -324,9 +403,14 @@ switch ($action)
}
$startdate = mktime(0, 0, 0, $month, $day, $year);
$enddate = mktime(23, 59, 59, $month, $lastday, $year);
- $query = "SELECT SQL_CALC_FOUND_ROWS n.*, u.user_id, u.user_name, u.user_customtitle, nc.category_name, nc.category_icon FROM #news AS n
+ $query = "
+ SELECT SQL_CALC_FOUND_ROWS n.*, u.user_id, u.user_name, u.user_customtitle, nc.category_name,
+ nc.category_icon, nc.category_meta_keywords, nc.category_meta_description{$rewrite_cols_cat}{$rewrite_cols}
+ FROM #news AS n
LEFT JOIN #user AS u ON n.news_author = u.user_id
LEFT JOIN #news_category AS nc ON n.news_category = nc.category_id
+ {$rewrite_join}
+ {$rewrite_join_cat}
WHERE n.news_class REGEXP '".e_CLASS_REGEXP."' AND NOT (n.news_class REGEXP ".$nobody_regexp.")
AND n.news_start < ".time()." AND (n.news_end=0 || n.news_end>".time().")
AND n.news_render_type<2 AND n.news_datestamp > {$startdate} AND n.news_datestamp < {$enddate}
@@ -347,10 +431,16 @@ switch ($action)
// Get number of news item to show
if(isset($pref['trackbackEnabled']) && $pref['trackbackEnabled']) {
- $query = "SELECT SQL_CALC_FOUND_ROWS COUNT(tb.trackback_pid) AS tb_count, n.*, u.user_id, u.user_name, u.user_customtitle, nc.category_name, nc.category_icon, COUNT(*) AS tbcount FROM #news AS n
+ $query = "
+ SELECT SQL_CALC_FOUND_ROWS COUNT(tb.trackback_pid) AS tb_count, n.*, u.user_id, u.user_name, u.user_customtitle,
+ nc.category_name, nc.category_icon, nc.category_meta_keywords, nc.category_meta_description,
+ COUNT(*) AS tbcount{$rewrite_cols_cat}{$rewrite_cols}
+ FROM #news AS n
LEFT JOIN #user AS u ON n.news_author = u.user_id
LEFT JOIN #news_category AS nc ON n.news_category = nc.category_id
LEFT JOIN #trackback AS tb ON tb.trackback_pid = n.news_id
+ {$rewrite_join}
+ {$rewrite_join_cat}
WHERE n.news_class REGEXP '".e_CLASS_REGEXP."' AND NOT (n.news_class REGEXP ".$nobody_regexp.")
AND n.news_start < ".time()." AND (n.news_end=0 || n.news_end>".time().")
AND n.news_render_type<2
@@ -359,9 +449,14 @@ switch ($action)
}
else
{
- $query = "SELECT SQL_CALC_FOUND_ROWS n.*, u.user_id, u.user_name, u.user_customtitle, nc.category_name, nc.category_icon FROM #news AS n
+ $query = "
+ SELECT SQL_CALC_FOUND_ROWS n.*, u.user_id, u.user_name, u.user_customtitle, nc.category_name, nc.category_icon,
+ nc.category_meta_keywords, nc.category_meta_description{$rewrite_cols_cat}{$rewrite_cols}
+ FROM #news AS n
LEFT JOIN #user AS u ON n.news_author = u.user_id
LEFT JOIN #news_category AS nc ON n.news_category = nc.category_id
+ {$rewrite_join}
+ {$rewrite_join_cat}
WHERE n.news_class REGEXP '".e_CLASS_REGEXP."' AND NOT (n.news_class REGEXP ".$nobody_regexp.")
AND n.news_start < ".time()." AND (n.news_end=0 || n.news_end>".time().")
AND n.news_render_type<2
@@ -421,14 +516,24 @@ $frows = $sql -> db_Fetch();
$p_title = ($action == "item") ? $newsAr[1]['news_title'] : $tp->toHTML($newsAr[1]['category_name'],FALSE,"TITLE");
-if($action != "" && !is_numeric($action))
+switch($action)
+{
+ case 'item':
+ setNewsFrontMeta($newsAr[1]);
+ break;
+ case 'list':
+ setNewsFrontMeta($newsAr[1], 'category');
+ break;
+}
+
+/*if($action != "" && !is_numeric($action))
{
if($action == "item" && $pref['meta_news_summary'] && $newsAr[1]['news_title'])
{
define("META_DESCRIPTION",SITENAME.": ".$newsAr[1]['news_title']." - ".$newsAr[1]['news_summary']);
}
define("e_PAGETITLE", $p_title);
-}
+}*/
require_once(HEADERF);
if(!$action)
@@ -456,13 +561,15 @@ if(isset($pref['news_unstemplate']) && $pref['news_unstemplate'] && file_exists(
$newspercolumn = (isset($NEWSITEMSPERCOLUMN) ? $NEWSITEMSPERCOLUMN : 10);
$newsdata = array();
$loop = 1;
+ $param = array();
+ $param['current_action'] = $action;
foreach($newsAr as $news) {
if(is_array($ALTERNATECLASSES)) {
$newsdata[$loop] .= "