Script-solution.de » Community » Support-Board » Foren » Boardsolution » Boardsolution v1.4x » Mod-Anleitungen » Neues Modul zum Frontend hinzufügen
  • Willkommen, Gast!
  • Freitag, 10. Februar 2012, 04:34:13
 
Thema: "Neues Modul zum Frontend hinzufügen" [ Seite 1 ]

Kein neuer Beitrag Nils , 19.11.2009, 20:06
Beitrag #1   

IP: n/a
Rang: * * * * * * *
Registrierung: 01.07.2003, 18:55
Homepage: http://www.script-solution.de
Wohnort: Marburg
 

Forum-Gott mit 7594 Punkte, 7360 Beiträge
Hallo,

falls ihr eine neue Seite in Boardsolution einfügen möchtet, findet ihr hier eine kleine Anleitung
dafür.

  1. Zunächst müsst ihr einen neuen Ordner in "front/module" erstellen. Ich nenne ihn hier mal "test".
    Darin erstellt ihr eine Datei namens "module.php".
  2. In die module.php kopiert ihr folgendes:
    PHP:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <?php
    final class BS_Front_Module_test extends BS_Front_Module
    {
      public function init($doc)
      {
        parent::init($doc);
        $renderer = $doc->use_default_renderer();
        $renderer->add_breadcrumb('Test Modul',BS_URL::build_mod_url('test'));
      }
      
      public function run()
      {
        
      }
    }
    ?>
    Wichtig ist, dass die Klasse "BS_Front_Module_test" heißt, also mit "BS_Front_Module_" beginnt und
    danach der Name eures Moduls.
    Kurz zu den Methoden:
    • init():
      Diese wird zu Beginn aufgerufen und bietet dem Modul die Chance einige Festlegungen zu machen.
      Üblicherweise gibt man dem Renderer einige Informationen wie den Namen und die URL des Moduls, ob
      der Benutzer Zugriff hat und ähnliches. Außerdem kann der Renderer selbst gewählt werden. Der
      Default-Renderer erzeugt HTML und sollte daher für fast alle Module richtig sein. Jedoch kann auch
      z.B. der GD-Renderer benutzt werden um Bilder zu erzeugen, ein Raw-Renderer um beliebigen Inhalt zu
      erstellen (XML z.B.) usw..
    • run():
      Die wesentliche bzw. übliche Aufgabe dieser Methode ist es die Variablen für das Template zu
      generieren und dem Template mitzuteilen. Es ist also der Kern eures Moduls.

  3. Der Default-Renderer wählt vor dem Aufruf der run()-Methode automatisch das Template mit dem Namen
    des Moduls, d.h. "<module>.htm". Das Template solltet ihr also zunächst erstellen. Wenn ihr eine
    leere Datei anlegt und das Modul via "index.php?action=test" aufruft, wird euch auffallen, dass ihr
    eine leere Seite erhaltet. Das liegt daran, dass jedes Template das komplette Board erstellt, indem
    es Header und Footer einbindet. Das Grundlayout (was ihr in jedem Fall verwenden solltet, es sei
    denn ihr habt einen guten Grund es anders zu machen) sieht daher folgendermaßen aus:
    (BS-)Template:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    {include "inc_header.htm"}

    {if action_result < 1}
    {if module_error == false}

    Euer Inhalt

    {endif}
    {endif}

    {include "inc_footer.htm"}

  4. Jetzt braucht ihr also bloß noch irgendwo eurere Seite zu verlinken. Wie gesagt, die Adresse ist
    "index.php?action=test". Dafür ist vllt. die Adminbereich-Hilfe interessant, in welcher geschildert
    ist, wie man einen Link in die Navigation einfügt.

Das wars auch schon. Viel Spaß beim Erstellen eigener Module! :-)

Noch einige Hinweise:
  • Die hier genannten Optionen sind natürlich nur ein Bruchteil der verfügbaren Möglichkeiten von
    FrameWorkSolution bzw. Boardsolution. Z.B. können analog zu dem hier beschriebenen Module in allen
    anderen Teilen von BS erstellt werden, d.h. im Adminbereich, bei der Datenbanksicherung usw.. Es
    steht außerdem ein "Aktionen-Konzept" zur Verfügung und es können auch Submodule kreiert werden.
  • In jedem Fall dürfte es sinnvoll sein sich bereits bestehende Module anzuschauen. Dadurch gewinnt
    man einen guten Überblick über die Möglichkeiten.
  • Ansonsten empfiehlt sich ein Blick in die Dokumentation bzw. den Quellcode um beispielsweise zu
    erfahren welche Methoden die Dokument- oder Renderer-Klasse bietet.

mfg Nils

 
Kein neuer Beitrag Kevin , 13.11.2011, 12:15
Beitrag #2   

IP: n/a
Rang: * * * * O O O
Registrierung: 02.08.2005, 18:42
 

