Dat is de populariteit en het nut ervan in het laatste decennium dat Joomla! wordt momenteel beschouwd als een van de top-open open source CMS's ter wereld. Sinds de oprichting van het Mambo CMS, in de afgelopen tien jaar, is het zo verbeterd dat het geen wonder is dat er al veel prijzen in de pot zitten en nog steeds meetellen.
Concreet, als je op het gebied van webontwikkeling bent, ongeacht de technologie waarmee je te maken hebt, is het onmogelijk om weg te blijven van het woord Joomla! Als het waar is, weet ik zeker dat je bij een andere planeet hoort! Het klinkt misschien een beetje overweldigend, maar ik kan je verzekeren dat het meer dan de moeite waard is om naar te kijken als je dat nog niet gedaan hebt voor je volgende content management-oplossing. In feite is het meer dan alleen een CMS - we zullen later in dit artikel bespreken wat Joomla! is in staat om.
In dit artikel zullen we grondig bespreken wat Joomla! is en hoe het nuttig zou kunnen zijn voor uw web-gebaseerde projecten. Beginnend met een glimp van het basis-CMS, zullen we de functies van Joomla! in het hele artikel, en in het laatste deel laat ik u enkele nuttige bronnen achter met verwijzingen.
Een contentbeheersysteem, ook wel CMS genoemd, is een systeem waarmee u informatie eenvoudig en effectief kunt beheren. De informatie kan van alles zijn, of het nu een eenvoudig artikel is of een complex mediabeheersysteem. Het doel van een CMS is om een effectieve workflow te bieden die de duidelijke toestand van een entiteit op een bepaald moment weergeeft. In eenvoudige bewoordingen staat het toe dat informatie door verschillende staten gaat zoals concept, beoordeling, bewerking en publicatie.
Het zijn met name niet-technische gebruikers die graag een dergelijk systeem tot hun beschikking hebben dat hen in staat stelt gemakkelijk inhoud te organiseren en het hele proces vrolijker maakt in plaats van hectisch. In elke webgebaseerde toepassing zijn er drie basishandelingen, die meestal door de beheerders worden uitgevoerd, uitgevoerd op een bepaalde entiteit: toevoegen, bewerken en verwijderen. En dat is waar een CMS voor is ontworpen. Of je dat nu doet door een WYSIWYG-editor, inline-bewerking of andere fancy goodies aan te bieden, het idee is om het hele proces moeiteloos te maken.
Het is niet alleen de organisatie en het beheer van inhoud, maar ook hoe goed het is om granulaire toegangscontrole te bieden aan verschillende groepen gebruikers, wat als een van de premiumfuncties van een CMS wordt beschouwd. Het is duidelijk dat u de verantwoordelijkheden opsplitst in verschillende rollen, zoals auteur, redacteur en uitgever. Het aanbieden van contentversies is ook iets waar u uw ogen op wilt houden, omdat u artikelen kunt terugdraaien als het niet gaat zoals verwacht.
In de meest eenvoudige vorm zou de typische workflow van een CMS kunnen zijn als:
Over het algemeen is wat we hierboven hebben opgesomd nog een van de meest eenvoudigeeffectieve use-cases waar men zich aan zou kunnen houden. Om nog maar te zwijgen over het feit dat u in de echte wereld getuige zult zijn van meer complexe workflows met uitgebreide functies zoals tagging, social sharing en commentaar, om er een paar te noemen.
Dus dat is een snelle en hopelijk nuttige introductie van hoe een CMS-systeem eruit zou kunnen zien. Vanaf het volgende deel zullen we ons richten op het hoofdonderwerp van dit artikel, Joomla !, dat is iets dat ik beloofd heb dat we in dit artikel zullen onderzoeken..
Sinds de oprichting in 2005 heeft Joomla! is in de loop der jaren geëvolueerd en het eindresultaat is een van de krachtigste en feature-rijke CMS's, gedownload door miljoenen gebruikers. Zoals ze zeggen, het is echt een community-gebaseerd CMS, gerund door en voor de gemeenschap! Voor elk open-sourceproject, net als bij Joomla !, is de steun van communityleden een belangrijke factor in de persistentie en duurzaamheid van het project..
Joomla! is gebouwd met behulp van enkele van de meest gebruikte webtechnologieën zoals PHP, MySQL en Apache. Dat gezegd hebbende, beperkt het zich niet alleen tot de eerder genoemde technologieën, het ondersteunt ook andere populaire databases en webservers. U kunt kiezen uit SQL Server of PostgreSQL in plaats van MySQL-database-engine als u dat liever doet. Aan de andere kant zijn Microsoft IIS en NGINX kandidaten voor de keuze van de webserver, samen met Apache.
Voor ontwikkelaars, Joomla! is gebouwd met behulp van het MVC-ontwerppatroon, een populair patroon dat al door veel andere frameworks wordt gebruikt. Hoewel het bespreken van het MVC-ontwerppatroon iets is dat buiten de scope van deze tutorial valt, biedt het een scheiding van zorgen, waardoor de ontwikkelaar zich meer op ontwikkeling kan concentreren in plaats van zich zorgen te maken over hoe het er in de front-end uitziet..
Het is geen verrassing dat de nieuwste hoofdversie van Joomla! is out-of-the-box en mobiel-eerst reactief, omdat het tegenwoordig onmogelijk is om dat te negeren, en het zou kostbaar kunnen zijn voor elk framework dat dit heeft gedaan. Vanaf het schrijven van dit, Joomla! 3.4.x ondersteunt PHP 5.5+ versie maar niet PHP 7. Echter, de release van de langverwachte versie Joomla! 3.5 is om de hoek, en het beweert PHP 7 te ondersteunen, wat een enorme prestatieverhoging zal zijn, als je experts mag geloven.
Dus, als dat een overzicht op hoog niveau was van wat Joomla! gaat over, de volgende lijst belicht enkele van de concrete functies waar je op hebt gewacht, die worden geleverd met de Joomla! kern zelf.
Natuurlijk is het onmogelijk om elke functie in detail in een enkel artikel te bespreken, dus voor die nieuwsgierige gebruikers laat ik wat nuttige bronnen achter aan dit artikel.
Je staat aan de verkeerde kant van de tafel als je gelooft dat Joomla! is alleen nuttig voor contentbeheer, want je zult verbaasd zijn dat er meer dan 7000 extensies beschikbaar zijn op de officiële JED (Joomla Extensions Directory) -site, met functies die variëren van een eenvoudige image gallery-oplossing tot een volwaardige boeking en reserveringsmanagementsysteem. Het is zelfs mogelijk dat de extensie die u op eigen kracht wilt ontwikkelen al beschikbaar is op de JED!
De uitbreidbare architectuur van Joomla! maakt ontwikkeling van aangepaste uitbreidingen een fluitje van een cent. Bent u op zoek naar een systeem dat dienst doet als een blog? Misschien vereist je nieuwe onderneming dat je een nieuw soort YouTube-systeem bouwt, of je probeert de volgende Facebook te bouwen! De JED biedt uitbreidingen voor elk van de bovengenoemde vereisten.
Laten we een glimp opvangen van de luxe die je zou kunnen hebben als je voor Joomla kiest! als uw oplossing:
Dat is om er maar een paar te noemen, omdat het heel moeilijk is om elke mogelijkheid op te sommen. Zoals ze zeggen, de beperking is je verbeelding - zo waar voor Joomla!
In de dagelijkse Joomla! ontwikkeling, er zijn tijden dat je denkt dat je een bepaald deel van het raamwerk wilt trekken, bijvoorbeeld de routerings-API, in plaats van een hele reeks CMS-functies die verouderd zijn voor dat specifieke project. Voor een eenvoudige op PHP gebaseerde applicatie zou het leuk zijn om die geselecteerde functies uit het framework te hebben die het meest geschikt zijn voor uw applicatie, in plaats van een volledig CMS.
Stel dat u bijvoorbeeld een service wilt bouwen die Joomla! gegevens naar een mobiele applicatie van een derde partij. Om dat te bereiken, is het helemaal goed om een aangepaste extensie te maken die voldoet aan de gewenste functionaliteit, maar met de extra bagage van die ongewenste CMS-functies in uw geval. In plaats daarvan zou u graag de API's van uw behoefte selecteren door de rest van de functies te vermijden en het eindproduct is een superlichte webtoepassing..
Dat is het doel van Joomla! Framework, eerder bekend als Joomla! Platform. Hiermee kunt u een toepassing bouwen met een vertrouwde set API's, als u afkomstig bent van Joomla! CMS achtergrond. Het biedt een gemeenschappelijke set van API's, net als met de andere PHP-frameworks, zodat u zich meer kunt concentreren op de applicatiespecifieke functies in plaats van het wiel opnieuw uit te vinden voor functies zoals invoerverwerking, database-abstractielaag, routing en dergelijke.
Het is absoluut niet te verwarren met de Joomla! CMS, want er is een aparte ontwikkellijn voor beide stukjes software. Het belangrijkste idee is om de softwarepakketten te ontkoppelen in afzonderlijke modules, in plaats van ze in een enkel pakket te binden, zodat ze zelfstandig kunnen evolueren. Eigenlijk zou je kunnen denken aan Joomla! CMS als een combinatie van de Joomla! Framework- en CMS-modules.
Een veelbelovend voorbeeld van Joomla! Framework is het Issue Tracker toepassing van de Joomla! CMS zelf. Op dezelfde manier zou je elke webapplicatie ermee kunnen bouwen die je zou hebben gebouwd met elk ander op PHP gebaseerd raamwerk. Verken het en ik weet zeker dat er iets is dat iedereen te bieden heeft.
In deze sectie bespreken we de belangrijke elementen van de Joomla! architectuur die als basisbouwstenen dienen voor elke toepassing.
Dit is een van de belangrijkste en een must-have-element in de stack die de volledige functionaliteit van een specifieke sectie biedt. Hiermee kunt u een basis maken die zich bezighoudt met de bedrijfslogica van een toepassing. Het is ook een van de elementen waarmee Joomla uitgebreid wordt, mocht je nieuwe functies willen introduceren.
Als u bijvoorbeeld een bedrijfsdirectorytoepassing wilt bouwen, moet u de vermeldingen van de back-end kunnen toevoegen, bewerken en verwijderen. Aan de andere kant moet het in de front-end een mooie lijst weergeven, samen met geavanceerde zoek-, pager- en sorteerfuncties. Het is dus het onderdeel dat u wilt bouwen om de bovengenoemde functionaliteit in te pakken.
Als vuistregel, wanneer u een nieuwe functionaliteit in Joomla! Wilt bouwen, is dit de component die u te hulp kunt schieten.
Voordat ik ga uitleggen wat een module is in Joomla !, wil ik u een paar voorbeelden geven om het u gemakkelijker te maken. Als je Joomla! Ooit hebt bezocht! aan de voorkant ziet u veel blokken zoals Login, Laatste artikelen, Laatste feeds, enzovoort. Tot uw verbazing zijn ze Joomla! modules toegewezen aan verschillende posities in de sjabloon! Een Joomla! module is een verplaatsbaar blok dat de uitvoer opbouwt door de gegevens van de component op te halen, meestal, en geeft de uitvoer weer.
Vaker wel dan niet moet u het hoofdraamgedrag aanpassen om aan uw aangepaste behoeften te voldoen, en dat is waar plug-ins in beeld komen. Een Joomla! Met plug-in kunt u bepaalde door het systeem gedefinieerde gebeurtenissen vastleggen en de deur openen voor het aanpassen van enkele van de belangrijke workflows.
Stel bijvoorbeeld dat u een aanvraag van een derde wilt melden in het geval van nieuwe gebruikersregistratie op uw website. Natuurlijk is er een voorziening om de gegevens te wijzigen die heen en weer gaan tussen de gebeurtenisoproepen.
Zoals de naam al doet vermoeden, behandelt het de presentatielaag van uw website en helpt het uw website-indeling te structureren. Soms wordt het ook wel een Joomla! thema omdat u hiermee het uiterlijk van uw website kunt wijzigen. Om het standaard uiterlijk van de Joomla! kern, je moet een aangepast thema maken volgens de Joomla! themastructuur, en dat is iets dat je vaak tegenkomt als je een Joomla! bent! ontwikkelaar.
Om nog maar te zwijgen van de nieuwste versie van Joomla! wordt geleverd met een responsief thema in de front-end en back-end. Het wordt ook verwacht van thema-ontwerpers en tijdens de ontwikkeling van aangepaste thema's.
De JED is iets waar je je bekend mee moet maken, omdat je waarschijnlijk vrij veel tijd zult spenderen aan het zoeken naar een extensie voor je doel. Het is een officiële Joomla! site die volop uitbreidingen biedt om uit te kiezen in de vorm van componenten, modules en plug-ins.
Uitbreidingen bij JED worden vrijgegeven onder twee soorten licentievrij en commercieel. Zoals je misschien al geraden hebt, zijn de commerciële extensies betaalde goodies, beschikbaar op een abonnementsmodel of door een eenmalige vergoeding te betalen. Als ontwikkelaar is dit een gebied waar u het voordeel van wilt hebben, door kwaliteitsextensies te ontwikkelen en deze uit te geven onder commerciële licentie.
In feite werkt het meestal op deze manier: de gratis versie van een extensie is beschikbaar met basisfuncties en de betaalde versie van dezelfde extensie wordt versterkt met powerfuncties, in sommige gevallen in de vorm van add-ons. Om nog maar te zwijgen over het feit dat de luxe van technische ondersteuning van de verleningsprovider wordt geleverd met de commerciële versie. Daarom is het een succesvol en bewezen bedrijfsmodel voor veel commerciële extensieleveranciers.
Dat gezegd hebbende, zal ik geen kredietwaardigheid wegnemen van die gratis kwaliteitsextensies die het doel dienen, evenals elke betaalde extensie. In feite is het een reeks strikte standaarden en regels die elke extensie moet doorstaan om ervoor te zorgen dat de extensies die op JED worden vermeld, voldoen aan de gewenste kwaliteitsnormen.
Dus, dat is de JED tot uw beschikking - maak het uzelf gemakkelijk en u zult blij zijn dat u dat deed.
Voor nieuwe gebruikers is het altijd aan te raden Joomla! op uw lokale systeem en verken de functies in de front-end en back-end om vertrouwd te raken met het systeem. Hier zijn enkele belangrijke bronnen voor beginners:
Voor ervaren PHP-ontwikkelaars:
Het is zo'n breed onderwerp dat je veel online tutorials en video's tot je beschikking hebt. Ook de leden van Joomla! communityforum is vriendelijk genoeg om u te helpen bij het oplossen van eventuele problemen.
Met genoegen introduceerde ik een van de meest populaire opensource-CMS's op het gebied van webontwikkeling: Joomla! Hoewel we nauwelijks het oppervlak van de Joomla! wereld, ik hoop dat ik recht heb gedaan aan het onderwerp.
Beginnend met een introductie tot CMS's, hebben we de verschillende aspecten van Joomla! Bestudeerd, gevolgd door een bespreking van belangrijke architecturale elementen. We hebben ook gekeken naar de JED en ik heb wat nuttige bronnen in het laatste deel van dit artikel gegeven.
Aarzel niet om te zien wat we beschikbaar hebben voor de verkoop en voor studie in de markt, en aarzel niet om vragen te stellen en uw waardevolle feedback te geven met behulp van de onderstaande feed.