Kalender 1.4b - 2 Websites, 1 Datenbank

Begonnen von pete, 06 Oktober 2005, 00:00:23

⏪ vorheriges - nächstes ⏩

0 Mitglieder und 1 Gast betrachten dieses Thema.

pete

Hallo!

Habe eine Domain, auf der zwei Websites laufen (2x PragmaMx). Das eine läuft im Verzeichnis xyz, das andere im abc (Beispiel).

Ich hätte aber gerne, dass die zweite Website, die zwar die selbe Datenbank aber mit einem anderen Präfix nutzt, den Zugriff auf die eingetragenen Termine der ersten Site wiederum mit anderem Präfix nutzt.

Ist das möglich? Wenn ja, wo und was muss ich ändern, damit das funktioniert?

Vielen Dank für Eure Hilfe!

Andi

Hi :)

das ist nicht vorghesehen und auch nicht so einfach zu machen.
schön´s Grüssle, Andi

pete

Kann ich nicht die Module durchsuchen und überall wo der Präfix mit $präfix steht mit dem Präfix der Tabelle überschreiben, die die Events enthält? Würde das funktionieren?

Andi

hmmm,
Ob es funktioniert kann ich jetzt nicht sicher sagen, weil nicht getestet, theoretisch ja.
Praktisch müsste man es probieren ;)
schön´s Grüssle, Andi

pete

#4
Hallo,

im Falle, dass jemand mal den selben Wunsch hat. Ich hab es wie folgt gelöst:

a) config.php
Anlage eines zusätzlichen Feldes unterhalb folgender Zeilen:
$mxConf['dbhost']      = "localhost";
$mxConf['dbname']      = "test";
$mxConf['dbuname']     = "test";
$mxConf['dbpass']      = "";
$mxConf['prefix']      = "pragma";
$mxConf['user_prefix'] = "pragma";
$mxConf['calprefix']   = "pragma";

b) modules/Kalender/includes/functions.php
Hier die originalen Einträge (Zeilen 31-35)
if (!defined("CAL_TABLE_EVENTS"))     define("CAL_TABLE_EVENTS",     $GLOBALS["prefix"]."_events");
if (!defined("CAL_TABLE_MX_TOPICS"))  define("CAL_TABLE_MX_TOPICS",  $GLOBALS["prefix"]."_topics");
if (!defined("CAL_TABLE_MX_QUEUE"))   define("CAL_TABLE_MX_QUEUE",   $GLOBALS["prefix"]."_queue");
if (!defined("CAL_TABLE_MX_AUTHORS")) define("CAL_TABLE_MX_AUTHORS", $GLOBALS["prefix"]."_authors");
if (!defined("CAL_TABLE_MX_USERS"))   define("CAL_TABLE_MX_USERS",   $GLOBALS["user_prefix"]."_users");

Verändert werden die Zeilen 31 bis 33:

if (!defined("CAL_TABLE_EVENTS"))     define("CAL_TABLE_EVENTS",     $GLOBALS["calprefix"]."_events");
if (!defined("CAL_TABLE_MX_TOPICS"))  define("CAL_TABLE_MX_TOPICS",  $GLOBALS["calprefix"]."_topics");
if (!defined("CAL_TABLE_MX_QUEUE"))   define("CAL_TABLE_MX_QUEUE",   $GLOBALS["calprefix"]."_queue");

Damit funktioniert's wie ich's mir wünsche.

Andi

Hi :)

gute Lösung und fein dass es funzt.

Einen Haken hat das Ganze...

Wenn du die Einstellungen des pragmaMx neu abspeicherst, geht der zusätzliche Eintrag in der config.php wieder verloren. Ich würde also diesen $calprefix direkt in der functions.php des Kalenders definieren.
schön´s Grüssle, Andi

pete

Hi!

Danke für den Tipp. Kann ich in der functions.php das selbe wie in die config.php schreiben?

Andi

Hi :)

eigentlich brauchst du für Dich keinen Extra Prefix definieren.
Du kannst die 3 Tabellen auch direkt benennen, weil ändern musst du das ja sowieso manuell.

if (!defined("CAL_TABLE_EVENTS"))     define("CAL_TABLE_EVENTS",     "DEINPREFIX_events");
if (!defined("CAL_TABLE_MX_TOPICS"))  define("CAL_TABLE_MX_TOPICS",  "DEINPREFIX_topics");
if (!defined("CAL_TABLE_MX_QUEUE"))   define("CAL_TABLE_MX_QUEUE",   "DEINPREFIX_queue");
schön´s Grüssle, Andi

pete


Norbert-cms

