feature request: meta tags vordefinition

Ideen für neue Funktionen in CONTENIDO?
emergence
Beiträge: 10645
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

feature request: meta tags vordefinition

Beitrag von emergence » Fr 2. Apr 2004, 12:59

ähm mir ist da noch ein nettes feature eingefallen...

momentan ist es in contenido nicht möglich metatags vorzudefinieren...
dies liesse sich aber leicht lösen wenn beim ergänzen der metatags für die con_code zuerst ein replace der bestehenden tags im layout versucht wird... falls kein dementsprechender metatag gefunden wird -> so einfügen wie bisher...

die vordefinition könnte man dann einfach ins layout schreiben...
*** make your own tools (wishlist :: thx)

timo
Beiträge: 6284
Registriert: Do 15. Mai 2003, 18:32
Wohnort: Da findet ihr mich nie!
Kontaktdaten:

Beitrag von timo » Fr 2. Apr 2004, 15:25

es wäre very nice wenn du feature requests in den Bugtracker schreibst, weil es dort einfacher zu tracken ist :)

aber auch hier: super idee!

emergence
Beiträge: 10645
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence » Fr 2. Apr 2004, 18:00

timo hat geschrieben:es wäre very nice wenn du feature requests in den Bugtracker schreibst, weil es dort einfacher zu tracken ist :)
mach ich gerne, wollte die community aber nicht ausschließen...
vielleicht gibts ja mehr feedback...
*** make your own tools (wishlist :: thx)

Halchteranerin
Beiträge: 5478
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)
Kontaktdaten:

Beitrag von Halchteranerin » Fr 2. Apr 2004, 19:34

emergence hat geschrieben: mach ich gerne, wollte die community aber nicht ausschließen...
vielleicht gibts ja mehr feedback...
ja, also die community findet die Idee auch ganz toll. :lol: Ich habe bei mir die Metatags in Contenido nicht ausgefuellt, weil es mir einfach zu muehsam war, es bei jedem Artikel zu tun. Vordefinierte Metatags waeren daher super!

emergence
Beiträge: 10645
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence » Sa 3. Apr 2004, 12:33

*** make your own tools (wishlist :: thx)

emergence
Beiträge: 10645
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence » Sa 3. Apr 2004, 13:15

bin mir jetzt nicht ganz sicher da ich nicht weiss ob dies schon gemacht wird wenn die metatags gespeichert werden...
hab da noch eine kleinigkeit gefunden die man noch einbauen sollte

bei function conGetMetaValue($idartlang, $idmetatype)

sollte anstelle von

Code: Alles auswählen

		return $db->f("metavalue");
folgendes verwendet werden...

Code: Alles auswählen

		return trim($db->f("metavalue"));
eine lösung für das problem hab ich auch schon...
*** make your own tools (wishlist :: thx)

emergence
Beiträge: 10645
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence » Sa 3. Apr 2004, 14:02

here we go...

functions.con.php
bei function conGenerateCode

findet sich folgendes...

Code: Alles auswählen

		foreach ($availableTags as $key => $value)
		{
			$metavalue = conGetMetaValue($idartlang,$key);

			if (strlen($metavalue) > 0)
			{

				$metatags .= "<meta name=\"".$value["name"]."\" content=\"$metavalue\">\n";
			}

		}
ersetzen durch

Code: Alles auswählen

		foreach ($availableTags as $key => $value)
		{
			$metavalue = conGetMetaValue($idartlang,$key);

			if (strlen($metavalue) > 0)
			{

				$code = preg_replace('/(<meta(?:\s+)name(?:\s*)=(?:\s*)(?:\\\\"|\\\\\')(?:\s*)'.$value["name"].'(?:\s*)(?:\\\\"|\\\\\')(?:[^>]+)>\r?\n?)/i', '', $code);
				$metatags .= "<meta name=\"".$value["name"]."\" content=\"$metavalue\">\n";
			}

		}
die funktionsweise ist wirklich simpel...
die metatags schreibt man jetzt einfach ins layout hinein (das ist dann die vordefinition)
wenn ein metatag unter eigenschaften eingetragen wird und im layout ist dieser vorhanden wird der bestehende metatag(die vordefinition) einfach aus dem layout entfernt... und die eingabe als neuer metatag ergänzt.

ist eigentlich ne ganz schöne regex geworden... (ne dreiviertel stunde für eine zeile)



mit bitte um feedback... ;-)
Zuletzt geändert von emergence am Sa 3. Apr 2004, 19:04, insgesamt 2-mal geändert.
*** make your own tools (wishlist :: thx)

Halchteranerin
Beiträge: 5478
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)
Kontaktdaten:

Beitrag von Halchteranerin » Sa 3. Apr 2004, 14:29

emergence hat geschrieben:mit bitte um feedback... ;-)
gut, hier kommt's :) (ich muss wohl lebensmuede sein, einfach so php-Dateien in meiner Online-Seite zu aenderen ... :wink:)

