mirror of
https://github.com/e107inc/e107.git
synced 2025-07-26 09:20:28 +02:00
- Custom Pages front-end almost completely rewritten, backend fixes, SEF URL support, introducing page batch shortcodes and templates (available per page), compatibility stylesheet added (core css and jayya theme), tagwords plugin links proper to new pages URLs;
- Large number of system stability fixes and obsolete code replacement
This commit is contained in:
163
e107_core/shortcodes/batch/page_shortcodes.php
Normal file
163
e107_core/shortcodes/batch/page_shortcodes.php
Normal file
@@ -0,0 +1,163 @@
|
|||||||
|
<?php
|
||||||
|
/*
|
||||||
|
* Copyright e107 Inc e107.org, Licensed under GNU GPL (http://www.gnu.org/licenses/gpl.txt)
|
||||||
|
* $Id$
|
||||||
|
*
|
||||||
|
* Custom Pages shortcode batch
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (!defined('e107_INIT')) { exit; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package e107
|
||||||
|
* @subpackage shortcodes
|
||||||
|
* @version $Id$
|
||||||
|
*
|
||||||
|
* Shortcodes for custom page display
|
||||||
|
*/
|
||||||
|
class page_shortcodes extends e_shortcode
|
||||||
|
{
|
||||||
|
|
||||||
|
function sc_cpagetitle()
|
||||||
|
{
|
||||||
|
return e107::getParser()->toHTML($this->getParserVars()->title, true, 'TITLE');
|
||||||
|
}
|
||||||
|
|
||||||
|
function sc_cpagesubtitle()
|
||||||
|
{
|
||||||
|
$subtitle = $this->getParserVars()->sub_title;
|
||||||
|
return $subtitle ? e107::getParser()->toHTML($subtitle, true, 'TITLE') : '';
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function sc_cpagebody()
|
||||||
|
{
|
||||||
|
// already parsed
|
||||||
|
return $this->getParserVars()->text;
|
||||||
|
}
|
||||||
|
|
||||||
|
function sc_cpageauthor($parm)
|
||||||
|
{
|
||||||
|
$parms = eHelper::scParams($parm);
|
||||||
|
$author = '';
|
||||||
|
$url = e107::getUrl()->create('user/profile/view', array('name' => $this->page['user_name'], 'id' => $this->page['user_id']));
|
||||||
|
|
||||||
|
if(isset($parms['url']))
|
||||||
|
{
|
||||||
|
return $url;
|
||||||
|
}
|
||||||
|
|
||||||
|
if($this->page['page_author'])
|
||||||
|
{
|
||||||
|
// currently this field used as Real Name, no matter what the db name says
|
||||||
|
if($this->page['user_login'] && !isset($parms['user'])) $author = $this->page['user_login'];
|
||||||
|
elseif($this->page['user_name']) $author = preg_replace('/[^\w\pL\s]+/u', ' ', $this->page['user_name']);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(empty($author)) return '';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if(isset($parms['nolink']))
|
||||||
|
{
|
||||||
|
return $author;
|
||||||
|
}
|
||||||
|
//TODO title lan
|
||||||
|
return '<a class="cpage-author" href="'.$url.'" title="">'.$author.'</a>';
|
||||||
|
}
|
||||||
|
|
||||||
|
function sc_cpagedate($parm)
|
||||||
|
{
|
||||||
|
if(empty($parm))
|
||||||
|
{
|
||||||
|
return e107::getDateConvert()->convert_date($this->page['page_datestamp'], 'long');
|
||||||
|
}
|
||||||
|
return e107::getDateConvert()->convert_date($this->page['page_datestamp'], $parm);
|
||||||
|
}
|
||||||
|
|
||||||
|
function sc_cpageid()
|
||||||
|
{
|
||||||
|
return $this->page['page_id'];
|
||||||
|
}
|
||||||
|
|
||||||
|
// Not a shortcode really, as it shouldn't be cached at all :/
|
||||||
|
function cpagecomments()
|
||||||
|
{
|
||||||
|
$com = $this->getParserVars()->comments;
|
||||||
|
//if($parm && isset($com[$parm])) return $com[$parm];
|
||||||
|
return $com['comment'].$com['comment_form'];
|
||||||
|
}
|
||||||
|
|
||||||
|
function sc_cpagenav()
|
||||||
|
{
|
||||||
|
return $this->getParserVars()->np;
|
||||||
|
}
|
||||||
|
|
||||||
|
function sc_cpagerating()
|
||||||
|
{
|
||||||
|
return $this->getParserVars()->rating;
|
||||||
|
}
|
||||||
|
|
||||||
|
function sc_cpagemessage()
|
||||||
|
{
|
||||||
|
return e107::getMessage()->render();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Auto-thumbnailing now allowed.
|
||||||
|
* New sc parameter standards
|
||||||
|
* Exampes:
|
||||||
|
* - {CPAGETHUMBNAIL=e_MEDIA/images/someimage.jpg|type=tag&w=200} render link with thumbnail max width 200px
|
||||||
|
* - {CPAGETHUMBNAIL=images/someimage.jpg|w=200} same as above
|
||||||
|
* - {CPAGETHUMBNAIL=images/someimage.jpg|type=src&aw=200&ah=200} return thumb link only, size forced to 200px X 200px (smart thumbnailing close to how Facebook is doing it)
|
||||||
|
*
|
||||||
|
* @see eHelper::scDualParams()
|
||||||
|
* @see eHelper::scParams()
|
||||||
|
*/
|
||||||
|
function sc_cpagehumbnail($parm = '')
|
||||||
|
{
|
||||||
|
$parms = eHelper::scDualParams($parm);
|
||||||
|
if(empty($parms[1])) return '';
|
||||||
|
|
||||||
|
$tp = e107::getParser();
|
||||||
|
$path = rawurldecode($parms[1]);
|
||||||
|
|
||||||
|
if(substr($path, 0, 2) === 'e_') $path = str_replace($tp->getUrlConstants('raw'), $tp->getUrlConstants('sc'), $path);
|
||||||
|
elseif($path[0] !== '{') $path = '{e_MEDIA}'.$path;
|
||||||
|
|
||||||
|
$thumb = $tp->thumbUrl($path);
|
||||||
|
$type = varset($parms[2]['type'], 'tag');
|
||||||
|
|
||||||
|
switch($type)
|
||||||
|
{
|
||||||
|
case 'src':
|
||||||
|
return $thumb;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'link':
|
||||||
|
return '<a href="'.$tp->replaceConstants($path, 'abs').'" class="cpage-image" rel="external image"><img class="cpage-image" src="'.$src.'" alt="'.varset($parms[1]['alt']).'" /></a>';
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'tag':
|
||||||
|
default:
|
||||||
|
return '<img class="cpage-image" src="'.$thumb.'" alt="'.varset($parms[1]['alt']).'" />';
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function sc_cpagelink($parm)
|
||||||
|
{
|
||||||
|
$url = $this->sc_cpageurl();
|
||||||
|
|
||||||
|
if($parm == 'href' || !$url)
|
||||||
|
{
|
||||||
|
return $url;
|
||||||
|
}
|
||||||
|
return '<a class="cpage" href="'.$url.'">'.$this->sc_cpagetitle().'</a>';
|
||||||
|
}
|
||||||
|
|
||||||
|
function sc_cpageurl()
|
||||||
|
{
|
||||||
|
return e107::getUrl()->create('page/view', $this->page, array('allow' => 'page_sef,page_title,page_id'));
|
||||||
|
}
|
||||||
|
}
|
@@ -43,6 +43,8 @@
|
|||||||
* - plugin (string) [optional]: plugin name used for template loading
|
* - plugin (string) [optional]: plugin name used for template loading
|
||||||
* - tmpl_prefix (string) [optional]: template keys prefix; core supported are 'default' and 'dropdown', default depends on 'old_np' pref
|
* - tmpl_prefix (string) [optional]: template keys prefix; core supported are 'default' and 'dropdown', default depends on 'old_np' pref
|
||||||
* - navcount (integer) [optional]: number of navigation items to be shown, minimal allowed value is 4, default is 10
|
* - navcount (integer) [optional]: number of navigation items to be shown, minimal allowed value is 4, default is 10
|
||||||
|
* - nonavcount (no value) [optional]: if is set it'll disable navigation counting (navcount will be ignored)
|
||||||
|
* - bullet (string) [optional]: currently it should contain the markup to be prepended to the navigation item title
|
||||||
*
|
*
|
||||||
* WARNING: You have to do rawuldecode() on url, caption and title parameter values (before passing them to the shortcode)
|
* WARNING: You have to do rawuldecode() on url, caption and title parameter values (before passing them to the shortcode)
|
||||||
* or you'll break the whole script
|
* or you'll break the whole script
|
||||||
@@ -134,15 +136,24 @@ function nextprev_shortcode($parm = '')
|
|||||||
if($total_pages <= 1) { return ''; }
|
if($total_pages <= 1) { return ''; }
|
||||||
|
|
||||||
// urldecoded once by parse_str()
|
// urldecoded once by parse_str()
|
||||||
if(substr($parm['url'], 0, 5) == 'url::')
|
if(substr($parm['url'], 0, 7) == 'route::')
|
||||||
{
|
{
|
||||||
// New - use URL assembling engine
|
// New - use URL assembling engine
|
||||||
// Format is: url::route::params::options
|
// Format is: route::module/controller/action::urlParams::urlOptions
|
||||||
// Example: url::news/list/category::id=xxx&name=yyy&page=--PAGE--::full=1
|
// Example: url::news/list/category::id=xxx&name=yyy&page=--PAGE--::full=1
|
||||||
// WARNING - url parameter string have to be rawurlencode-ed BEFORE passed to the shortcode, or it'll break everything
|
// WARNING - url parameter string have to be rawurlencode-ed BEFORE passed to the shortcode, or it'll break everything
|
||||||
$urlParms = explode('::', $parm['url']);
|
$urlParms = explode('::', $parm['url']);
|
||||||
$url = str_replace(array('--FROM--', '--AMP--'), array('[FROM]', '&'), $e107->url->create($urlParms[1], $urlParms[2], varset($urlParms[3])));
|
$url = str_replace(array('--FROM--', '--AMP--'), array('[FROM]', '&'), $e107->url->create($urlParms[1], $urlParms[2], varset($urlParms[3])));
|
||||||
}
|
}
|
||||||
|
elseif(substr($parm['url'], 0, 5) == 'url::')
|
||||||
|
{
|
||||||
|
// New - use URL assembling engine
|
||||||
|
// Format is: url::module/controller/action?id=xxx&name=yyy&page=--PAGE--::full=1
|
||||||
|
// WARNING - url parameter string have to be rawurlencode-ed BEFORE passed to the shortcode, or it'll break everything
|
||||||
|
$urlParms = explode('::', $parm['url']);
|
||||||
|
$url = str_replace(array('--FROM--', '--AMP--'), array('[FROM]', '&'), $e107->url->create($urlParms[1], array(), varset($urlParms[2])));
|
||||||
|
}
|
||||||
|
// just regular full or absolute URL
|
||||||
else $url = str_replace(array('--FROM--', '--AMP--'), array('[FROM]', '&'), $parm['url']);
|
else $url = str_replace(array('--FROM--', '--AMP--'), array('[FROM]', '&'), $parm['url']);
|
||||||
|
|
||||||
// Simple parser vars
|
// Simple parser vars
|
||||||
@@ -161,11 +172,24 @@ function nextprev_shortcode($parm = '')
|
|||||||
|
|
||||||
// urldecoded by parse_str()
|
// urldecoded by parse_str()
|
||||||
$pagetitle = explode('|',$parm['pagetitle']);
|
$pagetitle = explode('|',$parm['pagetitle']);
|
||||||
|
|
||||||
|
// new - bullet support
|
||||||
|
$bullet = vartrue($parm['bullet'], '');
|
||||||
|
|
||||||
// navigation number settings
|
// no navigation counter
|
||||||
$navcount = abs(intval(vartrue($parm['navcount'], 10))); // prevent infinite loop!
|
if(isset($parm['nonavcount']))
|
||||||
if($navcount < 4) $navcount = 4;
|
{
|
||||||
$navmid = floor($navcount/2);
|
$navcount = $total_pages;
|
||||||
|
$navmid = 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// navigation number settings
|
||||||
|
$navcount = abs(intval(vartrue($parm['navcount'], 10))); // prevent infinite loop!
|
||||||
|
if($navcount < 4) $navcount = 4;
|
||||||
|
$navmid = floor($navcount/2);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// get template - nextprev_template.php, support for plugin template locations - myplug/templates/nextprev_template.php
|
// get template - nextprev_template.php, support for plugin template locations - myplug/templates/nextprev_template.php
|
||||||
$tmpl = e107::getTemplate(varset($parm['plugin'], null), 'nextprev');
|
$tmpl = e107::getTemplate(varset($parm['plugin'], null), 'nextprev');
|
||||||
@@ -173,9 +197,9 @@ function nextprev_shortcode($parm = '')
|
|||||||
// init advanced navigation visibility
|
// init advanced navigation visibility
|
||||||
$show_first = $show_prev = ($current_page != 1);
|
$show_first = $show_prev = ($current_page != 1);
|
||||||
$show_last = $show_next = ($current_page != $total_pages);
|
$show_last = $show_next = ($current_page != $total_pages);
|
||||||
|
|
||||||
// Render
|
// Render
|
||||||
// XXX - parseTemplate vs simpleParse ??? Currently can't find a reason why we should parse via parseTemplate
|
// Parse via simpleParse()
|
||||||
$tp = e107::getParser();
|
$tp = e107::getParser();
|
||||||
|
|
||||||
// Nextprev navigation start
|
// Nextprev navigation start
|
||||||
@@ -248,6 +272,7 @@ function nextprev_shortcode($parm = '')
|
|||||||
}
|
}
|
||||||
|
|
||||||
$e_vars_loop = new e_vars();
|
$e_vars_loop = new e_vars();
|
||||||
|
$e_vars_loop->bullet = $bullet;
|
||||||
$ret_items = array();
|
$ret_items = array();
|
||||||
for($c = $loop_start; $c < $loop_end; $c++)
|
for($c = $loop_start; $c < $loop_end; $c++)
|
||||||
{
|
{
|
||||||
|
@@ -90,9 +90,9 @@ class core_news_rewrite_extended_url extends eUrlConfig
|
|||||||
|
|
||||||
### View news item - kinda catch all - very bad performance when News is chosen as default namespace - two additional DB queries on every site call!
|
### View news item - kinda catch all - very bad performance when News is chosen as default namespace - two additional DB queries on every site call!
|
||||||
## Leading category name - uncomment to enable
|
## Leading category name - uncomment to enable
|
||||||
'<category:{sefsecure}>/<name:{sefsecure}>' => array('view/item', 'mapVars' => array('news_title' => 'name', 'mapVars' => array('category_name' => 'category', 'news_title' => 'name', 'news_id' => 'id'), 'category_name' => 'category'), 'legacyQuery' => 'extend.{name}', 'parseCallback' => 'itemIdByTitle'),
|
'<category:{sefsecure}>/<name:{sefsecure}>' => array('view/item', 'mapVars' => array('category_name' => 'category', 'news_title' => 'name', 'news_id' => 'id'), 'legacyQuery' => 'extend.{name}', 'parseCallback' => 'itemIdByTitle'),
|
||||||
// Base location as item view - fallback if category sef is missing
|
// Base location as item view - fallback if category sef is missing
|
||||||
'<name:{sefsecure}>' => array('view/item', 'mapVars' => array('news_title' => 'name'), 'mapVars' => array('news_id' => 'id', 'news_title' => 'name'), 'legacyQuery' => 'extend.{name}', 'parseCallback' => 'itemIdByTitle'),
|
'<name:{sefsecure}>' => array('view/item', 'mapVars' => array('news_id' => 'id', 'news_title' => 'name'), 'legacyQuery' => 'extend.{name}', 'parseCallback' => 'itemIdByTitle'),
|
||||||
// fallback if news sef is missing
|
// fallback if news sef is missing
|
||||||
'View/<id:{number}>' => array('view/item', 'mapVars' => array('news_id' => 'id'), 'legacyQuery' => 'extend.{id}'),
|
'View/<id:{number}>' => array('view/item', 'mapVars' => array('news_id' => 'id'), 'legacyQuery' => 'extend.{id}'),
|
||||||
|
|
||||||
|
99
e107_core/url/page/sef_url.php
Normal file
99
e107_core/url/page/sef_url.php
Normal file
@@ -0,0 +1,99 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Copyright (C) e107 Inc (e107.org), Licensed under GNU GPL (http://www.gnu.org/licenses/gpl.txt)
|
||||||
|
* $Id$
|
||||||
|
*
|
||||||
|
* User routing config
|
||||||
|
*/
|
||||||
|
class core_page_sef_url extends eUrlConfig
|
||||||
|
{
|
||||||
|
public function config()
|
||||||
|
{
|
||||||
|
return array(
|
||||||
|
|
||||||
|
'config' => array(
|
||||||
|
'allowMain' => true,
|
||||||
|
'noSingleEntry' => false, // [optional] default false; disallow this module to be shown via single entry point when this config is used
|
||||||
|
'legacy' => '{e_BASE}page.php', // [optional] default empty; if it's a legacy module (no single entry point support) - URL to the entry point script
|
||||||
|
'format' => 'path', // get|path - notify core for the current URL format, if set to 'get' rules will be ignored
|
||||||
|
'selfParse' => false, // [optional] default false; use only this->parse() method, no core routine URL parsing
|
||||||
|
'selfCreate' => false, // [optional] default false; use only this->create() method, no core routine URL creating
|
||||||
|
'defaultRoute' => 'view/index',// [optional] default empty; route (no leading module) used when module is found with no additional controller/action information e.g. /news/
|
||||||
|
'errorRoute' => '', // [optional] default empty; route (no leading module) used when module is found but no inner route is matched, leave empty to force error 404 page
|
||||||
|
'urlSuffix' => '', // [optional] default empty; string to append to the URL (e.g. .html)
|
||||||
|
|
||||||
|
'mapVars' => array(
|
||||||
|
'page_id' => 'id',
|
||||||
|
'page_title' => 'name',
|
||||||
|
),
|
||||||
|
|
||||||
|
'allowVars' => array(
|
||||||
|
'page', 'id',
|
||||||
|
),
|
||||||
|
),
|
||||||
|
|
||||||
|
'rules' => array(
|
||||||
|
### using only title for pages is risky enough (non-unique title, possible bad characters)
|
||||||
|
//'<name:{secure}>' => array('view/index', 'allowVars' => array('name'),'legacyQuery' => '{name}.{page}', 'parseCallback' => 'itemIdByTitle'),
|
||||||
|
'<id:{number}>/<name:{secure}>' => array('view/index', 'legacyQuery' => '{id}.{page}', ),
|
||||||
|
|
||||||
|
### fallback when assembling method don't know the title of the page - build by ID only
|
||||||
|
'<id:{number}>' => array('view/index', 'legacyQuery' => '{id}.{page}', ),
|
||||||
|
|
||||||
|
### page list
|
||||||
|
'list' => array('list/index', 'legacyQuery' => '', ),
|
||||||
|
'/' => array('list/index', 'legacyQuery' => '', ),
|
||||||
|
) // rule set array
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Admin callback
|
||||||
|
* Language file not loaded as all language data is inside the lan_eurl.php (loaded by default on administration URL page)
|
||||||
|
*/
|
||||||
|
public function admin()
|
||||||
|
{
|
||||||
|
// static may be used for performance
|
||||||
|
static $admin = array(
|
||||||
|
'labels' => array(
|
||||||
|
'name' => LAN_EURL_CORE_PAGE, // Module name
|
||||||
|
'label' => LAN_EURL_PAGE_SEF_LABEL, // Current profile name
|
||||||
|
'description' => LAN_EURL_PAGE_SEF_DESCR, //
|
||||||
|
),
|
||||||
|
'form' => array(), // Under construction - additional configuration options
|
||||||
|
'callbacks' => array(), // Under construction - could be used for e.g. URL generator functionallity
|
||||||
|
);
|
||||||
|
|
||||||
|
return $admin;
|
||||||
|
}
|
||||||
|
|
||||||
|
### CUSTOM METHODS ###
|
||||||
|
|
||||||
|
/**
|
||||||
|
* view/item by name callback
|
||||||
|
* @param eRequest $request
|
||||||
|
*/
|
||||||
|
public function itemIdByTitle(eRequest $request)
|
||||||
|
{
|
||||||
|
$name = $request->getRequestParam('name');
|
||||||
|
if(($id = $request->getRequestParam('id')))
|
||||||
|
{
|
||||||
|
$request->setRequestParam('name', $id);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
elseif(!$name) return;
|
||||||
|
elseif(is_numeric($name))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$sql = e107::getDb('url');
|
||||||
|
$name = e107::getParser()->toDB($name);var_dump($name);
|
||||||
|
if($sql->db_Select('page', 'page_id', "page_theme='' AND page_title='{$name}'")) // TODO - it'll be page_sef (new) field
|
||||||
|
{
|
||||||
|
$name = $sql->db_Fetch();
|
||||||
|
$request->setRequestParam('name', $name['page_id']);
|
||||||
|
}
|
||||||
|
else $request->setRequestParam('name', 0);
|
||||||
|
}
|
||||||
|
}
|
79
e107_core/url/page/url.php
Normal file
79
e107_core/url/page/url.php
Normal file
@@ -0,0 +1,79 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Copyright (C) e107 Inc (e107.org), Licensed under GNU GPL (http://www.gnu.org/licenses/gpl.txt)
|
||||||
|
* $Id$
|
||||||
|
*
|
||||||
|
* Page routing config
|
||||||
|
*/
|
||||||
|
class core_page_url extends eUrlConfig
|
||||||
|
{
|
||||||
|
public function config()
|
||||||
|
{
|
||||||
|
return array(
|
||||||
|
|
||||||
|
'config' => array(
|
||||||
|
'noSingleEntry' => true, // [optional] default false; disallow this module to be shown via single entry point when this config is used
|
||||||
|
'legacy' => '{e_BASE}page.php', // [optional] default empty; if it's a legacy module (no single entry point support) - URL to the entry point script
|
||||||
|
'format' => 'get', // get|path - notify core for the current URL format, if set to 'get' rules will be ignored
|
||||||
|
'selfParse' => true, // [optional] default false; use only this->parse() method, no core routine URL parsing
|
||||||
|
'selfCreate' => true, // [optional] default false; use only this->create() method, no core routine URL creating
|
||||||
|
'defaultRoute' => '', // [optional] default empty; route (no leading module) used when module is found with no additional controller/action information e.g. /news/
|
||||||
|
'errorRoute' => '', // [optional] default empty; route (no leading module) used when module is found but no inner route is matched, leave empty to force error 404 page
|
||||||
|
'urlSuffix' => '', // [optional] default empty; string to append to the URL (e.g. .html)
|
||||||
|
'mapVars' => array(),
|
||||||
|
'allowVars' => array(),
|
||||||
|
),
|
||||||
|
|
||||||
|
'rules' => array() // rule set array
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public function create($route, $params = array())
|
||||||
|
{
|
||||||
|
if(!$params) return 'page.php';
|
||||||
|
|
||||||
|
if(is_string($route)) $route = explode('/', $route, 2);
|
||||||
|
if(!varset($route[1])) $route[1] = 'index';
|
||||||
|
|
||||||
|
## aliases as retrieved from the DB, map vars to proper values
|
||||||
|
if(isset($params['page_title']) && !empty($params['page_title'])) $params['name'] = $params['page_title'];
|
||||||
|
if(isset($params['page_id']) && !empty($params['page_id'])) $params['id'] = $params['page_id'];
|
||||||
|
|
||||||
|
$url = 'page.php?';
|
||||||
|
if('--FROM--' != vartrue($params['page'])) $page = varset($params['page']) ? intval($params['page']) : '0';
|
||||||
|
else $page = '--FROM--';
|
||||||
|
|
||||||
|
$url .= intval($params['id']).($page ? '.'.$page : '');
|
||||||
|
return $url;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Admin callback
|
||||||
|
* Language file not loaded as all language data is inside the lan_eurl.php (loaded by default on administration URL page)
|
||||||
|
*/
|
||||||
|
public function admin()
|
||||||
|
{
|
||||||
|
// static may be used for performance
|
||||||
|
static $admin = array(
|
||||||
|
'labels' => array(
|
||||||
|
'name' => LAN_EURL_CORE_PAGE, // Module name
|
||||||
|
'label' => LAN_EURL_PAGE_DEFAULT_LABEL, // Current profile name
|
||||||
|
'description' => LAN_EURL_PAGE_DEFAULT_DESCR, //
|
||||||
|
),
|
||||||
|
'form' => array(), // Under construction - additional configuration options
|
||||||
|
'callbacks' => array(), // Under construction - could be used for e.g. URL generator functionallity
|
||||||
|
);
|
||||||
|
|
||||||
|
return $admin;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function parse($pathInfo)
|
||||||
|
{
|
||||||
|
// this config doesn't support parsing, it's done by the module entry script (news.php)
|
||||||
|
// this means News are not available via single entry point if this config is currently active
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/**
|
/*
|
||||||
* Copyright (C) 2008-2011 e107 Inc (e107.org), Licensed under GNU GPL (http://www.gnu.org/licenses/gpl.txt)
|
* Copyright (C) e107 Inc (e107.org), Licensed under GNU GPL (http://www.gnu.org/licenses/gpl.txt)
|
||||||
* $Id$
|
* $Id$
|
||||||
*
|
*
|
||||||
* System routing config
|
* System routing config
|
||||||
|
@@ -1,5 +1,10 @@
|
|||||||
<?php
|
<?php
|
||||||
|
/*
|
||||||
|
* Copyright (C) e107 Inc (e107.org), Licensed under GNU GPL (http://www.gnu.org/licenses/gpl.txt)
|
||||||
|
* $Id$
|
||||||
|
*
|
||||||
|
* System routing config
|
||||||
|
*/
|
||||||
class core_system_url extends eUrlConfig
|
class core_system_url extends eUrlConfig
|
||||||
{
|
{
|
||||||
public function config()
|
public function config()
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/**
|
/*
|
||||||
* Copyright (C) 2008-2011 e107 Inc (e107.org), Licensed under GNU GPL (http://www.gnu.org/licenses/gpl.txt)
|
* Copyright (C) e107 Inc (e107.org), Licensed under GNU GPL (http://www.gnu.org/licenses/gpl.txt)
|
||||||
* $Id$
|
* $Id$
|
||||||
*
|
*
|
||||||
* User routing config
|
* User routing config
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
/**
|
/*
|
||||||
* Copyright (C) 2008-2011 e107 Inc (e107.org), Licensed under GNU GPL (http://www.gnu.org/licenses/gpl.txt)
|
* Copyright (C) 2008-2011 e107 Inc (e107.org), Licensed under GNU GPL (http://www.gnu.org/licenses/gpl.txt)
|
||||||
* $Id$
|
* $Id$
|
||||||
*
|
*
|
||||||
|
@@ -10,6 +10,7 @@
|
|||||||
.left { text-align: left }
|
.left { text-align: left }
|
||||||
.right { text-align: right }
|
.right { text-align: right }
|
||||||
.center { text-align: center }
|
.center { text-align: center }
|
||||||
|
.justify { text-align: justify }
|
||||||
.f-left { float: left }
|
.f-left { float: left }
|
||||||
.f-right { float: right }
|
.f-right { float: right }
|
||||||
.top { vertical-align: top }
|
.top { vertical-align: top }
|
||||||
@@ -60,3 +61,57 @@ ul.e-tabs li.active a:visited { background-color: #EEEEEE; border: 1px solid #8
|
|||||||
#e-debug-console-controls a { text-decoration: none; color: #000; background-color: #f5f5f5; border: 1px solid #f0f0f0; padding: 5px; margin: 2px 5px; }
|
#e-debug-console-controls a { text-decoration: none; color: #000; background-color: #f5f5f5; border: 1px solid #f0f0f0; padding: 5px; margin: 2px 5px; }
|
||||||
#e-debug-console-input { width: 480px; border: 1px solid #f5f5f5; }
|
#e-debug-console-input { width: 480px; border: 1px solid #f5f5f5; }
|
||||||
#e-debug-console .console-output { border-bottom: 1px solid #f5f5f5; padding: 5px }
|
#e-debug-console .console-output { border-bottom: 1px solid #f5f5f5; padding: 5px }
|
||||||
|
|
||||||
|
/** Custom Pages Front-end **/
|
||||||
|
.cpage-nav { padding: 5px; margin: 0px 5px 10px 10px; }
|
||||||
|
a.cpage-np { font-size: 14px; }
|
||||||
|
a.cpage-np.current { text-decoration: none; }
|
||||||
|
|
||||||
|
/******** SyS Messages / Message text formatting */
|
||||||
|
/* message boxes */
|
||||||
|
.s-message { }
|
||||||
|
|
||||||
|
.s-message div.info,
|
||||||
|
.s-message div.error,
|
||||||
|
.s-message div.success,
|
||||||
|
.s-message div.debug,
|
||||||
|
.s-message div.warning { padding: 5px; margin-bottom: 10px; }
|
||||||
|
|
||||||
|
|
||||||
|
.s-message div.info { background-color:#C1E0FF; border: 1px solid #3399FF; }
|
||||||
|
.s-message div.error { background-color:#FFCECE; border: 1px solid #CC0000; }
|
||||||
|
.s-message div.success { background-color:#DFFFDF; border: 1px solid #009900; }
|
||||||
|
.s-message div.warning { background-color:#FFFFD5; border: 1px solid #FFCC00; }
|
||||||
|
.s-message div.debug { background-color:#FFFFFF; border: 1px solid #EAEAEA; }
|
||||||
|
|
||||||
|
.s-message .s-message-title { height: 32px; background: 0 50% no-repeat; padding-left: 42px; font-size: 14px; font-weight: bold; line-height: 32px; }
|
||||||
|
|
||||||
|
.s-message div.info .s-message-title { background-image: url(images/messagebox_info.png); }
|
||||||
|
.s-message div.error .s-message-title { background-image: url(images/messagebox_critical.png); }
|
||||||
|
.s-message div.success .s-message-title { background-image: url(images/ok.png); }
|
||||||
|
.s-message div.warning .s-message-title { background-image: url(images/messagebox_warning.png); }
|
||||||
|
.s-message div.debug .s-message-title { background-image: url(images/messagebox_info.png); }
|
||||||
|
|
||||||
|
.s-message-body { padding-left: 42px; }
|
||||||
|
.s-message-item {}
|
||||||
|
|
||||||
|
/* validate result inline message */
|
||||||
|
.validate-result {}
|
||||||
|
|
||||||
|
/* message text (overall) */
|
||||||
|
.warning { color: #FF6600 }
|
||||||
|
.success { color: green; }
|
||||||
|
.error { color: #FF0000 }
|
||||||
|
.info {}
|
||||||
|
.required { color:red }
|
||||||
|
|
||||||
|
/******** Tooltip info */
|
||||||
|
.e-info {}
|
||||||
|
|
||||||
|
/******** Prepare for Image Preview JS */
|
||||||
|
.image-preview {}
|
||||||
|
|
||||||
|
/* BBcode textareas */
|
||||||
|
div.bbarea.large, .tbox.large, .helpbox.large { width: 95% !important; }
|
||||||
|
div.bbarea.medium, .tbox.medium, .helpbox.medium { width: 60% !important; }
|
||||||
|
div.bbarea.small, .tbox.small, .helpbox.small { width: 250px !important; }
|
@@ -1750,6 +1750,20 @@ class eRouter
|
|||||||
return call_user_func_array(array($obj, $callBack), $params);
|
return call_user_func_array(array($obj, $callBack), $params);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Convert assembled url to shortcode
|
||||||
|
*
|
||||||
|
* @param string $route
|
||||||
|
* @param array $params
|
||||||
|
* @param array $options {@see eRouter::$_defaultAssembleOptions}
|
||||||
|
*/
|
||||||
|
public function assembleSc($route, $params = array(), $options = array())
|
||||||
|
{
|
||||||
|
//if(is_string($options)) parse_str($options, $options);
|
||||||
|
$url = $this->assemble($route, $params, $options);
|
||||||
|
return e107::getParser()->createConstants($url, 'mix');
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Assemble system URL
|
* Assemble system URL
|
||||||
* Examples:
|
* Examples:
|
||||||
@@ -1772,7 +1786,7 @@ class eRouter
|
|||||||
if(is_string($options)) parse_str($options, $options);
|
if(is_string($options)) parse_str($options, $options);
|
||||||
$options = array_merge($this->_defaultAssembleOptions, $options);
|
$options = array_merge($this->_defaultAssembleOptions, $options);
|
||||||
$base = ($options['full'] ? SITEURLBASE : '').$request->getBasePath();
|
$base = ($options['full'] ? SITEURLBASE : '').$request->getBasePath();
|
||||||
|
|
||||||
$anc = '';
|
$anc = '';
|
||||||
|
|
||||||
if(is_string($params)) parse_str($params, $params);
|
if(is_string($params)) parse_str($params, $params);
|
||||||
@@ -1782,6 +1796,30 @@ class eRouter
|
|||||||
usnet($params['#']);
|
usnet($params['#']);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Config independent - Deny parameter keys, useful for directly denying sensitive data e.g. password db fields
|
||||||
|
if(isset($options['deny']))
|
||||||
|
{
|
||||||
|
$list = array_map('trim', explode(',', $options['deny']));
|
||||||
|
foreach ($list as $value)
|
||||||
|
{
|
||||||
|
unset($params[$value]);
|
||||||
|
}
|
||||||
|
unset($list);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Config independent - allow parameter keys, useful to directly allow data (and not to rely on config allowVars) e.g. when retrieved from db
|
||||||
|
if(isset($options['allow']))
|
||||||
|
{
|
||||||
|
$list = array_map('trim', explode(',', $options['allow']));
|
||||||
|
$_params = $params;
|
||||||
|
$params = array();
|
||||||
|
foreach ($list as $value)
|
||||||
|
{
|
||||||
|
if(isset($_params[$value])) $params[$value] = $_params[$value];
|
||||||
|
}
|
||||||
|
unset($list, $_params);
|
||||||
|
}
|
||||||
|
|
||||||
# Optional convenient masks for creating system URL's
|
# Optional convenient masks for creating system URL's
|
||||||
if($route === '/' || empty($route))
|
if($route === '/' || empty($route))
|
||||||
{
|
{
|
||||||
|
@@ -46,6 +46,11 @@ class eUrl
|
|||||||
return $this->router()->assemble($route, $params, $options);
|
return $this->router()->assemble($route, $params, $options);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function sc($route, $params = array(), $options = array())
|
||||||
|
{
|
||||||
|
return $this->router()->assembleSc($route, $params, $options);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return eRouter
|
* @return eRouter
|
||||||
*/
|
*/
|
||||||
|
@@ -1631,6 +1631,9 @@ class e107
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Return a list of available template IDs for a plugin(eg. $MYTEMPLATE['my_id'] -> array('id' => 'My Id'))
|
* Return a list of available template IDs for a plugin(eg. $MYTEMPLATE['my_id'] -> array('id' => 'My Id'))
|
||||||
|
*
|
||||||
|
* FIXME - the format of $allinfo=true array is not usable at all, convert it so that it's compatible with e_form::selectbox() method
|
||||||
|
*
|
||||||
* @param string $plugin_name
|
* @param string $plugin_name
|
||||||
* @param string $template_id [optional] if different from $plugin_name;
|
* @param string $template_id [optional] if different from $plugin_name;
|
||||||
* @param mixed $where true - current theme, 'admin' - admin theme, 'front' (default) - front theme
|
* @param mixed $where true - current theme, 'admin' - admin theme, 'front' (default) - front theme
|
||||||
|
@@ -2151,6 +2151,7 @@ class e_parse
|
|||||||
//'{e_HANDLER}' => e_HANDLER_ABS, - no ABS path available
|
//'{e_HANDLER}' => e_HANDLER_ABS, - no ABS path available
|
||||||
'{e_MEDIA}' => e_MEDIA_ABS,
|
'{e_MEDIA}' => e_MEDIA_ABS,
|
||||||
'{e_WEB}' => e_WEB_ABS,
|
'{e_WEB}' => e_WEB_ABS,
|
||||||
|
'{e_BASE}' => e_HTTP,
|
||||||
);
|
);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -2175,6 +2176,7 @@ class e_parse
|
|||||||
//'{e_HANDLER}' => e_HANDLER_ABS, - no ABS path available
|
//'{e_HANDLER}' => e_HANDLER_ABS, - no ABS path available
|
||||||
'{e_MEDIA}' => SITEURLBASE.e_MEDIA_ABS,
|
'{e_MEDIA}' => SITEURLBASE.e_MEDIA_ABS,
|
||||||
'{e_WEB}' => SITEURLBASE.e_WEB_ABS,
|
'{e_WEB}' => SITEURLBASE.e_WEB_ABS,
|
||||||
|
'{e_BASE}' => SITEURL,
|
||||||
);
|
);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@@ -2,16 +2,12 @@
|
|||||||
/*
|
/*
|
||||||
* e107 website system
|
* e107 website system
|
||||||
*
|
*
|
||||||
* Copyright (C) 2008-2009 e107 Inc (e107.org)
|
* Copyright (C) e107 Inc (e107.org)
|
||||||
* Released under the terms and conditions of the
|
* Released under the terms and conditions of the
|
||||||
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
|
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
|
||||||
*
|
*
|
||||||
*
|
* $URL$
|
||||||
*
|
* $Id$
|
||||||
* $Source: /cvs_backup/e107_0.8/e107_handlers/rate_class.php,v $
|
|
||||||
* $Revision$
|
|
||||||
* $Date$
|
|
||||||
* $Author$
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (!defined('e107_INIT')) { exit; }
|
if (!defined('e107_INIT')) { exit; }
|
||||||
@@ -25,16 +21,17 @@ class rater {
|
|||||||
$table = preg_replace('/\W/', '', $table);
|
$table = preg_replace('/\W/', '', $table);
|
||||||
$id = intval($id);
|
$id = intval($id);
|
||||||
|
|
||||||
$self = $_SERVER['PHP_SELF'];
|
// $self = $_SERVER['PHP_SELF'];
|
||||||
if ($_SERVER['QUERY_STRING']) {
|
// if ($_SERVER['QUERY_STRING']) {
|
||||||
$self .= "?".$_SERVER['QUERY_STRING'];
|
// $self .= "?".$_SERVER['QUERY_STRING'];
|
||||||
}
|
// }
|
||||||
|
$self = e_REQUEST_URI;
|
||||||
|
|
||||||
$jump = "";
|
$jump = "";
|
||||||
$url = "";
|
$url = "";
|
||||||
if($mode==FALSE){
|
if($mode==FALSE){
|
||||||
$jump = "onchange='urljump(this.options[selectedIndex].value)'";
|
$jump = "onchange='urljump(this.options[selectedIndex].value)'";
|
||||||
$url = e_BASE."rate.php?";
|
$url = e_HTTP."rate.php?";
|
||||||
}
|
}
|
||||||
|
|
||||||
$str = $text."
|
$str = $text."
|
||||||
@@ -177,14 +174,14 @@ class rater {
|
|||||||
if($ratearray = $this -> getrating($table, $id, $userid)){
|
if($ratearray = $this -> getrating($table, $id, $userid)){
|
||||||
if($ratearray[1] > 0){
|
if($ratearray[1] > 0){
|
||||||
for($c=1; $c<= $ratearray[1]; $c++){
|
for($c=1; $c<= $ratearray[1]; $c++){
|
||||||
$rate .= "<img src='".e_IMAGE."rate/box.png' alt='' style='height:8px; vertical-align:middle' />";
|
$rate .= "<img src='".e_IMAGE_ABS."rate/box.png' alt='' style='height:8px; vertical-align:middle' />";
|
||||||
}
|
}
|
||||||
if($ratearray[1] < 10){
|
if($ratearray[1] < 10){
|
||||||
for($c=9; $c>=$ratearray[1]; $c--){
|
for($c=9; $c>=$ratearray[1]; $c--){
|
||||||
$rate .= "<img src='".e_IMAGE."rate/empty.png' alt='' style='height:8px; vertical-align:middle' />";
|
$rate .= "<img src='".e_IMAGE_ABS."rate/empty.png' alt='' style='height:8px; vertical-align:middle' />";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$rate .= "<img src='".e_IMAGE."rate/boxend.png' alt='' style='height:8px; vertical-align:middle' />";
|
$rate .= "<img src='".e_IMAGE_ABS."rate/boxend.png' alt='' style='height:8px; vertical-align:middle' />";
|
||||||
if($ratearray[2] == ""){ $ratearray[2] = 0; }
|
if($ratearray[2] == ""){ $ratearray[2] = 0; }
|
||||||
$rate .= " ".$ratearray[1].".".$ratearray[2];
|
$rate .= " ".$ratearray[1].".".$ratearray[2];
|
||||||
if(!$userid){
|
if(!$userid){
|
||||||
@@ -221,4 +218,3 @@ class rater {
|
|||||||
return $sql -> db_Delete("rate", "rate_itemid='{$id}' AND rate_table='{$table}'");
|
return $sql -> db_Delete("rate", "rate_itemid='{$id}' AND rate_table='{$table}'");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
?>
|
|
||||||
|
@@ -76,6 +76,13 @@ define("LAN_EURL_USER_DEFAULT_DESCR", "Legacy direct URLs. Example: http://yours
|
|||||||
define("LAN_EURL_USER_REWRITE_LABEL", "User Friendly URLs (mod_rewrite)");
|
define("LAN_EURL_USER_REWRITE_LABEL", "User Friendly URLs (mod_rewrite)");
|
||||||
define("LAN_EURL_USER_REWRITE_DESCR", "Search engine and user friendly URLs. <br />Example: http://yoursite.com/user/UserDisplayName");
|
define("LAN_EURL_USER_REWRITE_DESCR", "Search engine and user friendly URLs. <br />Example: http://yoursite.com/user/UserDisplayName");
|
||||||
|
|
||||||
|
// Users
|
||||||
|
define("LAN_EURL_CORE_PAGE", "Custom Pages");
|
||||||
|
define("LAN_EURL_PAGE_DEFAULT_LABEL", "Default");
|
||||||
|
define("LAN_EURL_PAGE_DEFAULT_DESCR", "Legacy direct URLs. Example: http://yoursite.com/page.php?1");
|
||||||
|
define("LAN_EURL_PAGE_SEF_LABEL", "User Friendly URLs");
|
||||||
|
define("LAN_EURL_PAGE_SEF_DESCR", "Search engine and user friendly URLs. <br />Example: http://yoursite.com/page/Page-Name");
|
||||||
|
|
||||||
// Search
|
// Search
|
||||||
define("LAN_EURL_CORE_SEARCH", "Search");
|
define("LAN_EURL_CORE_SEARCH", "Search");
|
||||||
define("LAN_EURL_SEARCH_DEFAULT_LABEL", "Default Search URL");
|
define("LAN_EURL_SEARCH_DEFAULT_LABEL", "Default Search URL");
|
||||||
|
@@ -1,25 +0,0 @@
|
|||||||
<?php
|
|
||||||
/*
|
|
||||||
+ ----------------------------------------------------------------------------+
|
|
||||||
| e107 website system
|
|
||||||
|
|
|
||||||
| Copyright (c) e107 Inc. 2008-2009
|
|
||||||
| http://e107.org
|
|
||||||
|
|
|
||||||
| Released under the terms and conditions of the
|
|
||||||
| GNU General Public License (http://gnu.org).
|
|
||||||
|
|
|
||||||
| $Source: /cvs_backup/e107_0.8/e107_plugins/page/templates/page_template.php,v $
|
|
||||||
| $Revision$
|
|
||||||
| $Date$
|
|
||||||
| $Author$
|
|
||||||
+----------------------------------------------------------------------------+
|
|
||||||
*/
|
|
||||||
|
|
||||||
$PAGE_TEMPLATE['default'] = "<!-- Default -->";
|
|
||||||
|
|
||||||
$PAGE_TEMPLATE['other1'] = "<!-- Other -->";
|
|
||||||
|
|
||||||
$PAGE_TEMPLATE['other2'] = "<!-- Other2 -->";
|
|
||||||
|
|
||||||
?>
|
|
@@ -90,7 +90,7 @@ class siteinfo_shortcodes // must match the folder name of the plugin.
|
|||||||
|
|
||||||
function sc_theme_disclaimer($parm)
|
function sc_theme_disclaimer($parm)
|
||||||
{
|
{
|
||||||
global $pref;
|
$pref = e107::getPref();
|
||||||
return (defined('THEME_DISCLAIMER') && $pref['displaythemeinfo'] ? THEME_DISCLAIMER : '');
|
return (defined('THEME_DISCLAIMER') && $pref['displaythemeinfo'] ? THEME_DISCLAIMER : '');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -2,16 +2,14 @@
|
|||||||
/*
|
/*
|
||||||
* e107 website system
|
* e107 website system
|
||||||
*
|
*
|
||||||
* Copyright (C) 2008-2009 e107 Inc (e107.org)
|
* Copyright (C) e107 Inc (e107.org)
|
||||||
* Released under the terms and conditions of the
|
* Released under the terms and conditions of the
|
||||||
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
|
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
|
||||||
*
|
*
|
||||||
* Tagwords Admin
|
* Tagwords Admin
|
||||||
*
|
*
|
||||||
* $Source: /cvs_backup/e107_0.8/e107_plugins/tagwords/admin_tagwords_config.php,v $
|
* $URL$
|
||||||
* $Revision$
|
* $Id$
|
||||||
* $Date$
|
|
||||||
* $Author$
|
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@@ -1,5 +1,10 @@
|
|||||||
<?php
|
<?php
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2008-2011 e107 Inc (e107.org), Licensed under GNU GPL (http://www.gnu.org/licenses/gpl.txt)
|
||||||
|
* $Id$
|
||||||
|
*
|
||||||
|
* Tagwords Language File
|
||||||
|
*/
|
||||||
define("LAN_TAG_INS_1", "Tagwords");
|
define("LAN_TAG_INS_1", "Tagwords");
|
||||||
define("LAN_TAG_INS_2", "A fully featured Tagword system");
|
define("LAN_TAG_INS_2", "A fully featured Tagword system");
|
||||||
define("LAN_TAG_INS_3", "Configure TagWords");
|
define("LAN_TAG_INS_3", "Configure TagWords");
|
||||||
|
@@ -23,6 +23,7 @@ class e_tagwords_page
|
|||||||
$this->row = $this->getRecord($id);
|
$this->row = $this->getRecord($id);
|
||||||
}
|
}
|
||||||
$url = e_BASE."page.php?".$this->row['page_id'];
|
$url = e_BASE."page.php?".$this->row['page_id'];
|
||||||
|
$url = e107::getUrl()->create('page/view', $this->row, 'allow=page_id,page_title,page_sef');
|
||||||
return "<a href='".$url."'>".$this->e107->tp->toHTML($this->row['page_title'], TRUE, '')."</a>";
|
return "<a href='".$url."'>".$this->e107->tp->toHTML($this->row['page_title'], TRUE, '')."</a>";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -814,4 +814,9 @@ h2.caption { font-size: 200%; font-weight:bold; }
|
|||||||
#core-frontpage-edit .tbox { width: 80%;}
|
#core-frontpage-edit .tbox { width: 80%;}
|
||||||
#core-frontpage-edit select.tbox { width: 50%;}
|
#core-frontpage-edit select.tbox { width: 50%;}
|
||||||
#core-frontpage-edit .buttons-bar select.tbox { width: 140px; }
|
#core-frontpage-edit .buttons-bar select.tbox { width: 140px; }
|
||||||
#core-frontpage-edit .buttons-bar { clear: both; }
|
#core-frontpage-edit .buttons-bar { clear: both; }
|
||||||
|
|
||||||
|
/** Custom Pages Front-end **/
|
||||||
|
.cpage-nav { padding: 5px; margin: 0px 5px 10px 10px; }
|
||||||
|
a.cpage-np { font-size: 14px; }
|
||||||
|
a.cpage-np.current { text-decoration: none; }
|
@@ -74,4 +74,31 @@ $NEXTPREV_TEMPLATE['dropdown_items_end'] = '</select>';
|
|||||||
//$NEXTPREV_TEMPLATE['dropdown_separator'] = '<span class="nextprev-sep"><!-- --></span>';
|
//$NEXTPREV_TEMPLATE['dropdown_separator'] = '<span class="nextprev-sep"><!-- --></span>';
|
||||||
$NEXTPREV_TEMPLATE['dropdown_separator'] = '';
|
$NEXTPREV_TEMPLATE['dropdown_separator'] = '';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Default Page core area navigation
|
||||||
|
*/
|
||||||
|
$NEXTPREV_TEMPLATE['page_start'] = '
|
||||||
|
<!-- Start of Next/Prev -->
|
||||||
|
<div class="cpage-nav">
|
||||||
|
';
|
||||||
|
|
||||||
|
$NEXTPREV_TEMPLATE['page_end'] = '
|
||||||
|
</div>
|
||||||
|
<!-- End of Next/Prev -->
|
||||||
|
';
|
||||||
|
|
||||||
|
$NEXTPREV_TEMPLATE['page_nav_caption'] = '';
|
||||||
|
|
||||||
|
$NEXTPREV_TEMPLATE['page_nav_first'] = '';
|
||||||
|
$NEXTPREV_TEMPLATE['page_nav_prev'] = '';
|
||||||
|
$NEXTPREV_TEMPLATE['page_nav_last'] = '';
|
||||||
|
$NEXTPREV_TEMPLATE['page_nav_next'] = '';
|
||||||
|
|
||||||
|
$NEXTPREV_TEMPLATE['page_items_start'] = '';
|
||||||
|
$NEXTPREV_TEMPLATE['page_item'] = '{bullet} <a class="cpage-np" href="{url}" title="{url_label}">{label}</a>';
|
||||||
|
$NEXTPREV_TEMPLATE['page_item_current'] = '{bullet} <a class="cpage-np current" href="#" onclick="return false;" title="{url_label}">{label}</a>';
|
||||||
|
$NEXTPREV_TEMPLATE['page_items_end'] = '';
|
||||||
|
|
||||||
|
//$NEXTPREV_TEMPLATE['default_separator'] = '<span class="nextprev-sep"><!-- --></span>';
|
||||||
|
$NEXTPREV_TEMPLATE['page_separator'] = '<br />';
|
||||||
?>
|
?>
|
97
e107_themes/templates/page_template.php
Normal file
97
e107_themes/templates/page_template.php
Normal file
@@ -0,0 +1,97 @@
|
|||||||
|
<?php
|
||||||
|
/*
|
||||||
|
* Copyright (C) e107 Inc (e107.org), Licensed under GNU GPL (http://www.gnu.org/licenses/gpl.txt)
|
||||||
|
* $Id$
|
||||||
|
*
|
||||||
|
* Page tempaltes - under construction
|
||||||
|
*/
|
||||||
|
global $sc_style;
|
||||||
|
|
||||||
|
$sc_style['CPAGEAUTHOR|default']['pre'] = '';
|
||||||
|
$sc_style['CPAGEAUTHOR|default']['post'] = ", ";
|
||||||
|
|
||||||
|
$sc_style['CPAGESUBTITLE|default']['pre'] = '<h2>';
|
||||||
|
$sc_style['CPAGESUBTITLE|default']['post'] = '</h2>';
|
||||||
|
|
||||||
|
$sc_style['CPAGEMESSAGE|default']['pre'] = '';
|
||||||
|
$sc_style['CPAGEMESSAGE|default']['post'] = '<div class="clear"><!-- --></div>';
|
||||||
|
|
||||||
|
$sc_style['CPAGENAV|default']['pre'] = '<div class="f-right">';
|
||||||
|
$sc_style['CPAGENAV|default']['post'] = '</div>';
|
||||||
|
|
||||||
|
#### default template - BC ####
|
||||||
|
// used only for parsing comment outside of the page tablerender-ed content
|
||||||
|
// leave empty if you integrate page comments inside the main page template
|
||||||
|
$PAGE_TEMPLATE['default']['page'] = '
|
||||||
|
{PAGE}
|
||||||
|
{PAGECOMMENTS}
|
||||||
|
';
|
||||||
|
|
||||||
|
// always used - it's inside the {PAGE} sc from 'page' template
|
||||||
|
$PAGE_TEMPLATE['default']['start'] = '<div class="cpage_body">';
|
||||||
|
|
||||||
|
// page body
|
||||||
|
$PAGE_TEMPLATE['default']['body'] = '
|
||||||
|
{CPAGEMESSAGE|default}
|
||||||
|
|
||||||
|
<div class="f-right">{CPAGEAUTHOR|default}{CPAGEDATE|default}</div>
|
||||||
|
{CPAGESUBTITLE|default}
|
||||||
|
<div class="clear"><!-- --></div>
|
||||||
|
|
||||||
|
{CPAGENAV|default}
|
||||||
|
{CPAGEBODY|default}
|
||||||
|
|
||||||
|
<div class="clear"><!-- --></div>
|
||||||
|
{CPAGERATING|default}
|
||||||
|
';
|
||||||
|
|
||||||
|
// used only when password authorization is required
|
||||||
|
$PAGE_TEMPLATE['default']['authorize'] = '
|
||||||
|
<div class="cpage-restrict">
|
||||||
|
{message}
|
||||||
|
{form_open}
|
||||||
|
<h2>{caption}</h2>
|
||||||
|
<div clas="center">{label} {password} {submit}</div>
|
||||||
|
{form_close}
|
||||||
|
</div>
|
||||||
|
';
|
||||||
|
|
||||||
|
// used when access is denied (restriction by class)
|
||||||
|
$PAGE_TEMPLATE['default']['restricted'] = '
|
||||||
|
{text}
|
||||||
|
';
|
||||||
|
|
||||||
|
// used when page is not found
|
||||||
|
$PAGE_TEMPLATE['default']['notfound'] = '
|
||||||
|
{text}
|
||||||
|
';
|
||||||
|
|
||||||
|
// always used
|
||||||
|
$PAGE_TEMPLATE['default']['end'] = '</div>';
|
||||||
|
|
||||||
|
// options per template - disable table render
|
||||||
|
$PAGE_TEMPLATE['default']['noTableRender'] = false;
|
||||||
|
|
||||||
|
// define different tablerender mode here
|
||||||
|
$PAGE_TEMPLATE['default']['tableRender'] = 'cpage';
|
||||||
|
|
||||||
|
|
||||||
|
#### No table render example template ####
|
||||||
|
$PAGE_TEMPLATE['custom']['start'] = '<div class="cpage_body">';
|
||||||
|
|
||||||
|
$PAGE_TEMPLATE['custom']['body'] = '';
|
||||||
|
|
||||||
|
$PAGE_TEMPLATE['custom']['authorize'] = '
|
||||||
|
|
||||||
|
';
|
||||||
|
|
||||||
|
$PAGE_TEMPLATE['custom']['restricted'] = '
|
||||||
|
|
||||||
|
';
|
||||||
|
|
||||||
|
$PAGE_TEMPLATE['custom']['end'] = '</div>';
|
||||||
|
|
||||||
|
|
||||||
|
$PAGE_TEMPLATE['custom']['noTableRender'] = true;
|
||||||
|
$PAGE_TEMPLATE['custom']['tableRender'] = '';
|
||||||
|
|
546
page.php
546
page.php
@@ -1,230 +1,335 @@
|
|||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
+ ----------------------------------------------------------------------------+
|
* e107 website system
|
||||||
| e107 website system
|
*
|
||||||
|
|
* Copyright (C) e107 Inc (e107.org)
|
||||||
| Copyright (C) 2008-2009 e107 Inc
|
* Released under the terms and conditions of the
|
||||||
| http://e107.org
|
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
|
||||||
|
|
*
|
||||||
|
|
* URL and front controller Management
|
||||||
| Released under the terms and conditions of the
|
*
|
||||||
| GNU General Public License (http://gnu.org).
|
* $URL$
|
||||||
|
|
* $Id$
|
||||||
| $Source: /cvs_backup/e107_0.8/page.php,v $
|
|
||||||
| $Revision$
|
|
||||||
| $Date$
|
|
||||||
| $Author$
|
|
||||||
|
|
|
||||||
+----------------------------------------------------------------------------+
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
require_once("class2.php");
|
require_once("class2.php");
|
||||||
include_lan(e_LANGUAGEDIR.e_LANGUAGE.'/lan_'.e_PAGE);
|
e107::coreLan('page');
|
||||||
|
|
||||||
|
$e107CorePage = new pageClass(false);
|
||||||
|
|
||||||
$page = new pageClass();
|
|
||||||
if(isset($_POST['enterpw']))
|
|
||||||
{
|
|
||||||
$page -> setPageCookie();
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!e_QUERY)
|
if(!e_QUERY)
|
||||||
{
|
{
|
||||||
require_once(HEADERF);
|
require_once(HEADERF);
|
||||||
$tmp = $page -> listPages();
|
$tmp = $e107CorePage->listPages();
|
||||||
if(is_array($tmp))
|
if(is_array($tmp))
|
||||||
{
|
{
|
||||||
$ns -> tablerender($tmp['title'], $tmp['text']);
|
$ns->tablerender($tmp['title'], $tmp['text']);
|
||||||
require_once(FOOTERF);
|
require_once(FOOTERF);
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
||||||
$cacheString = 'page_'.$page->pageID;
|
$e107CorePage->processViewPage();
|
||||||
$cachePageTitle = 'page-t_'.$page->pageID;
|
|
||||||
|
require_once(HEADERF);
|
||||||
if($cacheData = $e107cache->retrieve($cacheString))
|
|
||||||
{
|
echo $e107CorePage->showPage();
|
||||||
|
|
||||||
list($pagetitle,$comment_flag) = explode("^",$e107cache->retrieve($cachePageTitle));
|
require_once(FOOTERF);
|
||||||
define("e_PAGETITLE", $pagetitle);
|
exit;
|
||||||
require_once(HEADERF);
|
|
||||||
echo $cacheData;
|
|
||||||
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$e107_core_custom_pages = $page -> showPage();
|
|
||||||
define("e_PAGETITLE", $e107_core_custom_pages['title']);
|
|
||||||
require_once(HEADERF);
|
|
||||||
|
|
||||||
if ($e107_core_custom_pages['err']) // Need to display error block after header defined
|
|
||||||
{
|
|
||||||
$ns -> tablerender($e107_core_custom_pages['title'], $e107_core_custom_pages['text'],"cpage");
|
|
||||||
require_once(FOOTERF);
|
|
||||||
exit;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($e107_core_custom_pages['cachecontrol'] == TRUE)
|
|
||||||
{
|
|
||||||
ob_start();
|
|
||||||
$ns -> tablerender($e107_core_custom_pages['title'], $e107_core_custom_pages['text'],"cpage");
|
|
||||||
$cache_data = ob_get_flush();
|
|
||||||
$e107cache->set($cacheString, $cache_data);
|
|
||||||
$e107cache->set($cachePageTitle, $e107_core_custom_pages['title']."^".$e107_core_custom_pages['comment_flag']);
|
|
||||||
$comment_flag = $e107_core_custom_pages['comment_flag'];
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$ns -> tablerender($e107_core_custom_pages['title'], $e107_core_custom_pages['text'],"cpage");
|
|
||||||
$comment_flag = $e107_core_custom_pages['comment_flag'];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$page -> title = $e107_core_custom_pages['title'];
|
|
||||||
if($com = $page -> pageComment($comment_flag))
|
|
||||||
{
|
|
||||||
echo $com['comment'].$com['comment_form'];
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
require_once(FOOTERF);
|
|
||||||
|
|
||||||
/* EOF */
|
/* EOF */
|
||||||
|
|
||||||
class pageClass
|
class pageClass
|
||||||
{
|
{
|
||||||
|
|
||||||
var $bullet; /* bullet image */
|
public $bullet; /* bullet image */
|
||||||
var $pageText; /* main text of selected page, not parsed */
|
public $pageText; /* main text of selected page, not parsed */
|
||||||
var $multipageFlag; /* flag - true if multiple page page, false if not */
|
public $multipageFlag; /* flag - true if multiple page page, false if not */
|
||||||
var $pageTitles; /* array containing page titles */
|
public $pageTitles; /* array containing page titles */
|
||||||
var $pageID; /* id number of page to be displayed */
|
public $pageID; /* id number of page to be displayed */
|
||||||
var $pageSelected; /* selected page of multiple page page */
|
public $pageSelected; /* selected page of multiple page page */
|
||||||
var $pageToRender; /* parsed page to be sent to screen */
|
public $pageToRender; /* parsed page to be sent to screen */
|
||||||
var $debug; /* temp debug flag */
|
public $debug; /* temp debug flag */
|
||||||
var $title; /* title of page, it if has one (as defined in [newpage=title] tag */
|
public $title; /* title of page, it if has one (as defined in [newpage=title] tag */
|
||||||
|
public $page; /* page DB data */
|
||||||
|
public $batch; /* shortcode batch object */
|
||||||
function pageClass($debug=FALSE)
|
public $template; /* current template array */
|
||||||
|
protected $authorized; /* authorized status */
|
||||||
|
public $cacheString; /* current page cache string */
|
||||||
|
public $cacheTitleString; /* current page title and comment flag cache string */
|
||||||
|
public $cacheData = null; /* cache data */
|
||||||
|
|
||||||
|
function __construct($debug=FALSE)
|
||||||
{
|
{
|
||||||
/* constructor */
|
/* constructor */
|
||||||
|
|
||||||
$tmp = explode(".", e_QUERY);
|
$tmp = explode(".", e_QUERY);
|
||||||
$this -> pageID = intval($tmp[0]);
|
$this->pageID = intval($tmp[0]);
|
||||||
$this -> pageSelected = (isset($tmp[1]) ? intval($tmp[1]) : 0);
|
$this->pageSelected = (isset($tmp[1]) ? intval($tmp[1]) : 0);
|
||||||
$this -> pageTitles = array();
|
$this->pageTitles = array();
|
||||||
$this->bullet = '';
|
$this->bullet = '';
|
||||||
|
|
||||||
|
// TODO nq_ (no query) cache string
|
||||||
|
$this->cacheString = 'page_'.$this->pageID.'_'.$this->pageSelected;
|
||||||
|
$this->cacheTitleString = 'page-t_'.$this->pageID.'_'.$this->pageSelected;
|
||||||
|
|
||||||
if(defined('BULLET'))
|
if(defined('BULLET'))
|
||||||
{
|
{
|
||||||
$this->bullet = '<img src="'.THEME.'images/'.BULLET.'" alt="" class="icon" />';
|
$this->bullet = '<img src="'.THEME_ABS.'images/'.BULLET.'" alt="" class="icon" />';
|
||||||
}
|
}
|
||||||
elseif(file_exists(THEME.'images/bullet2.gif'))
|
elseif(file_exists(THEME.'images/bullet2.gif'))
|
||||||
{
|
{
|
||||||
$this->bullet = '<img src="'.THEME.'images/bullet2.gif" alt="" class="icon" />';
|
$this->bullet = '<img src="'.THEME_ABS.'images/bullet2.gif" alt="" class="icon" />';
|
||||||
}
|
}
|
||||||
|
|
||||||
$this -> debug = $debug;
|
$this->debug = $debug;
|
||||||
|
|
||||||
if($this -> debug)
|
if($this->debug)
|
||||||
{
|
{
|
||||||
$this -> debug = "<b>PageID</b> ".$this -> pageID." <br />";
|
$this->debug = "<b>PageID</b> ".$this->pageID." <br />";
|
||||||
$this -> debug .= "<b>pageSelected</b> ".$this -> pageSelected." <br />";
|
$this->debug .= "<b>pageSelected</b> ".$this->pageSelected." <br />";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO template for page list
|
||||||
function listPages()
|
function listPages()
|
||||||
{
|
{
|
||||||
global $pref, $sql, $ns;
|
$sql = e107::getDb();
|
||||||
|
if(!e107::getPref('listPages', false))
|
||||||
if(!isset($pref['listPages']) || !$pref['listPages'])
|
|
||||||
{
|
{
|
||||||
message_handler("MESSAGE", LAN_PAGE_1);
|
message_handler("MESSAGE", LAN_PAGE_1);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if(!$sql -> db_Select("page", "*", "page_theme='' AND page_class IN (".USERCLASS_LIST.") "))
|
if(!$sql->db_Select("page", "*", "page_theme='' AND page_class IN (".USERCLASS_LIST.") "))
|
||||||
{
|
{
|
||||||
$text = LAN_PAGE_2;
|
$text = LAN_PAGE_2;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$pageArray = $sql -> db_getList();
|
$pageArray = $sql->db_getList();
|
||||||
foreach($pageArray as $page)
|
foreach($pageArray as $page)
|
||||||
{
|
{
|
||||||
extract($page);
|
$url = e107::getUrl()->create('page/view', $page, 'allow=page_id,page_title,page_sef');
|
||||||
$text .= $this -> bullet." <a href='".e_BASE."page.php?".$page_id."'>".$page_title."</a><br />";
|
$text .= $this->bullet." <a href='".$url."'>".$page['page_title']."</a><br />";
|
||||||
}
|
}
|
||||||
$ns -> tablerender(LAN_PAGE_11, $text,"cpage_list");
|
e107::getParser()->tablerender(LAN_PAGE_11, $text,"cpage_list");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function showPage()
|
function processViewPage()
|
||||||
{
|
{
|
||||||
global $sql, $ns;
|
if($this->checkCache())
|
||||||
$query = "SELECT p.*, u.user_id, u.user_name FROM #page AS p
|
{
|
||||||
LEFT JOIN #user AS u ON p.page_author = u.user_id
|
return;
|
||||||
WHERE p.page_id='".intval($this -> pageID)."' AND p.page_class IN (".USERCLASS_LIST.") ";
|
}
|
||||||
|
|
||||||
|
$sql = e107::getDb();
|
||||||
|
|
||||||
if(!$sql -> db_Select_gen($query) && !$_GET['elan'])
|
$query = "SELECT p.*, u.user_id, u.user_name, user_login FROM #page AS p
|
||||||
|
LEFT JOIN #user AS u ON p.page_author = u.user_id
|
||||||
|
WHERE p.page_id=".intval($this->pageID); // REMOVED AND p.page_class IN (".USERCLASS_LIST.") - permission check is done later
|
||||||
|
|
||||||
|
if(!$sql->db_Select_gen($query))
|
||||||
{
|
{
|
||||||
$ret['title'] = LAN_PAGE_12; // ***** CHANGED
|
$ret['title'] = LAN_PAGE_12; // ***** CHANGED
|
||||||
|
$ret['sub_title'] = '';
|
||||||
$ret['text'] = LAN_PAGE_3;
|
$ret['text'] = LAN_PAGE_3;
|
||||||
$ret['comment_flag'] = '';
|
$ret['comments'] = '';
|
||||||
|
$ret['rating'] = '';
|
||||||
|
$ret['np'] = '';
|
||||||
$ret['err'] = TRUE;
|
$ret['err'] = TRUE;
|
||||||
return $ret;
|
$ret['cachecontrol'] = false;
|
||||||
|
$this->authorized = 'nf';
|
||||||
|
$this->template = e107::getCoreTemplate('page', 'default');
|
||||||
|
$this->batch = e107::getScBatch('page')->setParserVars(new e_vars($ret))->setScVar('page', array());
|
||||||
|
|
||||||
|
define("e_PAGETITLE", $ret['title']);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
extract($sql -> db_Fetch());
|
$this->page = $sql->db_Fetch();
|
||||||
|
|
||||||
$this -> pageText = $page_text;
|
$this->template = e107::getCoreTemplate('page', vartrue($this->page['page_template'], 'default'));
|
||||||
|
if(empty($this->template)) $this->template = e107::getCoreTemplate('page', 'default');
|
||||||
|
|
||||||
|
$this->batch = e107::getScBatch('page');
|
||||||
|
|
||||||
$this -> pageCheckPerms($page_class, $page_password, $page_title);
|
$this->pageText = $this->page['page_text'];
|
||||||
|
|
||||||
if($this -> debug)
|
$this->pageCheckPerms($this->page['page_class'], $this->page['page_password'], $this->page['page_title']);
|
||||||
|
|
||||||
|
if($this->debug)
|
||||||
{
|
{
|
||||||
echo "<b>pageText</b> ".$this -> pageText." <br />";
|
echo "<b>pageText</b> ".$this->pageText." <br />";
|
||||||
}
|
}
|
||||||
|
|
||||||
$this -> parsePage();
|
$this->parsePage();
|
||||||
|
|
||||||
$gen = new convert;
|
$pagenav = $rating = $comments = '';
|
||||||
|
if($this->authorized === true)
|
||||||
$text = ''; // Notice removal
|
|
||||||
$ptitle = "";
|
|
||||||
|
|
||||||
if($page_author)
|
|
||||||
{
|
{
|
||||||
$text .= "<div class='smalltext cpage_author' style='text-align:right'>".$user_name.", ".$gen->convert_date($page_datestamp, "long")."</div><br />";
|
$pagenav = $this->pageIndex();
|
||||||
|
$rating = $this->pageRating($this->page['page_rating_flag']);
|
||||||
|
$comments = $this->pageComment($this->page['page_comment_flag']);
|
||||||
}
|
}
|
||||||
|
|
||||||
if($this -> title)
|
$ret['title'] = $this->page['page_title'];
|
||||||
{
|
$ret['sub_title'] = $this->title;
|
||||||
$ptitle = "<div class='cpage_title'>".$this -> title."</div>";
|
$ret['text'] = $this->pageToRender;
|
||||||
}
|
$ret['np'] = $pagenav;
|
||||||
|
$ret['rating'] = $rating;
|
||||||
$text .= $this -> pageToRender;
|
$ret['comments'] = $comments;
|
||||||
$text .= $this -> pageIndex();
|
|
||||||
$text .= $this -> pageRating($page_rating_flag);
|
|
||||||
|
|
||||||
$ret['title'] = $page_title;
|
|
||||||
$ret['text'] = $ptitle."<div class='cpage_body'>".$text."</div>";
|
|
||||||
$ret['comment_flag'] = $page_comment_flag;
|
|
||||||
$ret['err'] = FALSE;
|
$ret['err'] = FALSE;
|
||||||
$ret['cachecontrol'] = (isset($page_password) && !$page_password); // Don't cache password protected pages
|
$ret['cachecontrol'] = (isset($this->page['page_password']) && !$this->page['page_password'] && $this->authorized === true); // Don't cache password protected pages
|
||||||
|
|
||||||
return $ret;
|
$this->batch->setParserVars(new e_vars($ret))->setScVar('page', $this->page);
|
||||||
|
|
||||||
|
define('e_PAGETITLE', $ret['title']);
|
||||||
|
|
||||||
|
//return $ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
function parsePage()
|
public function checkCache()
|
||||||
{
|
{
|
||||||
global $tp;
|
$e107cache = e107::getCache();
|
||||||
$this -> pageTitles = array(); // Notice removal
|
$cacheData = $e107cache->retrieve($this->cacheString);
|
||||||
|
if(false !== $cacheData)
|
||||||
|
{
|
||||||
|
$this->cacheData = array();
|
||||||
|
$this->cacheData['PAGE'] = $cacheData;
|
||||||
|
list($pagetitle, $comment_flag) = explode("^",$e107cache->retrieve($this->cacheTitleString));
|
||||||
|
$this->cacheData['TITLE'] = $pagetitle;
|
||||||
|
$this->cacheData['COMMENT_FLAG'] = $comment_flag;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function setCache($data, $title, $comment_flag)
|
||||||
|
{
|
||||||
|
$e107cache = e107::getCache();
|
||||||
|
$e107cache->set($this->cacheString, $data);
|
||||||
|
$e107cache->set($this->cacheTitleString, $title."^".$this->page['page_comment_flag']);
|
||||||
|
}
|
||||||
|
|
||||||
if(preg_match_all("/\[newpage.*?\]/si", $this -> pageText, $pt))
|
|
||||||
|
public function renderCache()
|
||||||
|
{
|
||||||
|
$comments = '';
|
||||||
|
if($this->cacheData['COMMENT_FLAG'])
|
||||||
|
{
|
||||||
|
$vars = new e_vars(array('comments' => $this->pageComment(true)));
|
||||||
|
$comments = e107::getScBatch('page')->setParserVars($vars)->cpagecomments();
|
||||||
|
}
|
||||||
|
define('e_PAGETITLE', $this->cacheData['TITLE']);
|
||||||
|
if($this->debug)
|
||||||
|
{
|
||||||
|
echo "<b>Reading page from cache</b><br />";
|
||||||
|
}
|
||||||
|
return str_replace('[[PAGECOMMENTS]]', $comments, $this->cacheData['PAGE']);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function showPage()
|
||||||
|
{
|
||||||
|
if(null !== $this->cacheData)
|
||||||
|
{
|
||||||
|
return $this->renderCache();
|
||||||
|
}
|
||||||
|
if(true === $this->authorized)
|
||||||
|
{
|
||||||
|
$vars = $this->batch->getParserVars();
|
||||||
|
|
||||||
|
$template = str_replace('{PAGECOMMENTS}', '[[PAGECOMMENTS]]', $this->template['start'].$this->template['body'].$this->template['end']);
|
||||||
|
$ret = $this->renderPage($template);
|
||||||
|
|
||||||
|
if(!empty($this->template['page']))
|
||||||
|
{
|
||||||
|
$ret = str_replace(array('{PAGE}', '{PAGECOMMENTS}'), array($ret, '[[PAGECOMMENTS]]'), $this->template['page']);
|
||||||
|
}
|
||||||
|
$ret = e107::getParser()->parseTemplate($ret, true, $this->batch);
|
||||||
|
|
||||||
|
if($vars->cachecontrol) $this->setCache($ret, $this->batch->sc_cpagetitle(), $this->page['page_comment_flag']);
|
||||||
|
|
||||||
|
return str_replace('[[PAGECOMMENTS]]', $this->batch->cpagecomments(), $ret);
|
||||||
|
}
|
||||||
|
|
||||||
|
$extend = new e_vars;
|
||||||
|
$vars = $this->batch->getParserVars();
|
||||||
|
|
||||||
|
// reset batch data
|
||||||
|
$this->batch->setParserVars(null)->setScVar('page', array());
|
||||||
|
|
||||||
|
// copy some data
|
||||||
|
$extend->title = $vars->title;
|
||||||
|
$extend->message = e107::getMessage()->render();
|
||||||
|
|
||||||
|
switch ($this->authorized)
|
||||||
|
{
|
||||||
|
case 'class':
|
||||||
|
$extend->text = LAN_PAGE_6;
|
||||||
|
$template = $this->template['start'].$this->template['restricted'].$this->template['end'];
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'pw':
|
||||||
|
$frm = e107::getForm();
|
||||||
|
$extend->caption = LAN_PAGE_8;
|
||||||
|
$extend->label = LAN_PAGE_9;
|
||||||
|
$extend->password = $frm->password('page_pw');
|
||||||
|
$extend->icon = e_IMAGE_ABS.'generic/password.png';
|
||||||
|
$extend->submit = $frm->submit('submit_page_pw', LAN_PAGE_10);
|
||||||
|
// FIXME - add form open/close e_form methods
|
||||||
|
$extend->form_open = '<form method="post" action="'.e_REQUEST_URI.'" id="pwform">';
|
||||||
|
$extend->form_close = '</form>';
|
||||||
|
$template = $this->template['start'].$this->template['authorize'].$this->template['end'];
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'nf':
|
||||||
|
default:
|
||||||
|
$extend->text = $vars->text;
|
||||||
|
$template = $this->template['start'].$this->template['notfound'].$this->template['end'];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->renderPage($template, $extend);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function renderPage($template, $vars = null)
|
||||||
|
{
|
||||||
|
if(null === $vars)
|
||||||
|
{
|
||||||
|
$ret = e107::getParser()->parseTemplate($template, true, $this->batch);
|
||||||
|
$vars = $this->batch->getParserVars();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$ret = e107::getParser()->simpleParse($template, $vars);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(vartrue($this->template['noTableRender']))
|
||||||
|
{
|
||||||
|
return $ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
$mode = vartrue($this->template['tableRender'], 'cpage');
|
||||||
|
$title = $vars->title;
|
||||||
|
|
||||||
|
return e107::getRender()->tablerender($title, $ret, $mode, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function parsePage()
|
||||||
|
{
|
||||||
|
$tp = e107::getParser();
|
||||||
|
$this->pageTitles = array(); // Notice removal
|
||||||
|
|
||||||
|
if(preg_match_all("/\[newpage.*?\]/si", $this->pageText, $pt))
|
||||||
{
|
{
|
||||||
if (substr($this->pageText, 0, 6) == '[html]')
|
if (substr($this->pageText, 0, 6) == '[html]')
|
||||||
{ // Need to strip html bbcode from wysiwyg on multi-page docs (handled automatically on single pages)
|
{ // Need to strip html bbcode from wysiwyg on multi-page docs (handled automatically on single pages)
|
||||||
@@ -237,18 +342,18 @@ class pageClass
|
|||||||
$this->pageText = substr($this->pageText, 6);
|
$this->pageText = substr($this->pageText, 6);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$pages = preg_split("/\[newpage.*?\]/si", $this -> pageText, -1, PREG_SPLIT_NO_EMPTY);
|
$pages = preg_split("/\[newpage.*?\]/si", $this->pageText, -1, PREG_SPLIT_NO_EMPTY);
|
||||||
$this -> multipageFlag = TRUE;
|
$this->multipageFlag = TRUE;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$this -> pageToRender = $tp -> toHTML($this -> pageText, TRUE, 'BODY');
|
$this->pageToRender = $tp->toHTML($this->pageText, TRUE, 'BODY');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach($pt[0] as $title)
|
foreach($pt[0] as $title)
|
||||||
{
|
{
|
||||||
$this -> pageTitles[] = $title;
|
$this->pageTitles[] = $title;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -264,64 +369,58 @@ class pageClass
|
|||||||
}
|
}
|
||||||
|
|
||||||
$pageCount = count($pages);
|
$pageCount = count($pages);
|
||||||
$titleCount = count($this -> pageTitles);
|
$titleCount = count($this->pageTitles);
|
||||||
/* if the vars above don't match, page 1 has no [newpage] tag, so we need to create one ... */
|
/* if the vars above don't match, page 1 has no [newpage] tag, so we need to create one ... */
|
||||||
|
|
||||||
if($pageCount != $titleCount)
|
if($pageCount != $titleCount)
|
||||||
{
|
{
|
||||||
array_unshift($this -> pageTitles, "[newpage]");
|
array_unshift($this->pageTitles, "[newpage]");
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ok, titles now match pages, rename the titles if needed ... */
|
/* ok, titles now match pages, rename the titles if needed ... */
|
||||||
|
|
||||||
$count =0;
|
$count =0;
|
||||||
foreach($this -> pageTitles as $title)
|
foreach($this->pageTitles as $title)
|
||||||
{
|
{
|
||||||
$titlep = preg_replace("/\[newpage=(.*?)\]/", "\\1", $title);
|
$titlep = preg_replace("/\[newpage=(.*?)\]/", "\\1", $title);
|
||||||
$this -> pageTitles[$count] = ($titlep == "[newpage]" ? LAN_PAGE_13." ".($count+1)." " : $tp -> toHTML($titlep, TRUE, 'TITLE'));
|
$this->pageTitles[$count] = ($titlep == "[newpage]" ? LAN_PAGE_13." ".($count+1) : $tp->toHTML($titlep, TRUE, 'TITLE'));
|
||||||
$count++;
|
$count++;
|
||||||
}
|
}
|
||||||
|
|
||||||
$this -> pageToRender = $tp -> toHTML($pages[$this -> pageSelected], TRUE, 'BODY');
|
$this->pageToRender = $tp->toHTML($pages[$this->pageSelected], TRUE, 'BODY');
|
||||||
$this -> title = (substr($this -> pageTitles[$this -> pageSelected], -1) == ";" ? "" : $this -> pageTitles[$this -> pageSelected]);
|
$this->title = (substr($this->pageTitles[$this->pageSelected], -1) == ";" ? "" : $this->pageTitles[$this->pageSelected]);
|
||||||
|
|
||||||
if($this -> debug)
|
if($this->debug)
|
||||||
{
|
{
|
||||||
echo "<b>multipageFlag</b> ".$this -> multipageFlag." <br />";
|
echo "<b>multipageFlag</b> ".$this->multipageFlag." <br />";
|
||||||
if($this -> multipageFlag)
|
if($this->multipageFlag)
|
||||||
{
|
{
|
||||||
echo "<pre>"; print_r($pages); echo "</pre>";
|
echo "<pre>"; print_r($pages); echo "</pre>";
|
||||||
echo "<b>pageCount</b> ".$pageCount." <br />";
|
echo "<b>pageCount</b> ".$pageCount." <br />";
|
||||||
echo "<b>titleCount</b> ".$titleCount." <br />";
|
echo "<b>titleCount</b> ".$titleCount." <br />";
|
||||||
echo "<pre>"; print_r($this -> pageTitles); echo "</pre>";
|
echo "<pre>"; print_r($this->pageTitles); echo "</pre>";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function pageIndex()
|
function pageIndex()
|
||||||
{
|
{
|
||||||
global $tp,$pref;
|
// Use always nextprev shortcode (with a special default 'page' tempalte)
|
||||||
$itext = '';
|
$titles = implode("|",$this->pageTitles);
|
||||||
if(isset($pref['old_np']) && $pref['old_np'])
|
$total_items = count($this->pageTitles);
|
||||||
{
|
//$parms = $total_items.",1,".$this->pageSelected.",".e_SELF."?".$this->pageID.".[FROM],,$titles";
|
||||||
$count = 0;
|
|
||||||
foreach($this -> pageTitles as $title)
|
$row = $this->page;
|
||||||
{
|
$row['page'] = '--FROM--';
|
||||||
if (!$count) { $itext = "<br /><br />"; }
|
$url = rawurlencode(e107::getUrl()->create('page/view', $row, 'allow=page_id,page_title,page_sef,page'));
|
||||||
$itext .= $this -> bullet." ".($count == $this -> pageSelected ? $title : "<a href='".e_SELF."?".$this -> pageID.".".$count."'>".$title."</a>")."<br />\n";
|
|
||||||
$count++;
|
$parms = 'nonavcount&bullet='.rawurlencode($this->bullet.' ').'&caption=<!-- Empty -->&'.'pagetitle='.rawurlencode($titles).'&tmpl_prefix='.deftrue('PAGE_NEXTPREV_TMPL', 'page').'&total='.$total_items.'&amount=1¤t='.$this->pageSelected.'&url='.$url;
|
||||||
}
|
$itext = ($total_items) ? e107::getParser()->parseTemplate("{NEXTPREV={$parms}}") : "";
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$titles = implode("|",$this -> pageTitles);
|
|
||||||
$total_items = count($this -> pageTitles);
|
|
||||||
$parms = $total_items.",1,".$this -> pageSelected.",".e_SELF."?".$this -> pageID.".[FROM],,$titles";
|
|
||||||
$itext = ($total_items) ? "<div class='nextprev nextprev_custom'>".$tp->parseTemplate("{NEXTPREV={$parms}}")."</div>" : "";
|
|
||||||
}
|
|
||||||
return $itext;
|
return $itext;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// FIXME most probably will fail when cache enabled
|
||||||
function pageRating($page_rating_flag)
|
function pageRating($page_rating_flag)
|
||||||
{
|
{
|
||||||
$rate_text = ''; // Notice removal
|
$rate_text = ''; // Notice removal
|
||||||
@@ -331,13 +430,13 @@ class pageClass
|
|||||||
$rater = new rater;
|
$rater = new rater;
|
||||||
$rate_text = "<br /><table style='width:100%'><tr><td style='width:50%'>";
|
$rate_text = "<br /><table style='width:100%'><tr><td style='width:50%'>";
|
||||||
|
|
||||||
if ($ratearray = $rater->getrating("page", $this -> pageID))
|
if ($ratearray = $rater->getrating("page", $this->pageID))
|
||||||
{
|
{
|
||||||
if ($ratearray[2] == "")
|
if ($ratearray[2] == "")
|
||||||
{
|
{
|
||||||
$ratearray[2] = 0;
|
$ratearray[2] = 0;
|
||||||
}
|
}
|
||||||
$rate_text .= "<img src='".e_IMAGE."rate/box/box".$ratearray[1].".png' alt='' style='vertical-align:middle;' />\n";
|
$rate_text .= "<img src='".e_IMAGE_ABS."rate/box/box".$ratearray[1].".png' alt='' style='vertical-align:middle;' />\n";
|
||||||
$rate_text .= " ".$ratearray[1].".".$ratearray[2]." - ".$ratearray[0]." ";
|
$rate_text .= " ".$ratearray[1].".".$ratearray[2]." - ".$ratearray[0]." ";
|
||||||
$rate_text .= ($ratearray[0] == 1 ? "vote" : "votes");
|
$rate_text .= ($ratearray[0] == 1 ? "vote" : "votes");
|
||||||
}
|
}
|
||||||
@@ -347,9 +446,9 @@ class pageClass
|
|||||||
}
|
}
|
||||||
$rate_text .= "</td><td style='width:50%; text-align:right'>";
|
$rate_text .= "</td><td style='width:50%; text-align:right'>";
|
||||||
|
|
||||||
if (!$rater->checkrated("page", $this -> pageID) && USER)
|
if (!$rater->checkrated("page", $this->pageID) && USER)
|
||||||
{
|
{
|
||||||
$rate_text .= $rater->rateselect(" <b>".LAN_PAGE_4."</b>", "page", $this -> pageID);
|
$rate_text .= $rater->rateselect(" <b>".LAN_PAGE_4."</b>", "page", $this->pageID);
|
||||||
}
|
}
|
||||||
else if(!USER)
|
else if(!USER)
|
||||||
{
|
{
|
||||||
@@ -366,8 +465,6 @@ class pageClass
|
|||||||
|
|
||||||
function pageComment($page_comment_flag)
|
function pageComment($page_comment_flag)
|
||||||
{
|
{
|
||||||
global $sql, $ns, $e107cache, $tp, $comment_shortcodes,$cacheString;
|
|
||||||
|
|
||||||
if($page_comment_flag)
|
if($page_comment_flag)
|
||||||
{
|
{
|
||||||
require_once(e_HANDLER."comment_class.php");
|
require_once(e_HANDLER."comment_class.php");
|
||||||
@@ -375,11 +472,12 @@ class pageClass
|
|||||||
|
|
||||||
if (isset($_POST['commentsubmit']))
|
if (isset($_POST['commentsubmit']))
|
||||||
{
|
{
|
||||||
$cobj->enter_comment($_POST['author_name'], $_POST['comment'], "page", $this -> pageID, $pid, $_POST['subject']);
|
$cobj->enter_comment($_POST['author_name'], $_POST['comment'], "page", $this->pageID, $pid, $_POST['subject']);
|
||||||
$e107cache->clear("comment.page.".$this -> pageID);
|
$e107cache = e107::getCache();
|
||||||
$e107cache->clear($cacheString);
|
$e107cache->clear("comment.page.".$this->pageID);
|
||||||
|
$e107cache->clear($this->cacheString);
|
||||||
}
|
}
|
||||||
return $cobj->compose_comment("page", "comment", $this -> pageID, 0, $this -> title);
|
return $cobj->compose_comment("page", "comment", $this->pageID, 0, $this->title, false, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -390,80 +488,64 @@ class pageClass
|
|||||||
|
|
||||||
if (!check_class($page_class))
|
if (!check_class($page_class))
|
||||||
{
|
{
|
||||||
define("e_PAGETITLE", $page_title);
|
$this->authorized = 'class';
|
||||||
// HEADERF requires that $tp is defined - hence declared as global above.
|
return false;
|
||||||
require_once(HEADERF); // Do header now in case wrong password was entered
|
|
||||||
message_handler("MESSAGE", LAN_PAGE_6);
|
|
||||||
require_once(FOOTERF); exit;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!$page_password)
|
if (!$page_password)
|
||||||
{
|
{
|
||||||
return TRUE;
|
$this->authorized = true;
|
||||||
|
$cookiename = $this->getCookieName();
|
||||||
|
if(isset($_COOKIE[$cookiename])) cookie($cookiename, '', (time() - 2592000));
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(isset($_POST['submit_page_pw']))
|
if(isset($_POST['submit_page_pw']))
|
||||||
{
|
{
|
||||||
if($_POST['page_pw'] == $page_password)
|
if($_POST['page_pw'] == $page_password)
|
||||||
{
|
{
|
||||||
$this -> setPageCookie();
|
$this->setPageCookie();
|
||||||
|
$this->authorized = true;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
e107::getMessage()->addError(LAN_PAGE_7);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$cookiename = "e107page_".$this -> pageID;
|
// TODO - e_COOKIE
|
||||||
|
$cookiename = $this->getCookieName();
|
||||||
|
|
||||||
if(isset($_COOKIE[$cookiename]) && ($_COOKIE[$cookiename] == md5($page_password.USERID)))
|
if(isset($_COOKIE[$cookiename]) && ($_COOKIE[$cookiename] == md5($page_password.USERID)))
|
||||||
{
|
{
|
||||||
|
$this->authorized = true;
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
// Invalid/empty password here
|
// Invalid/empty password here
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$this->authorized = 'pw';
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
define("e_PAGETITLE", $page_title);
|
function getCookieName()
|
||||||
// HEADERF requires that $tp is defined - hence declared as global above.
|
{
|
||||||
require_once(HEADERF); // Do header now in case wrong password was entered
|
return e_COOKIE.'_page_'.$this->pageID;
|
||||||
|
|
||||||
// Need to prompt for password here
|
|
||||||
if (isset($_POST['submit_page_pw']))
|
|
||||||
{
|
|
||||||
message_handler("MESSAGE", LAN_PAGE_7); // Invalid password
|
|
||||||
}
|
|
||||||
|
|
||||||
$pw_entry_text = "
|
|
||||||
<div style='text-align:center; margin-left:auto; margin-right: auto;'>
|
|
||||||
<form method='post' action='".e_SELF."?".e_QUERY."' id='pwform'>
|
|
||||||
<table style='width:100%;' class='fborder'>
|
|
||||||
<tr>
|
|
||||||
<td class='forumheader' colspan='3' style='text-align:center; white-space:nowrap'>".LAN_PAGE_8."</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class='forumheader3' style='width:20%;'>".LAN_PAGE_9.":</td>
|
|
||||||
<td class='forumheader3' style='width: 60%;'><input type='password' id='page_pw' name='page_pw' style='width: 90%;'/></td>
|
|
||||||
<td class='forumheader3' style='width:20%; vertical-align:middle; margin-left:auto; margin-right:auto; text-align:center;'><img src='".e_IMAGE."generic/password.png' alt='' /></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class='forumheader' colspan='3' style='text-align:center;'><input class='button' type='submit' name='submit_page_pw' value='".LAN_PAGE_10."' /></td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
";
|
|
||||||
// Mustn't return to higher level code here
|
|
||||||
|
|
||||||
$ns->tablerender($page_title, $pw_entry_text,"cpage_pw"); // HEADERF also clears $text - hence different variable
|
|
||||||
require_once(FOOTERF);
|
|
||||||
exit;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function setPageCookie()
|
function setPageCookie()
|
||||||
{
|
{
|
||||||
global $pref;
|
if(!$this->pageID || !vartrue($_POST['page_pw'])) return;
|
||||||
|
$pref = e107::getPref();
|
||||||
|
|
||||||
$pref['pageCookieExpire'] = max($pref['pageCookieExpire'], 120);
|
$pref['pageCookieExpire'] = max($pref['pageCookieExpire'], 120);
|
||||||
$hash = md5($_POST['page_pw'].USERID);
|
$hash = md5($_POST['page_pw'].USERID);
|
||||||
cookie("e107page_".e_QUERY, $hash, (time() + $pref['pageCookieExpire']));
|
|
||||||
header("location:".e_SELF."?".e_QUERY);
|
cookie($this->getCookieName(), $hash, (time() + $pref['pageCookieExpire']));
|
||||||
exit;
|
//header("location:".e_SELF."?".e_QUERY);
|
||||||
|
//exit;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user