Beim optimieren des Onlineshops fallen einem immer kleine Dinge auf die man gerne ändern möchte weil sie einen persönlich stören oder weil man sich eine Verbesserungen für den Kunden (Shop-Kunde) bzw. das Suchmaschinen-Ranking wünscht. Oftmals ist auch beides der Grund.
Bei der folgenden Bastelei haben mich die nicht vorhanden Title-Tags (title="") in den vom Onlineshop erzeugten Links geärgert. Standart-Technisch (mit SEO_URLS, ohne Klassen etc.) sehen die Links aus der Datenbank wie folgt aus:
<a href="http://www.domain.com/de/impressum.html">Impressum</a>
<a href="http://www.domain.com/de/agb.html">AGB</a>
<a href="http://www.domain.com/de/nachrichten.html">Nachrichten</a>
Mit etwas frickelei können die Title-Tags Shop-Intern erzeugt werden. Es kann aber nur die gleiche Bezeichnung wie der Title-Text verwendet werden (bzw. durch das native setzten von Wörtern kann der Text vergrößert werden, aber diese bleiben dann bei allen Links gleich).
<a href="http://www.domain.com/de/impressum.html" title="Impressum">Impressum</a>
<a href="http://www.domain.com/de/agb.html" title="AGB">AGB</a>
<a href="http://www.domain.com/de/nachrichten.html" title="Nachrichten">Nachrichten</a>
oder mit nativen Wörtern:
<a href="http://www.domain.com/de/impressum.html" title="Informationen: Impressum">Impressum</a>
<a href="http://www.domain.com/de/agb.html" title="Informationen: AGB">AGB</a>
<a href="http://www.domain.com/de/nachrichten.html" title="Informationen: Nachrichten">Nachrichten</a>
Der Sinn meiner Erweiterung besteht darin eine individuelle Title-Tag-Beschreibung zu erzeugen. Die zum Einen für den Kunden eine Bereicherung (Title-Tag wird vor dem öffnen angezeigt, Lightboxen verwenden Title-Tag als Über- / Unterschrift, Title-Tag kann maschinell vorgelesen werden etc.) und zum Anderen für Suchmaschinen relevant sein soll. Da der Link besser, individuell nach eignem Geschmack, beschrieben werden kann. Etwa in dieser Form :
<a href="http://www.domain.com/de/impressum.html" title="Impressum und Herkunftsnachweise">Impressum</a>
<a href="http://www.domain.com/de/agb.html" title="Unsere allgemeinen Geschäftsbedingungen">AGB</a>
<a href="http://www.domain.com/de/nachrichten.html" title="Die neusten Nachrichten vom www.domain.com">Nachrichten</a>
Als kleinen Vorgeschmack und zu Test, ob überhaupt „Bedarf“ besteht, werde ich in dieser Anleitung nur das Erzeugen von Title-Tags beschreiben die in den Content- und Information-Boxen vorkommen. Bei „Bedarf“ werde ich die Anleitung dann nach und nach erweitern (Kategorien, Artikel, Produkt-Bilder etc.). Ich bin selber noch in der Entwicklung…
Zuerst erzeugen wir eine neue Spalte, mit dem Namen „content_link_title“ in der Tabelle „content_manager“. Es können die gleichen Einstellung verwendet werden wie bei den bereits vorhandenen Spalten „content_meta_title“, „content_meta_description“ oder „content_meta_keywords“.
Als nächstes bearbeiten wir die:
admin/content_manager.phpSuchen nach folgendem Abschnitt:
$group_ids = $group_ids;
$sort_order=xtc_db_prepare_input($_POST['sort_order']);
$content_meta_title = xtc_db_prepare_input($_POST['cont_meta_title']);
$content_meta_description = xtc_db_prepare_input($_POST['cont_meta_description']);
$content_meta_keywords = xtc_db_prepare_input($_POST['cont_meta_keywords']);
und folgende Zeile anhängen:
$content_link_title = xtc_db_prepare_input($_POST['cont_link_title']);
weiter nach folgender Zeile suchen:
$sql_data_array = array( 'languages_id' => $content_language, 'content_title' => $content_title, 'content_heading' => $content_header, 'content_text' => $content_text, 'content_file' => $content_file_name, 'content_status' => $content_status, 'parent_id' => $parent_id, 'group_ids' => $group_ids, 'content_group' => $group_id, 'sort_order' => $sort_order, 'file_flag' => $file_flag, 'content_meta_title' => $content_meta_title, 'content_meta_description' => $content_meta_description, 'content_meta_keywords' => $content_meta_keywords); und diese durch folgende ersetzen:
$sql_data_array = array( 'languages_id' => $content_language, 'content_title' => $content_title, 'content_heading' => $content_header, 'content_text' => $content_text, 'content_file' => $content_file_name, 'content_status' => $content_status, 'parent_id' => $parent_id, 'group_ids' => $group_ids, 'content_group' => $group_id, 'sort_order' => $sort_order, 'file_flag' => $file_flag, 'content_meta_title' => $content_meta_title, 'content_meta_description' => $content_meta_description, 'content_meta_keywords' => $content_meta_keywords, 'content_link_title' => $content_link_title); weiter nach folgender Zeile suchen:
$content_query=xtc_db_query
("SELECT
content_id,
categories_id,
parent_id,
group_ids,
languages_id,
content_title,
content_heading,
content_text,
sort_order,
file_flag,
content_file,
content_status,
content_group,
content_delete,
content_meta_title,
content_meta_description,
content_meta_keywords
FROM ".TABLE_CONTENT_MANAGER
."
WHERE languages_id='".$languages[$i]['id']."'
AND parent_id='0'
ORDER BY content_group,sort_order
"); while ($content_data=xtc_db_fetch_array
($content_query)) { $content[]=array( 'CONTENT_ID' =>$content_data['content_id'] , 'PARENT_ID' => $content_data['parent_id'], 'GROUP_IDS' => $content_data['group_ids'], 'LANGUAGES_ID' => $content_data['languages_id'], 'CONTENT_TITLE' => $content_data['content_title'], 'CONTENT_HEADING' => $content_data['content_heading'], 'CONTENT_TEXT' => $content_data['content_text'], 'SORT_ORDER' => $content_data['sort_order'], 'FILE_FLAG' => $content_data['file_flag'], 'CONTENT_FILE' => $content_data['content_file'], 'CONTENT_DELETE' => $content_data['content_delete'], 'CONTENT_GROUP' => $content_data['content_group'], 'CONTENT_STATUS' => $content_data['content_status'], 'CONTENT_META_TITLE' => $content_data['content_meta_title'], 'CONTENT_META_DESCRIPTION' => $content_data['content_meta_description'], 'CONTENT_META_KEYWORDS' => $content_data['content_meta_keywords']); und diese durch folgende ersetzen:
$content_query=xtc_db_query
("SELECT
content_id,
categories_id,
parent_id,
group_ids,
languages_id,
content_title,
content_heading,
content_text,
sort_order,
file_flag,
content_file,
content_status,
content_group,
content_delete,
content_meta_title,
content_meta_description,
content_meta_keywords,
content_link_title
FROM ".TABLE_CONTENT_MANAGER
."
WHERE languages_id='".$languages[$i]['id']."'
AND parent_id='0'
ORDER BY content_group,sort_order
"); while ($content_data=xtc_db_fetch_array
($content_query)) { $content[]=array( 'CONTENT_ID' =>$content_data['content_id'] , 'PARENT_ID' => $content_data['parent_id'], 'GROUP_IDS' => $content_data['group_ids'], 'LANGUAGES_ID' => $content_data['languages_id'], 'CONTENT_TITLE' => $content_data['content_title'], 'CONTENT_HEADING' => $content_data['content_heading'], 'CONTENT_TEXT' => $content_data['content_text'], 'SORT_ORDER' => $content_data['sort_order'], 'FILE_FLAG' => $content_data['file_flag'], 'CONTENT_FILE' => $content_data['content_file'], 'CONTENT_DELETE' => $content_data['content_delete'], 'CONTENT_GROUP' => $content_data['content_group'], 'CONTENT_STATUS' => $content_data['content_status'], 'CONTENT_META_TITLE' => $content_data['content_meta_title'], 'CONTENT_META_DESCRIPTION' => $content_data['content_meta_description'], 'CONTENT_META_KEYWORDS' => $content_data['content_meta_keywords'], 'CONTENT_LINK_TITLE' => $content_data['content_link_title']); weiter nach folgender Zeile suchen:
$content_1_query = xtc_db_query
("SELECT
content_id,
categories_id,
parent_id,
group_ids,
languages_id,
content_title,
content_heading,
content_text,
file_flag,
content_file,
content_status,
content_delete,
content_meta_title,
content_meta_description,
content_meta_keywords
FROM ".TABLE_CONTENT_MANAGER
."
WHERE languages_id='".$i."'
AND parent_id='".$content[$ii]['CONTENT_ID']."'
ORDER BY content_group,sort_order
"); while ($content_1_data=xtc_db_fetch_array
($content_1_query)) { $content_1[]=array( 'CONTENT_ID' =>$content_1_data['content_id'] , 'PARENT_ID' => $content_1_data['parent_id'], 'GROUP_IDS' => $content_1_data['group_ids'], 'LANGUAGES_ID' => $content_1_data['languages_id'], 'CONTENT_TITLE' => $content_1_data['content_title'], 'CONTENT_HEADING' => $content_1_data['content_heading'], 'CONTENT_TEXT' => $content_1_data['content_text'], 'SORT_ORDER' => $content_1_data['sort_order'], 'FILE_FLAG' => $content_1_data['file_flag'], 'CONTENT_FILE' => $content_1_data['content_file'], 'CONTENT_DELETE' => $content_1_data['content_delete'], 'CONTENT_STATUS' => $content_1_data['content_status'], 'CONTENT_META_TITLE' => $content_1_data['content_meta_title'], 'CONTENT_META_DESCRIPTION' => $content_1_data['content_meta_description'], 'CONTENT_META_KEYWORDS' => $content_1_data['content_meta_keywords']); und diese durch folgende ersetzen:
$content_1_query = xtc_db_query
("SELECT
content_id,
categories_id,
parent_id,
group_ids,
languages_id,
content_title,
content_heading,
content_text,
file_flag,
content_file,
content_status,
content_delete,
content_meta_title,
content_meta_description,
content_meta_keywords,
content_link_title
FROM ".TABLE_CONTENT_MANAGER
."
WHERE languages_id='".$i."'
AND parent_id='".$content[$ii]['CONTENT_ID']."'
ORDER BY content_group,sort_order
"); while ($content_1_data=xtc_db_fetch_array
($content_1_query)) { $content_1[]=array( 'CONTENT_ID' =>$content_1_data['content_id'] , 'PARENT_ID' => $content_1_data['parent_id'], 'GROUP_IDS' => $content_1_data['group_ids'], 'LANGUAGES_ID' => $content_1_data['languages_id'], 'CONTENT_TITLE' => $content_1_data['content_title'], 'CONTENT_HEADING' => $content_1_data['content_heading'], 'CONTENT_TEXT' => $content_1_data['content_text'], 'SORT_ORDER' => $content_1_data['sort_order'], 'FILE_FLAG' => $content_1_data['file_flag'], 'CONTENT_FILE' => $content_1_data['content_file'], 'CONTENT_DELETE' => $content_1_data['content_delete'], 'CONTENT_STATUS' => $content_1_data['content_status'], 'CONTENT_META_TITLE' => $content_1_data['content_meta_title'], 'CONTENT_META_DESCRIPTION' => $content_1_data['content_meta_description'], 'CONTENT_META_KEYWORDS' => $content_1_data['content_meta_keywords'], 'CONTENT_LINK_TITLE' => $content_1_data['content_link_title'],); weiter nach folgender Zeile suchen:
$content_query=xtc_db_query("SELECT
content_id,
categories_id,
parent_id,
group_ids,
languages_id,
content_title,
content_heading,
content_text,
sort_order,
file_flag,
content_file,
content_status,
content_group,
content_delete,
content_meta_title,
content_meta_description,
content_meta_keywords
FROM ".TABLE_CONTENT_MANAGER."
WHERE content_id='".$g_coID."'");
$content=xtc_db_fetch_array($content_query);
und diese durch folgende ersetzen:
$content_query=xtc_db_query("SELECT
content_id,
categories_id,
parent_id,
group_ids,
languages_id,
content_title,
content_heading,
content_text,
sort_order,
file_flag,
content_file,
content_status,
content_group,
content_delete,
content_meta_title,
content_meta_description,
content_meta_keywords,
content_link_title
FROM ".TABLE_CONTENT_MANAGER."
WHERE content_id='".$g_coID."'");
$content=xtc_db_fetch_array($content_query);
als letztes in dieser Datei suchen wir folgenden Abschnitt:
<tr>
<td width="10%">
<?php echo 'Meta Keywords'; ?></td>
<td width="90%">
<?php echo xtc_draw_input_field
('cont_meta_keywords',isset($content['content_meta_keywords'])?
$content['content_meta_keywords']:'','size="60"'); ?></td>
</tr>
danach bitte folgende Zeile einfügen:
<tr>
<td width="10%">Link Title-Tag</td>
<td width="90%">
<?php echo xtc_draw_input_field
('cont_link_title',isset($content['content_link_title'])?
$content['content_link_title']:'','size="60"'); ?></td>
</tr>
Weiter geht es anschließend in der Datei:
templates/xxx/source/boxes/content.phpfolgenden Abschnitt suchen:
$content_query = "SELECT
content_id,
categories_id,
parent_id,
content_title,
content_group,
FROM ".TABLE_CONTENT_MANAGER."
WHERE languages_id='".(int) $_SESSION['languages_id']."'
and file_flag=1 ".$group_check." and content_status=1 order by sort_order";
$content_query = xtDBquery($content_query);
$content_string='<ul>' . "\n";
while ($content_data = xtc_db_fetch_array($content_query, true)) {
$SEF_parameter = '';
if (SEARCH_ENGINE_FRIENDLY_URLS == 'true')
$SEF_parameter = '&content='.xtc_cleanName($content_data['content_title']);
$content_string .= ' <li><a href="'.xtc_href_link(FILENAME_CONTENT, 'coID='.$content_data['content_group'].$SEF_parameter).'">'.$content_data['content_title'].'</a></li>' . "\n";
}
und durch diesen ersetzten:
$content_query = "SELECT
content_id,
categories_id,
parent_id,
content_title,
content_group,
content_link_title
FROM ".TABLE_CONTENT_MANAGER."
WHERE languages_id='".(int) $_SESSION['languages_id']."'
and file_flag=1 ".$group_check." and content_status=1 order by sort_order";
$content_query = xtDBquery($content_query);
$content_string='<ul>' . "\n";
while ($content_data = xtc_db_fetch_array($content_query, true)) {
$SEF_parameter = '';
if (SEARCH_ENGINE_FRIENDLY_URLS == 'true')
$SEF_parameter = '&content='.xtc_cleanName($content_data['content_title']);
$content_string .= ' <li><a title="'.$content_data['content_link_title'].'" href="'.xtc_href_link(FILENAME_CONTENT, 'coID='.$content_data['content_group'].$SEF_parameter).'">'.$content_data['content_title'].'</a></li>' . "\n";
}
Der Platz reicht nicht! Gleich gehtsweiter:
Linkback: https://www.modified-shop.org/forum/index.php?topic=29354.0