Plugin Advanced Mod Rewrite für Contenido 4.8.x

xmurrix
Beiträge: 3143
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: 3- 4- Kategoriebene - falscher Link

Beitrag von xmurrix » Mi 18. Jun 2008, 22:21

victor hat geschrieben:...
Release: 4.8.6 - Bestehende Installation mit 370 Seiten und 5 Mandanten
plugin_advanced_mod_rewrite_0.3.0...
Verwende bitte für Contenido 4.8.6 die von yodatortenboxer angepasste Version des Plugins (http://www.xtended-cooperation.de/werbe ... in486.html).
Hauptmenu
  • 1.0 Wir-ueber-uns
    1.0.1 Portraits-der-Partner
    1.0.1.1 Standorte

Innerhalb der Kategorie Standort liegen die einzelnen Profile/Artikel der Partner.
Der Link sieht dann in etwa so aus den das Modul generiert.

http://www.domain.de/Wir-ueber-uns/Port ... uster.html

Leider scheint es so als ob das mod rewrite 0.3.0 nicht die Möglichkeit hat bis in die 3. Ebene die Links aufzulösen, denn man wird dann auf die Fehlerseite geleitet.Wenn ich den gewünschten Partner Hans-Muster eine Ebene höher schiebe sprich den Artikel verschiebe auf

http://www.domain.de/Wir-ueber-uns/Port ... uster.html

dann funktioniert der Link einwandfrei.

xmurrix weist du Rat wo man das Modul auf 3 bzw. 4 Ebene erweitern kann ?.
...
Den Grund für das von dir beschriebene Verhalten kann ich dir leider nicht nennen. Eigentlich ist es für das Plugin unerheblich, wie tief die Kategoriestruktur ist, da gibt es keine Beschränkung.

Daher vermute ich das Problem woanders. Aber um das herauszufinden müsste ich deine Kategorie-/Artikelstruktur nachbilden, um dann das Ganze richtig zu debuggen. Du kannst mir ja auch ein Dump der DB inkl. des Inhalts des cms-Ordners schicken und ich schauew mir das bei Gelegenheit an.

Du kannst auch mal probieren, am Prozentsatz der URL-Erkennung herumzuschrauben, oder dir die Aliase der Kategorien genauer ansehen, vielleicht ist dort irgendwo der Wurm drin.

Gruß
xmurrix

yodatortenboxer
Beiträge: 424
Registriert: Do 22. Jan 2004, 14:45
Wohnort: Kölpinsee auf Usedom
Kontaktdaten:

Beitrag von yodatortenboxer » Mi 18. Jun 2008, 22:37

Also ich hatte eben mal schnell bei mir paar ebenen angelegt

Code: Alles auswählen

http://www.xtended-cooperation.de/werbeagentur/deutsch/leistungen/internet/webdesign/test/testtest/test.html
und alles funktioniert bei mir bei diesen 5 Ebenen soweit wunderbar wobei ich nicht die StandartNavi benutze. (Hab die Links natürlich nun wieder entfernt)

Kannst du mal dein Hauptnavimodul posten?

Supporter
Beiträge: 124
Registriert: Mo 12. Mai 2008, 14:21
Wohnort: In the middle of something...
Kontaktdaten:

Beitrag von Supporter » So 22. Jun 2008, 10:09

Hallo

Ich hab da mal 'ne Frage...

Bei einer 4.8.6 habe ich das Plugin installiert und mir ist aufgefallen dass sich irgendwie keine individuellen Aliase eingeben lassen.

Beispiel: Mär = Maerz

Unter der 4.6.23 MR kann man zum richtigen Kategorienamen eine ganz anderen Alias bezeichnen, in der 4.8.6 geht das leider nicht mehr.

Liegt das vielleicht an meiner Installation des Plugins?

So kommen wir auch schon zu meiner zweiten Frage...

Wenn ich das Plugin installiert habe, muss ich dann noch einmal ein Update der Installation von Contenido über das reguläre Setup machen?
Ειμαστε στη μεση απο κατι...

baumpaul
Beiträge: 346
Registriert: Mo 1. Mär 2004, 12:59
Kontaktdaten:

Beitrag von baumpaul » So 22. Jun 2008, 10:15

Welche Version des PlugIn benutzt du? In der neuesten Version wurde dieser Bug gefixt.

yodatortenboxer
Beiträge: 424
Registriert: Do 22. Jan 2004, 14:45
Wohnort: Kölpinsee auf Usedom
Kontaktdaten:

Beitrag von yodatortenboxer » So 22. Jun 2008, 11:37

Wenn ich das Plugin installiert habe, muss ich dann noch einmal ein Update der Installation von Contenido über das reguläre Setup machen?
Weis zwar jetzt nicht genau wie du das meinst, aber hier einmal ein Beispiel:

Contenido V4.8.4 und das Plugin V 0.3.0 von xmurrix

Darüber ein Update auf die Contenido V4.8.6, also alle Dateien auf den Server kopieren und dann bei dem Contenido-Setup auf Update gehen.
Wenn dann dort alles fertig ist das neue MR-Plugin über die Contenido V4.8.6 auf den Server kopieren. Danach muss wieder im Pluginsetup, also unter contendio/plugins/mod_rewrite/install.php das Pluginsetup ausgeführt werden (nach dem Login auf Update klicken).

Wichtig: Warum das neue Plugin?
Es sind im Plugin V 0.3.0 auch Contenido eigene Systemdateien der V4.8.4 von xmurrix angepasst worden die bei einem Update auf eine neue Contenido-Version natürlich wieder von dieser überschrieben werden.
Bei der Contenido V4.8.6 sollte man daher nicht weiterhin die Plugin V 0.3.0 von xmurrix sondern die neue an die Contenido V4.8.6 angepasste Pluginversion von xmurrix verwenden.

Hintergrund: In einigen Systemdateien der Contenido V4.8.4, die auch im Plugin V 0.3.0 von xmurrix verwendet werden, wurden wichtige Sicherheitsupdates gemacht wurden (Bsp. front_content.php). Diese Systemdateien sind in der neuen Version des Plugins von xmurrix an die neue Contenido V4.8.6 angepasst. Installierst du also über die Contenido V4.8.6 wieder das Plugin V 0.3.0 von xmurrix hast du bei einigen Systemdateien wieder die angepassten Contenido V4.8.4 Dateien im System und da fehlen dir dann die wichtigen neuen Sicherheitsupdates.

Vieleicht hilft dir das hier weiter.
Zuletzt geändert von yodatortenboxer am So 22. Jun 2008, 13:23, insgesamt 1-mal geändert.

xmurrix
Beiträge: 3143
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Beitrag von xmurrix » So 22. Jun 2008, 12:14

Supporter hat geschrieben:...
Bei einer 4.8.6 habe ich das Plugin installiert und mir ist aufgefallen dass sich irgendwie keine individuellen Aliase eingeben lassen.

Beispiel: Mär = Maerz

Unter der 4.6.23 MR kann man zum richtigen Kategorienamen eine ganz anderen Alias bezeichnen, in der 4.8.6 geht das leider nicht mehr.

Liegt das vielleicht an meiner Installation des Plugins?
Hallo Supporter,

erstmal vielen Dank für den Hinweis, das Ändern der Kategoriealiase war bis Dato nicht möglich, das Plugin hat immer aus dem eingegebenen Kategorienamen den Alias erstellt. Diesen Fall habe ich bisher nicht bedacht und getestet.

Wenn du die folgenden SQL-Statements auf deiner Contenido DB ausführst, werden eingegebene Kategoriealiase anstatt der Kategorienamen verarbeitet:

Code: Alles auswählen

-- update action 4 str_newtree
UPDATE !PREFIX!_actions SET code='// plugin AdvancedMod Rewrite\r\n$tmp_newid = strNewTree($categoryname, $categoryalias, $visible, $public, $idtplcfg);\r\nstrRemakeTreeTable();\r\nif ((int) $tmp_newid > 0) {\r\n    $mrCatAlias = (trim($categoryalias) !== '''') ? trim($categoryalias) : trim($categoryname);\r\n    // set new urlname - because original set urlname isn''t validated for double entries in same parent category\r\n    ModRewrite::set_category($mrCatAlias, $tmp_newid, $lang);\r\n}\r\n// end plugin AdvancedMod Rewrite' 
WHERE idaction=9;

-- update action 4 str_newcat
UPDATE !PREFIX!_actions SET code='// plugin AdvancedMod Rewrite\r\n$tmp_newid = strNewCategory($idcat, $categoryname, true, $categoryalias, $visible, $public, $idtplcfg);\r\nif ((int) $tmp_newid > 0) {\r\n    $mrCatAlias = (trim($categoryalias) !== '''') ? trim($categoryalias) : trim($categoryname);\r\n    // set new urlname - because original set urlname isn''t validated for double entries in same parent category\r\n    ModRewrite::set_category($mrCatAlias, $tmp_newid, $lang);\r\n    unset($mrCatAlias);\r\n}\r\n// end plugin AdvancedMod Rewrite' 
WHERE idaction=10;

-- update action 4 str_renamecat
UPDATE !PREFIX!_actions SET code='// plugin AdvancedMod Rewrite\r\nstrRenameCategory ($idcat, $lang, $newcategoryname, $newcategoryalias);\r\n$mrCatAlias = (trim($newcategoryalias) !== '''') ? trim($newcategoryalias) : trim($newcategoryname);\r\nif ($mrCatAlias != '''') {\r\n    // set new urlname - because original set urlname isn''t validated for double entries in same parent category\r\n    ModRewrite::set_category($mrCatAlias, $idcat, $lang);\r\n}\r\nunset($mrCatAlias);\r\n// end plugin AdvancedMod Rewrite' 
WHERE idaction=11;
Der Tabellenprefix "!PREFIX!" ist gegen den bei dir eingesetzten Prefix (normalerweise "con") zu ersetzen.

Ich werde den Fix gleich in den nächten Release einbauen, das wird aber erst am Abend oder Morgen sein. Bei dem Wetter ist erstmal Siesta angesagt...
Supporter hat geschrieben: So kommen wir auch schon zu meiner zweiten Frage...

Wenn ich das Plugin installiert habe, muss ich dann noch einmal ein Update der Installation von Contenido über das reguläre Setup machen?
Die Reihenfolge der Installation ist immer
1. Contenido Installation/Update
2. Plugin Installation/Update
Das Plugin ändert ein paar Contenido Sourcen und Einträge in der Tabelle !PREFIX!_actions (z. B. con_actions), diese werden bei einem installierten Plugin und einem nachträglichen Contenido Upgrade wieder von Contenido überschrieben. Damit das Plugin danach richtig funzt, muss es wieder drüber installiert werden. Das geht entweder mit einem Pluginupgrade oder Deinstallation und Neuinstallation des Plugins über http://domain.tld/contenido/plugins/mod ... nstall.php.

Gruß
xmurrix
Zuletzt geändert von xmurrix am So 22. Jun 2008, 17:43, insgesamt 1-mal geändert.

yodatortenboxer
Beiträge: 424
Registriert: Do 22. Jan 2004, 14:45
Wohnort: Kölpinsee auf Usedom
Kontaktdaten:

Beitrag von yodatortenboxer » So 22. Jun 2008, 13:25

@xmurrix
eben gesehen das du nun die neue Version nun ebenfalls bei dir online hast, ich werde dann den Download bei mir wieder entfernen.

Contenider
Beiträge: 503
Registriert: Do 6. Apr 2006, 01:40
Kontaktdaten:

Beitrag von Contenider » So 22. Jun 2008, 14:53

Okay, danke für die Hinweise. Zum Verständnis habe ich aber noch eine Frage:
Die Reihenfolgen der Installation ist immer
1. Contenido Installation/Update
2. Plugin Installation/Update
Mit dem Update ist aber nur die Installation gemeint, oder muss ich nach der Installation noch das Setup von Contenido erneut durchführen?

Ich bin ja nicht blöd, aber irgendwie erscheint mir das doch etwas missverständlich, vielleicht denke ich auch zu kompliziert... Irgendwo habe ich nämlich etwas in der Richtung gelesen und es mag sein dass ich nicht richtig aufgepasst habe.
Zuletzt geändert von Contenider am So 22. Jun 2008, 14:56, insgesamt 1-mal geändert.
Ειμαστε στη μεση απο κατι...

Contenider
Beiträge: 503
Registriert: Do 6. Apr 2006, 01:40
Kontaktdaten:

Beitrag von Contenider » So 22. Jun 2008, 14:54

Achso, noch etwas - wo bekomme ich die aktuellste verfügbare Version zum herunterladen?

Wird der Link jetzt immer im Eingangsposting aktualisiert?
Ειμαστε στη μεση απο κατι...

yodatortenboxer
Beiträge: 424
Registriert: Do 22. Jan 2004, 14:45
Wohnort: Kölpinsee auf Usedom
Kontaktdaten:

Beitrag von yodatortenboxer » So 22. Jun 2008, 15:01

die aktuellste Version bekommst du normalerweise immer unter http://www.purc.de/contenido_plugin_adv ... a.109.html

die Version von mir war nur eine schnelle angepasste/gepatchte Version der 0.3.0 an die Contenido V 4.8.6 von xmurrix.

Mittlerweile wurde nun die 0.3.1 veröffentlicht die nicht nur eine anpassung an die 4.8.6 sondern auch ein paar kleinere zusätzliche Änderungen hat siehe:
2008-06-18 AdvancedMod Rewrite Plugin 0.3.1

* new: Added SQL-Statements for pluginupdate
* change: Adapted to Contenido 4.8.6
* bugfix: Later setting of article urlname won't work
Der Link zum Download ist im ersten Beitrag ganz unten
DOWNLOAD
Das Plugin könnt ihr von meiner Seite unter
Contenido Advanced Mod Rewrite
herunterladen

xmurrix
Beiträge: 3143
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Beitrag von xmurrix » So 22. Jun 2008, 17:27

Contenider hat geschrieben: Mit dem Update ist aber nur die Installation gemeint, oder muss ich nach der Installation noch das Setup von Contenido erneut durchführen?
Wenn du damit das Pluginupdate meinst, dann ist damit nur die Installation des Plugins gemeint, nicht da erneute Setup von Contenido.

Ich weiß, es fehlt der Community an einer besseren Beschreibung zur Installation oder zum Update des Plugins, für den Fall, wenn mal eine vorhandene Contenido Version aktualisiert wird. Ich werde es im folgenden mit einem Szenario versuchen zu beschreiben. Sehr wahrscheinlich weißt du schon einiges davon, da das auch für andere Leser wichtig sein kann, werde ich dennoch etwas ausholen:

Nehmen wir an, du hast ein Webauftritt mit Contenido 4.8.4 realisiert, auf dem du auch das MR Plugin mit der Version 0.3.0 installiert hast.

Nun kommt Contenido mit 4.8.6 raus, mit dem Hinweis, vorhandene Contenido 4.8.x Versionen zu aktualisieren.

Du führst ein Upgrades deiner Contenido-Installation laut der Beschreibung aus der README.TXT von Contenido (Punkt 4.0) aus.

Dies ist nun der Punkt, an dem das Plugin nicht mehr korrekt arbeitet. Warum ist das so? Das Plugin bringt selber eine überarbeitete Version mancher Contenido Sourcen mit und nimmt während der Plugininstallation ein paar Modifikationen an der Tabelle !PREFIX!_actions (!PREFIX! = das verwendete Tabellenprefix, normalerweise "con", z. B. con_actions) vor. Wird eine Contenidoinstallation aktualisiert, überschreibt Contenido die Sourcen und aktualisiert die DB, was auch richtig ist. Dabei werden auch die Pluginversionen der Sourcen überschrieben und die Änderungen an der Tabelle !PREFIX!_actions sind auch weg.

Um das Plugin wieder zum Laufen zu bekommen, musst du eine für die verwendete Contenido-Version passende Plugin-Version installieren. Für Contenido 4.8.6 wäre dies momentan das MR Plugin 0.3.1 oder auch die Version von yodatortenboxer (URL http://www.xtended-cooperation.de/werbe ... in486.html). Eine ältere Plugin-Version ist nicht kompatibel mit der 4.8.6. Genauso kann eine ältere Contenido-Version mit einem neueren Plugin nicht kompatibel sein. Also sollten beide Versionen übereinstimmen.

Nun zur Installation/zum Update des MR Plugins. Da gibt es zwei Möglichkeiten:

1. Es gibt zur der Verwendeten Contenido-Version auch eine passende Plugin-Version
Das ist der einfachere Fall. Hierbei solltest du die neue Plugin-Version herunterladen, die Inhalte des Archivs über deine vorhandenen Contenido Sourcen drüberkopieren. Damit wären die pluginspezifischen Contenido-Sourcen installiert. Nun ist auch die DB zu aktualisieren, dafür ist der Plugininstaller http://domain.tld/contenido/plugins/mod ... nstall.php aufzurufen.

Hier gibt es nun drei Fälle, die eintreten können:
a.) Das Plugin wurde vorher nie installiert, oder der Pluginintaller konnte ein installiertes MR Plugin nicht finden, dann erscheint ein Link mit dem Text "Install Advanced Mod Rewrite ...". Mit Klick auf den Link lässt sich das Plugin installieren.

b.) Es gab schon vorher eine "andere" Version des Plugins, dann erscheint ein Link mit dem Text "Update Advanced Mod Rewrite ...". Ich betone hier das Wort "andere", weil es für den Plugininstaller unerheblich ist, ob die neue Version neuer oder älter als die vorhandene Pluginversion ist. Also sollte die neue Plugin-Version eine höhere Versionierung haben, als die Vorhandene (z. B. alt = 0.3.0, neu: 0.3.1). Ab der Version 0.3.1 lässt sich das Upgrade mit Klick auf den Link "Update Advanced Mod Rewrite ..." einspielen. Bei Plugin-Versionen vor 0.3.1 geht das über die Deinstallation un erneute Installation des Plugins.

