• Willkommen, Gast!
  • Dienstag, 20. Oktober 2020, 08:20:52
Position: Home » Boardsolution » Boardsolution v1.4x » Mod-Anleitungen » Neues Modul zum Frontend hinzufügen
Antworten
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 7812 Punkte, 7566 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: * * * * * * *
Registrierung: 02.08.2005, 18:42
 

Forum-Gott mit 225 Punkte, 149 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 7812 Punkte, 7566 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: * * * * * * *
Registrierung: 02.08.2005, 18:42
 

Forum-Gott mit 225 Punkte, 149 Beiträge
ja eine leere zeile war es... danke...

 
Kein neuer Beitrag Jamie , 18.06.2012, 15:55
Beitrag #5   

IP: n/a
Rang: * * * * * * *
Registrierung: 22.05.2012, 16:01
 

Forum-Gott mit 31 Punkte, 23 Beiträge
Ich hab versucht, das ganze mal nachzubauen, kriege aber nur den Board-Index angezeigt. Schätze
mal, das liegt am Code:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
final class BS_Front_Module_impressum 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('impressum'));
  }
  
  public function run()
  {
    
  }
}
?>


(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"}


[Link entfernt, da erledigt]


Was hab ich falsch gemacht?


MFG Jamie

Edit (Nils): Ich hab mal das Zitat in 2 entsprechende Code-Bereiche umgewandelt. Bitte das nächste
Mal gleich den richtigen BBCode-Tag nehmen. Dann ist es auch besser lesbar :)
Dieser Beitrag wurde insgesamt 2 mal editiert. Das letzte Mal 18.06.2012, 20:45 von Jamie.

 
Kein neuer Beitrag Nils , 18.06.2012, 17:52
Beitrag #6   

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

Forum-Gott mit 7812 Punkte, 7566 Beiträge
Der Code ist soweit in Ordnung. Wie heißt der Ordner des Moduls? und wie heißt die PHP-Datei? Der
Ordner muss impressum heißen (und natürlich in front/module liegen) und die Datei module.php. Das
Template impressum.htm.

mfg Nils
Dieser Beitrag wurde insgesamt 2 mal editiert. Das letzte Mal 18.06.2012, 17:53 von Nils.

 
Kein neuer Beitrag Jamie , 18.06.2012, 18:53
Beitrag #7   

IP: n/a
Rang: * * * * * * *
Registrierung: 22.05.2012, 16:01
 

Forum-Gott mit 31 Punkte, 23 Beiträge
Oh, hab mich beim Ordnernamen vertippt-so nun gibts aber ein anderes Problem:

Zitat:
Cannot modify header information - headers already sent by (output started at
/srv/www/httpd/phost/f/net/pytalhost/forum-gyg-clan/web/front/module/impressum/module.php:29)

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() ]


Schätze das liegt daran, dass ich den Headerfür die verweissensitive Grafik angepass habe-wie kann
man das ändern?

Danke& MFG Jamie

 
Kein neuer Beitrag Nils , 18.06.2012, 19:29
Beitrag #8   

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

Forum-Gott mit 7812 Punkte, 7566 Beiträge
Siehe Beitrag #3 :)

mfg Nils

 
Kein neuer Beitrag Jamie , 18.06.2012, 20:24
Beitrag #9   

IP: n/a
Rang: * * * * * * *
Registrierung: 22.05.2012, 16:01
 

Forum-Gott mit 31 Punkte, 23 Beiträge
Thx! :))

Abonnieren Druckansicht
Antworten

n/a n/a 1     (Anzeige: 1 – 9; insgesamt: 9) n/a n/a
User in diesem Thema: 0 Registrierte, 0 Versteckte, 1 Gast, 0 Bots
Keine
Legende: Administratoren, User, Moderatoren
Themenaktionen:
Beiträge verschieben

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, „heißes Thema“
Keine neuen Beiträge, offen Keine neuen Beiträge, nicht verschoben
  Frohes Neues 4 15513 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, „heißes Thema“
Keine neuen Beiträge, offen Keine neuen Beiträge, nicht verschoben
  Nutzung von PHP auf Frontend Modul Seiten 5 8731 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, „heißes Thema“
Keine neuen Beiträge, offen Keine neuen Beiträge, nicht verschoben
  modul action - POST Werte übergeben 6 9970 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, „heißes Thema“
Keine neuen Beiträge, offen Keine neuen Beiträge, nicht verschoben
  dynamische Breadcrumbs in Submodulen 2 7828 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, „heißes Thema“
Keine neuen Beiträge, offen Keine neuen Beiträge, nicht verschoben
  Module unterordnen 1 6205 10.01.2010, 01:21
Von: aki
10.01.2010, 11:07
Von: Nils Zum letzten Beitrag
  • 0.02297 Sek., 10 DB-Zugriffe, 957.320 KiB
  • Powered by Boardsolution v1.46