tonen van csv data in een joomla module

  • Gast
  • Gebruiker
  • Gebruiker
Meer
11 jan 2015 18:15 #9797 door Gast
Hallo allemaal,

Wie kan mij helpen ik heb een joomla website met forum gemaakt voor een online game clan.

Dit is mij goed gelukt maar nu wil ik deze verder gaan uitbreiden met custom made module waarin alle clan members worden getoond.
Deze lijst kan je via de orginele game website opvragen waarna je een csv bestand terug krijgt nu wil ik deze array tonen in een module:

clan member - rank - experience

Nu ben ik een beginner in joomla kan iemand mij een kan opsturen tot nu toe loop ik vast in welke file ik wat moet zetten:

mod_clanmembers.php
mod_clanmembers.xml
helper.php
tmpl/default.php

Ik heb al diverse site bekeken maar ik zie door de bomen het bos niet meer.

Ik ben een ervaren C# developer maar php is lang geleden dus zal her en der wel wat vragen gaan komen ;)

Ik hoop dat iemand mij op weg kan helpen ??

Alvast bedankt,
Dutchborg
Discussie gesloten.
  • Gast
  • Gebruiker
  • Gebruiker
Meer
11 jan 2015 18:15 #9798 door Gast
Beantwoord door Gast in topic tonen van csv data in een joomla module
Ik denk dat jhe het snelste klaar bent door eerst even wat achtergrond-info te lezen. Hoofdstuk 3 van www.packtpub.com/web-development/learnin...opment-third-edition is 40 pagina's over het maken van Joomla modules en dan kun je snel aan de slag. Want behalve in welk bestand wat staat heb je ook nog te maken met de manier waarop Joomla bijvoorbeeld de database aanroept e.d.

Voor wat betreft de bestanden van zo'n module zijn dit in het kort waar die toe dienen:
  • mod_clanmembers.xml: dit is het zgn. 'manifest', een bestandje dat iedere Joomla-extensie heeft om aan te geven wat voor soort extensie het is, welke naam, welke bestanden, auteur, parameters etc.
  • mod_clanmembers.php: dit is de eigenlijke module. Het is gewoon een php-script, geen class (net als bij de vergelijkbare 'entry file' van een component). Je kunt het zien als de C van MVC.
  • helper.php: dit is een verzameling static functions die ondermeer dienen om de gegevens uit de database te halen. Je kunt het zien als de M van MVC.
  • tmpl/default.php: dit is een template waarin de output gerendered wordt. Als je bijvoorbeeld een array wil afdrukken in een tabel, dan kun je hier door die array heen loopen en de tabel-tags (<tr>, <td> e.d.) hier opgeven. Je kunt dit zien als de V van MVC
Je kunt al een module maken door alleen de 'entry file' mod_clanmembers.php te bebruiken, en dus de helper en het template weg te laten. Maar het is beter die dingen te scheiden. Bovendien kun je dan ook een zgn. template-override gebruiken. Een manifest is altijd nodig.


In mod_clanmembers.php include je de helper:
[PHP]require_once __DIR__ . '/helper.php';[/PHP]
haal je een lijst van members op:
[PHP]$list = ModClanmembersHelper::getList($params);[/PHP]
en roep je het template aan:
[PHP]require JModuleHelper::getLayoutPath('mod_clanmembers', $params->get('layout', 'default'));[/PHP]
In dat template render je dan die $list.


Je ziet: eigenlijk een heel primitieve manier van programmeren, met includes, simpel scriptje, static functions e.d.
Discussie gesloten.
  • Gast
  • Gebruiker
  • Gebruiker
Meer
11 jan 2015 18:15 #9799 door Gast
Beantwoord door Gast in topic tonen van csv data in een joomla module
hoi Herman THX voor je reply :) hier kan ik weer even verder mee tenminste ik heb huiswerk :)

Ik ga dat eerst eens goed door lezen en een start maken mag ik in deze topic zaken waar ik tegen aan loop posten in de hoop dat je mij dan verder kan helpen?

Volgens mij als ik er 1 zelf heb gemaakt kan ik denk ik wel verder met meerdere custom modules maken :)

Thx hier had ik op gehoopt :) TOP

Gr. Dutchborg
Discussie gesloten.
  • Gast
  • Gebruiker
  • Gebruiker
Meer
11 jan 2015 18:15 #9800 door Gast
Beantwoord door Gast in topic tonen van csv data in een joomla module
Uiteraard zijn alle vragen hier op het forum van harte welkom!

Joomla-modules zijn niet moeilijk en geven snel resultaat. Dus da's altijd leuk. Het principe is eenvoudig: alle gegevens worden aangeleverd door de helper-methods en in het template wordt alles gerenderd.

Met CSV kun je eventueel die lijst iedere keer opvragen, inlezen en dan weergeven, maar een andere methode zou zijn om dat bijvoorbeeld steeds 's nachts in een CRON-jobje te laten gebeuren en je module de lijst "gewoon" uit de eigen database te laten vissen. Hangt ervan af of die ledenlijst vaak verandert op een dag of niet. Als je gaat voor een CRON-job dan zou je die normaal gesproken een component aan moeten laten roepen (je zou een module niet zomaar van buitenaf aan moeten kunnen roepen), maar we hebben tegenwoordig in Joomla ook com_ajax zitten en daarmee kun je wel rechtstreeks een method van een module of plugin aanroepen. Afijn, dat zijn overwegingen voor het geval dat je niet iedere keer die CSV-lijst op wil halen.

CSV inlezen is verder gewoon standaard php. Ik sla de CSV-file altijd eerst op en lees 'm daarna met fopen() en fgetcsv(). Doorheen loopen en query opbouwen, dan heb je 'm in een MySql-tabel; of meteen in een array zetten en die renderen.
Discussie gesloten.
Gemaakt door Kunena