PHP Script in PHPbb3 integrieren

In diesem Forum kann man Fragen zur Programmierung stellen, die bei der Entwicklung von Mods für phpBB 3.0.x oder dem Modifizieren des eigenen Forums auftauchen.
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

Kannst du das Modul denn überhaupt irgendwo installieren?
Wenn nein ist die Info Datei vermutlich nicht ganz so wie sie sein sollte.
Hast du diese Datei korrekt angelegt (includes/acp/info/acp_foo.php):

Code: Alles auswählen

class acp_foo_info
{
    function module()
    {
        return array(
            'filename'    => 'acp_foo',
            'title'        => 'ACP_FOO',
            'version'    => '1.2.3',
            'modes'        => array(
                'index'        => array('title' => 'ACP_FOO_INDEX_TITLE', 'auth' => 'acl_a_foo_auth', 'cat' => array('')),
            ),
        );
    }

    function install()
    {
    }

    function uninstall()
    {
    }
}
Vielleicht verlinkst du mal die Moduldateien?
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
veNom-at
Mitglied
Beiträge: 30
Registriert: 06.01.2006 23:53
Wohnort: Wien

Beitrag von veNom-at »

Meine info Datei sieht so aus:
includes/acp/info/acp_news.php

Code: Alles auswählen

<?php
class acp_news_info
{
    function module()
    {
        return array(
            'filename'   => 'acp_news',
            'title'      => 'ACP_NEWS',
            'version'    => '1.0.0',
            'modes'      => array(
                'index'  	=> array('title' => 'ACP_NEWS_INDEX_TITLE', 'auth' => 'acl_a_foo_auth', 'cat' => array('')),
				'input'  	=> array('title' => 'ACP_NEWS_INPUT_TITLE', 'auth' => 'acl_a_foo_auth', 'cat' => array('')),
				'sendsql'  	=> array('title' => 'ACP_NEWS_SQL_TITLE', 'auth' => 'acl_a_foo_auth', 'cat' => array('')),
            ),
        );
    }

    function install()
    {
    }

    function uninstall()
    {
    }
}

?>
includes/acp/acp_news.php

Code: Alles auswählen

<?php

class acp_news
{
   var $u_action;
   var $new_config;
   function main($id, $mode)
   {
      global $db, $user, $auth, $template;
      global $config, $phpbb_root_path, $phpbb_admin_path, $phpEx;
      $user->add_lang('mods/info_acp_news');
      switch($mode)
      {
         case 'index':
            $this->page_title = 'ACP_NEWS';
            $this->tpl_name = 'acp_news';
            break;
			
         case 'input':
			$this->page_title = 'ACP_NEWS_INPUT';
			$this->tpl_name = 'acp_news_input';
            break;
      }

   }
}

?>
Derzeit steht mein PHP Code der Funktion noch in der Templatefile, was ja leider nicht funktioniert, da nur HTML unterstützt wird. Soweit ich das verstanden habe gehört der PHP Code auch in die "includes/acp/acp_news.php". allerdings habe ich dann ein Problem mit der Ausgabe meiner Variablen, dazu bräuchte ich Variablen in dieser Art "{VARIABLE}", habe aber noch nicht gefunden wie ich diese anlegen kann.

Eine meiner Template Dateien:
acp_news.php

Code: Alles auswählen

<!-- INCLUDE overall_header.html -->
$phpbb_root_path = "./";

include($phpbb_root_path . "config.php");

$connect = @mysql_pconnect($dbhost, $dbuser, $dbpasswd);
	if ($connect == FALSE) {
		echo "keine verbindung zur Datenbank möglich";
		exit();
	}
mysql_select_db($dbname);

if(isset($_GET['delete'])) {
	$loeschen = "DELETE FROM phpbb_news WHERE ID='".$_GET["delete"]."'";
	mysql_query($loeschen) or die(mysql_error());
	echo "Erfolgreich gel&ouml;scht";
}

$selectnews = "SELECT * FROM phpbb_news ORDER BY ID DESC";
$ergebnis = mysql_query($selectnews);
while($row = mysql_fetch_object($ergebnis)) {	
	$news_id = $row->ID;
	$news_title = $row->titel;
	$news_author = $row->autor;
	$news_date = $row->datum;
	$news_text = $row->inhalt;


<div id="news-item">
	<div id="itemleft"><?php echo $news_title; ?></div><div id="itemright">
    <a href="news_input.php?change=<?php echo $news_id; ?>"><img src="<?php echo $phpbb_root_path ."adm/images/icon_edit.gif"; ?>" alt="Bearbeiten" border="0" /></a>
    &nbsp;
    <a href="news_list.php?delete=<?php echo $news_id; ?>"><img src="<?php echo $phpbb_root_path ."adm/images/icon_delete.gif"; ?>" alt="Löschen" border="0" /></div></a>
</div>
}

<!-- INCLUDE overall_footer.html -->
Config und mySQL connect müsste ich dann eigentlich eh auch rausnehmen können.
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

Ok, du hast meine andere Frage nicht so ganz beantwortet. Die info Datei sieht gut aus (sofern du das Recht a_foo_auth angelegt hast (und nicht acl_a_foo_auth)).

Rein theoretisch kannst du durchaus auch in einem Template PHP Code ausführen, dafür musst du PHP in Templates aktivieren. Günstiger wäre das aber schon das tatsächlich in die Moduldatei zu packen.

Lesestoff: KB:template_system, KB:template_syntax. Die sind zwar für phpBB2, gelten zum Großteil aber noch. Wichtige Neuerungen sind <!-- IF xy --> <!-- INCLUDE xy.html --> mit relativ offenkundiger Bedeutung. Dafür ist assign_vars_from_handle weggefallen (include erledigt ja jetzt das Template).
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
veNom-at
Mitglied
Beiträge: 30
Registriert: 06.01.2006 23:53
Wohnort: Wien

Beitrag von veNom-at »

Nach einen ziemlichen Rückschlag das ich ausversehen mein Script gelöscht hatte da ich einen Fehler hatte den ich nicht weg bekam und das Forum installierte fange ich diesmal direkt an in PHPBB zu programmieren.

Ich habe versucht wieder das foobar einzubinden, allerdings bekomme ich nun diese Fehlermeldung im ACP

Code: Alles auswählen

Parse error: syntax error, unexpected ')' in G:\xampp\htdocs\forum\includes\functions_module.php(328) : eval()'d code on line 1

Parse error: syntax error, unexpected ')' in G:\xampp\htdocs\forum\includes\functions_module.php(328) : eval()'d code on line 1
[phpBB Debug] PHP Notice: in file /adm/index.php on line 150: Cannot modify header information - headers already sent by (output started at /includes/functions_module.php(328) : eval()'d code:1)
[phpBB Debug] PHP Notice: in file /adm/index.php on line 152: Cannot modify header information - headers already sent by (output started at /includes/functions_module.php(328) : eval()'d code:1)
[phpBB Debug] PHP Notice: in file /adm/index.php on line 153: Cannot modify header information - headers already sent by (output started at /includes/functions_module.php(328) : eval()'d code:1)
[phpBB Debug] PHP Notice: in file /adm/index.php on line 154: Cannot modify header information - headers already sent by (output started at /includes/functions_module.php(328) : eval()'d code:1)
habe bereits gesucht, es wurde auch gelöst, aber niemand hat geschrieben wie es gelöst wurde.
Antworten

Zurück zu „[3.0.x] Mod Bastelstube“