The Arcive of Official vBulletin Modifications Site.It is not a VB3 engine, just a parsed copy! |
|
#1
|
|||
|
|||
Managing Calendar Events
Since events play a major role on my site, on vb4, I had developed an event maintenance page that basically listed all events in a table view and enabled moderators to enter new ones, update existing ones, etc.
I was able to migrade this code to vb5 but learned from vb-Support Team that I am bypassing search inclusion when managing events this way. It was recommended to use the API but until today, I have not been able to get it to work despite the two code examples shown here. The fact that there is no proper API documentation (all I have found is this) and now beginner's guide is a shame! Is anybody on this forum able to give be a hand on this? Basically, I am looking for code that used the vb5 API in order to create, read, update and delete events. |
#2
|
||||
|
||||
Because Events are based on posts, why don't just add a create thread button linkend to the forum your events belong to?
HTML Code:
<button type="button" class="b-button b-button--primary-light new-conversation-btn js-movable-toolbar-button" onclick="window.location.href='new-content/YOURFORUMIDHERE!!!!'"> <span class="b-button__icon b-button__icon--plus"></span> <span class="b-button__text-primary js-button__text-primary">{vb:phrase plus_new_conversation}</span> </button> If you would have a direct text-container it is not a five minute-job. But could be done. |
#3
|
|||
|
|||
|
#4
|
||||
|
||||
Then you need not only the API You need to create a module (there are examples in the do not upload folder) with a frontend-controller, the API and perhaps Library. You could also look into my mod membermap. That is similar, but needs a lot more for your project.
|
#5
|
|||
|
|||
No, I do not need all that. The event maintenance page is not really integrated into my forum, it's separate.
All I need is -- as I said -- code examples on how to create, read, update, and delete events. |
#6
|
|||
|
|||
Ich schreibe es mal auf deutsch, da geht das fl?ssiger. Wie bereits erw?hnt besteht ein Event in vB5 nicht nur aus einem Eintrag in den Event-Table, sondern aus einem Topic in einem Forumschannel, einem ersten Post in diesem Topic sowie eben jenem Eintrag im Event-Table.
Wie delicjous bereits schrieb - am Sinnvollsten ist ein vB-interne L?sung Modul, welches die gleichen Frontendcontroller anbietet, die vB auch verwendet bei der Erstellung, Bearbeitung und L?schung von Events - erstellen/bearbeiten : POST auf /forum/create-content/event (mit unt ohne mitgelieferte nodeid) - delete : POST auf /forum/ajax/api/node/deleteNodes Nur f?r ?bersicht der Events m?sste man schauen, ob vB da schon was im Frontend bietet (/forum/ajax/render/widget_calendar__events ist etwas unhandlich) Falls du aber unbedingt ?ber die Api gehen willst, dann so. - Script muss auf deinen vB-Server, aber au?erhalb vom vB-Verzeichnis, - Zeile 5 vbpath muss angepasst werden - Zeile 7-11 ?bernimmt die Sitzung des aktuell am vB angemeldeten Users und Initialisiert vB und die Api im Allgemeinen - Zeile 13-23 aktueller User - auf diesen Infos musst du deine Berechtigung zum Ausf?hren des Scriptes aufbauen - Zeile 38-47 deine Daten zum Event, Zeile 39 muss angepasst werden - Zeile 51 dient zur Kontrolle, ob du deine EventApi bekommen hast - Zeile 54 sollte dir die NodeId zum neu eingetragenen Event ausgeben. PHP Code:
|
Благодарность от: | ||
delicjous |
#7
|
|||
|
|||
Servus!
Danke für deine Hilfe. Der Code läuft einwandfrei! Rein aus Interesse: Woher hast du gewusst, was das $data-Array beinhalten muss? |
#8
|
|||
|
|||
In dem Fall war das auskommentierte Array ja aus den Snippets auf vbulletin.com in deiner Anfrage. Aber sonst wäre das Vorgehen:
Event = normaler Post-Table + zusätzliche Felder in Event-Table (und die Spaltennamen sind in solchen Systemen üblicherweise auch Parameter-Namen) Zur Kontrolle: Auf der Webseite wird beim Erstellen eines Events ein Frontendcontroller (= Ajax-Call) mit POST-Daten aufgerufen. Und mehr kann dann das System ja auch nirgendwo zur Verfügung haben zur Erstellung der DB-Einträge. Allerdings noch mit userspezifischen Länderformatierungen bei Datum etc. Der Frontentcontroller ist hier allerdings übersichtlich und ruft Event-Api::add() auf. Und von dort geht es auch relativ schnell in Event-Library::checkEventData(). Und dort werden alle Event-spezifischen Parameter geprüft. Von daher auch der Hinweis von delicjous und mir, über Frontentcontroller zu gehen. Weil du deine CMS-Seite (und ich kann mir durchaus vorstellen, dass dies eine interessante Mod-Idee wäre) dann schön als Template/Modul innerhalb von vB und Nutzung der Rechteverwaltung davon umsetzen könntest. |
Thread Tools | |
Display Modes | |
|
|
X vBulletin 3.8.12 by vBS Debug Information | |
---|---|
|
|
More Information | |
Template Usage:
Phrase Groups Available:
|
Included Files:
Hooks Called:
|