Home / Forum / Eigene Metainformationen

Eigene Metainformationen

Um Zugang zu den Foren zu erhalten, müssen Sie angemeldet sein

Autor Nachricht

Stefan Layer

Registriert seit: 29.06.2006

Beiträge: 16

Mittwoch, 01. April 2009 14:40:10

Hi,
ich möchte die Möglichkeit nutzen, Inhaltsseiten um eigene Metainformationen zu ergänzen.

Dazu habe ich diesen Beitrag auf den EZ Seite gefunden:
http://ez.no/developer/articles/e...engine_optimization/meta_information
^^ das Skript-Template habe ich in die page_head.tpl gelegt.

Leider funktioniert dieses nicht bei mir, die Metatags werden wie immer angezeigt und hinzu kommen zwie neue, leere Felder Description und Keywords.
Was mache ich falsch?

Danke und Gruß

Stefan

Thomas Köhn

Thomas Köhn

Registriert seit: 05.03.2007

Beiträge: 355

Donnerstag, 02. April 2009 15:42:40

Sind deine Attributbezeichner richtig? Also hast du die Attribute "meta_description" und "meta_keys"?

Dipl. Ing. (FH) M. Sc. Thomas Köhn

http://www.jac-systeme.de - Individuelle WEB-Lösungen
--
http://www.CJW-NETWORK.com/de - Developers united in eZ Publish
http://projects.ez.no/cjw_newsletter - eZ Publish Newsletter Lösung

Thomas Köhn

Thomas Köhn

Registriert seit: 05.03.2007

Beiträge: 355

Donnerstag, 02. April 2009 15:43:01

Könnte auch ein Cache-Problem sein. Einfach mal ausschalten.

Dipl. Ing. (FH) M. Sc. Thomas Köhn

http://www.jac-systeme.de - Individuelle WEB-Lösungen
--
http://www.CJW-NETWORK.com/de - Developers united in eZ Publish
http://projects.ez.no/cjw_newsletter - eZ Publish Newsletter Lösung

Stefan Layer

Registriert seit: 29.06.2006

Beiträge: 16

Donnerstag, 23. April 2009 14:21:07

Der Cache ist deaktiviert und die Namen passen, ich habe den Cache sogar nochmal manuell gelöscht, aber es klappt einfach nicht.

Evtl. hapert es an der Einbindung in der page_head.tpl:
{section name=meta loop=$site.meta}
<meta name="{$meta:key|wash}" content="{$meta:item|wash}">
{/section}

{let node_metas=fetch(conten, node, hash(node_id, $module_result.node_id))}
<meta name="description" content="{$node_metas.object.data_map.meta_description.content.output.output_text}" />
<meta name="keywords" content="{$node_metas.object.data_map.meta_keys.content.output.output_text}" />
{/let}

Die Metatags werden doppel ausgegeben, einmal die fest definierten und dann noch einmal leer:
" <meta name="description" content="" />
<meta name="keywords" content="" />
"

Sebastian v. Roos

Registriert seit: 27.01.2006

Beiträge: 358

Donnerstag, 23. April 2009 20:50:23

nur mal so hingedacht, ich hab mich damit noch nicht beschäftigt.
Aber wie ich es verstehe, holt sich die Abfrage in einem Fall das Metatagszeug aus der site.ini, im anderen Fall aus einer damit ergänzten Class.
Oder irr ich mich.
Somit müsstest du die Klasse, was wo metatags angezeigt werden sollen, editieren, also um Attribute, die so heißen, ergänzen.

Denn was würde sonst fürn Sinn machen, das nicht auch in die site.ini zu schreiben?
Oder erzähl ich kokolores?

Welche Klassen hast du denn erweitert mit meta_description und meta_keys ?

Wie gesagt, vielleicht erzählich auch Quatsch.

Metasalem

ps
oder ist metatags ne eigene klasse?

_______________________

http://webdevelopment.artenic.de ARTENIC - Publishing mit allen Mitteln!

Stefan Layer

Registriert seit: 29.06.2006

Beiträge: 16

Freitag, 24. April 2009 08:59:36

