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: Setup Problem

Beitrag von xmurrix » So 28. Dez 2008, 13:07

josh hat geschrieben:...
Ja soweit läuft das. Kopiere dann mal das AMR Plugin 0.5.0 drüber.
Danach läuft das Contenido Setup nicht mehr durch.
...
Sorry, mein Fehler. Habe deinen Hinweis "Update von 4.4.5 auf 0.5.0" glatt übersehen und nach der Installation der 4.4.5 er Version die Fehlersuche beendet.

In der 0.5.0 wird die Funktion "getmicrotime" verwendet, die steht im Setupprozess nicht zur Verfügung, weil die entsprechende PHP-Datei nicht eingebunden wurde, daher die Fehlermeldung.

Da Contenido sowieso PHP5 voraussetzt, kann man die Funktion gegen die microtime ersetzen.

Um das zu Beheben, die Datei /conlib/local.php (aus dem Pluginpackage) öffnen und ab der Zeile 143 den Code

Code: Alles auswählen

    $timeStart = getmicrotime();
    $res = parent::query($query);
    $timeEnd   = getmicrotime();
ersetzen durch

Code: Alles auswählen

    $timeStart = microtime(true);
    $res = parent::query($query);
    $timeEnd   = microtime(true);
Werde den Fix in die nächste Version einbauen, danke für die Bugmeldung.

Grüße
xmurrix

josh
Beiträge: 156
Registriert: Do 24. Jun 2004, 09:25
Wohnort: Ahlen
Kontaktdaten:

Re: Setup Problem

Beitrag von josh » So 28. Dez 2008, 18:38

Danke Murat es läuft mit der Änderung

Sorry, mein Fehler. Habe deinen Hinweis "Update von 4.4.5 auf 0.5.0" glatt übersehen und nach der Installation der 4.4.5 er Version die Fehlersuche beendet.

...und ich hatte nen Schreibfehler drin. Update von 0.4.5 hätte da stehen müssen.

Ganz lieben Dank für die Hilfe und die viele Arbeit mit dem Plugin.

josh

herm1
Beiträge: 13
Registriert: Mo 24. Nov 2008, 15:01
Kontaktdaten:

Beitrag von herm1 » Di 30. Dez 2008, 20:22

Code: Alles auswählen

Fatal error: Call to a member function query() on a non-object in /home/www/contenido/includes/functions.str.php on line 625]
^^
Die folgende Meldung taucht unter Content > Category auf wenn ich einen neuen Ordner anlegen will. Nachdem ich das probiert habe wird nur der Hauptordner angezeigt... alle anderen nicht mehr, obwohl diese existieren. Der Ordnern den ich erstellen wollte wird unter Article angezeigt, jedoch kann darin kein Artikel erstellt werden.
Die Url Umwandlung funktioniert zuerst einwandfrei. Ich konnte meine Seite ganz normal betreten und mich hindurch mit den neuen Urls navigieren. Seitdem ich versucht habe einen Ordner anzulegen geht dies leider nicht mehr.
Deaktiviere ich das ModRewrite und entferne die .htaccess bleibt der Fehler bestehen. Die Verzeichnisstruktur scheint beschädigt zu sein...


Version 4.8.9
Apache 2
PHP 5.2.8
SQL 5

Hab ansonsten keine neuen Module installiert oder verändert... auch keine Sonstigen Datein
Lediglich 4.8.9 drauf, ein Paar Seiten erstellt und ModRewrite Modul installiert..


Gruß herm

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

Beitrag von xmurrix » Mi 31. Dez 2008, 16:22

Hallo,
herm1 hat geschrieben:

Code: Alles auswählen

Fatal error: Call to a member function query() on a non-object in /home/www/contenido/includes/functions.str.php on line 625]
der Fehler sollte behoben werden, wenn du die Zeile 604 in contenido/includes/functions.str.php von

Code: Alles auswählen

$db_str2 = new DB_Contenido();
in

Code: Alles auswählen

global $db_str2;
$db_str2 = new DB_Contenido();
erweiterst, damit die Variable $db_str2 im globalen Namensraum erstellt wird und in der Funktion zur Verfügung steht.
herm1 hat geschrieben:...Die folgende Meldung taucht unter Content > Category auf wenn ich einen neuen Ordner anlegen will. Nachdem ich das probiert habe wird nur der Hauptordner angezeigt... alle anderen nicht mehr, obwohl diese existieren...
Das Problem hatte ich auch und meines Wissens auch andere User. Nach dem Anlegen einer neuen Kategorie war auf einmal die Kategoriestruktur weg. Ich habe dann einfach eine neue Kategorie erstellt, dann war alles wieder da.

