Advanced Mod Rewriting Contenido 4.4.4

stese
Beiträge: 1040
Registriert: Fr 3. Dez 2004, 17:47
Wohnort: München
Kontaktdaten:

Beitrag von stese »

das sollte auch gehen. weil er alle front_content.php geschichten nachträglich umwandelt. mein darin enthaltener fck editor macht es zumindestens korrekt. spaw macht es meines wissen auch korrekt - das mit dem changelang hab ich so noch nie gesehen ... aber ich arbeite halt mit meinem eigenen system nach meiner eigenen logik.
stese
Beiträge: 1040
Registriert: Fr 3. Dez 2004, 17:47
Wohnort: München
Kontaktdaten:

Beitrag von stese »

so hab eben nochmal geschaut - ich habe eine leicht angepasst cms version bei mir laufen, wo das funktioniert.

bei dir musst du theoretisch nur 1,2 kleine zeilen abändern.
datei cms/front_content.php öffnen

zeile 65 (in dem dreh rum)
suche nach

Code: Alles auswählen

if ( isset($langname) && !empty($langname) && !isset($lang)) {
	$lang = mr_get_language_id ( $langname );
}
und ersetze diese durch folgende

Code: Alles auswählen

if ( isset($langname) && !empty($langname) && !isset($changelang) ) {
	$changelang = mr_get_language_id ( $langname );
}
das sollte danach klappen
kptkip
Beiträge: 192
Registriert: Mi 8. Jun 2005, 18:02
Kontaktdaten:

FCK-Editor

Beitrag von kptkip »

Hallo, ich bin zufällig aus diesem Thread hierher gestolpert und war von der Einbettung des FCK-Editors begeistert.

Allerdings habe ich eine Frage: In der Einbettung im Nachbarthread ist es möglich in den Usereinstellungen in Contenido Variablen aus der fckconfig.js zu definieren z.B. [fckeditor][ToolbarSet][EigenesSet].

Ich habe gesehen dass Du die Variablen für die Toolbar, die Größe des Feldes in der editor.php beim AUfruf definierst und habe die testweise entfernt um die Usereinstellungen zu aktivieren. Das ging allerdings nicht.

Wie kann ich dem FCK-Editor denn eigene Werte übermitteln.

Da würde mich auch interessieren, ob ich das auch bei unterschiedlichen Mandanten machen kann.

Erst mal viele Grüße
stese
Beiträge: 1040
Registriert: Fr 3. Dez 2004, 17:47
Wohnort: München
Kontaktdaten:

Beitrag von stese »

hi,

also mit dem fck hab ich mich derzeit noch nicht weiter besschäfftigt, weil ich eigentlich auf die final warte ... ich habe lediglich die funktionalität bei mir so erweitert, dass ich den filebrowser und interne links nutzen kann ... ich hab so meine eigene voreinstellung definiert, die ich allen meinen kunden nur so anbiete (nicht die in dem bundle hier) damit die mir nicht komische sachen machen.

schau einfach mal wie der fck editor in dem anderen thread eingebunden wird - das sollte ja dann auch funktionieren ... ich hab bei mir ja sowieso noch die alte RC1 laufen, die noch ziemlich verbuggt ist - multimandantenfähigkeit nutze ich derzeit nicht, da ich momentan nur für die server der kunden anpasse daher kann ich dir auch dort nicht helfen
i-fekt
Beiträge: 1520
Registriert: Mo 3. Jan 2005, 02:15
Wohnort: Chemnitz
Kontaktdaten:

Beitrag von i-fekt »

Bei mir (4.4.5) kommt im Backend folgende Fehlermeldung:

Code: Alles auswählen

Warning: No ending delimiter '/' found in /www/htdocs/stetten/contenido/classes/class.modrewrite.php on line 39
Gibts da mittlerweile eine Lösung?
stese
Beiträge: 1040
Registriert: Fr 3. Dez 2004, 17:47
Wohnort: München
Kontaktdaten:

Beitrag von stese »

ja hier:
http://contenido.org/forum/viewtopic.php?p=41685#41685

arbeite vor allem mal die nächsten 2,3 seiten des threads durch - ich bin bisher leider aus zeitnot nicht dazu gekommen, die manuelle installationsdatei upzudaten, das package zum downloaden sollte aber auf dem neuesten stand sein ...
Steffen44
Beiträge: 134
Registriert: So 12. Dez 2004, 12:18
Kontaktdaten:

Beitrag von Steffen44 »

sorry ist vieleicht ne dumme Frage aber gibt es irgendeine Version wo Ihr diese tollen Funktionen schon eingebaut habt. Der Treath ist schon wieder sooo lang das ich leider nicht mehr durchblicke ...

Danke und Gruß

Steffen
stese
Beiträge: 1040
Registriert: Fr 3. Dez 2004, 17:47
Wohnort: München
Kontaktdaten:

Beitrag von stese »

