Sign in to follow this  
Followers 0

Besseres META Tag handling


7 posts in this topic

Posted · Report post

Das Modul metatags.php ist bislang recht unübersichtlich und zeigt auch leere META Tags an. Wir haben dies jetzt etwas aufgeräumt und ein paar Umstellungen vorgenommen. Hier der modifizierte Code:


<?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 nextcommerce (metatags.php,v 1.7 2003/08/14); www.nextcommerce.org

Released under the GNU General Public License
---------------------------------------------------------------------------------------*/

// default page title
$title = TITLE;

// default meta data
$metaData = array(
'robots' => META_ROBOTS,
'author' => META_AUTHOR,
'publisher' => META_PUBLISHER,
'company' => META_COMPANY,
'page-topic' => META_TOPIC,
'reply-to' => META_REPLY_TO,
'revisit-after' => META_REVISIT_AFTER,
// 'distribution' => 'global',
'language' => $_SESSION['language_code'],
'description' => META_DESCRIPTION,
'keywords' => META_KEYWORDS,
);


if (strstr($PHP_SELF, FILENAME_PRODUCT_INFO)) {
// insert products meta data
if ($product->isProduct()) {
$title = (!empty($product->data['products_meta_title'])) ? $product->data['products_meta_title'] : $product->data['products_name'];
$title .= ' '.$product->data['products_model'].' - '.TITLE;
$metaData['description'] = $product->data['products_meta_description'];
$metaData['keywords'] = $product->data['products_meta_keywords'];
}
} else {
// insert categories meta data
if ($_GET['cPath']) {
if (strpos($_GET['cPath'], '_') !== false) {
$arr = explode('_', xtc_input_validation($_GET['cPath'], 'cPath', ''));
$_cPath = end($arr);
} else {
$_cPath=(int)$_GET['cPath'];
if (isset ($_GET['cat'])) {
$site = explode('_', $_GET['cat']);
$cID = $site[0];
$_cPath = str_replace('c', '', $cID);
}
}
$categories_meta_query = xtDBquery('SELECT categories_meta_keywords, categories_meta_description, categories_meta_title, categories_name FROM '.TABLE_CATEGORIES_DESCRIPTION.' WHERE categories_id='.$_cPath.' AND language_id='.$_SESSION['languages_id']);
$categories_meta = xtc_db_fetch_array($categories_meta_query, true);
if (!empty($categories_meta['categories_meta_keywords']))
$metaData['keywords'] = $categories_meta['categories_meta_keywords'];
if (!empty($categories_meta['categories_meta_description']))
$metaData['keywords'] = $categories_meta['categories_meta_description'];
$title = (!empty($categories_meta['categories_meta_title'])) ? $categories_meta['categories_meta_title'] : $categories_meta['categories_name'];
$title .= ' - ' . TITLE;
}
// insert content page title
elseif (isset($_GET['coID'])) {
$contents_meta_query = xtDBquery('SELECT content_heading FROM '.TABLE_CONTENT_MANAGER.' WHERE content_group='.$_GET['coID'].' AND languages_id='.$_SESSION['languages_id']);
$contents_meta = xtc_db_fetch_array($contents_meta_query, true);
$title = $contents_meta['content_heading'] . ' - ' . TITLE;
}
}

// echo page title
echo '<title>'.$title."</title>\n";

// echo meta tags
foreach ($metaData as $name => $content) {
if (!empty($content))
echo '<meta name="'.$name.'" content="'.$content.'" />'."\n";
}

?>
[/PHP]

Über Feedback würden wir uns natürlich freuen :)

Share this post


Link to post
Share on other sites

Posted · Report post

Hy,

vielen Dank für diesen Code!! Wir verwenden die Suchmaschinenfreundlichen URL´s + Shopstat. Shopversion ist V3.04 SP2.

Kann ich euren Code nehmen?

Gruß,

Jan

Share this post


Link to post
Share on other sites

Posted · Report post

Da ich Shopstat nicht verwende, kann ich dir das nicht sagen.

Wird denn die Datei von Shopstat bei der Installation verändert? Falls nicht, ist es kein Problem. Wenn doch musst du halt schauen, wie du die Änderungen in unseren Code integrieren kannst.

Share this post


Link to post
Share on other sites

Posted · Report post

... es ist eher problematisch, Dateien für ShopStat in Shops OHNE ShopStat zu verwenden, als umgekehrt. Dauerhaft kaputtmachen kann man jedenfalls nix.

...

Ich hab neulich übrigens mal angefangen, einen automatischen "Keyword-Generator" zu basteln - Ist ja doch ein ziemlicher Aufwand, für jeden Artikel etwas zu schreiben. Bislang findet das Teil alle einzelnen Wörter der Artikel-Beschreibungen und listet sie alphabetisch* auf.

Das Projekt ist allerdings momentan ein bisschen zurückgestellt, wegen "viel zu tun" - und ... vermutlich gibt's sowas eh schon längst. Aber falls nicht: Wenn Interesse besteht, einfach melden - Kost auch nix - Wäre ja ganz geil, wenn solche Geschichten mehr oder weniger automatisch laufen könnten ...

:-)

*Umlaute werden da übrigens noch nicht gewandelt, dafür hab ich einen Outputfilter gebaut, der ohnehin die gesamte HTML-Ausgabe "durchackert" und ein bisschen "aufräumt" ... Das war so ein Problem von wegen "Texte aus der WaWi, einige mit, andere ohne Entities" ...

Share this post


Link to post
Share on other sites

Posted · Report post

Helft einem Laien auf die Sprünge ... :)

Was genau wird durch die neue metatags.php verändert bzw. verbessert ?

Share this post


Link to post
Share on other sites

Posted · Report post

Nun, die Modifikation löscht hauptsächlich leere META-Tags, d.h. Felder, in denen nichts eingetragen wurde, werden auch nicht ausgegeben.

Und: Falls du selber irgendwelche Anpassungen vornehmen willst, hast du mit der neuen Datei einen besseren Überblick.

Also alles in allem nichts dramatisches, einfach nur ein bisschen hübscher :P

Share this post


Link to post
Share on other sites

Posted · Report post

Trotz gefüllter Metas im Admin, werden keine Description Daten angezeigt ?

Share this post


Link to post
Share on other sites
Sign in to follow this  
Followers 0