Was genau dir Ursache dafür ist, weiß ich nicht, vermutlich ein Bug - Am Plugin sollte das aber nicht liegen.

Gruß
xmurrix

herm1
Beiträge: 13
Registriert: Mo 24. Nov 2008, 15:01
Kontaktdaten:

Beitrag von herm1 » Do 1. Jan 2009, 13:10

Hallo xmurrix,
Vielen Dank... jetzt geht es im Backend und Frontend mit den Urls :)
Es tauchen allerdings nun zwei Warnungen im Frontendbereich auf

Code: Alles auswählen

Warning: /home/www/con489/contenido/classes/class.cec.php 101: Chain Contenido.Frontend.CreateURL doesn't exist. in /home/www/con489/contenido/includes/functions.general.php on line 2091

Warning: Cannot modify header information - headers already sent by (output started at /home/www/con489/contenido/includes/functions.general.php:2091) in /home/www/con489/cms/front_content.php on line 237

Code: Alles auswählen

//Datei unctions.general.php
function cWarning($file, $line, $message)
{
	trigger_error("$file $line: $message", E_USER_WARNING); //Zeile 2091
}

Code: Alles auswählen

//Datei front_content.php
 * Send HTTP header with encoding
header("Content-Type: text/html; charset={$encoding[$lang]}"); //Zeile 237
Hast du mir da einen Rat?
Ich hab zwar nach der Fehlermeldung im Board gesucht... genauso wie nach der der vorherigen:

Code: Alles auswählen

Fatal error: Call to a member function query() on a non-object in /home/www/contenido/includes/functions.str.php on line 625]
Hab aber zu beiden nichts gefunden... vielleicht suche ich auch falsch?!

Danke und Gruß aus Stuttgart herm

DiMiZu
Beiträge: 68
Registriert: Sa 8. Okt 2005, 12:49
Kontaktdaten:

Beitrag von DiMiZu » Do 1. Jan 2009, 13:33

Ich hänge mich an _wiewo_ an, gleiches Problem:

Neue Installation Contenido V 4.8.9
plugin_advanced_mod_rewrite_0.5.1

Sobald ich die Datei config.misc.php im include Ordner mit der des plugins überschreibe erhalte ich im Frontend eine leere weiße Seite auch wenn das Plugin im Backend noch gar nicht aktiviert ist. Ersetzte ich besagte Datei wieder durch die Orginaldatei dann funktioniert Contenido wieder, natürlich ohne mod_rewrite

Im Backend gibt es folgende Warnungen:

Code: Alles auswählen

PHP Warning:  call_user_func(Contenido_UrlBuilder_XFrontcontent::getInstance) [<a href='function.call-user-func'>function.call-user-func</a>]: Unable to call Contenido_UrlBuilder_XFrontcontent::getInstance() in /var/www/vhosts/xxxxxxxxxx/httpdocs/contenido/classes/UrlBuilder/Contenido_UrlBuilderFactory.class.php on line 73
PHP Fatal error:  Call to a member function buildUrl() on a non-object in /var/www/vhosts/xxxxxxxxxx/httpdocs/contenido/classes/Url/Contenido_Url.class.php on line 110
(Installierte PHP-Version 5.1.6)

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

Beitrag von xmurrix » Do 1. Jan 2009, 21:01

Hallo herm1,
herm1 hat geschrieben:...Es tauchen allerdings nun zwei Warnungen im Frontendbereich auf

Code: Alles auswählen

Warning: /home/www/con489/contenido/classes/class.cec.php 101: Chain Contenido.Frontend.CreateURL doesn't exist. in /home/www/con489/contenido/includes/functions.general.php on line 2091

Warning: Cannot modify header information - headers already sent by (output started at /home/www/con489/contenido/includes/functions.general.php:2091) in /home/www/con489/cms/front_content.php on line 237

Code: Alles auswählen

//Datei unctions.general.php
function cWarning($file, $line, $message)
{
	trigger_error("$file $line: $message", E_USER_WARNING); //Zeile 2091
}

Code: Alles auswählen

//Datei front_content.php
 * Send HTTP header with encoding
header("Content-Type: text/html; charset={$encoding[$lang]}"); //Zeile 237
...
überprüfe mal, ob die Datei contenido/includes/config.chains.php die Version aus dem verwendeten Plugin ist. Die Chain "Contenido.Frontend.CreateURL" sollte darin vorkommen, und wird vom Plugin benötigt (aber nicht in Zukünftigen Versionen).

Gruß
xmurrix

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

Beitrag von xmurrix » Do 1. Jan 2009, 21:22

Hallo DiMiZu,
DiMiZu hat geschrieben:...Sobald ich die Datei config.misc.php im include Ordner mit der des plugins überschreibe erhalte ich im Frontend eine leere weiße Seite auch wenn das Plugin im Backend noch gar nicht aktiviert ist. Ersetzte ich besagte Datei wieder durch die Orginaldatei dann funktioniert Contenido wieder, natürlich ohne mod_rewrite

