PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Forum automatisch erzeugen lassen


tschwed
13.04.2007, 21:56
Hallo,

bin VB Neuling. Habe das Produkt eben erst erworben, und bin sehr erstaunt über die Qualität. Hut ab!!!

Zu meinem Problem:
Ich arbeite zur Zeit mit Joomla! (1.0.12) und dem Joomla Board. Aus diversen Gründen möchte (muss) ich auf VB umsteigen. VB installiert, und mit Joomla mittels BBPixel verbunden, soweit ganz einfach.

Das Besondere an der benötigten Installation ist jedoch, die Menge der Foren die zur Verfügung stehen müssen, und die mit einem quasi Joomla! Content verbunden sind. Quasi Joomla! Content deswegen, weil dieser Content aus einer Datenbank heraus gespeist wird und via einem php Skript in den Joomla Content intergriert wird. Im oberen Bereich der Site wird dann der jeweilige Content (Projekt) mit seinen Kenndaten abgebildet (Jomla Bereich) im unteren Bereich wird dann das dazugehörige Forum mit derzeit JB abgebildet. Es sind derzeit ca. 2500 Projekte in der Datenbank, also sind theoretisch 2500 Foren von nöten. Dies ist jedoch hinsichtlich des Trafiks nicht über zu bewerten, es sind nur ca. 100 User welche sich den Board bedienen. Auch werden nicht alle, theoretisch benötigten Foren, auch wirklich benötigt.

Wie sich jeder vorstellen kann, habe ich keine Lust alle diese Foren manuell einzupflegen und zu pflegen. Um, wie auch immer gestaltete Serverlast zu vermeiden, möchte ich auch nur die Foren haben welche benötigt werden. Auch möchte ich nicht, dass ein User einen Admin konsultieren muss, wenn eines der Foren benötigt wird. Mit Joomla und JB habe ich dies wie folgt gelößt:

Ich habe die mySqQL JB-Forentabelle um eine Spalte erweitert in welcher die Projektkennung eingetragen wird.
Bei erstmaligen Aufruf des Projekts in Jommla, wird die Projektkennung aus der Projektdatenbank ausgelesen, und es wird nachgeschaut ob die Projektkennung schon in der JB-Forentabelle existiert.
Ist dies nicht der Fall, wird ein neuer INSERT INTO in die JB-Forentabelle gemacht, und das Forum wird danach aufgerufen.
Wird die Projektkennung gefunden, wird natürlich das Forum direkt aufgerufen, und alle bisher gesamtelten Infos stehem dem User zur Verfügung.

Ich habe versucht dieses nun gleichermaßen mit VB zu machen. Kein Forum da => neuer Eintrag nach VB-Datenbank.Forum. Kein Problem, der neue Datensatz ist da. Das Forum wird jedoch nicht angezeigt.
Ein zweiter Blick auf die Eltern- Kind-Beziehungen, macht diese in etwa durchschaubar. Diese ergänzt, vor allen bei den Eltern. Das Forum wird nicht angezeigt. Wenn ich dann aber via AdminCP ein neues Forum erstelle, ist natürlich dieses, aber auch das vorher automatisch erzeugte Forum vorhanden. Hierbei wird wohl ein Index aktualisiert, den ich beim besten willen nicht finden kann.

Kann mir hier wer weiterhelfen? Oder hat jemand eine andere Idee? Bitte keine Verweise auf disuss bots und der Gleichen, das geht nicht. Quasi Content halt eben.

Vorab vielen Dank für die Hilfe, und sorry für die ellen lange Message.

StGaensler
14.04.2007, 10:28
Hallo und herzlich willkommen!
Ich habe versucht dieses nun gleichermaßen mit VB zu machen. Kein Forum da => neuer Eintrag nach VB-Datenbank.Forum. [...] Wenn ich dann aber via AdminCP ein neues Forum erstelle, ist natürlich dieses, aber auch das vorher automatisch erzeugte Forum vorhanden. Hierbei wird wohl ein Index aktualisiert, den ich beim besten willen nicht finden kann.Das liegt daran, dass vBulletin die Foren-Informationen in einem Cache hat (Tabelle datastore) um auf die Foren schneller zugreifen zu können.

Leider bist du mit deiner Frage auf dem falschen Board gelandet. Wir haben für Code-Modifikationen und eigene Scripte extra "Hack"-Boards, die sich mit so etwas beschäftigen. Frage doch mal dort weiter: http://vbhacks-germany.org (deutsch) und http://vbulletin.org (englisch)

Viele Grüße,
Stefan

