1
0
mirror of https://github.com/e107inc/e107.git synced 2025-03-14 01:19:44 +01:00

Meta admin page now uses Admin-ui. Additional custom tag areas added.

This commit is contained in:
Cameron 2021-01-26 11:55:10 -08:00
parent 9403901077
commit 46cb21b025
8 changed files with 257 additions and 123 deletions

View File

@ -1446,7 +1446,7 @@ class system_tools
foreach($spref as $key => $val)
{
$ptext = (is_array($val)) ? "<pre>".print_r($val, TRUE)."</pre>" : htmlspecialchars($val, ENT_QUOTES, 'utf-8');
$ptext = (is_array($val)) ? "<pre>".htmlentities(print_r($val, TRUE))."</pre>" : htmlspecialchars($val, ENT_QUOTES, 'utf-8');
$ptext = $tp->textclean($ptext, 80);
$text .= "

View File

@ -14,9 +14,9 @@ if(!empty($_POST) && !isset($_POST['e-token']))
{
$_POST['e-token'] = '';
}
require_once(__DIR__.'/../class2.php');
require_once(__DIR__ . '/../class2.php');
if (!getperms("T"))
if(!getperms("T"))
{
e107::redirect('admin');
exit;
@ -24,60 +24,111 @@ if (!getperms("T"))
e107::coreLan('meta', true);
$e_sub_cat = 'meta';
require_once("auth.php");
$mes = e107::getMessage();
$frm = e107::getForm();
$ns = e107::getRender();
if (isset($_POST['metasubmit']))
class meta_admin extends e_admin_dispatcher
{
$tmp = $pref['meta_tag'];
$langs = explode(",",e_LANLIST);
foreach($langs as $lan)
{
$meta_tag[$lan] = $tmp[$lan];
$meta_diz[$lan] = $pref['meta_description'][$lan];
$meta_keywords[$lan] = $pref['meta_keywords'][$lan];
$meta_copyright[$lan] = $pref['meta_copyright'][$lan];
$meta_author[$lan] = $pref['meta_author'][$lan];
}
$meta_tag[e_LANGUAGE] = rtrim($_POST['meta']);
$meta_diz[e_LANGUAGE] = rtrim($_POST['meta_description']);
$meta_keywords[e_LANGUAGE] = rtrim($_POST['meta_keywords']);
$meta_copyright[e_LANGUAGE] = rtrim($_POST['meta_copyright']);
$meta_author[e_LANGUAGE] = rtrim($_POST['meta_author']);
protected $modes = array(
'main' => array(
'controller' => 'meta_admin_ui',
'path' => null,
'ui' => 'e_admin_form_ui',
'uipath' => null
)
);
$pref['meta_news_summary'] = intval($_POST['meta_news_summary']);
$pref['meta_tag'] = $meta_tag;
$pref['meta_description'] = $meta_diz;
$pref['meta_keywords'] = $meta_keywords;
$pref['meta_copyright'] = $meta_copyright;
$pref['meta_author'] = $meta_author;
/*
if($pref['meta_tag'][e_LANGUAGE] == ""){
unset($meta_tag[e_LANGUAGE]);
}*/
protected $adminMenu = array(
'main/meta' => array('caption' => LAN_MANAGE, 'perm' => '0'),
);
protected $adminMenuAliases = array(// 'main/edit' => 'main/list'
);
protected $menuTitle = METLAN_00;
protected $adminMenuIcon = 'e-meta-24';
e107::getLog()->add('META_01', 'meta_news_summary=>'.$pref['meta_news_summary'].'[!br!]'.e_LANGUAGE, E_LOG_INFORMATIVE, '');
save_prefs();
}
$meta = vartrue($pref['meta_tag'], array());
$meta_diz = vartrue($pref['meta_description'], array());
$meta_keywords = vartrue($pref['meta_keywords'], array());
$meta_copyright = vartrue($pref['meta_copyright'], array());
$meta_author = vartrue($pref['meta_author'], array());
class meta_admin_ui extends e_admin_ui
{
protected $pluginTitle = METLAN_00;
protected $pluginName = 'core';
function init()
{
if(isset($_POST['metasubmit']))
{
$this->save();
}
}
function save()
{
$text = "
<form method='post' action='".e_SELF."' id='dataform'>
$fields = array(
'meta_description',
'meta_keywords',
'meta_copyright',
'meta_author',
'meta_tag',
'meta_bodystart',
'meta_bodyend',
);
$cfg = e107::getConfig();
foreach($fields as $key)
{
if(isset($_POST[$key]))
{
$cfg->setPref($key . '/' . e_LANGUAGE, trim($_POST[$key]));
}
}
$cfg->set('meta_news_summary', varset($_POST['meta_news_summary']));
$cfg->save(true, true, true);
}
public function renderHelp()
{
$caption = LAN_HELP;
$text = htmlentities(METLAN_7);
return array('caption' => $caption, 'text' => $text);
}
public function metaPage()
{
$mes = e107::getMessage();
$frm = $this->getUI();
$ns = e107::getRender();
$pref = e107::getPref();
$tp = e107::getParser();
$meta_diz = vartrue($pref['meta_description'], array());
$meta_keywords = vartrue($pref['meta_keywords'], array());
$meta_copyright = vartrue($pref['meta_copyright'], array());
$meta_author = vartrue($pref['meta_author'], array());
$customTagHead = vartrue($pref['meta_tag'], array());
$customTagBodyStart = vartrue($pref['meta_bodystart'], array());
$customTagBodyEnd = vartrue($pref['meta_bodyend'], array());
$text = "
<form method='post' action='" . e_SELF . "' id='dataform'>
<fieldset id='core-meta-settings'>
<legend class='e-hideme'>".METLAN_00." (".e_LANGUAGE.")"."</legend>
<legend class='e-hideme'>" . METLAN_00 . " (" . e_LANGUAGE . ")" . "</legend>
<table class='table adminform'>
<colgroup>
<col class='col-label' />
@ -85,60 +136,101 @@ $text = "
</colgroup>
<tbody>
<tr>
<td>".LAN_DESCRIPTION."</td>
<td>" . LAN_DESCRIPTION . "</td>
<td>";
$text .= $frm->textarea('meta_description',$tp->toForm(varset($meta_diz[e_LANGUAGE])),3,80, array('size'=>'xxlarge'));
// $text .= "<textarea class='tbox textarea e-autoheight' id='meta_description' name='meta_description' cols='70' rows='4'>".$tp->toForm(varset($meta_diz[e_LANGUAGE]))."</textarea>";
$text .= "</td>
$text .= $frm->textarea('meta_description', $tp->toForm(varset($meta_diz[e_LANGUAGE])), 3, 80, array('size' => 'xxlarge'));
// $text .= "<textarea class='tbox textarea e-autoheight' id='meta_description' name='meta_description' cols='70' rows='4'>".$tp->toForm(varset($meta_diz[e_LANGUAGE]))."</textarea>";
$text .= "</td>
</tr>
<tr>
<td>".LAN_KEYWORDS."</td>
<td>" . LAN_KEYWORDS . "</td>
<td>";
$text .= $frm->tags('meta_keywords',$tp->toForm(varset($meta_keywords[e_LANGUAGE])));
// $text .= "<textarea class='tbox textarea e-autoheight' id='meta_keywords' name='meta_keywords' cols='70' rows='4'>".$tp->toForm(varset($meta_keywords[e_LANGUAGE]))."</textarea>";
$text .= "</td>
$text .= $frm->tags('meta_keywords', $tp->toForm(varset($meta_keywords[e_LANGUAGE])));
// $text .= "<textarea class='tbox textarea e-autoheight' id='meta_keywords' name='meta_keywords' cols='70' rows='4'>".$tp->toForm(varset($meta_keywords[e_LANGUAGE]))."</textarea>";
$text .= "</td>
</tr>
<tr>
<td>".LAN_COPYRIGHT."</td>
<td><input class='tbox form-control input-xxlarge' size='70' type='text' name='meta_copyright' value=\"".varset($meta_copyright[e_LANGUAGE])."\" /></td>
<td>" . LAN_COPYRIGHT . "</td>
<td><input class='tbox form-control input-xxlarge' size='70' type='text' name='meta_copyright' value=\"" . varset($meta_copyright[e_LANGUAGE]) . "\" /></td>
</tr>
<tr>
<td>".LAN_AUTHOR."</td>
<td><input class='tbox form-control input-xxlarge' size='70' type='text' name='meta_author' value=\"".varset($meta_author[e_LANGUAGE])."\" /></td>
<td>" . LAN_AUTHOR . "</td>
<td><input class='tbox form-control input-xxlarge' size='70' type='text' name='meta_author' value=\"" . varset($meta_author[e_LANGUAGE]) . "\" /></td>
</tr>
<tr>
<td>".METLAN_1."</td>
<td>" . $this->metaLabel(METLAN_4, '<head>') . "</td>
<td>";
$text .= $frm->textarea('meta',str_replace("<","&lt;",$tp->toForm(varset($meta[e_LANGUAGE]))),5,100,'size=block-level');
$text .= "<span class='field-help'>".METLAN_2."</span>";
// $text .= "<textarea class='tbox textarea e-autoheight' id='meta' name='meta' cols='70' rows='10' onselect='storeCaret(this);' onclick='storeCaret(this);' onkeyup='storeCaret(this);'>".str_replace("<","&lt;",$tp->toForm(varset($meta[e_LANGUAGE])))."</textarea><span class='field-help'>".METLAN_2."</span>";
$text .= "</td>
$text .= $frm->textarea('meta_tag', str_replace("<", "&lt;", $tp->toForm(varset($customTagHead[e_LANGUAGE]))), 5, 100, array('size' => 'block-level', 'placeholder' => "eg. <script>Custom code.</script>"));
$text .= "</td>
</tr>
<tr>
<td>".METLAN_3."</td>
<td>" . $this->metaLabel(METLAN_5, '<body>') . "</td>
<td>";
$text .= $frm->textarea('meta_bodystart', str_replace("<", "&lt;", $tp->toForm(varset($customTagBodyStart[e_LANGUAGE]))), 5, 100, array('size' => 'block-level', 'placeholder' => "eg. <script>Custom code.</script>"));
$text .= "</td>
</tr>
<tr>
<td>" . $this->metaLabel(METLAN_6, '</body>') . "</td>
<td>";
$text .= $frm->textarea('meta_bodyend', str_replace("<", "&lt;", $tp->toForm(varset($customTagBodyEnd[e_LANGUAGE]))), 5, 100, array('size' => 'block-level', 'placeholder' => "eg. <script>Custom code.</script>"));
$text .= "</td>
</tr>
<tr>
<td>" . METLAN_3 . "</td>
<td>
<div class='auto-toggle-area autocheck'>".
$frm->checkbox('meta_news_summary',1, varset($pref['meta_news_summary']))."
</div>
</td>
</tr>
</tbody>
</table>
<div class='buttons-bar center'>".
$frm->admin_button('metasubmit','no-value','update', LAN_UPDATE)."
</div>
<input type='hidden' name='e-token' value='".defset('e_TOKEN')."' />
</fieldset>
</form>
";
<div class='auto-toggle-area autocheck'>" .
$frm->checkbox('meta_news_summary', 1, varset($pref['meta_news_summary'])) . "
</div>
</td>
</tr>
</tbody>
</table>
<div class='buttons-bar center'>" .
$frm->admin_button('metasubmit', 'no-value', 'update', LAN_UPDATE) . "
</div>
<input type='hidden' name='e-token' value='" . defset('e_TOKEN') . "' />
</fieldset>
</form>
";
$caption = htmlentities(METLAN_00);
$installedLangs = e107::getLanguage()->installed('count');
if($installedLangs > 1)
{
$caption .= " (" . e_LANGUAGE . ")";
}
return $text;
// $ns->tablerender($caption, $mes->render() . $text);
}
function metaLabel($text, $small)
{
$small = htmlentities($small);
// $text = str_replace(['(', ')'], ['<i>', '</i>'], $text);
return e107::getParser()->lanVars($text, $small, true);
}
}
new meta_admin();
$e_sub_cat = 'meta';
require_once('auth.php');
e107::getAdminUI()->runPage();
$ns->tablerender(METLAN_00." (".e_LANGUAGE.")", $mes->render().$text);
require_once("footer.php");

View File

@ -82,7 +82,7 @@ if (varset($e107_popup) != 1)
'{---FOOTER---}' => $tp->parseTemplate('{FOOTER}',true)
);
e107::renderLayout($FOOTER, $psc);
e107::renderLayout($FOOTER, array('magicSC'=>$psc));
}
$eTimingStop = microtime();
@ -407,6 +407,14 @@ $show = deftrue('e_POWEREDBY_DISABLE') ? "none" : "block"; // Let search engines
//XXX Must not contain IDs or Classes
// echo "<div style='text-align:center; display:".$show."; position: absolute; width:99%; height:20px; margin-top:-30px; z-index:30000; opacity:1.0; color: silver'>Proudly powered by <a style='color:silver' href='http://e107.org/' title='e107 Content Management System'>e107</a></div>";
unset($show);
if(isset($pref['meta_bodyend'][e_LANGUAGE]))
{
echo "\n<!-- Start custom body-end tag -->\n";
echo $pref['meta_bodyend'][e_LANGUAGE]."\n";
echo "<!-- End custom body-end tag -->\n\n";
}
echo "\n</body>\n</html>";
//hook into the end of page (usefull for example for capturing output buffering)