Im Backend gibt es folgende Warnungen:

Code: Alles auswählen

PHP Warning:  call_user_func(Contenido_UrlBuilder_XFrontcontent::getInstance) [<a href='function.call-user-func'>function.call-user-func</a>]: Unable to call Contenido_UrlBuilder_XFrontcontent::getInstance() in /var/www/vhosts/xxxxxxxxxx/httpdocs/contenido/classes/UrlBuilder/Contenido_UrlBuilderFactory.class.php on line 73
PHP Fatal error:  Call to a member function buildUrl() on a non-object in /var/www/vhosts/xxxxxxxxxx/httpdocs/contenido/classes/Url/Contenido_Url.class.php on line 110
...
das scheint noch ein Bug zu sein, oder eine unterschiedliche Behandlung der Parameter bei der Funktion call_user_func() unter verschiedenen PHP-Versionen.

Normalerweise kann call_user_func für statische Methoden folgendermaßen aufgerufen werden:

Code: Alles auswählen

call_user_func('myclass::mymethod'); // ab PHP 5.2.3
Bei PHP-Versionen vor 5.2.3 führt dies aber zu einem Fehler, das kann man mit

Code: Alles auswählen

call_user_func(array('myclass', 'mymethod')); // bis PHP 5.2.3
beheben, also in dem die Klasse und die aufzurufende Methode als array übergeben wird.

Bei dir sollte es funktionieren, wenn die in der contenido/classes/UrlBuilder/Contenido_UrlBuilderFactory.class.php die Zeile 73

Code: Alles auswählen

                    return call_user_func($sClassName . '::getInstance');
in

Code: Alles auswählen

                    return call_user_func(array($sClassName, 'getInstance'));
änderst.

Nachtrag:
Ab der PHP-Version 5.2.3 wird call_user_func('myclass::mymethod') unterstützt, in früheren Versionen geht es mit der array-Variante call_user_func(array('myclass', 'mymethod')).

Gruß
xmurrix

DiMiZu
Beiträge: 68
Registriert: Sa 8. Okt 2005, 12:49
Kontaktdaten:

Beitrag von DiMiZu » Fr 2. Jan 2009, 09:19

Hallo xmurrix,

genau das war es. Dein Tipp hat bestens funktioniert. Vielen Dank für die schnelle Hilfe!

(Vielleicht könnte man in zukünftigen Versionen eine Fallback Funktion für den call_user_func Aufruf einbauen, damit die Contenido Vorraussetzung: Scriptsprache PHP ab der Version 5.1 eingehalten wird. Für mich ist das aber kein Problem, danke nochmals für deine Hilfe.)


Grüße aus Südtirol

Steffen44
Beiträge: 134
Registriert: So 12. Dez 2004, 12:18
Kontaktdaten:

Beitrag von Steffen44 » Mo 5. Jan 2009, 19:32

Hallo,

ich verwende Contenido 4.8.8 und das Mod Rewrite 0.5.0 Modul.

Ich bekomme es nicht hin das ich eine Namensauflösung nach dem Schema :

www.meineurl.de/kategoriename.html bekomme.

Ich habe es soweit eingestellt das alles bis auf die Dateiendung ".html" angezeigt wird.

Anscheind ignoriert er die Option "Dateiendung am Ende der URL" bei mir völlig owohl ich dort .html eingetragen habe kann man da was tun ?


Sowie ich "Artikelname immer an die URLs anhängen (auch bei URLs zu Kategorien)" anklicke und dort etwas eintrage dann bekomme ich seltsamerweise eine Dateiendung.
Danke und Gruß
Steffen

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

Beitrag von xmurrix » Mo 5. Jan 2009, 20:35

Hallo Steffen44,
Steffen44 hat geschrieben:...
ich verwende Contenido 4.8.8 und das Mod Rewrite 0.5.0 Modul.

Ich bekomme es nicht hin das ich eine Namensauflösung nach dem Schema :

www.meineurl.de/kategoriename.html bekomme.

Ich habe es soweit eingestellt das alles bis auf die Dateiendung ".html" angezeigt wird.
...
Sowie ich "Artikelname immer an die URLs anhängen (auch bei URLs zu Kategorien)" anklicke und dort etwas eintrage dann bekomme ich seltsamerweise eine Dateiendung...
das Anhängen der Dateiendung an die Url funktioniert nur in Verbindung mit der Option "Artikelname immer an die URLs anhängen" zusammen. Du möchtest die Endung der Kategorie anhängen (kategoriename.html), das geht leider nicht.