Es scheint zu funktionieren. Zumindest bei dem einen Versuch, den ich unternommen habe. Aber was mir aufgefallen ist: die Meta-Tags sind in einer bestimmten Reihenfolge bei mir. Wenn ich dann aber bei Eigenschaften z.B. 'author' aendere', wird der bestehende Meta-Tag geloescht, ein neuer wird aber an vorletzter Stelle erst eingefuegt (zuvor befand er sich an zweiter Stelle in der Reihe der Meta-Tags). Ich hasse RegExps :lol:, aber waere es trotzdem moeglich, die Reihenfolge der Meta-Tags zu behalten?

emergence
Beiträge: 10645
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence » Sa 3. Apr 2004, 14:40

Halchteranerin hat geschrieben:Es scheint zu funktionieren.
hoffe ich auch...
Halchteranerin hat geschrieben:Reihenfolge...
ja ich weiss, wäre sauberer es anders umzusetzen...
mich stört es an sich nicht da sofort ersichtlich ist, dass etwas geändert wurde...

regex sind ein thema für sich... aber wenn man sie mal verstanden hat, wie sie funktionieren, sind sie genial... ;-)
Halchteranerin hat geschrieben:aber waere es trotzdem moeglich, die Reihenfolge der Meta-Tags zu behalten?
möglich ist so ziemlich alles, nur ist es etwas aufwendiger...
man müsste zuerst überprüfen ob dieser metatag vorhanden ist (mittels preg_match -> und da mag ich die syntax nicht)
wenn ja die ersetzung mit dem neuen metatag vornehmen...
wenn nicht ergänzung wie bis her...
*** make your own tools (wishlist :: thx)

emergence
Beiträge: 10645
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence » Sa 3. Apr 2004, 18:09

hier die version die auf die reihenfolge rücksicht nimmt...

Code: Alles auswählen

		foreach ($availableTags as $key => $value)
		{
			$metavalue = conGetMetaValue($idartlang,$key);

			if (strlen($metavalue) > 0)
			{
                $tmetatag = "<meta name=\"".$value["name"]."\" content=\"$metavalue\">\n";
                if (preg_match('/(<meta(?:\s+)name(?:\s*)=(?:\s*)(?:\\\\"|\\\\\')(?:\s*)'.$value["name"].'(?:\s*)(?:\\\\"|\\\\\')(?:[^>]+)>\r?\n?)/i', $code)) {
                    $code = preg_replace('/(<meta(?:\s+)name(?:\s*)=(?:\s*)(?:\\\\"|\\\\\')(?:\s*)'.$value["name"].'(?:\s*)(?:\\\\"|\\\\\')(?:[^>]+)>\r?\n?)/i', addslashes($tmetatag), $code);
                } else {
                    $metatags .= $tmetatag;
                }
			}

		}
edit: kleine modifikation betreffend slashes bei ' wurde ergänzt...
Zuletzt geändert von emergence am Sa 3. Apr 2004, 19:03, insgesamt 1-mal geändert.
*** make your own tools (wishlist :: thx)

Halchteranerin
Beiträge: 5478
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)
Kontaktdaten:

Beitrag von Halchteranerin » Sa 3. Apr 2004, 18:13

emergence hat geschrieben:hier die version die auf die reihenfolge rücksicht nimmt...
Na, dann war's fuer Dich doch nicht so schwer. :wink: Danke, ich baue sie mal gleich ein ... Bleibt nur zu hoffen, dass sie bei den naechsten Versionen beruecksichtigt wird, waere ja sonst schade drum, wenn sie beim Update verloren ginge.

Halchteranerin
Beiträge: 5478
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)
Kontaktdaten:

Beitrag von Halchteranerin » Sa 3. Apr 2004, 18:21

Es funkt. :) Danke!

Halchteranerin
Beiträge: 5478
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)
Kontaktdaten:

Beitrag von Halchteranerin » Sa 3. Apr 2004, 18:25

Ich habe eine Frage, aber die geht wohl eher an timo, obwohl ... who knows?

Mit emergences Aenderung ist es moeglich, Meta-Tags aus dem Layout zu ueberschreiben. Was ich aber schoen faende: wenn ich mir die Eigenschaften eines Artikels anschaue und im Layout Meta-Tags vorhanden sind, waere es nicht schlecht, wenn diese auch angezeigt werden wuerden (sonst weiss ich nicht, was ich aendern kann, ohne im Layout nachzuschauen :arrow: zusaetzliche Klicks. :twisted:). Mir ist schon klar, dass man sich zig Meta-Tags definieren kann, aber wenigstens die 7, die schon unter Eigenschaften stehen, waeren schon mal ein Anfang. :)

Waere das sehr umstaendlich umzusetzen?

emergence
Beiträge: 10645
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence » Sa 3. Apr 2004, 19:12

die routinen wurden nochmals nachgebessert...
*** make your own tools (wishlist :: thx)

Halchteranerin
Beiträge: 5478
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)
Kontaktdaten:

Beitrag von Halchteranerin » Sa 3. Apr 2004, 20:39

emergence hat geschrieben:die routinen wurden nochmals nachgebessert...
hab' die neue Version uebernommen, ich melde mich, falls es knallen sollte. :)

Antworten