tschwed
14.04.2007, 19:14
Danke für die Info. So in etwa habe ich mir das auch gedacht. Jedoch hilft der Verweis zu den hack Foren nicht weiter. Ich erhalte hier ständig die Meldung das der Server ausgelastet ist. Wie schaffe ich also datastore upzudaten?

Onur
14.04.2007, 20:43
das einfachste, lege im ACP ein neues Forum an bzw lösche eines :D
per skript, denke mit dem datamanager
---
IMO wirds ab einer bestimmten Anzahl (>2000) an Kategorien/Foren lt Info hier irgendwo im Forum dann kritisch mit der Performance wegen dem riesen Cache

tschwed
14.04.2007, 22:03
Danke Onur für die Hilfe!

das einfachste, lege im ACP ein neues Forum an bzw lösche eines

Ja, das hatte ich selbst rausgefunden. Danach sind die hinzugefügten Foren da.

...per skript, denke mit dem datamanager

Was willst Du mir damit sagen. Bedenke ich bin Fischling in Sachen VB.

Nachtrag:
Im ACP ibt es folgendes: Wartung->Wartungsfunktionen->Forum -Informationen neu erstellen. Der Link geht zu einer misc.php mit dem do updateforum. Das Ding macht genau was ich will. Diese Datei nach dem einfügen des Forums in die Forentabelle !!!ohne Adminrechte!!! im Hintergrund ausführen zu lassen, währe die Lösung meines Problems. Oder?

Onur
14.04.2007, 22:59
im vb wird das meiste über den datamanager abgearbeitet, dabei entstehen dann auch die wenigsten fehler da abhängigkeiten und sonstiges kleinzeug dabei gleich mit eingeschlossen ist, am besten die zuständigen Dateien nach "datamanager_init" absuchen, dann sieht man meist gleich den aufbau

tschwed
16.04.2007, 12:17
Nochmals danke Onur...

...wenigstens für den Versuch. :( Ich habe mir den Dateimanager mal angeschaut, und zumindest bergriffen, dass dieser viele Dinge kann. Aber die Syntax begreife ich einfach nicht. Ob es an meinem dummen Kopf hängt, oder den ehr doch bescheidenen php Kenntnissen; Vermutlich an beidem.

Fazit, bevor ich um lange um den heißen Brei rumrede:

Suche ein Skript, dass mir über den Datenmanager ein neues Forum erzeugt.

Vielen Dank vorab!!!

Andreas
16.04.2007, 15:46
Da solltest Du besser bei vBH oder vBO nachfragen ;)

Das einfachste Beispiel:

<?php
require('./global.php');

$forumdm =& datamanager_init('Forum', $vbulletin, ERRTYPE_SILENT);
$forumdm->set('title', 'Ein neues Forum');
$forumdm->set('parentid', -1);
$forumdm->save();
?>


Dieses Script, im vBulletin Verzeichnis ausgeführt, erzeugt ein neues Forum.

tschwed
17.04.2007, 14:56
Vielen Dank,

das war letztendlich der entscheidende Hinweis. So geht's:

$vbulletin->input->clean_array_gpc('p', array(
'forumid' => TYPE_UINT,
'applypwdtochild' => TYPE_BOOL,
'forum' => TYPE_ARRAY,
));

$forumdata =& datamanager_init('Forum', $vbulletin, ERRTYPE_CP);

$forumdata->set('title', $project);
$forumdata->set('parentid', 2);
$forumdata->set('displayorder', 1);
$forumdata->set('daysprune', -1);

$forumdata->set_bitfield('options', 'active', true);
$forumdata->set_bitfield('options', 'allowposting', true);
$forumdata->set_bitfield('options', 'cancontainthreads', true);
$forumdata->set_bitfield('options', 'allowbbcode', true);
$forumdata->set_bitfield('options', 'allowimages', true);
$forumdata->set_bitfield('options', 'allowsmilies', true);
$forumdata->set_bitfield('options', 'allowicons', true);
$forumdata->set_bitfield('options', 'allowratings', true);
$forumdata->set_bitfield('options', 'countposts', true);
$forumdata->set_bitfield('options', 'canhavepassword', true);
$forumdata->set_bitfield('options', 'indexposts', true);
$forumdata->set_bitfield('options', 'showonforumjump', true);

$forumdata->save();

Natürlich muss auch noch die global.php mit eingebunden werden.

Da solltest Du besser bei vBH oder vBO nachfragen

Wollte, zumindest bei vBH. Bei verschiedenen Versuchen, an verschiedenen Tagen und Uhrzeiten bekam ich jedoch immer die Meldung das der Server ausgelastet ist.

Wie gesankt, Danke!