Gruß
xmurrix

herm1
Beiträge: 13
Registriert: Mo 24. Nov 2008, 15:01
Kontaktdaten:

Beitrag von herm1 » Mo 5. Jan 2009, 20:44

besten Dank xmurrix,

du hast natürlich ins schwarze getroffen! es funktioniert nun ohne Probleme... Allerdings kann ich nicht verstehen warum das File nicht vorher schon überschrieben worden ist. Ich hatte auch die Befürchtung das etwas nicht kopiert worden ist und hab den Inhalt von mod-rewrite sogar zwei mal überschreiben lassen. Aus irgend einem Grund hat es mit Filezilla nicht klappen wollen... Nun funktioniert alles im Front- und Backend Bereich und das Beste: das Modul funktioniert perfekt. Wunderschöne Urls... ich danke dir vielmals.

Gruß herm

contilia
Beiträge: 2
Registriert: Sa 10. Jan 2009, 11:32
Kontaktdaten:

Beitrag von contilia » Sa 10. Jan 2009, 11:56

Hallo,
erstmal großes Lob! ...bisher konnte ich zu all meinen Problemen im Forum Hilfe finden.
Jetzt hab ich allerdings ein Problem zu dem ich im Forum noch keinen Beitrag finden konnte.

Ich hab hab Version 4.8.9 installiert und das Plugin Advanced Mod Rewrite 0.5.1.

Wie herm1 hatt ich das Problem, dass ich keinen Ordner unter Category anlegen konnte.
Ich konnte den Fehler wie herm 1 lösen.
... indem ich in contenido/includes/functions.str.php

Code: Alles auswählen

$db_str2 = new DB_Contenido(); 
durch

Code: Alles auswählen

global $db_str2;
$db_str2 = new DB_Contenido();
ersetzte.

Allerdings tauchen nun folgende Warnungen im Frontendbereich auf:

Code: Alles auswählen

Warning: fopen(/var/www/web182/html/cms/cache/metatag_c9c3b5b53f6e7af66a8efe90cc2a5a36.tmp) [function.fopen]: failed to open stream: Permission denied in /var/www/web182/html/contenido/plugins/chains/includes/include.chain.content.createmetatags.php on line 251

Warning: fwrite(): supplied argument is not a valid stream resource in /var/www/web182/html/contenido/plugins/chains/includes/include.chain.content.createmetatags.php on line 252

Warning: fclose(): supplied argument is not a valid stream resource in /var/www/web182/html/contenido/plugins/chains/includes/include.chain.content.createmetatags.php on line 253
Woher könnten diese Warnungen kommen?

Danke und Gruß
contilia

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

Beitrag von xmurrix » Sa 10. Jan 2009, 12:06

Hallo contilia,
contilia hat geschrieben:...
Allerdings tauchen nun folgende Warnungen im Frontendbereich auf:

Code: Alles auswählen

Warning: fopen(/var/www/web182/html/cms/cache/metatag_c9c3b5b53f6e7af66a8efe90cc2a5a36.tmp) [function.fopen]: failed to open stream: Permission denied in /var/www/web182/html/contenido/plugins/chains/includes/include.chain.content.createmetatags.php on line 251

Warning: fwrite(): supplied argument is not a valid stream resource in /var/www/web182/html/contenido/plugins/chains/includes/include.chain.content.createmetatags.php on line 252

Warning: fclose(): supplied argument is not a valid stream resource in /var/www/web182/html/contenido/plugins/chains/includes/include.chain.content.createmetatags.php on line 253
Woher könnten diese Warnungen kommen?
...
die Warnmeldung kommt daher, weil das Contenido CMS keine Schreibrechte auf das Verzeichnis "/var/www/web182/html/cms/cache" hat, du musst die Rechte für dieses Verzeichnis erweitern, so dass mit PHP schreibend zugegriffen werden kann.

Es gibt noch andere Verzeichnisse, deren Schreibrechte anzupassen sind, schau dir mal dafür die README.txt (Punkt 2) Installation) aus dem Contenido-Package an.

Gruß
xmurrix

Oldperl
Beiträge: 4251
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Kontaktdaten:

Beitrag von Oldperl » Sa 10. Jan 2009, 19:54

Hallo xmurrix,

habe das MR-Plugin (V 0.5.1) nach der Anleitung im 1. Post unter 4.8.10 problemlos installiert.
Läuft tadellos! :D

Hatte nur beim Switchen vom Plugin-Installer ins Backend das Submenü unter Content teilweise in Französisch. Nach Aus- und Einloggen war es dann aber ok. Kann nicht sagen ob es an der Installation des Plugins lag. Sollte man nochmal drauf achten.

Gruß aus Franken

Ortwin
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog

Gesperrt