Nachtrag:
Sorry, ist im falschen Thread.  :(
Eigentlich habe ich 2 Kalender und 2 Tabellen für die Einträge.


Hallo Andi,
ich hab mir den Kalender jetzt auch dupliziert, aber ein Problem habe ich noch.
Es wird immer in die _events Tabelle geschrieben, anstatt in meine neue Tabelle.

Was muss ich denn in den Admin-Dateien ändern damit der Zugriff auf die richtige Tabelle erfolgt?

Gruß Norbert

pete

Kannst du mal posten welche Tabellen du hast und wie deine Einträge in "modules/Kalender/includes/functions.php" lauten?

Norbert-cms

Hi,
ich habe also nur die _events Tabelle dupliziert und in _programm umbenannt.
In der functions.php habe ich nur dieses geändert
if (!defined("CAL_TABLE_EVENTS"))     define("CAL_TABLE_EVENTS",     $GLOBALS["prefix"]."_programm");

und in der entsprechenden Datei auch noch den Modulnamen.

Gruß Norbert

pete

Probiers mal wie Andi es geschrieben hat. Ohne Präfix, gleich mit dem vollen Tabellennamen. In den Scripten wird die functions.php includet, müsste von daher also funktionieren. Es hat bei mir auch so funktioniert.
Überprüf nochmal, vielleicht hast du in einer der functions.php doch etwas falsch gemacht?
Ich hab sonst keine Dateien verändert!

Norbert-cms

Das Problem leigt wohl mehr im Adminbereich.
Wenn ich z.B. admin.php?op=CalendarConfig aufrufe dann wird der Original Kalender angesprochen und nicht der Neue, für den ich neue cases und Links Dateien für den Adminbereich angelegt habe.

Direkte Links anzulegen wird wohl das beste sein, aber das ist bei dem Kalender nicht so einfach. Irgendwie blick ich es nicht, obwohl ich schon zig Nuke-Module angepaßt habe.

Gruß Norbert

Norbert-cms

 :thumbdown:  Egal was ich veranstalte, es funktioniert nicht.
Ich hab 2 Tabellen, ich habe alle Pfade und Db-Abfragen direkt ausgeführt und obwohl ich zwei verschiedene Module und DB-Tabellen habe, es wird immer nur eine angesprochen.
Was soll ich noch tun?
Ist ein echter Bockmist.

Andi

Hi :)

Sorry, aber so recht verstehe ich das nicht.
Wo hast du genau was geändert, dass man das nachvollziehen kann?
schön´s Grüssle, Andi

Norbert-cms

Hallo Andi,
meine letzte Aktion war das ich alle Funktionen umbenannt habe, habe an jede eine 2 angehangen.
in der functions.php habe ich dieses geändert
if (!defined("CAL_TABLE_EVENTS2"))     define("CAL_TABLE_EVENTS2",     $GLOBALS["prefix"]."_programm");


Im admin/case/ -Ordner habe ich die calendar.php durch eine event.php ersetzt. Die Switch Anweisungen sehen jetzt so aus
case "CalendarAdmin2":
case "CalendarPreviewEvent2":
case "CalendarEditEvent2":
case "CalendarPostEvent2":
case "CalendarPostEventGotoMain2":
case "CalendarPostEventGotoCalendar2":
case "CalendarNewEvent2":
case "CalendarDeactivateEvent2":
case "CalendarDeleteEvent2":
case "CalendarConfig2":
case "CalendarConfigSave2":


Auch im admin/links Ordner wurde eine entsprechende Datei angelegt.

Alle Dateien also, main.php, index.php, submit.php etc. sind entsprechend geändert.
Rufe ich jetzt z.b. admin.php?op=CalSetcols2 auf, dann komme ich im nächsten Schritt statt auf der duplizierten Seite, wieder auf der Originalseite aus.
admin.php?op=CalSetcols&trs_lng=german&src_lng=german&ok=1164

Das ich soviele Änderungen gemacht habe, das liegt daran das der einfache Weg nicht funktioniert hat.
Meine sql-Abfragen  sehen so aus
$toplist = sql_query("SELECT DISTINCT categorie FROM ".$prefix."_programm WHERE
(activ=1)".$whereoption."", $dbi);

und trotzdem wird auf die _events Tabelle zugegriffen.

Hoffe das ich mich jetzt ein wenig verständlicher ausgedrückt habe.

Gruß Norbert

Andi

Moin :)

sorry, aber irgendwie komm ich da zu nix...

if (!defined("CAL_TABLE_EVENTS2"))     define("CAL_TABLE_EVENTS2",     $GLOBALS["prefix"]."_programm");

Das ist auf jeden Fall nicht richtig. Den Konstantennamen darfst du nicht anpassen, ansonsten müsstest du diese Konstante auch im ganzen Modul entsprechend anpassen.

Das muss ich mir mal in einer ruhigen Minute genauer ansehen, weiss nicht so recht, warum das solche Probleme bereiten sollte...  :-\
schön´s Grüssle, Andi

Norbert-cms

Hallo Andi,

das was ich da gepostet hatte, das war der letzte Versuch, nachdem ich vorher alle möglichen Varianten ausprobiert hatte.
Begonnen damit nur ein neues Modul mit einer neuen DB-Tabelle anzulegen.

Das Problem beginnt im Adminbereich. Die case.calendar.php und die links.calendar.php müssen ja geändert werden denn z.B. bei dem AUfruf admin.php?op=CalendarAdmin gibt es ein Problem.
Also habe ich die case geändert und habe z.B. aus CalendarAdmin CalendarAdmin2 gemacht.

Ich kann dir auch nicht sagen wo es hängt.
Am besten du würdest einfach mal das Modul 2x installieren und schauen was bei dir passiert.

Ich hab jetzt als Lösung den uralten Kalender von Nuke genommen, leider.

Gruß Norbert

P.S.
Ich hatte die Konstantennamen im ganzen Modul geändert!

Andi

ZitatAm besten du würdest einfach mal das Modul 2x installieren und schauen was bei dir passiert.

Joppi :)

genau das will ich mal machen, denn nur so kann ich wirklich genau sagen, was zu tun ist.
GIb mir ein paar Tage, bis ich Gelegenheit dazu habe ;)
schön´s Grüssle, Andi