
Berichten uitwisselen met andere gebruikers binnen MultiSite
Auteur Website & Server" op
Dit artikel is 49 keer gelezen en heeft 0 reactie(s).
Meld je aan voor de "Nieuws Update Service".
Richard Sikkes`s Nieuws Update
,
geplaatst in "Dit artikel is 49 keer gelezen en heeft 0 reactie(s).
Score: 9.0, stemmen: 1
Richard Sikkes`s Nieuws Update
Blijf op de hoogte van de laatste ontwikkelingen op deze website!Meld je aan voor de "Nieuws Update Service".
Richard Sikkes`s Nieuws Update
Soms wil je snel even een kort berichtje sturen naar een andere gebruiker of naar de beheerder, zonder meteen een heel contactformulier in te moeten vullen en dat de verdere communicatie via email verloopt, want dan heeft degene meteen ook je mailadres en dat is niet altijd even handig.
Daarom ben ik momenteel bezig om een PM of DM systeem in te bouwen in MultiSite. Ik dacht dat doe ik wel even, zo tussen de bedrijven door, maar dat viel me eigenlijk toch wel vies tegen. Dit blijkt toch een stuk complexer te zijn dan ik van tevoren had gedacht. In een grijs verleden ben ik hier al eens mee bezig geweest en ik had toen al een werkend iets, maar dat was lang niet ideaal. Helaas heb ik die oude code niet meer terug kunnen vinden, alleen 1 vaag bestandje waar ik alleen uit af kon leiden dat ik ermee bezig ben geweest, meer niet.
Dan maar eens even op internet snuffelen om te kijken of er al een bestaand iets is, wat completer is dan hetgeen wat ik heb. Dat heb ik inmiddels gevonden en ben dat systeem aan het doorgronden. De code is bedoeld voor leerdoeleinden en is niet bedoeld om het in productie te gebruiken. Dat is maar goed ook, want de code is een rommeltje en bevat best nog wel veel fouten en onlogische dingen. Het is in ieder geval materiaal waar ik wel iets mee kan beginnen.
Op de bijgevoegde foto zie je een screenshot van de persoonlijke inbox, die heb ik inmiddels zodanig aangepast aan het systeem van MultiSite. Er staat 1 gelezen bericht in van Richard Sikkes met onderwerp Re: Sample 101. Helemaal aan de rechterkant zie je een knopje staan met een envelopje, die is bedoeld om het bericht te kunnen bekijken. Dit screenshot is in een testaccount gemaakt.
In mijn eigen account zie ik in diezelfde inbox hetzelfde bericht afkomstig van het testaccount staan. Klik je op dat rechter knopje, dan zie je de hele conversatie met als eerste het originele bericht en daaronder alle reacties over en weer. Zo houd je de inbox overzichtelijk. Komt er nu weer een nieuwe reactie, dan wordt deze conversatie als ongelezen beschouwd en zo kun je dan zien dat er nieuwe berichten zijn.
De berichten die er nu instaan zijn voorbeeldberichten en bevatten dus geen nuttige informatie of een hele conversatie. Dit is puur om de werking te testen, want ik moet de hele code aanpassen aan de code van MultiSite, want hoe kan het ook anders, men doet het weer compleet op een andere manier dan dat ik dat zou doen. Maar dat vind ik wel erg leerzaam, want op deze manier ontdek je nog nieuwe dingen en leer je er ook weer van om met die kennis MultiSite nog verder te verbeteren.
Zo maakt deze voorbeeldcode gebruik van best wel complexe SQL queries, die ik nog niet kende. Deze code haalt bijvoorbeeld met 1 SQL query informatie op uit 2 a 3 tabellen tegelijk en geeft dat in 1 resultaat terug. Dat is best wel interessant, want dan benut je echt de kracht van SQL en bespaar je uiteindelijk heel veel programmacode.
Neem bijvoorbeeld de inbox pagina, die haalt de informatie op uit 3 tabellen en voegt deze samen tot 1 uitvoer en toont deze vervolgens netjes en mooi op het scherm. De pagina bevat meer opmaak code dan programmacode en dat maakt het voor mij als programmeur weer een stuk overzichtelijker en makkelijker te onderhouden.
Die inbox werkt nu naar behoren, het heeft me 2 dagen aan tijd gekost om dit zover te krijgen dat het werkt binnen MultiSite. Vervolgens ben ik ook ruim een dag bezig geweest om de berichten pagina zover te krijgen. Momenteel bijt ik me stuk op de reply pagina. Daarbij komt jQuery en AJAX om de hoek kijken, want daar maakt het origineel gebruik van. Dat vind ik echter niet zo nodig binnen MultiSite, want tot nu toe heb ik dat nog niet werkend gekregen, maar dat komt denk ik meer omdat MultiSite compleet anders in elkaar zit en omdat de voorbeeldcode gebruik maakt van oudere jQuery en AJAX en Bootstrap versies dan ik gebruik.
Dus ik ga die jQuery en AJAX zooi eruit slopen en het geheel aanpassen aan MultiSite. Daarin probeer ik zo min mogelijk gebruik te maken van Javascript en andere vage externe dingen. Ik wil al zeker zo min mogelijk of het liefst helemaal geen gebruik maken van API's of andere externe Amerikaanse zooi, want vroeg of laat gaan die er toch steeds meer geld voor rekenen en worden de gratis dingen nog verder beperkt, dus dat probeer ik zo veel mogelijk te voorkomen want het moet wel leuk blijven natuurlijk.
Het liefst heb ik alle code op mijn eigen server draaien, maar soms ontkom je er niet aan om bepaalde zaken van buiten de deur te halen, zoals Bootstrap en FontAwesome. De reden om dit tot een minimum te beperken is, als 1 van die services offline is vanwege een storing, dan werkt ook mijn website niet meer. Staat alles op mijn server, dan blijft de website gewoon werken, tenzij mijn eigen server plat ligt natuurlijk.Nadeel is dan wel weer dat als er een nieuwe versie is, dat je dan weer allerlei bestanden moet downloaden naar je server en de diensten moet installeren. In het ergste geval ben je daar wel even mee bezig en dan is het toch weer makkelijk om even een paar getalletjes te veranderen en dan heb je gewoon de nieuwste versie. Dus dingen die vaak moeten worden geupdated, kun je beter extern houden, zaken die amper worden geupdated kun je net zo goed op je server houden.
Al met al denk ik dat ik nog wel even zoet ben met het aanpassen en uitproberen van deze voorbeeldcode en het leren van nieuwe technieken, we zullen maar zeggen dat het me van de straat houdt en uit de kroeg. Maar dan weten jullie in ieder geval een klein beetje waar ik momenteel mee bezig ben en waarom het momenteel zo stil is op Facebook ;-)
Foto's bij dit artikel:
Klik op een foto vor een vergroting.
