Hallo,
habe nach mehreren Anläufen geschafft das Board auf die 1.2 Version upzugraden.
Leider sind die Angaben in Metatags verschwunden.
Habe die global.php geändert (siehe Anhang) und bin mir nicht sicher, ob ich noch was machen soll, damit es funktioniert (vielleicht noch ein bestimmter Eintrag in Template headerinclude?).
Hast du die Variable im Template headerinclude in geschweifte Klammern gesetzt?
Inhalt von headerinclude:
Code:
<link rel="alternate" type="application/rss+xml" title="{$lang->latest_threads} (RSS 2.0)" href="{$mybb->settings['bburl']}/syndication.php" />
<link rel="alternate" type="application/atom+xml" title="{$lang->latest_threads} (Atom 1.0)" href="{$mybb->settings['bburl']}/syndication.php?type=atom1.0" />
<meta http-equiv="Content-Type" content="text/html; charset={$charset}" />
<script type="text/javascript" src="jscripts/prototype.lite.js?ver=120"></script>
<script type="text/javascript" src="jscripts/moo.ajax.js?ver=120"></script>
<script type="text/javascript" src="jscripts/general.js?ver=120"></script>
<script type="text/javascript" src="jscripts/popup_menu.js?ver=120"></script>
<link rel="stylesheet" type="text/css" href="{$theme['css_url']}" />
<script language="Javascript" type="text/javascript">
<!--
var cookieDomain = "{$mybb->settings['cookiedomain']}";
var cookiePath = "{$mybb->settings['cookiepath']}";
var newpm_prompt = "{$lang->newpm_prompt}";
var deleteevent_confirm = "{$lang->deleteevent_confirm}";
var removeattach_confirm = "{$lang->removeattach_confirm}";
var loading_text = '{$lang->ajax_loading}';
var saving_changes = '{$lang->saving_changes}';
// -->
</script>
{$newpmmsg}
{$metadescription}
Alles ist wieder OK.
Fehler hat vor dem Monitor gesessen
(habe das default headerinclude bearbeitet und nicht das von voreingestellten Theme. Nun habe ich das andere bearbeitet und es funktioniert so wie es sein sollte).
Danke für die Geduld Michael
Das nenne ich mal eine coole Sache!
Schade, daß es dies nicht in Form eines Plugins gibt, so daß man es nach Bedarf (De-)Aktivieren kann und vor allem bei einem Update die Funktionalität nicht flöten geht...
Eine Frage hätte ich aber noch dazu:
Dies ist ja nützlich für die Threads. Wie aber sieht es mit den "normalen" Seiten aus, Index und co?
Ich hatte ursprünglich einfach die Metas "Description" und "Keywords" im HEADERINCLUDE sozusagen "hardcoded". Habe ich nun rausgenommen, damit sich das mit dieser Funktion nicht beißt.
Sinnvoll wäre aber doch, eine Art Default-Meta-Description zu haben, oder?
Einfach als "else"-Teil beim "if..." in der GLOBAL.PHP zufügen, oder was wäre der eleganteste/zweckmäßigste Weg?
Guck dir nochmal Beitrag Nr. 15 von Michael an, da wird das erklärt. Musst du nur noch etwas anpassen.
Na sowas... Keine Ahnung warum ich das übersehen habe... Vermutlich weil die Lösung eher am Ende des Threads stand.
Habe ich nun so eingebaut, besten Dank!
Guten Morgen,
ich würden den Thread dann gerne auch nochmal auskraben wollen
Und zwar habe ich 1 Problem und eine Frage.
Problem: Ich habe mir hier aus dem Thread jetzt folgendes zusammengebastelt (es ist leicht verändert gegenüber Michael´s zuletzt geposteten Code - dieser hatte bei mir nicht funktioniert - entweder wurde der gesamte 1. Post ausgegeben oder stattdessen stand nur " | Array" da):
PHP-Code:
if(basename($_SERVER['PHP_SELF']) == "showthread.php") {
$tid = intval($mybb->input['tid']);
$query = $db->query("SELECT message FROM ".TABLE_PREFIX."posts WHERE tid = ".$tid." AND visible = '1' ORDER BY dateline ASC LIMIT 0,1");
$threaddescription = $db->fetch_array($query);
$subject = htmlentities($threaddescription['subject']);
$threaddescription['message'] = str_replace("\"", "", $threaddescription['message']);
$threaddescription['message'] = htmlentities(str_replace("\"", "", $threaddescription['message']));
if (strlen($threaddescription['message']) > 100) {
$forummsg = substr($threaddescription['message'], 0, 100) . "...";
}
$metadescription = "<meta name=\"description\" content=\"".$subject." | ".$forummsg."\" />";
}
Damit funktioniert wenigstens, dass die 100 ersten Zeichen des Topics angezeigt werden. Es erscheint als metatag: " | Hier stehen die ersten 100 Zeichen.."
Leider funktioniert die Ausgabe des Topictitels nicht ($subject). Ich vermute einfach mal, dass sich etwas an der Abfrage des "$subject = htmlentities($threaddescription['subject']); " geändert hat, was sich meinem Wissen entzieht.
Zu der Frage: Ist es möglich, statt dem == showthread.php auch den aktuellen Wert des breadcrumbs abzufragen und somit einen Metatag zu generieren, der alle breadcrumbs enthält? So soll in dem
Instanz- & Gildenstatus der Titel oben aus der kompletten breadcrumbreihe bestehen.
Schönen Dienstagmorgen und danke im voraus, Sm00chY
Das Problem hat sich gelöst. Man sollte natürlich auch den Titel des Topics aus der DB abfragen. Der funktionierende Code sieht so aus:
PHP-Code:
if(basename($_SERVER['PHP_SELF']) == "showthread.php") {
$tid = intval($mybb->input['tid']);
$query = $db->query("SELECT subject,message FROM ".TABLE_PREFIX."posts WHERE tid = ".$tid." AND visible = '1' ORDER BY dateline ASC LIMIT 0,1");
$threaddescription = $db->fetch_array($query);
$subject = htmlentities($threaddescription['subject']);
$threaddescription['message'] = str_replace("\"", "", $threaddescription['message']);
$threaddescription['message'] = htmlentities(str_replace("\"", "", $threaddescription['message']));
if (strlen($threaddescription['message']) > 100) {
$forummsg = substr($threaddescription['message'], 0, 100) . "...";
}
$metadescription = "<meta name=\"description\" content=\"".$subject." | ".$forummsg."\" />";
}
Die Frage zwecks der Realisierbarkeit bleibt aber weiterhin bestehen.
MfG, Sm00chY
Es ist hier nicht möglich den Wert des Breadcrumbs abzufragen, da diese Werte erst später gesetzt werden. Du kannst den Code aber natürlich für alle Seiten des Forums erweitern.