Hallo und erst einmal danke für die Antwort.

Die Klasse (Standardseite) wurde natürlich, wie in dem o.g. Artikel beschrieben, erweitert.
Also "meta_description" und "meta_keys" erweitern die Klasse und werden in der page_head.tpl nach o.g. Schema ausgelesen.

Im Quelltext der Seite stehen die (leeren) dann auch die leeren
<meta name="description" content="">
<meta name="keywords" content="">

Wo ich mich nicht sicher bin ist jedoch, die genaue Positionierung des neuen Quelltextes in der "page_head.tpl".

Sebastian v. Roos

Registriert seit: 27.01.2006

Beiträge: 358

Freitag, 24. April 2009 11:35:10

was zeigt denn
Variablen im Pagelayout:
module_result <br />{$module_result|attribute(show,5)}
designkeys <br />{$DesignKeys:used|attribute(show,5)}
view_parameters <br />{$view_parameters|attribute(show)}
uri_string {$uri_string} <br />
requested_uri_string {$requested_uri_string} <br />
site <br />{$site|attribute(show)}
ezinfo <br /> {$ezinfo|attribute(show)}

wie gesagt, es gibt glaub ich immer noch so manches was ich *peinlich* nicht weiß über eZ.

deswegen, ... ivelleicht lieg ich völlig daneben.

Diese Klasse Standardseite, ist das eine selbstangelegte und heißt die wirklich genau so?
Oder ist es frontpage?