seite 1 - download des kompletten bundles, das ist aktuell - aber achtung - nach wie vor is das ganze experimentell und nur in version 4.4.4 eingebaut ... und hauptsächlich für leute gedacht, die wissen was sie tun.
ronaldo
Beiträge: 42
Registriert: Fr 18. Mär 2005, 10:23
Kontaktdaten:

Base-Tag fehlt

Beitrag von ronaldo »

Hallo,

ich habe Steses Änderungen in Contenido 4.4.5 eingebaut und bin begeistert. *hüstel* DANKE!
Allerdings waren bei mir einige Bilder nicht auffindbar, da sie mit relativen Links eingebunden sind und natürlich nicht im Verzeichnis cms/Punkt-1/Punkt-1.1/ liegen. Daher habe ich mir folgenden Workaround gebastelt, der einfach ein <base href="http:://www.example.com/cms"> an den Beginn des <head>-Tags stellt.

#-----[ FIND ]-----------------------------------------

Code: Alles auswählen

$str_all = preg_replace("/href=[\"|\']front_content\.php(.?|.+?)[\"|\']/ie", "'href=\"'.ModRewrite::build_new_url('\\1').'\"'", $str_all);
#-----[ AFTER, ADD ]------------------------------------------

Code: Alles auswählen

// ronaldo edit - 050630 - determine base-url and add base tag
$base_tag = '<base href="' . ( !empty($_SERVER["HTTPS"]) ? 'https://' : 'http://') . $_SERVER['SERVER_NAME'].dirname($_SERVER['PHP_SELF']).'/" />';
$str_all = preg_replace("/(<head>)/i", "$1\n".$base_tag, $str_all);
// end ronaldo edit
Gibt's andere / bessere Lösungen? Irgendwelche Anmerkungen?
stese
Beiträge: 1040
Registriert: Fr 3. Dez 2004, 17:47
Wohnort: München
Kontaktdaten:

Beitrag von stese »

keine ahnung - ich mach das auch so hehe ... in meiner laufenden 4.5.3 beta setzt er bei mir zumindestens automatisch ein <base href mit dem aktuellen mandantenpfad drinnen - daher gabs bei mir in letzter zeit auch keine probleme, da ich schon länger nicht mehr mit der 4.4.4 arbeite.

die tage kommt eine überarbeitete version der 4.4.4 raus, da mir die letzten 2 wochen noch 1,2 kleinigkeiten auffielen ...

wen es interessiert - ich habe ebenfalls eine angepasste version der 4.5.3beta am arbeiten ... werde ich dann auch bei gelegenheit einstellen, wenn sich mir die zeit bietet.
ronaldo
Beiträge: 42
Registriert: Fr 18. Mär 2005, 10:23
Kontaktdaten:

Beitrag von ronaldo »

Hier ein kleiner DB-Installer, damit man das modrewrite auch nachrüsten kann. (Nicht zu verwechseln mit dem Apache Modul "mod_rewrite.so", das man benötigt).

Vorher Datenbank-Backup machen! ;)

Weiß nicht, ob es 100%ig so funktioniert, wie es soll - nutze modrewrite erst seit heute.

Code: Alles auswählen

<?php
/**
 * modrewrite_dbinstaller.php
 * author Ronald Sacher
 * descr: do some database work to get modrewrite up and running
 * modrewrite is written by Stefan Seifart
 * and can be found at: http://contenido.org/forum/viewtopic.php?t=6713
 * Suggestions welcome, place it there ^^^
 * $Id: modrewrite_dbinstaller.php 135 2005-06-30 15:13:14Z sacher $
 * 
 * how to use: place the file in your contenido root and run it once 
 */
require_once ('contenido/includes/config.php');

$db = new DB_Contenido;
//$db->Debug= true;
$db->Halt_On_Error = "report";
$db->query("SHOW TABLES;");

function my_mysql_error($str) {
	println($str);
	println(mysql_error());
	die('exiting');
}

function println($msg) {
	echo $msg.'<br>';
}

function add_Field($table, $column, $column_def, $additional) {
	println("examing $table for $column");
	$sql = sprintf("SHOW COLUMNS FROM %s LIKE '%s'", $table, $column);
	$result = mysql_query($sql) or my_mysql_error($sql);
	if (mysql_num_rows($result) == 0) {
		println($column.' not found, trying to add...');
		$sql = sprintf("ALTER TABLE %s ADD %s %s %s", $table, $column, $column_def, $additional);
		mysql_query($sql) or my_mysql_error($sql);
	} else
		println($column.' found, skipping...');
}


add_Field($cfg["tab"]['art_lang'], 'websafename', 'VARCHAR(255)', 'AFTER pagetitle');
add_Field($cfg["tab"]['cat_lang'], 'websafename', 'VARCHAR(255)', 'AFTER name');

if (!class_exists('ModRewrite')) {
	cInclude("classes", 'class.modrewrite.php');
}
$mr = new ModRewrite();