View File

@ -462,12 +462,17 @@ function render_meta($type)
if($type == "tag")
{
return str_replace("&lt;", "<", $tp -> toHTML($pref['meta_tag'][e_LANGUAGE], FALSE, "nobreak, no_hook, no_make_clickable"))."\n";
$ret = "\n<!-- Start custom head tag -->\n";
$ret .= varset($pref['meta_tag'][e_LANGUAGE])."\n";
// $ret .= str_replace("&lt;", "<", $pref['meta_tag'][e_LANGUAGE]."\n";
$ret .= "<!-- End custom head tag -->\n\n";
}
else
{
return '<meta name="'.$type.'" content="'.$pref['meta_'.$type][e_LANGUAGE].'" />'."\n";
$ret = '<meta name="'.$type.'" content="'.$pref['meta_'.$type][e_LANGUAGE].'" />'."\n";
}
return $ret;
}
// legay meta-tag checks.
@ -649,6 +654,10 @@ elseif(!defined('BODYTAG')) // @deprecated.
$body_onload .= " id='layout-".e107::getForm()->name2id(THEME_LAYOUT)."' ";
echo "<body".$body_onload.">\n";
if(isset($pref['meta_bodystart'][e_LANGUAGE]))
{
echo $pref['meta_bodystart'][e_LANGUAGE]."\n";
}
}
else
{
@ -664,6 +673,10 @@ else
echo BODYTAG."\n";
}
if(isset($pref['meta_bodystart'][e_LANGUAGE]))
{
echo $pref['meta_bodystart'][e_LANGUAGE]."\n";
}
}
// Bootstrap Modal Window
@ -743,14 +756,17 @@ e107::getDebug()->logTime('Render Layout');
$psc = array(
'{THEME}' => THEME_ABS,
'{BODY_ONLOAD}' => $body_onload,
'{LAYOUT_ID}' => 'layout-'.e107::getForm()->name2id(THEME_LAYOUT),
'{---MODAL---}' => (isset($LAYOUT['_modal_']) ? $LAYOUT['_modal_'] : '') ,
'{---HEADER---}' => e107::getParser()->parseTemplate('{HEADER}',true),
'{---FOOTER---}' => e107::getParser()->parseTemplate('{FOOTER}',true),
);
'magicSC'=>array(
'{THEME}' => THEME_ABS,
'{BODY_ONLOAD}' => $body_onload,
'{LAYOUT_ID}' => 'layout-'.e107::getForm()->name2id(THEME_LAYOUT),
'{---MODAL---}' => (isset($LAYOUT['_modal_']) ? $LAYOUT['_modal_'] : '') ,
'{---HEADER---}' => e107::getParser()->parseTemplate('{HEADER}',true),
'{---FOOTER---}' => e107::getParser()->parseTemplate('{FOOTER}',true),
),
'bodyStart' => varset($pref['meta_bodystart'][e_LANGUAGE])
);
e107::renderLayout($HEADER, $psc);
// echo $HEADER;