Erfahren mit 154 Punkte, 102 Beiträge
hallo...

bei mir kommt immer die fehlermeldung

Cannot modify header information - headers already sent by (output started at
/home/www/front/module/test/module.php:17)
Call-trace:
• /fws/error/handler.php in line 192 [ Method: FWS_Error_Handler::get_error_message() ]
• Unknown [ Method: FWS_Error_Handler::handle_error() ]
• /fws/cookies.php in line 218 [ Function: setcookie() ]
• /src/unread.php in line 83 [ Method: FWS_Cookies::delete_cookie() ]
• /src/proploader.php in line 44 [ Method: BS_Unread::__construct() ]
• /fws/proploader.php in line 37 [ Method: BS_PropLoader::unread() ]
• /fws/propaccessor.php in line 93 [ Method: FWS_PropLoader::load() ]
• /src/propaccessor.php in line 72 [ Method: FWS_PropAccessor::get() ]
• /front/src/renderer/html.php in line 324 [ Method: BS_PropAccessor::unread() ]
• /fws/document/renderer/html/default.php in line 363 [ Method: BS_Front_Renderer_HTML::header() ]
• /fws/document.php in line 446 [ Method: FWS_Document_Renderer_HTML_Default::render() ]
• /index.php in line 73 [ Method: FWS_Document::render() ]

aber es geht trotzdem. also darunter wird ganz normal das board angezeigt. kann das "Test Modul"
sehen und es steht auch "Euer Inhalt" da.

 
Kein neuer Beitrag Nils , 13.11.2011, 12:55
Beitrag #3   

IP: n/a
Rang: * * * * * * *
Registrierung: 01.07.2003, 18:55
Homepage: http://www.script-solution.de
Wohnort: Marburg
 

Forum-Gott mit 7594 Punkte, 7360 Beiträge
Hallo,

was steht denn in Zeile 17 der front/module/test/module.php? Sind da vllt. leere Zeilen hinter dem
"?>" ? Die müsstest du dann wegnehmen. Dann verschwindet auch die Meldung (die man nicht ignorieren
sollte).

mfg Nils

 
Kein neuer Beitrag Kevin , 13.11.2011, 13:57
Beitrag #4   

IP: n/a
Rang: * * * * O O O
Registrierung: 02.08.2005, 18:42
 

Erfahren mit 154 Punkte, 102 Beiträge
ja eine leere zeile war es... danke...

n/a n/a 1     ( Anzeige: 1 - 4 , Gesamt: 4 ) n/a n/a
User in diesem Thema: 0 Registrierte, 0 Versteckte, 1 Gast, 0 Bots
Keine
Thema-Aktionen:

Toggle Ähnliche Themen zu "Neues Modul zum Frontend hinzufügen"
  Antworten Aufrufe Themeneröffnung Letzter Beitrag
Keine neuen Beiträge, nicht wichtig Keine neuen Beiträge, kein 'heißes Thema'
Keine neuen Beiträge, offen Keine neuen Beiträge, nicht verschoben
  Frohes Neues 4 1968 01.01.2012, 00:34
Von: Mars
02.01.2012, 21:00
Von: langer Zum letzten Beitrag
Keine neuen Beiträge, nicht wichtig Keine neuen Beiträge, kein 'heißes Thema'
Keine neuen Beiträge, offen Keine neuen Beiträge, nicht verschoben
  Nutzung von PHP auf Frontend Modul Seiten 5 1296 04.09.2011, 16:04
Von: Doerfler
07.09.2011, 14:13
Von: Rafioso Zum letzten Beitrag
Keine neuen Beiträge, nicht wichtig Keine neuen Beiträge, kein 'heißes Thema'
Keine neuen Beiträge, offen Keine neuen Beiträge, nicht verschoben
  modul action - POST Werte übergeben 6 3689 12.01.2010, 15:50
Von: aki
13.01.2010, 15:39
Von: Nils Zum letzten Beitrag
Keine neuen Beiträge, nicht wichtig Keine neuen Beiträge, kein 'heißes Thema'
Keine neuen Beiträge, offen Keine neuen Beiträge, nicht verschoben
  dynamische Breadcrumbs in Submodulen 2 4372 11.01.2010, 13:14
Von: aki
11.01.2010, 13:59
Von: aki Zum letzten Beitrag
Keine neuen Beiträge, nicht wichtig Keine neuen Beiträge, kein 'heißes Thema'
Keine neuen Beiträge, offen Keine neuen Beiträge, nicht verschoben
  Module unterordnen 1 3258 10.01.2010, 01:21
Von: aki
10.01.2010, 11:07
Von: Nils Zum letzten Beitrag
  • 0.119493 Sek., 11 DB-Zugriffe, 6.240 MiB
  • Boardsolution v1.43 | © Nils Asmussen 2003-2009
Valid XHTML and CSS © 2003 - 2009 script-solution.de, Powered by Joomla!