imported_Rogi
01.04.2008, 01:34
von der metatags.php?
Ist eigentlich der originaldownload von gunnart,
<?php
// ---------------------------------------------------------------------------------------
//****$Id: metatags.php 1140 2005-08-10 10:16:00Z mz $
//
//****XT-Commerce - community made shopping
//****http://www.xt-commerce.com
//
//****Copyright (c) 2003 XT-Commerce
// ---------------------------------------------------------------------------------------
//****based on:
//****(c) 2003**** next-Commerce / xt:Commerceommerce (metatags.php,v 1.7 2003/08/14); www.next-Commerce / xt:Commerceommerce.org
//
//****Released under the GNU General Public License
// ---------------------------------------------------------------------------------------
// ---------------------------------------------------------------------------------------
//****AUTOMATISCHE METATAGS für xt:Commerce 3.04
// ---------------------------------------------------------------------------------------
//****by Gunnar Tillmann
//****http://www.gunnart.de
// ---------------------------------------------------------------------------------------
//****Version 0.9b / 15. Dezember 2007
// ---------------------------------------------------------------------------------------
//****Inspired by "Dynamic Meta" - Ein WordPress-PlugIn von Michael Schwarz
//****http://www.php-vision.de/plugins-scripte/dynamicmeta-wpplugin.php
// ---------------------------------------------------------------------------------------
//****Bislang nur getestet für xt:C 3.04 SP2.1, ShopStat-Erweiterung aktiv
//****Eventuell sollte die "includes/header.php" ein bisschen angepasst werden, um valides
//****HTML zu gewährleisten
// ---------------------------------------------------------------------------------------
// ---------------------------------------------------------------------------------------
//****Konfiguration ...
// ---------------------------------------------------------------------------------------
****global $metaStopWords, $metaGoWords, $metaMinLength, $metaMaxLength;
********$metaStopWords ****=****('aber,alle,alles,als,auch,auf,aus,bei,be im,beinahe,bin,bis,ist,dabei,dadurch,daher,dank,da rum,danach,das,daß,dass,dein,deine,dem,den,der,des ,dessen,dadurch,deshalb,die,dies,diese,dieser,dies en,diesem,dieses,doch,dort,durch,eher,ein,eine,ein em,einen,einer,eines,einige,einigen,einiges,eigene ,eigenes,eigener,endlich,euer,eure,etwas,fast,find et,für,gab,gibt,geben,hatte,hatten,hattest,hattet, heute,hier,hinter,ich,ihr,ihre,ihn,ihm,im,immer,in ,ist,ja,jede,jedem,jeden,jeder,jedes,jener,jenes,j etzt,kann,kannst,kein,können,könnt,machen,man,mein ,meine,mehr,mit,muß,mußt,musst,müssen,müßt,nach,na chdem,neben,nein,nicht,nichts,noch,nun,nur,oder,st att,anstatt,seid,sein,seine,seiner,sich,sicher,sie ,sind,soll,sollen,sollst,sollt,sonst,soweit,sowie, und,uns,unser,unsere,unserem,unseren,unter,vom,von ,vor,wann,warum,was,war,weiter,weitere,wenn,wer,we rde,widmen,widmet,viel,viele,vieles,weil,werden,we rdet,weshalb,wie,wieder,wieso,wir,wird,wirst,wohl, woher,wohin,wurdezum,zur,über');
********$metaGoWords ****=****('gola,adidas'); // Hier rein, was nicht gefiltert werden soll
********$metaMinLength ****=****9;********// Mindestlänge eines Keywords
********$metaMaxLength ****=****18;********// Maximallänge eines Keywords
********$metaDesLength ****=****364;****// maximale Länge der "description" (in Buchstaben)
// ---------------------------------------------------------------------------------------
// ---------------------------------------------------------------------------------------
//****Aufräumen: Umlaute und Sonderzeichen wandeln.
// ---------------------------------------------------------------------------------------
****function metaNoEntities($Text){
********$translation_table = get_html_translation_table(HTML_ENTITIES,ENT_QUOTE S);
********$translation_table = array_flip($translation_table);
********$Return= strtr($Text,$translation_table);
********return preg_replace( '/&#(\d+);/me',"chr('\\1')",$Return);
****}
****function metaHtmlEntities($Text) {
********$translation_table=get_html_translation_ta ble(HTML_ENTITIES,ENT_QUOTES);
********$translation_table[chr(38)] = '&';
********return preg_replace("/&(?![A-Za-z]{0,4}\w{2,3};|#[0-9]{2,3};)/","&",strtr($Text,$translation_table));
****}
// ---------------------------------------------------------------------------------------
//****Array basteln: Text aufbereiten -> Array erzeugen -> Array unique ...**
// ---------------------------------------------------------------------------------------
****function prepareWordArray($Text) {
********$Text = str_replace(array('','\t','\r','\n','\b'),' ',strip_tags($Text));
********$Text = metaHtmlEntities(metaNoEntities(strtolower($Text)) ,ENT_QUOTES);
********$Text = preg_replace("/(&([aou])[^;] ;)/",'$2e',$Text);
********$Text = preg_replace("/(&(s)[^;] ;)/",'$2$2',$Text);
********$Text = preg_replace("/(&([cizen])[^;] ;)/",'$2',$Text);
********$Text = preg_replace("/(&[^;] ;)/",' ',$Text);
********$Text = preg_replace("/([^0-9a-z|\-])/",' ',$Text);
********$Text = trim(preg_replace("/\s\s+/",' ',$Text));
********return($Text);
****}
****function makeWordArray($Text) {
********$Text = func_get_args();
********$Words = array();
********foreach($Text as $Word) {
************if((!empty($Word))&&(is_string($Word))) {
****************$Words = array_merge($Words,explode(' ',$Word));
************}
********}
********return array_unique($Words);
****}
****function WordArray($Text) {
********return makeWordArray(prepareWordArray($Text));
****}
// ---------------------------------------------------------------------------------------
//****KeyWords aufräumen:
// ****Stop- und KeyWords-Liste in Array umwandeln, StopWords löschen,
//****GoWords- und Längen-Filter anwenden
// ---------------------------------------------------------------------------------------
****function cleanKeyWords($KeyWords) {
********global $metaStopWords;
********$KeyWords ****= ****WordArray($KeyWords);
********$StopWords ****=****WordArray($metaStopWords);
********$KeyWords ****= ****array_diff($KeyWords,$StopWords);
********$KeyWords ****= ****array_filter($KeyWords,filterKeyWordArray);
********natsort($KeyWords);
********return $KeyWords;
****}
// ---------------------------------------------------------------------------------------
//****GoWords- und Längen-Filter:
//****Alles, was zu kurz ist, fliegt raus, sofern nicht in der GoWords-Liste
// ---------------------------------------------------------------------------------------
****function filterKeyWordArray($KeyWord) {
********global $metaMinLength, $metaMaxLength;
********$GoWords = WordArray(getGoWords());
********if(!in_array($KeyWord,$GoWords)) {
************$Length = strlen($KeyWord);
************if($Length < $metaMinLength) // Mindest-Länge
****************return false;
************if($Length > $metaMaxLength) // Maximal-Länge
****************return false;
********}
********return true;
****}****
// ---------------------------------------------------------------------------------------
//****GoWords: Werden grundsätzlich nicht gefiltert
//****Sofern angelegt, werden (zusätzlich zu den Einstellungen oben) die "normalen"
//****Meta-Angaben genommen.
// ---------------------------------------------------------------------------------------
****function getGoWords(){
********global $metaGoWords;
********$GoWords = $metaGoWords.' '.META_KEYWORDS;
********if(!empty($categories_meta['categories_meta_keywords']))
************$GoWords .= ' '.$categories_meta['categories_meta_keywords'];
********if(!empty($product->data['products_meta_keywords']))
************$GoWords .= ' '.$product->data['products_meta_keywords'];
********return $GoWords;
****}
// ---------------------------------------------------------------------------------------
//****Aufräumen: Leerzeichen und HTML-Code raus, kürzen, Umlaute und Sonderzeichen wandeln
// ---------------------------------------------------------------------------------------
****function metaClean($Text,$Length=false,$Abk=' ...') {
********$Text = metaNoEntities($Text);
********$Text = strip_tags($Text);
********$Text = str_replace(array('','\t','\r','\n','\b'),' ',$Text);
********$Text = trim(preg_replace("/\s\s+/",' ',$Text));
********if(($Length)&&($Length > 0)) {
************if(strlen($Text) > $Length) {
****************$Length -= strlen($Abk);
****************$Text = preg_replace('/\s+?(\S+)?$/', '', substr($Text, 0, $Length+1));
****************$Text = substr($Text, 0, $Length).$Abk;
************}
********}
********return metaHtmlEntities($Text,ENT_QUOTES);
****}
// ---------------------------------------------------------------------------------------
//****metaTitle und metaKeyWords, Rückgabe bzw. Formatierung
// ---------------------------------------------------------------------------------------
****function metaTitle($Title=array()) {
********$Title = func_get_args();
********$Title = array_filter($Title,metaClean);
********return implode(' - ',$Title);
****}
// ---------------------------------------------------------------------------------------
****function metaKeyWords($Text) {
********$KeyWords = cleanKeyWords($Text);
********return implode(', ',$KeyWords);
****}
// ---------------------------------------------------------------------------------------
// ---------------------------------------------------------------------------------------
//****Daten holen: Produktdetails
// ---------------------------------------------------------------------------------------
****if (strstr($_SERVER['SCRIPT_NAME'], FILENAME_PRODUCT_INFO)) {
********if ($product->isProduct()) {
************if(!empty($product->data['products_meta_keywords'])) {
****************$meta_keyw = metaKeyWords($product->data['products_meta_keywords']);
************} else{
****************$meta_keyw = metaKeyWords($product->data['products_name'].' '.$product->data['products_description']);
************}
************if(!empty($product->data['products_meta_description'])) {
****************$meta_descr = $product->data['products_meta_description'];
************} else {
****************$meta_descr = $product->data['products_name'].': '.
****************$product->data['products_description'];
************}
************$meta_title = metaTitle($product->data['products_name'],$product->data['manufacturers_name'],TITLE);
********}
****}
// ---------------------------------------------------------------------------------------
//****Daten holen: Kategorie
// ---------------------------------------------------------------------------------------
****elseif(!empty($_REQUEST['cPath'])) {
********if (strpos($_REQUEST['cPath'],'_') > 0) {
************$arr****= explode('_',xt-Commerce / xt:Commerce_input_validation($_REQUEST['cPath'],'cPath',''));
************$_cPath = array_pop($arr);
********} else{
************$_cPath=(int)$_REQUEST['cPath'];
********}
********
********$categories_meta_query = xtDBquery(
************"SELECT categories_meta_keywords,
************categories_meta_description,
************categories_meta_title,
************categories_name,
************categories_description
************FROM ".TABLE_CATEGORIES_DESCRIPTION."
************WHERE categories_id='".$_cPath."' and
************language_id='".$_SESSION['languages_id']."'");
************$categories_meta = xt-Commerce / xt:Commerce_db_fetch_array($categories_meta_query, true);
********
********$manu_id = false;
********$manu_name = false;
********if(!empty($_GET['manu']))
************$manu_id = intval($_GET['manu']);
********if(!empty($_GET['manufacturers_id']))
************$manu_id = $_GET['manufacturers_id'];
********if(!empty($_GET['filter_id']))
************$manu_id = $_GET['filter_id'];
********if($manu_id) {
************$manu_name_query = xtDBquery(
****************"select manufacturers_name
****************from ".TABLE_MANUFACTURERS."
****************where manufacturers_id ='".$manu_id."'");
************$manu_name = implode('',xt-Commerce / xt:Commerce_db_fetch_array($manu_name_query,true)) ;
********}
********
********if(!empty($categories_meta['categories_meta_keywords'])) {
************$meta_keyw = metaKeyWords($categories_meta['categories_meta_keywords']);
********} else{
************$meta_keyw = metaKeyWords($categories_meta['categories_name'].' '.$manu_name.' '.$categories_meta['categories_description']);
********}
********
********if(!empty($categories_meta['categories_meta_description'])) {
************$meta_descr = $categories_meta['categories_meta_description'];
********} else{
************$meta_descr = TITLE.' - '.$categories_meta['categories_name'];
************if(!empty($manu_name))
****************$meta_descr .= ' von: '.$manu_name;
************if(!empty($categories_meta['categories_description']))
****************$meta_descr .= ' - '.$categories_meta['categories_description'];
********}
********
********if(!empty($categories_meta['categories_meta_title'])) {
************$meta_title = metaTitle($categories_meta['categories_meta_title'],TITLE);
********} else{
************$meta_title = metaTitle($categories_meta['categories_name'],$manu_name,TITLE);
********}
****}
// ---------------------------------------------------------------------------------------
//****Daten holen: Inhalts-Seite (ContentManager)
// ---------------------------------------------------------------------------------------
****elseif($_REQUEST['coID']) {
********$contents_meta_query=xtDBquery(
************"SELECT
************content_title,
************content_heading,
************content_text
************FROM ".TABLE_CONTENT_MANAGER."
************WHERE content_group='".$_GET['coID']."' and
************languages_id='".$_SESSION['languages_id']."'");
********$contents_meta = xt-Commerce / xt:Commerce_db_fetch_array($contents_meta_query,tr ue);
********
********if(count($contents_meta) > 0) {
************$meta_title = metaTitle($contents_meta['content_title'],$contents_meta['content_heading'],TITLE);
************$meta_descr = $contents_meta['content_heading'].': '.$contents_meta['content_text'];
************$meta_keyw = metaKeyWords($contents_meta['content_title'].' '.$contents_meta['content_heading'].' '.$contents_meta['content_text']);
********}
****}
// ---------------------------------------------------------------------------------------
//****... und wenn nix drin, dann Standard-Werte nehmen
// ---------------------------------------------------------------------------------------
****if(empty($meta_keyw))
********$meta_keyw****= metaKeyWords(META_KEYWORDS);
****if(empty($meta_descr))
********$meta_descr** = META_DESCRIPTION;
****if(empty($meta_title))
********$meta_title** = TITLE;
****//(empty($_SESSION['language_code'])) ? $_SESSION['language_code'] = 'de':false; ?
// ---------------------------------------------------------------------------------------
?>
<title><?php echo metaClean($meta_title);?></title>
<meta http-equiv="content-language" content="<?php echo $_SESSION['language_code']; ?>" />
<meta http-equiv="cache-control" content="no-cache" />
<meta name="keywords" content="<?php echo $meta_keyw; ?>" />
<meta name="description" content="<?php echo metaClean($meta_descr,$metaDesLength); ?>" />
<meta name="robots" content="<?php echo META_ROBOTS; ?>" />
<meta name="language" content="<?php echo $_SESSION['language_code']; ?>" />
<meta name="author" content="<?php echo metaClean(META_AUTHOR); ?>" />
<meta name="publisher" content="<?php echo metaClean(META_PUBLISHER); ?>" />
<meta name="company" content="<?php echo metaClean(META_COMPANY); ?>" />
<meta name="page-topic" content="<?php echo metaClean(META_TOPIC); ?>" />
<meta name="reply-to" content="<?php echo META_REPLY_TO; ?>" />
<meta name="distribution" content="global" />
<meta name="reviist-after" content="<?php echo META_REVISIT_AFTER; ?>" />
www.zigarrenkiosk.de
01.04.2008, 02:20
''>ZITAT(Rogi @ Apr 1 2008, 1:34) 45491
von der metatags.php?
Ist eigentlich der originaldownload von gunnart,
<?php
// ---------------------------------------------------------------------------------------
//****$Id: metatags.php 1140 2005-08-10 10:16:00Z mz $
//
//****XT-Commerce - community made shopping
//****http://www.xt-commerce.com
//
//****Copyright (c) 2003 XT-Commerce
// ---------------------------------------------------------------------------------------
//****based on:
//****(c) 2003**** next-Commerce / xt:Commerceommerce (metatags.php,v 1.7 2003/08/14); www.next-Commerce / xt:Commerceommerce.org
//
//****Released under the GNU General Public License
// ---------------------------------------------------------------------------------------
// ---------------------------------------------------------------------------------------
//****AUTOMATISCHE METATAGS für xt:Commerce 3.04
// ---------------------------------------------------------------------------------------
//****by Gunnar Tillmann
//****http://www.gunnart.de
// ---------------------------------------------------------------------------------------
//****Version 0.9b / 15. Dezember 2007
// ---------------------------------------------------------------------------------------
//****Inspired by "Dynamic Meta" - Ein WordPress-PlugIn von Michael Schwarz
//****http://www.php-vision.de/plugins-scripte/dynamicmeta-wpplugin.php
// ---------------------------------------------------------------------------------------
//****Bislang nur getestet für xt:C 3.04 SP2.1, ShopStat-Erweiterung aktiv
//****Eventuell sollte die "includes/header.php" ein bisschen angepasst werden, um valides
//****HTML zu gewährleisten
// ---------------------------------------------------------------------------------------
// ---------------------------------------------------------------------------------------
//****Konfiguration ...
// ---------------------------------------------------------------------------------------
****global $metaStopWords, $metaGoWords, $metaMinLength, $metaMaxLength;
********$metaStopWords ****=****('aber,alle,alles,als,auch,auf,aus,bei,be im,beinahe,bin,bis,ist,dabei,dadurch,daher,dank,da rum,danach,das,daß,dass,dein,deine,dem,den,der,des ,dessen,dadurch,deshalb,die,dies,diese,dieser,dies en,diesem,dieses,doch,dort,durch,eher,ein,eine,ein em,einen,einer,eines,einige,einigen,einiges,eigene ,eigenes,eigener,endlich,euer,eure,etwas,fast,find et,für,gab,gibt,geben,hatte,hatten,hattest,hattet, heute,hier,hinter,ich,ihr,ihre,ihn,ihm,im,immer,in ,ist,ja,jede,jedem,jeden,jeder,jedes,jener,jenes,j etzt,kann,kannst,kein,können,könnt,machen,man,mein ,meine,mehr,mit,muß,mußt,musst,müssen,müßt,nach,na chdem,neben,nein,nicht,nichts,noch,nun,nur,oder,st att,anstatt,seid,sein,seine,seiner,sich,sicher,sie ,sind,soll,sollen,sollst,sollt,sonst,soweit,sowie, und,uns,unser,unsere,unserem,unseren,unter,vom,von ,vor,wann,warum,was,war,weiter,weitere,wenn,wer,we rde,widmen,widmet,viel,viele,vieles,weil,werden,we rdet,weshalb,wie,wieder,wieso,wir,wird,wirst,wohl, woher,wohin,wurdezum,zur,über');
********$metaGoWords ****=****('gola,adidas'); // Hier rein, was nicht gefiltert werden soll
********$metaMinLength ****=****9;********// Mindestlänge eines Keywords
********$metaMaxLength ****=****18;********// Maximallänge eines Keywords
********$metaDesLength ****=****364;****// maximale Länge der "description" (in Buchstaben)
// ---------------------------------------------------------------------------------------
// ---------------------------------------------------------------------------------------
//****Aufräumen: Umlaute und Sonderzeichen wandeln.
// ---------------------------------------------------------------------------------------
****function metaNoEntities($Text){
********$translation_table = get_html_translation_table(HTML_ENTITIES,ENT_QUOTE S);
********$translation_table = array_flip($translation_table);
********$Return= strtr($Text,$translation_table);
********return preg_replace( '/&#(\d+);/me',"chr('\\1')",$Return);
****}
****function metaHtmlEntities($Text) {
********$translation_table=get_html_translation_ta ble(HTML_ENTITIES,ENT_QUOTES);
********$translation_table[chr(38)] = '&';
********return preg_replace("/&(?![A-Za-z]{0,4}\w{2,3};|#[0-9]{2,3};)/","&",strtr($Text,$translation_table));
****}
// ---------------------------------------------------------------------------------------
//****Array basteln: Text aufbereiten -> Array erzeugen -> Array unique ...**
// ---------------------------------------------------------------------------------------
****function prepareWordArray($Text) {
********$Text = str_replace(array(' ','\t','\r','\n','\b'),' ',strip_tags($Text));
********$Text = metaHtmlEntities(metaNoEntities(strtolower($Text)) ,ENT_QUOTES);
********$Text = preg_replace("/(&([aou])[^;] ;)/",'$2e',$Text);
********$Text = preg_replace("/(&(s)[^;] ;)/",'$2$2',$Text);
********$Text = preg_replace("/(&([cizen])[^;] ;)/",'$2',$Text);
********$Text = preg_replace("/(&[^;] ;)/",' ',$Text);
********$Text = preg_replace("/([^0-9a-z|\-])/",' ',$Text);
********$Text = trim(preg_replace("/\s\s+/",' ',$Text));
********return($Text);
****}
****function makeWordArray($Text) {
********$Text = func_get_args();
********$Words = array();
********foreach($Text as $Word) {
************if((!empty($Word))&&(is_string($Word))) {
****************$Words = array_merge($Words,explode(' ',$Word));
************}
********}
********return array_unique($Words);
****}
****function WordArray($Text) {
********return makeWordArray(prepareWordArray($Text));
****}
// ---------------------------------------------------------------------------------------
//****KeyWords aufräumen:
// ****Stop- und KeyWords-Liste in Array umwandeln, StopWords löschen,
//****GoWords- und Längen-Filter anwenden
// ---------------------------------------------------------------------------------------
****function cleanKeyWords($KeyWords) {
********global $metaStopWords;
********$KeyWords ****= ****WordArray($KeyWords);
********$StopWords ****=****WordArray($metaStopWords);
********$KeyWords ****= ****array_diff($KeyWords,$StopWords);
********$KeyWords ****= ****array_filter($KeyWords,filterKeyWordArray);
********natsort($KeyWords);
********return $KeyWords;
****}
// ---------------------------------------------------------------------------------------
//****GoWords- und Längen-Filter:
//****Alles, was zu kurz ist, fliegt raus, sofern nicht in der GoWords-Liste
// ---------------------------------------------------------------------------------------
****function filterKeyWordArray($KeyWord) {
********global $metaMinLength, $metaMaxLength;
********$GoWords = WordArray(getGoWords());
********if(!in_array($KeyWord,$GoWords)) {
************$Length = strlen($KeyWord);
************if($Length < $metaMinLength) // Mindest-Länge
****************return false;
************if($Length > $metaMaxLength) // Maximal-Länge
****************return false;
********}
********return true;
****}****
// ---------------------------------------------------------------------------------------
//****GoWords: Werden grundsätzlich nicht gefiltert
//****Sofern angelegt, werden (zusätzlich zu den Einstellungen oben) die "normalen"
//****Meta-Angaben genommen.
// ---------------------------------------------------------------------------------------
****function getGoWords(){
********global $metaGoWords;
********$GoWords = $metaGoWords.' '.META_KEYWORDS;
********if(!empty($categories_meta['categories_meta_keywords']))
************$GoWords .= ' '.$categories_meta['categories_meta_keywords'];
********if(!empty($product->data['products_meta_keywords']))
************$GoWords .= ' '.$product->data['products_meta_keywords'];
********return $GoWords;
****}
// ---------------------------------------------------------------------------------------
//****Aufräumen: Leerzeichen und HTML-Code raus, kürzen, Umlaute und Sonderzeichen wandeln
// ---------------------------------------------------------------------------------------
****function metaClean($Text,$Length=false,$Abk=' ...') {
********$Text = metaNoEntities($Text);
********$Text = strip_tags($Text);
********$Text = str_replace(array(' ','\t','\r','\n','\b'),' ',$Text);
********$Text = trim(preg_replace("/\s\s+/",' ',$Text));
********if(($Length)&&($Length > 0)) {
************if(strlen($Text) > $Length) {
****************$Length -= strlen($Abk);
****************$Text = preg_replace('/\s+?(\S+)?$/', '', substr($Text, 0, $Length+1));
****************$Text = substr($Text, 0, $Length).$Abk;
************}
********}
********return metaHtmlEntities($Text,ENT_QUOTES);
****}
// ---------------------------------------------------------------------------------------
//****metaTitle und metaKeyWords, Rückgabe bzw. Formatierung
// ---------------------------------------------------------------------------------------
****function metaTitle($Title=array()) {
********$Title = func_get_args();
********$Title = array_filter($Title,metaClean);
********return implode(' - ',$Title);
****}
// ---------------------------------------------------------------------------------------
****function metaKeyWords($Text) {
********$KeyWords = cleanKeyWords($Text);
********return implode(', ',$KeyWords);
****}
// ---------------------------------------------------------------------------------------
// ---------------------------------------------------------------------------------------
//****Daten holen: Produktdetails
// ---------------------------------------------------------------------------------------
****if (strstr($_SERVER['SCRIPT_NAME'], FILENAME_PRODUCT_INFO)) {
********if ($product->isProduct()) {
************if(!empty($product->data['products_meta_keywords'])) {
****************$meta_keyw = metaKeyWords($product->data['products_meta_keywords']);
************} else{
****************$meta_keyw = metaKeyWords($product->data['products_name'].' '.$product->data['products_description']);
************}
************if(!empty($product->data['products_meta_description'])) {
****************$meta_descr = $product->data['products_meta_description'];
************} else {
****************$meta_descr = $product->data['products_name'].': '.
****************$product->data['products_description'];
************}
************$meta_title = metaTitle($product->data['products_name'],$product->data['manufacturers_name'],TITLE);
********}
****}
// ---------------------------------------------------------------------------------------
//****Daten holen: Kategorie
// ---------------------------------------------------------------------------------------
****elseif(!empty($_REQUEST['cPath'])) {
********if (strpos($_REQUEST['cPath'],'_') > 0) {
************$arr****= explode('_',xt-Commerce / xt:Commerce_input_validation($_REQUEST['cPath'],'cPath',''));
************$_cPath = array_pop($arr);
********} else{
************$_cPath=(int)$_REQUEST['cPath'];
********}
********
********$categories_meta_query = xtDBquery(
************"SELECT categories_meta_keywords,
************categories_meta_description,
************categories_meta_title,
************categories_name,
************categories_description
************FROM ".TABLE_CATEGORIES_DESCRIPTION."
************WHERE categories_id='".$_cPath."' and
************language_id='".$_SESSION['languages_id']."'");
************$categories_meta = xt-Commerce / xt:Commerce_db_fetch_array($categories_meta_query, true);
********
********$manu_id = false;
********$manu_name = false;
********if(!empty($_GET['manu']))
************$manu_id = intval($_GET['manu']);
********if(!empty($_GET['manufacturers_id']))
************$manu_id = $_GET['manufacturers_id'];
********if(!empty($_GET['filter_id']))
************$manu_id = $_GET['filter_id'];
********if($manu_id) {
************$manu_name_query = xtDBquery(
****************"select manufacturers_name
****************from ".TABLE_MANUFACTURERS."
****************where manufacturers_id ='".$manu_id."'");
************$manu_name = implode('',xt-Commerce / xt:Commerce_db_fetch_array($manu_name_query,true)) ;
********}
********
********if(!empty($categories_meta['categories_meta_keywords'])) {
************$meta_keyw = metaKeyWords($categories_meta['categories_meta_keywords']);
********} else{
************$meta_keyw = metaKeyWords($categories_meta['categories_name'].' '.$manu_name.' '.$categories_meta['categories_description']);
********}
********
********if(!empty($categories_meta['categories_meta_description'])) {
************$meta_descr = $categories_meta['categories_meta_description'];
********} else{
************$meta_descr = TITLE.' - '.$categories_meta['categories_name'];
************if(!empty($manu_name))
****************$meta_descr .= ' von: '.$manu_name;
************if(!empty($categories_meta['categories_description']))
****************$meta_descr .= ' - '.$categories_meta['categories_description'];
********}
********
********if(!empty($categories_meta['categories_meta_title'])) {
************$meta_title = metaTitle($categories_meta['categories_meta_title'],TITLE);
********} else{
************$meta_title = metaTitle($categories_meta['categories_name'],$manu_name,TITLE);
********}
****}
// ---------------------------------------------------------------------------------------
//****Daten holen: Inhalts-Seite (ContentManager)
// ---------------------------------------------------------------------------------------
****elseif($_REQUEST['coID']) {
********$contents_meta_query=xtDBquery(
************"SELECT
************content_title,
************content_heading,
************content_text
************FROM ".TABLE_CONTENT_MANAGER."
************WHERE content_group='".$_GET['coID']."' and
************languages_id='".$_SESSION['languages_id']."'");
********$contents_meta = xt-Commerce / xt:Commerce_db_fetch_array($contents_meta_query,tr ue);
********
********if(count($contents_meta) > 0) {
************$meta_title = metaTitle($contents_meta['content_title'],$contents_meta['content_heading'],TITLE);
************$meta_descr = $contents_meta['content_heading'].': '.$contents_meta['content_text'];
************$meta_keyw = metaKeyWords($contents_meta['content_title'].' '.$contents_meta['content_heading'].' '.$contents_meta['content_text']);
********}
****}
// ---------------------------------------------------------------------------------------
//****... und wenn nix drin, dann Standard-Werte nehmen
// ---------------------------------------------------------------------------------------
****if(empty($meta_keyw))
********$meta_keyw****= metaKeyWords(META_KEYWORDS);
****if(empty($meta_descr))
********$meta_descr** = META_DESCRIPTION;
****if(empty($meta_title))
********$meta_title** = TITLE;
****//(empty($_SESSION['language_code'])) ? $_SESSION['language_code'] = 'de':false; ?
// ---------------------------------------------------------------------------------------
?>
<title><?php echo metaClean($meta_title);?></title>
<meta http-equiv="content-language" content="<?php echo $_SESSION['language_code']; ?>" />
<meta http-equiv="cache-control" content="no-cache" />
<meta name="keywords" content="<?php echo $meta_keyw; ?>" />
<meta name="description" content="<?php echo metaClean($meta_descr,$metaDesLength); ?>" />
<meta name="robots" content="<?php echo META_ROBOTS; ?>" />
<meta name="language" content="<?php echo $_SESSION['language_code']; ?>" />
<meta name="author" content="<?php echo metaClean(META_AUTHOR); ?>" />
<meta name="publisher" content="<?php echo metaClean(META_PUBLISHER); ?>" />
<meta name="company" content="<?php echo metaClean(META_COMPANY); ?>" />
<meta name="page-topic" content="<?php echo metaClean(META_TOPIC); ?>" />
<meta name="reply-to" content="<?php echo META_REPLY_TO; ?>" />
<meta name="distribution" content="global" />
<meta name="reviist-after" content="<?php echo META_REVISIT_AFTER; ?>" />
[/b]
Hallo....
habe mal dein code bei mir getestet. Bei mir haut alles hin. Es ist mir allerdings aufgefallen, dass deine metatags.php größer als meine ist. Warum auch immer !? :ph34r:
Ich kann Dir ja mal "meine" posten:
<?php
// ---------------------------------------------------------------------------------------
// $Id: metatags.php 1140 2005-08-10 10:16:00Z mz $
//
// XT-Commerce - community made shopping
// http://www.xt-commerce.com (http://anonym.to/?http://www.xt-commerce.com)
//
// Copyright © 2003 XT-Commerce
// ---------------------------------------------------------------------------------------
// based on:
// © 2003 next-Commerce / xt:Commerceommerce (metatags.php,v 1.7 2003/08/14); www.next-Commerce / xt:Commerceommerce.org
//
// Released under the GNU General Public License
// ---------------------------------------------------------------------------------------
// ---------------------------------------------------------------------------------------
// AUTOMATISCHE METATAGS für xt:Commerce / xt-Commerce 3.04
// ---------------------------------------------------------------------------------------
// by Gunnar Tillmann
// http://www.gunnart.de (http://anonym.to/?http://www.gunnart.de)
// ---------------------------------------------------------------------------------------
// Version 0.9b / 15. Dezember 2007
// ---------------------------------------------------------------------------------------
// Inspired by "Dynamic Meta" - Ein WordPress-PlugIn von Michael Schwarz
// http://www.php-vision.de/plugins-scripte/d...ta-wpplugin.php (http://anonym.to/?http://www.php-vision.de/plugins-scripte/dynamicmeta-wpplugin.php)
// ---------------------------------------------------------------------------------------
// Bislang nur getestet für xt:C 3.04 SP2.1, ShopStat-Erweiterung aktiv
// Eventuell sollte die "includes/header.php" ein bisschen angepasst werden, um valides
// HTML zu gewährleisten
// ---------------------------------------------------------------------------------------
// ---------------------------------------------------------------------------------------
// Konfiguration ...
// ---------------------------------------------------------------------------------------
global $metaStopWords, $metaGoWords, $metaMinLength, $metaMaxLength;
$metaStopWords = ('aber,alle,alles,als,auch,auf,aus,bei,beim,beinah e,bin,bis,ist,dabei,dadurch,daher,dank,darum,danac h,das,daß,dass,dein,deine,dem,den,der,des,dessen,d adurch,deshalb,die,dies,diese,dieser,diesen,diesem ,dieses,doch,dort,durch,eher,ein,eine,einem,einen, einer,eines,einige,einigen,einiges,eigene,eigenes, eigener,endlich,euer,eure,etwas,fast,findet,für,ga b,gibt,geben,hatte,hatten,hattest,hattet,heute,hie r,hinter,ich,ihr,ihre,ihn,ihm,im,immer,in,ist,ja,j ede,jedem,jeden,jeder,jedes,jener,jenes,jetzt,kann ,kannst,kein,können,könnt,machen,man,mein,meine,me hr,mit,muß,mußt,musst,müssen,müßt,nach,nachdem,neb en,nein,nicht,nichts,noch,nun,nur,oder,statt,ansta tt,seid,sein,seine,seiner,sich,sicher,sie,sind,sol l,sollen,sollst,sollt,sonst,soweit,sowie,und,uns,u nser,unsere,unserem,unseren,unter,vom,von,vor,wann ,warum,was,war,weiter,weitere,wenn,wer,werde,widme n,widmet,viel,viele,vieles,weil,werden,werdet,wesh alb,wie,wieder,wieso,wir,wird,wirst,wohl,woher,woh in,wurdezum,zur,über');
$metaGoWords = ('gola,adidas'); // Hier rein, was nicht gefiltert werden soll
$metaMinLength = 9; // Mindestlänge eines Keywords
$metaMaxLength = 18; // Maximallänge eines Keywords
$metaDesLength = 364; // maximale Länge der "description" (in Buchstaben)
// ---------------------------------------------------------------------------------------
// ---------------------------------------------------------------------------------------
// Aufräumen: Umlaute und Sonderzeichen wandeln.
// ---------------------------------------------------------------------------------------
function metaNoEntities($Text){
$translation_table = get_html_translation_table(HTML_ENTITIES,ENT_QUOTE S);
$translation_table = array_flip($translation_table);
$Return= strtr($Text,$translation_table);
return preg_replace( '/&#(\d+);/me',"chr('\\1')",$Return);
}
function metaHtmlEntities($Text) {
$translation_table=get_html_translation_table(HTML _ENTITIES,ENT_QUOTES);
$translation_table[chr(38)] = '&';
return preg_replace("/&(?![A-Za-z]{0,4}\w{2,3};|#[0-9]{2,3};)/","&",strtr($Text,$translation_table));
}
// ---------------------------------------------------------------------------------------
// Array basteln: Text aufbereiten -> Array erzeugen -> Array unique ...
// ---------------------------------------------------------------------------------------
function prepareWordArray($Text) {
$Text = str_replace(array(' ','\t','\r','\n','\b'),' ',strip_tags($Text));
$Text = metaHtmlEntities(metaNoEntities(strtolower($Text)) ,ENT_QUOTES);
$Text = preg_replace("/(&([aou])[^;] ;)/",'$2e',$Text);
$Text = preg_replace("/(&(s)[^;] ;)/",'$2$2',$Text);
$Text = preg_replace("/(&([cizen])[^;] ;)/",'$2',$Text);
$Text = preg_replace("/(&[^;] ;)/",' ',$Text);
$Text = preg_replace("/([^0-9a-z|\-])/",' ',$Text);
$Text = trim(preg_replace("/\s\s+/",' ',$Text));
return($Text);
}
function makeWordArray($Text) {
$Text = func_get_args();
$Words = array();
foreach($Text as $Word) {
if((!empty($Word))&&(is_string($Word))) {
$Words = array_merge($Words,explode(' ',$Word));
}
}
return array_unique($Words);
}
function WordArray($Text) {
return makeWordArray(prepareWordArray($Text));
}
// ---------------------------------------------------------------------------------------
// KeyWords aufräumen:
// Stop- und KeyWords-Liste in Array umwandeln, StopWords löschen,
// GoWords- und Längen-Filter anwenden
// ---------------------------------------------------------------------------------------
function cleanKeyWords($KeyWords) {
global $metaStopWords;
$KeyWords = WordArray($KeyWords);
$StopWords = WordArray($metaStopWords);
$KeyWords = array_diff($KeyWords,$StopWords);
$KeyWords = array_filter($KeyWords,filterKeyWordArray);
natsort($KeyWords);
return $KeyWords;
}
// ---------------------------------------------------------------------------------------
// GoWords- und Längen-Filter:
// Alles, was zu kurz ist, fliegt raus, sofern nicht in der GoWords-Liste
// ---------------------------------------------------------------------------------------
function filterKeyWordArray($KeyWord) {
global $metaMinLength, $metaMaxLength;
$GoWords = WordArray(getGoWords());
if(!in_array($KeyWord,$GoWords)) {
$Length = strlen($KeyWord);
if($Length < $metaMinLength) // Mindest-Länge
return false;
if($Length > $metaMaxLength) // Maximal-Länge
return false;
}
return true;
}
// ---------------------------------------------------------------------------------------
// GoWords: Werden grundsätzlich nicht gefiltert
// Sofern angelegt, werden (zusätzlich zu den Einstellungen oben) die "normalen"
// Meta-Angaben genommen.
// ---------------------------------------------------------------------------------------
function getGoWords(){
global $metaGoWords;
$GoWords = $metaGoWords.' '.META_KEYWORDS;
if(!empty($categories_meta['categories_meta_keywords']))
$GoWords .= ' '.$categories_meta['categories_meta_keywords'];
if(!empty($product->data['products_meta_keywords']))
$GoWords .= ' '.$product->data['products_meta_keywords'];
return $GoWords;
}
// ---------------------------------------------------------------------------------------
// Aufräumen: Leerzeichen und HTML-Code raus, kürzen, Umlaute und Sonderzeichen wandeln
// ---------------------------------------------------------------------------------------
function metaClean($Text,$Length=false,$Abk=' ...') {
$Text = metaNoEntities($Text);
$Text = strip_tags($Text);
$Text = str_replace(array(' ','\t','\r','\n','\b'),' ',$Text);
$Text = trim(preg_replace("/\s\s+/",' ',$Text));
if(($Length)&&($Length > 0)) {
if(strlen($Text) > $Length) {
$Length -= strlen($Abk);
$Text = preg_replace('/\s+?(\S+)?$/', '', substr($Text, 0, $Length+1));
$Text = substr($Text, 0, $Length).$Abk;
}
}
return metaHtmlEntities($Text,ENT_QUOTES);
}
// ---------------------------------------------------------------------------------------
// metaTitle und metaKeyWords, Rückgabe bzw. Formatierung
// ---------------------------------------------------------------------------------------
function metaTitle($Title=array()) {
$Title = func_get_args();
$Title = array_filter($Title,metaClean);
return implode(' - ',$Title);
}
// ---------------------------------------------------------------------------------------
function metaKeyWords($Text) {
$KeyWords = cleanKeyWords($Text);
return implode(', ',$KeyWords);
}
// ---------------------------------------------------------------------------------------
// ---------------------------------------------------------------------------------------
// Daten holen: Produktdetails
// ---------------------------------------------------------------------------------------
if (strstr($_SERVER['SCRIPT_NAME'], FILENAME_PRODUCT_INFO)) {
if ($product->isProduct()) {
if(!empty($product->data['products_meta_keywords'])) {
$meta_keyw = metaKeyWords($product->data['products_meta_keywords']);
} else{
$meta_keyw = metaKeyWords($product->data['products_name'].' '.$product->data['products_description']);
}
if(!empty($product->data['products_meta_description'])) {
$meta_descr = $product->data['products_meta_description'];
} else {
$meta_descr = $product->data['products_name'].': '.
$product->data['products_description'];
}
$meta_title = metaTitle($product->data['products_name'],$product->data['manufacturers_name'],TITLE);
}
}
// ---------------------------------------------------------------------------------------
// Daten holen: Kategorie
// ---------------------------------------------------------------------------------------
elseif(!empty($_REQUEST['cPath'])) {
if (strpos($_REQUEST['cPath'],'_') > 0) {
$arr = explode('_',xt-Commerce / xt:Commerce_input_validation($_REQUEST['cPath'],'cPath',''));
$_cPath = array_pop($arr);
} else{
$_cPath=(int)$_REQUEST['cPath'];
}
$categories_meta_query = xtDBquery(
"SELECT categories_meta_keywords,
categories_meta_description,
categories_meta_title,
categories_name,
categories_description
FROM ".TABLE_CATEGORIES_DESCRIPTION."
WHERE categories_id='".$_cPath."' and
language_id='".$_SESSION['languages_id']."'");
$categories_meta = xt-Commerce / xt:Commerce_db_fetch_array($categories_meta_query, true);
$manu_id = false;
$manu_name = false;
if(!empty($_GET['manu']))
$manu_id = intval($_GET['manu']);
if(!empty($_GET['manufacturers_id']))
$manu_id = $_GET['manufacturers_id'];
if(!empty($_GET['filter_id']))
$manu_id = $_GET['filter_id'];
if($manu_id) {
$manu_name_query = xtDBquery(
"select manufacturers_name
from ".TABLE_MANUFACTURERS."
where manufacturers_id ='".$manu_id."'");
$manu_name = implode('',xt-Commerce / xt:Commerce_db_fetch_array($manu_name_query,true)) ;
}
if(!empty($categories_meta['categories_meta_keywords'])) {
$meta_keyw = metaKeyWords($categories_meta['categories_meta_keywords']);
} else{
$meta_keyw = metaKeyWords($categories_meta['categories_name'].' '.$manu_name.' '.$categories_meta['categories_description']);
}
if(!empty($categories_meta['categories_meta_description'])) {
$meta_descr = $categories_meta['categories_meta_description'];
} else{
$meta_descr = TITLE.' - '.$categories_meta['categories_name'];
if(!empty($manu_name))
$meta_descr .= ' von: '.$manu_name;
if(!empty($categories_meta['categories_description']))
$meta_descr .= ' - '.$categories_meta['categories_description'];
}
if(!empty($categories_meta['categories_meta_title'])) {
$meta_title = metaTitle($categories_meta['categories_meta_title'],TITLE);
} else{
$meta_title = metaTitle($categories_meta['categories_name'],$manu_name,TITLE);
}
}
// ---------------------------------------------------------------------------------------
// Daten holen: Inhalts-Seite (ContentManager)
// ---------------------------------------------------------------------------------------
elseif($_REQUEST['coID']) {
$contents_meta_query=xtDBquery(
"SELECT
content_title,
content_heading,
content_text
FROM ".TABLE_CONTENT_MANAGER."
WHERE content_group='".$_GET['coID']."' and
languages_id='".$_SESSION['languages_id']."'");
$contents_meta = xt-Commerce / xt:Commerce_db_fetch_array($contents_meta_query,tr ue);
if(count($contents_meta) > 0) {
$meta_title = metaTitle($contents_meta['content_title'],$contents_meta['content_heading'],TITLE);
$meta_descr = $contents_meta['content_heading'].': '.$contents_meta['content_text'];
$meta_keyw = metaKeyWords($contents_meta['content_title'].' '.$contents_meta['content_heading'].' '.$contents_meta['content_text']);
}
}
// ---------------------------------------------------------------------------------------
// ... und wenn nix drin, dann Standard-Werte nehmen
// ---------------------------------------------------------------------------------------
if(empty($meta_keyw))
$meta_keyw = metaKeyWords(META_KEYWORDS);
if(empty($meta_descr))
$meta_descr = META_DESCRIPTION;
if(empty($meta_title))
$meta_title = TITLE;
//(empty($_SESSION['language_code'])) ? $_SESSION['language_code'] = 'de':false; ?
// ---------------------------------------------------------------------------------------
?>
<title><?php echo metaClean($meta_title);?></title>
<meta http-equiv="content-language" content="<?php echo $_SESSION['language_code']; ?>" />
<meta http-equiv="cache-control" content="no-cache" />
<meta name="keywords" content="<?php echo $meta_keyw; ?>" />
<meta name="description" content="<?php echo metaClean($meta_descr,$metaDesLength); ?>" />
<meta name="robots" content="<?php echo META_ROBOTS; ?>" />
<meta name="language" content="<?php echo $_SESSION['language_code']; ?>" />
<meta name="author" content="<?php echo metaClean(META_AUTHOR); ?>" />
<meta name="publisher" content="<?php echo metaClean(META_PUBLISHER); ?>" />
<meta name="company" content="<?php echo metaClean(META_COMPANY); ?>" />
<meta name="page-topic" content="<?php echo metaClean(META_TOPIC); ?>" />
<meta name="reply-to" content="<?php echo META_REPLY_TO; ?>" />
<meta name="distribution" content="global" />
<meta name="reviist-after" content="<?php echo META_REVISIT_AFTER; ?>" />
Konnte auch keine Abweichungen/Fehler feststellen. Kannst es nur mal ausprobieren oder du setzt dich mal mit gunnart in Verbindung.
Welche Shopversion nutzt du eigentlich. Viellenicht hat die was damit zu tun !? Ich nutze v3.0.4 SP1.
Als, dann wünsche ich Dir viel Glück und verbleibe
mit rauchigen Grüßen DER RAUCHER !
vBulletin® v3.8.4, Copyright ©2000-2012, Jelsoft Enterprises Ltd.