View File

@ -308,7 +308,7 @@ class e107
/**
* Render layout - replacement for legacy parseheader() function in header_default.php
* @param string $LAYOUT
* @param array $opts - magic shortcode key=>value pair replacements
* @param array $opts - 'magicSC' => array of magic shortcode key=>value pair replacements and 'bodyStart' - code to place after body tag.
* @return void
*/
public static function renderLayout($LAYOUT, $opts = array())
@ -318,27 +318,58 @@ class e107
$tmp = explode("\n", $LAYOUT);
$sc = self::getScBatch('_theme_'); // include the theme shortcodes.
$search = array_keys($opts);
$replace = array_values($opts);
$parseMagic = false;
$bodyStart = false;
$bodyTag = false;
foreach ($tmp as $line)
if(isset($opts['magicSC']))
{
$search = array_keys($opts['magicSC']);
$replace = array_values($opts['magicSC']);
$parseMagic = true;
}
if(isset($opts['bodyStart']) && !empty($opts['bodyStart']))
{
$bodyStart = true;
}
foreach ($tmp as $k=>$line)
{
if(empty($line))
{
continue;
}
$line = str_replace($search, $replace, $line); // Quick-fix allow for use of {THEME} shortcode.
if($bodyStart)
{
if($bodyTag)
{
echo "\n<!-- Start custom body-start tag -->\n";
echo trim($opts['bodyStart'])."\n";
echo "<!-- End custom body-start tag -->\n\n";
}
$bodyTag = (strpos(trim($line), '<body') === 0) ? true : false;
}
if($parseMagic)
{
$line = str_replace($search, $replace, $line); // Quick-fix allow for use of {THEME} shortcode.
}
if (strpos($line,'{') === false)
{
echo $line . "\n"; // retain line-breaks.
continue;
}
if (preg_match("/{.+?}/", $line))
else
{
echo $tp->parseTemplate($line, true, $sc) . "\n"; // retain line-breaks.
}

View File

@ -453,6 +453,10 @@ class language{
return $natList;
break;
case 'count':
return count($this->lanlist);
break;
case "english":
default:
return $this->lanlist;

View File

@ -1,21 +0,0 @@
<?php
/*
* e107 website system
*
* Copyright (C) 2008-2009 e107 Inc (e107.org)
* Released under the terms and conditions of the
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
*
*
*
* $Source: /cvs_backup/e107_0.8/e107_languages/English/admin/help/meta.php,v $
* $Revision$
* $Date$
* $Author$
*/
if (!defined('e107_INIT')) { exit; }
$text = "Any meta tags you enter here will be sent to screen in the right place.";
$ns -> tablerender("Meta Tags", $text);

View File

@ -6,9 +6,13 @@
*
*/
define("METLAN_00", "Meta Tags");
define("METLAN_00", "Meta & Custom Tags");
define("METLAN_1", "Additional meta tags");
define("METLAN_2", "e.g. < meta name='revisit-after' content='30 days' />"); //FIXME space between < and meta: parses meta tag for some reason
define("METLAN_2", "e.g. < meta name='revisit-after' content='30 days' />");
define("METLAN_3", "Use news title and summary as the meta-description on news pages.");
define("METLAN_4", "Custom tags (inside [x] tags)");
define("METLAN_5", "Custom tags (after [x])");
define("METLAN_6", "Custom tags (before [x])");
define("METLAN_7", "Any meta data or custom HTML tags entered here (such as <script> tags or Google analytics code) will be included on every page of the website in their designated areas.");