Pragmamx Module erstellen / exoops Module anpassen

Begonnen von Alphaman, 03 Juni 2007, 20:45:16

⏪ vorheriges - nächstes ⏩

0 Mitglieder und 1 Gast betrachten dieses Thema.

Alphaman

Hi Leute,

ich hab ein kleines Problem. Wir hatten unsere Vereinsseite damals in exoops und sind schon länger auf pragmamx was auch sehr gut ist. Leider habe ich hier nicht keine Anleitung gefunden wie man selber Module erstellt. Auf der alten Seite hatten wir eine Turnieranmeldung für uns. Leider ist der Code komplett anderster aufgebaut in Pragmamx als exoops. Ich hab mir einige php Dateien angeschaut aber ich komme nicht ganz klar. Ich verwende die mysql Datenbank und hab auch einen Admin Zugang.

In den PHP Files habe ich werder eine Routine gefunden die die nötige Tabelle erstellt noch einen Admin zugangsroutine obwohl das Module im Admin Bereich steht.

Kann mir jemand helfen. Ich muss dringendst das exoops Module auf die neue Seite bringen.

Dickes danke schonmal im Voraus.

Gruß,
Alphaman 

JoergK

Wie Du warscheinlich schon gesehen hast, besteht ein Modul bei pragmaMx zunächst aus einem eigenen Verzeichnis unterhalb des Verzeichnisses /modules, das den Namen des Modul trägt. In diesem Modulverzeichnis existiert dann mindestens die Datei index.php. Das Grundgerüst dieser index.php sieht i.d.R. so aus:

<?php

if (!defined("mxMainFileLoaded")) die ("You can't access this file directly...");

// get the modul name
$module_name basename(dirname(__FILE__));

// get the language file
mxGetLangfile($module_name);

// right blocks on = 1, off = 0
$index 1;

include(
"header.php");
OpenTable();

CloseTable();
include(
"footer.php");

?>


Zwischen OpenTable() und CloseTable() kommt nun der eigentliche PHP-Code.

pragmaMx bringt in seiner API die wichtigsten Funktionen mit (zu finden in /includes/mx_api.php), um z.B.

  • Usereingaben zu filtern und / oder Daten für's Speichern in der Datenbank aufzubereiten (Stichtwort Sicherheit).
  • Abfragen, ob ein User oder Admin der Aufrufende ist.
  • Abfrage, welche Spache auf der Site (gerade) eingestellt ist.
  • U.v. mehr.
Ebenso sind die wichtigsten Funktionen zur Kommunikation mit der Datenbank vorhanden (zu finden in /includes/sql_layer.php).

Um Mehrsprachigkeit zu ermöglichen, sollten statische Texte, die ausgegeben werden, mittels Konstanten im Code stehen. Diese Konstanten werden in seperaten Sprachdateien deklariert, welche im Verzeichnis /modules/Modulname/language abgelegt werden. Den Aufbau der Dateinamen und wie die Deklarationen aussehen kannste Dir in einem der vorhanden Module ansehen.

Zum Thema Sicherheit les Dir mal den Beitrag von Andi durch -> http://www.pragmamx.org/Forum-topic-16818-start-msg116671.html#msg116671

Ich hoffe, dass Du mit diesem kurzen Abriss erstmal wieder etwas Land siehst.
Wenn weitere Fragen auftauchen sollten, und ich denke, die werden auftauchen, dann meld Dich einfach.
Gruß,
Jörg


Nobody is perfect ... so don't call me Nobody

Alphaman

Danke schonmal für die Information. Wie und wann wird die Tabelle für ein Module angelegt. Ich habe nirgends ein Create oder so gesehen. Wie wird also die Tabellenstruktur angelegt wenn ein Module benutzt wird.

Wenn du mir die Info bitte noch geben... Denke mal das ich den Rest zusammen bekomme. So schwer scheind es nicht zu sein. Aber das hab ich nirgends gesehen mit der Datenbank.

In exoops ist es so das in einen Info File mit angegeben wird wenn eine sql datei eingebunden werden soll.

Gruß,
Michael

JoergK

Das obliegt dem jeweiligen Modul-Programmierer, ob innerhalb des Moduls eine Datenbanktabelle bei Nichtvorhandensein automatisch angelegt wird. Bei den meisten externen Modulen gibt's zwei Wege:

Ein Hinweis in der Readme, dass

  • die Datenbanktabelle(n) mittels einer beiligenden (meist) sql.txt manuell per phpMyAdmin anzulegen ist/sind, oder
  • eine (zusätzlich) vorhandene install.php auszuführen ist, mittels derer dann i.d.R. die DB-Tabelle(n) angelegt und mit Inhalt gefüllt wird/werden.


Gruß,
Jörg


Nobody is perfect ... so don't call me Nobody

Alphaman

Danke fuer die die Info. Da haette ich auch mal selber drauf kommen können   :puzzled:

Dann werde ich mich für das automatische erstellen einigen  :) bzw. dies dann einbauen. Der Code von meinem alten Module kann ich fast 1:1 übernehmen. Nur die Datenbankabfragen muss ich anpassen.

Danke nochmals für die hilfreiche und schnelle Hilfe.

Gruß,
Alphaman