ps
wie gesagt, vielleicht lieg ich ganz und gar daneben
in dem scriptbeispiel ist das nicht auch ein Fehler: da steht:
{let node_metas=fetch(conten, node, hash(node_id,

contenT

_______________________

http://webdevelopment.artenic.de ARTENIC - Publishing mit allen Mitteln!

Stefan Layer

Registriert seit: 29.06.2006

Beiträge: 16

Dienstag, 28. April 2009 11:36:37

Hi,
der Hinweis mit dem contenT wurde behoben, klappt jedoch immer noch nicht.
Mit den von Dir genannten Angaben erscheinen im Quelltext die Standard EZ Einstellungen:

>description string 'Content Management System'
>keywords string 'cms, publish, e-commerce, content management, development framework'

Aber nichts zu sehen, von meinen für die Standardseite (contentpage_standard) angelegten Begriffe.

Sebastian v. Roos

Registriert seit: 27.01.2006

Beiträge: 358

Dienstag, 28. April 2009 16:07:54

vielleicht bearbeitest du die falsche page_head.tpl ?

Ich hab jetzt mal ausprobiert:
habe ein normales overide für page_head.tpl erstellt, my_page_head.tpl, diese eingetragen in override.ini.append.tbc

[mypagehead]
Source=page_head.tpl
MatchFile=my_page_head.tpl
Subdir=templates


Nun kann ich z.B. mit
<meta name="Metusalemsdaten" content="{$pagedesign.data_map.footer_text.content}" />
ein neues Metatag mit dem footerinhalt erzeugen, und das müsste doch mit weiteren attributen auch gehen.

_______________________

http://webdevelopment.artenic.de ARTENIC - Publishing mit allen Mitteln!

Stefan Layer

Registriert seit: 29.06.2006

Beiträge: 16

Mittwoch, 29. April 2009 16:03:30

Wenn es die falsche wäre, würde sich doch im Quellcode nichts ändern, oder?

Das würde mich zumindest irritieren, die Inhalte die ich ändere tauchen auf,
jedoch nicht die Werte die in den Metatags eingefügt werden sollen.
<meta name="description" content="">
Also scheint es an der Übergabe der Variable
$node_metas.object.data_map.meta_description.content.output.output_text

bei dem Tag:
<meta name="description" content="{$node_metas.object.data_map.meta_description.content.output.output_text}" />

oder das auslesen der Werte aus der DB zu scheitern.

Sebastian v. Roos

Registriert seit: 27.01.2006

Beiträge: 358

Mittwoch, 29. April 2009 17:30:02

vielleicht ist dieses codepeace da irgendwie veraltet und funktionockelt nicht mehr.

Aber andere attribute deiner klasse werden doch auch angezeigt, so wie ich es verstanden habe, warum nimmst du nicht einfach genau den gleichen code?

probier doch mal mit {$pagedesign.data_map.meta_desripschen.content}
vielleicht gehts ja, ohne irgendwas anderes.

<meta name="Diskretion" content="{$pagedesign.data_map.meta_description.content}" />

welche eZ version isses denn?

me

_______________________

http://webdevelopment.artenic.de ARTENIC - Publishing mit allen Mitteln!

Sebastian v. Roos

Registriert seit: 27.01.2006

Beiträge: 358

Mittwoch, 29. April 2009 18:44:55

so,nu hab ich noch mal probiert, mit anderen Klassen.
Dies funzt bei mir,und liest sowohl im pagelayout.tpl wie im page_head.tpl das attribute, sofern im aktuell angeklickten node vorhanden, aus:


{let node_metas=fetch(content, node, hash(node_id, $module_result.node_id))}

<meta name="megadiskretion" content="{$node_metas.object.data_map.meta_description.content.output.output_text}" />

{/let}


wenn ich z.B. den body nehme, und einen article anklicke. steht der ganze body im megakick.

{let node_metas=fetch(content, node, hash(node_id, $module_result.node_id))}

<meta name="megadiskretion" content="{$node_metas.object.data_map.body.content.output.output_text}" />

{/let}

)



---------
ich weiß nicht, hab ich hab wohl Langeweile.
jetzt hab ich noch weiter probiert:
es geht NICHT, wenn das attribute den Datentyp "Textzeile" hat, (hatte mit xml-Datenfeld probiert)

beim Datentyp Textzeile geht aber dafür dies:
<meta name="megadiskretion" content="{$node_metas.object.data_map.meta_description.content}" />

Gruß

_______________________

http://webdevelopment.artenic.de ARTENIC - Publishing mit allen Mitteln!

Stefan Layer

Registriert seit: 29.06.2006

Beiträge: 16

Donnerstag, 30. April 2009 14:51:23

Yeah, super es klappt.

Hier nochmal der Code:
----------
{let node_metas=fetch(content, node, hash(node_id, $module_result.node_id))}
{if eq( $node_metas.object.data_map.meta_description.content,""}
<meta name="description" content="{$site.meta.description|wash}">
{else}
<meta name="description" content="{$node_metas.object.data_map.meta_description.content|wash}">
{/if}
{if eq( $node_metas.object.data_map.meta_keys.content,""}
<meta name="keywords" content="{$site.meta.keywords|wash}">
{else}
<meta name="keywords" content="{$node_metas.object.data_map.meta_keys.content|wash}">
{/if}
{/let}
----------
Die beiden Klassenerweiterungen werden ausgelesen und sofern diese Werte erhalten, werden diese in den Metatags ausgegeben.
Sind diese leer (sollte also z.B. mal ein Kollege vergessen die Inhalte zu pflegen), werden Standardwerte aus der Datei site.ini.append.php des jeweiligen
Siteaccess ausgegeben.

Nochmal besten Dank!

Stefan

Thomas Köhn

Thomas Köhn

Registriert seit: 05.03.2007

Beiträge: 355

Freitag, 08. Mai 2009 09:19:39

Enthalten alle Klassen bei dir Meta-Daten? Wenn nicht solltest du mal das vohandensein vorher prüfen. Ansonsten spamst du dir deine Logdateien randvoll.

{if and( is_set($node_metas.object.data_map.meta_description), eq( $node_metas.object.data_map.meta_description.content,"" )}
...
{/if}
....
{if and( is_set($node_metas.object.data_map.meta_keys), eq( $node_metas.object.data_map.meta_keys.content,""}

{/if}

Dipl. Ing. (FH) M. Sc. Thomas Köhn

http://www.jac-systeme.de - Individuelle WEB-Lösungen
--
http://www.CJW-NETWORK.com/de - Developers united in eZ Publish
http://projects.ez.no/cjw_newsletter - eZ Publish Newsletter Lösung

Um Zugang zu den Foren zu erhalten, müssen Sie angemeldet sein