c.) Die neu installierte Plugin-Version ist identisch mit der Version, die schon vorher vorhanden war. Erkenntlich ist das durch den Link mit dem Text "UnInstall Advanced Mod Rewrite". Wenn aber das Plugin, warum auch immer, nun wieder installiert werden muss, einfach auf uninstall klicken, den Plugin-Installer aufrufen und wieder installieren.

Hinweis:
Der Plugininstaller macht momentan nur Änderungen an der Datenbank, es werden keine Dateien überschrieben oder kopiert. Bei einer Deinstallation des Plugins werden auch nur die Änderungen an der DB rückgängig gemacht. Soll das Plugin komplett deinstalliert werden, sind auch die vom Plugin geänderten Sourcen zu überschreiben, indem die Sourcen aus Contenido wieder drüber kopiert werden.

2. eine adhoc-Version des Plugins zur der neuen Contenido-Version steht nicht zur Verfügung
Wenn zur der verwendeten Contenido-Version, keine neue Plugin-Version bereitsteht, kannst du das auch eventuell mit etwas PHP-/ und SQL-Verständniss selber anpassen. Dabei Vergleichst du die Sourcen aus Contenido mit den Sourcen aus dem Plugin. Mit einem geignetten Diff-Tool werden die Unterschiede wunderbar dargestellt, und es sollte in der Regel kein Problem sein, die Adaption vorzunehmen. Ich verwende für solche Aufgaben das Tool WinMerge, das unter Windows läuft. Für andere Systeme gibt es auch genügend diff-Tools, z. B. DiffMerge, usw...

