Register Members List Search Today's Posts Mark Forums Read

Reply
 
Thread Tools
  #1  
Old 07 Jan 2021, 08:05
effeff70 effeff70 is offline
 
Join Date: Nov 2008
Question 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.
Reply With Quote
  #2  
Old 08 Jan 2021, 11:00
delicjous's Avatar
delicjous delicjous is offline
 
Join Date: Nov 2014
Because Events are based on posts, why don't just add a create thread button linkend to the forum your events belong to?


Block Disabled:      (Update License Status)  
Suspended or Unlicensed Members Cannot View Code.

Thats the easiest way I could think of.

If you would have a direct text-container it is not a five minute-job. But could be done.
__________________
vBulletin-Forum.de closed!
ⓒ by delicjous
Reply With Quote
  #3  
Old 09 Jan 2021, 17:18
effeff70 effeff70 is offline
 
Join Date: Nov 2008
That's not helping because this is my maintenance page:

The table shows all available events. Click on it, the map updates and the fields on the left get filled. Move tha marker on the map and the respective fields updates. Choose to either update the existing or to create a new event.

Last edited by effeff70; 10 Jan 2021 at 09:27.
Reply With Quote
  #4  
Old 11 Jan 2021, 04:09
delicjous's Avatar
delicjous delicjous is offline
 
Join Date: Nov 2014
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.
__________________
vBulletin-Forum.de closed!
ⓒ by delicjous
Reply With Quote
  #5  
Old 11 Jan 2021, 12:40
effeff70 effeff70 is offline
 
Join Date: Nov 2008
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.
Reply With Quote
  #6  
Old 11 Jan 2021, 17:40
shka shka is offline
 
Join Date: Mar 2016
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.


Block Disabled:      (Update License Status)  
Suspended or Unlicensed Members Cannot View Code.

Reply With Quote
  #7  
Old 16 Jan 2021, 11:41
effeff70 effeff70 is offline
 
Join Date: Nov 2008
Servus!

Danke für deine Hilfe.
Der Code läuft einwandfrei!

Rein aus Interesse:
Woher hast du gewusst, was das $data-Array beinhalten muss?
Reply With Quote
  #8  
Old 16 Jan 2021, 14:34
shka shka is offline
 
Join Date: Mar 2016
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.
Reply With Quote
Reply



Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


New To Site? Need Help?

All times are GMT. The time now is 19:53.

Layout Options | Width: Wide Color: