Files
2025-02-28 08:45:43 +01:00

158 lines
4.5 KiB
PHP

<?php
if (!defined('CMSIMPLE_VERSION') || preg_match('#/page_params/index.php#i',$_SERVER['SCRIPT_NAME']))
{
die('no direct access');
}
/* utf8-marker = äöüß */
// $sn => ./ ge-webdesign.de 2024-01
// adapted for CMSimple 4 and 5 ge-webdesign.de 2012-2023
/**
* Page-Parameters - main index.php
* Plugin (V.2.1-compatible)
*
* Stores page-parameters (heading, template)
* and let the user take control of visibility
* of the page.
* index.php is called by pluginloader and
* manipulates the respective CMSimple-data.
*
* @author Martin Damken
* @link http://www.zeichenkombinat.de
* @version 1.0.05
* @package pluginloader
* @subpackage page_params
*/
/**
* Check if PLUGINLOADER is calling and die if not
*/
if(!defined('PLUGINLOADER_VERSION')){die('Plugin '. basename(dirname(__FILE__)) . ' requires a newer version of the Pluginloader. No direct access.');}
/**
* Add used interests to router
*/
$pd_router -> add_interest('heading');
$pd_router -> add_interest('show_heading');
$pd_router -> add_interest('sitetitle');
$pd_router -> add_interest('show_sitetitle');
$pd_router -> add_interest('template');
$pd_router -> add_interest('published');
$pd_router -> add_interest('show_last_edit');
$pd_router -> add_interest('linked_to_menu');
$pd_router -> add_interest('header_location');
$pd_router -> add_interest('use_header_location');
/**
* Add a tab for admin-menu
*/
$pd_router -> add_tab($tx['page_params']['tab'], $pth['folder']['plugins'].'page_params/page_params_view.php');
/**
* Set template, overwrite CMSimple.
*/
if(isset($pd_current['template'])
&& $pd_current['template'] !== $cf['site']['template']
&& trim($pd_current['template']) !== ''
&& is_dir($pth['folder']['templates'].$pd_current['template'])
)
{
$cf['site']['template'] = $pd_current['template'];
$pth['folder']['template'] = $pth['folder']['templates'].$cf['site']['template'].'/';
$pth['file']['template'] = $pth['folder']['template'].'template.htm';
$pth['file']['stylesheet'] = $pth['folder']['template'].'stylesheet.css';
$pth['folder']['menubuttons'] = $pth['folder']['template'].'menu/';
$pth['folder']['templateimages'] = $pth['folder']['template'].'images/';
}
/**
* Overwrite CMsimple by page-parameters
* but only if not in edit-mode
*/
if(!$edit && $pd_current)
{
if($pd_current['show_heading'] == '1' || $cf['show']['page_headings'] != 'true')
{
if(trim($pd_current['heading']) == '' || $cf['show']['page_headings'] != 'true')
{
if($cf['use']['h1only_pagesplitting'] == 'true')
{
$c[$pd_s] = preg_replace('/(<h1.*class=".*_level[1-6]_page_.*".*>).+(<\/h1>)/isU', '', $c[$pd_s]);
}
else
{
$c[$pd_s] = preg_replace('/(<h[1-'.$cf['menu']['levels'].'].*>).+(<\/h[1-'.$cf['menu']['levels'].']>)/isU', '', $c[$pd_s]);
}
}
else
{
if($cf['use']['h1only_pagesplitting'] == 'true')
{
$c[$pd_s] = preg_replace('/(<h1.*class=".*_level[1-6]_page_.*".*>).+(<\/h1>)/isU','\\1'.(string)$pd_current['heading'].'\\2',$c[$pd_s]);
}
else
{
$c[$pd_s] = preg_replace('/(<h[1-'.$cf['menu']['levels'].'].*>).+(<\/h[1-'.$cf['menu']['levels'].']>)/isU','\\1'.(string)$pd_current['heading'].'\\2',$c[$pd_s]);
}
}
}
if(!$edit && $pd_current)
{
if($pd_current['show_sitetitle'] == '1')
{
if(trim($pd_current['sitetitle']) == '')
{
$cf['site']['title'] = '<br>';
}
else
{
$cf['site']['title'] = $pd_current['sitetitle'];
}
}
}
if($pd_current['show_last_edit'] == '1' && $pd_current['last_edit'] !== '')
{
$c[$pd_s] .= '<div id = "pp_last_update">' . $tx['page_params']['last_edit'] . ' ' . date($tx['lastupdate']['dateformat'], $pd_current['last_edit']) . '</div>';
}
}
/**
* Add a CMSimple-hide if page needs to be
* viewed eg. in Template as a newsbox.
* (page-parameter 'linked_to_menu'=0)
* If page is unpublished ('published'=0)
* content of this page will be overwritten
* by CMSimple-hide.
*/
if(!$adm OR ($adm && !$edit))
{
$pages = $pd_router -> find_all();
foreach($pages as $key => $values)
{
if($values['use_header_location'] == '1' AND trim($values['header_location']) !== '')
{
if(!preg_match('"(http|https|ftp|mailto):"si', $values['header_location']))
{
$values['header_location'] = (empty($_SERVER['HTTPS']) ? 'http://' : 'https://') . $_SERVER['HTTP_HOST'] . $sn . $values['header_location'];
}
if ($key == $s)
{
header("Location:" . $values['header_location']); exit;
}
}
if($values['linked_to_menu'] == '0')
{
$c[$key] = '#CMSimple hide#' . $c[$key];
}
if($values['published'] == '0')
{
$c[$key] = '#CMSimple hide#';
}
}
}
?>