An der Tabelle !PREFIX!_actions, gab es seit langem keine Änderungen an vorhandenen Einträgen, dennoch sollte hier der Code aus der Plugin-Version mit der Contenido-Version verglichen werden. Vom Plugin werden Datensätze mit idaction 9, 10, 11, 15, 16, 30 und 55 geändert. Wenn du vor dem Contenido Upgrade die DB gesichert hast, kannst du die Inhalte der Einträge in der Tabelle !PREFIX!_actions beider DBs vergleichen, dafür gibt es auch ein Webbasiertes Tool www.mysqldiff.de, habe es aber noch nie verwendet und kann daher nichts dazu sagen.

Ich hoffe, dass diese Beschreibung einigermaßen verständlich die Vorgehensweisen bei der Installation oder beim Upgrade des MR Plugins näherbringt.

Grüße
xmurrix

Contenider
Beiträge: 503
Registriert: Do 6. Apr 2006, 01:40
Kontaktdaten:

Beitrag von Contenider » So 22. Jun 2008, 19:39

Mensch, das war aber sehr ausführlich!

Nun, die Kurzfassung ist also:

Schritt 1 - Installation Contenido
Schritt 2 - Installation Plugin

So hatte ich es auch gemacht, aber weil ich glaube irgendwo gelesen zu haben, dass man nach dem Installieren des Plugins noch einmal das Setup von Contenido als Update durchführen muss, und darüber hinaus auch die Aliase nicht funktionierten, verhärtete sich dazu mein Verdacht und ich kam durcheinander.