$sql = 'SELECT idlang, title, idart FROM '.$cfg["tab"]['art_lang'].' WHERE websafename IS NULL';
$result = mysql_query($sql) or my_mysql_error($sql);
println('found '.mysql_num_rows($result).' articles without websafename');
while ($row = mysql_fetch_assoc($result)) {
	$mr->set_article($row['title'], $row['idart'], $row['idlang']);
}

$sql = 'SELECT name, idcat, idlang FROM '.$cfg["tab"]['cat_lang'].' WHERE websafename IS NULL';
$result = mysql_query($sql) or my_mysql_error($sql);
println('found '.mysql_num_rows($result).' categories without websafename');
while ($row = mysql_fetch_assoc($result)) {
	//	var_dump($db->Record);echo '<br><hr><br>';
	$mr->set_category($row['name'], $row['idcat'], $row['idlang']);
}

println('');
println('everything seems to be fine');
?>
Zuletzt geändert von ronaldo am Do 30. Jun 2005, 16:27, insgesamt 2-mal geändert.
timo
Beiträge: 6284
Registriert: Do 15. Mai 2003, 18:32
Wohnort: Da findet ihr mich nie!
Kontaktdaten:

Beitrag von timo »

ähm man rüstet damit kein mod_rewrite nach, sondern lediglich die Funktionalität zur Erzeugung von entsprechenden Links ;)

Sollte man evtl vermerken, da sonst der Eindruck entstünde, man könnte die .htaccess oder das eigentliche Apache-Modul "nachrüsten".
ronaldo
Beiträge: 42
Registriert: Fr 18. Mär 2005, 10:23
Kontaktdaten:

Beitrag von ronaldo »

Richtig.

Ich dachte einfach mal:
mod_rewrite.so = Apache Module (benötigt)
modrewrite = Nachträgliche Contenido-Änderungen (für 4.4.4 / 4.4.5)
Edanis
Beiträge: 61
Registriert: So 13. Jun 2004, 15:08
Wohnort: Witten
Kontaktdaten:

Lösungsvergleich von Stese's Bundle und 4.5.3

Beitrag von Edanis »

Hallo zusammen

Mit mod_rewrite ist ein sehr wichtiges Thema angesprochen, begeistert finde ich. Zeit zum gründlichen erforschen der Lösungen von Stese und Contenidoteam in 4.5.3 hatte ich leider nicht, wenn da was falsches steht bitte korrigieren, das wäre auch mein Anliegen mit dem Posting.

Soviel ich verstanden habe erwartet Frontendscript in 4.5.3 die Pfadangabe wie "front_content.php?path=Hauptnavigation/Punkt-2" um die Zieladresse aufzulösen. Ist das korrekt dass dabei nur Kategorienamen (bzw URL-Namen der Kategorien) für die Pfadumschrift genommen werden und die Artikel nicht berücksichtigt werden. So wird der Frontendscript nur Startartikel einer Kategorie finden nicht Folgeartikel. Wie lasse ich die Folgeartikeln aufnehmen?

Ich habe mal ausprobiert und in front_content,php das

Code: Alles auswählen

echo "<hr>";
$cat_str = "";
prCreateURLNameLocationString($idcat, "/", $cat_str, false, "", 0, 1, true, true);
echo $cat_str;
echo "<hr>";
eingefügt. und wo ich auch klicke bekomme ich als Pfadangabe nur Kategorienamen, auch wenn ich in die News gehe bekomme ich nur "News" als Pfadangabe.

Die Lösung von Stese (4.4.4) hat dem gegenüber den Vorteil dass die auch Artikel berücksichtigt. Der Nachteil wäre nur dass die nicht in Contenido aufgenommen ist, bei Erweiterungen muss erneut angepasst werden.

Was mir noch aufgefallen ist, in 4.5.3 müssen die Module dafür sorgen die Moderewrite-komforme Links zu bekommen, es müssen also alle Module auf Modrewrite umgeschrieben werden. Die Stese's Lösung lässt die Module dagegen in Ruhe, ändert dafür wie gesagt viel in Contenidodateien.

Wie ist aber in beiden Versioen mit GET - Parameter, ist ein Lösungsansatz vorhanden um zB. Seitenangaben der Artikelliste wie "&page=2" in der URL zu verschlüsseln und aufzulösen? Auch das Problem mit "&m=&s=" wurde zum Beispiel bereits angesprochen.

Gruss, Edward
andrej
Beiträge: 333
Registriert: Mi 8. Okt 2003, 09:46
Kontaktdaten:

Beitrag von andrej »

@ronaldo
Könntest Du deine 4.4.5er gemoddete Version vielleicht zur Verfügung stellen? Ich habe nun mehrmals versucht das Tutorial von stese umzusetzen, leider jedes mal ohne Erfolg. Ich verzeweifel schon langsam.

Besten dank.
Gesperrt