Aber wenn man logisch denkt, dann wird man wohl erkennen dass durch ein erneutes Setup die Dateien des Plugins wohl überschrieben werden?!

Naja, wäre das jedenfalls geklärt, danke noch einmal für den ausführlichen Post.
Ειμαστε στη μεση απο κατι...

andreasb
Beiträge: 212
Registriert: Fr 10. Dez 2004, 02:48
Wohnort: Fernwald
Kontaktdaten:

Beitrag von andreasb » Mi 2. Jul 2008, 00:57

Hallo!

Ich habe einmal das Plugin zur 4.8.4 installiert. Funkt grundsätzlich prima. Da ich aber mit einem Modul Problme hatte habe ich erstmal wieder ausgeschaltet.

Der Site ist eine index.html mit Flashintro vorgeschaltet. Bei Eingabe der Domain kommt diese nun nicht mehr sondern direkt die eigentliche Startseite. Auch nicht, wenn ich die index.html direkt mit eintippe.

Wie kann das sein`
Danke!

xmurrix
Beiträge: 3143
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Beitrag von xmurrix » Mi 2. Jul 2008, 10:14

andreasb hat geschrieben:...
Der Site ist eine index.html mit Flashintro vorgeschaltet. Bei Eingabe der Domain kommt diese nun nicht mehr sondern direkt die eigentliche Startseite. Auch nicht, wenn ich die index.html direkt mit eintippe.

Wie kann das sein`
Danke!
Hallo,

wenn Mod Rewrite aktiviert ist, werden alle Anfragen bis auf einige wenige an die Seite index_controller.php weitergeleitet, auch deine Flashintro-Seite index.html.

Du musst in der .htaccess eine Regel für Ausschluss der index.html definieren, folgende Regel sollte funktionieren:

Code: Alles auswählen

RewriteRule ^cms/index.html$ - [L]
Gruß
xmurrix

Dodger77
Beiträge: 3626
Registriert: Di 12. Okt 2004, 20:00
Wohnort: Voerde (Niederrhein)
Kontaktdaten:

Beitrag von Dodger77 » Mi 2. Jul 2008, 10:36

Man könnte natürlich auch grundsätzlich die weitere Verarbeitung für bestehende Verzeichnisse/Dateien verhindern mit:

Code: Alles auswählen

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

Gesperrt