Page 1 of 1
PHP Code im eigenen Block
Posted: 3. December 2014 15:09
by Berthold
Deine Portal Version: 2.1.0-RC1
Typ Deines phpBB Forums: Standard phpBB3
MODs installiert: Nein
Dein Wissensstand: Grundwissen
Link zu Deinem Forum: zur Zeit lokal im Test
PHP Version: 5.3
MySQL Version: 5.5
Was hast Du gemacht, bevor das Problem aufgetreten ist?
Was hast Du bereits versucht um das Problem zu lösen?
Aus meiner Sicht alle Möglichkeiten ausprobiert.
Fehlerbeschreibung und Nachricht
Ich würde gerne in einem eigenen Block PHP-Code ausführen und das Ergebnis angezeigt bekommen. Laut diesem Link: viewtopic.php?f=23&t=10691
(ganz unten) sollte dies auch möglich sein.
Egal ob ich einen iFrame einbinde oder nicht ist es mir nicht mal möglich mit echo "123"; irgendetwas auszugeben.
Gruß Berthold
Re: PHP Code im eigenen Block
Posted: 3. December 2014 18:52
by BertB
Hallo Berthold,
gehe einfach unten in dem Eingabefeld bei "BBCode für den eigenen Block aktivieren" auf nein und füge deinen Code dort ein.
LG
Bert
Re: PHP Code im eigenen Block
Posted: 3. December 2014 19:06
by Berthold
Hallo Bert,
erst mal vielen Dank für die superschnelle Antwort. Aber entweder steht ich jetzt total auf dem Schlauch oder es gibt einen neuen Fehler.
Natürlich habe ich bevor ich das Thema eröffnet habe ausprobiert was passiert wenn ich den Code dort einfüge.
Das Ergebnis ist immer gleich HTML wird ausgeführt alles was sich zwischen den php-Tags befindet hat keine Funktion.
Beispiel:
------------------------- Block ----------------------
Testanfanf <br>
<?php
echo "Aber Hallo!!!";
phpinfo();
?>
<br>
Testende
-------------------------------------------------------
Es wird folgende Ausgabe im eigenen Block erzeugt:
Testanfang
Testende
Dazwischen fehlt was. Board Version 2.1.0 RC1.
Was kann ich noch testen???
Gruß Berthold
Re: PHP Code im eigenen Block
Posted: 4. December 2014 16:58
by Kirk
Hallo
Wenn du mit php arbeiten willst, so musst du dir ein neues Modul erstellen.
Dazu gehören die php Datei, language Datei sowie die html Datei, schau dir mal die
root/ext/board3/portal/modules/default.php an.
Lies dir mal diese
Doku durch, ist zwar für V. 2.0.0
aber einiges hat sich nicht verändert.
Wenn du nur einen iFrame ein binden willst, kannst du es in einen eigenen Block machen z.b. mit einem BBCode.
Re: PHP Code im eigenen Block
Posted: 4. December 2014 20:40
by Berthold
Hallo Udo,
ich habe versucht ein eigenes Modul zu erstellen. Hatte aber leider keinen Erfolg.
Schon deine Aussage - einiges hat sich nicht verändert - hätte mich stutzig machen müssen. Anders interpretiert bedeutet dies doch, dass sich das Meiste geändert hat. Ich habe mir einige Modul angeschaut und hoffe das ich nicht ganz daneben liege. Da mein Modul aber nicht in der Auswahl erscheint hier die konkrete Frage:
Was muss erfüllt sein, damit ein neues Modul bei der Installation überhaupt angezeigt wird???
Gibt es nicht irgendwo ein aktuelles Beispiel Modul für Portal 2.1 was nur "Hello World" über PHP ausgibt?
Gruß Berthold
Re: PHP Code im eigenen Block
Posted: 5. December 2014 18:25
by Kirk
Berthold wrote:Was muss erfüllt sein, damit ein neues Modul bei der Installation überhaupt angezeigt wird???
So ein Modul besteht aus 3 Teilen 1. die php Datei, 2. die language Datei und 3. die html Datei.
Wenn du so ein Modul erstellst musst z.b. in der php Datei bei
public $name = einen Modul Namen verwenden der noch nicht verwendet wird.
Schau dir mal folgende Dateien an
./ext/board3/portal/modules/custom.php
./ext/board3/portal/language/deinesprache/portal_custom_module.php
./ext/board3/portal/styles/stylename/template/portal/modules/custom_center.html bzw.
custom_side.html
Berthold wrote:Gibt es nicht irgendwo ein aktuelles Beispiel Modul für Portal 2.1 was nur "Hello World" über PHP ausgibt?
Für diese Version gibt es noch nichts.
Re: PHP Code im eigenen Block
Posted: 8. December 2014 16:13
by Berthold
Hallo Udo,
noch mal Danke für die Infos. Ich habe es nun schon mehrfach ohne Erfolg probiert.
Könntest Du oder jemand anderes mal bitte einen Blick auf die folgenden Dateien werfen und mir sagen was da falsch ist?
Code: Select all
<?php
/**
*
* @package Board3 Portal v2.1 - TR MAP
* @copyright (c) 2013 Board3 Group ( www.board3.de )
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
*
*/
namespace board3\portal\modules;
/**
* @package TR MAP
*/
class tr_map extends module_base
{
/**
* Allowed columns: Just sum up your options (Exp: left + right = 10)
* top 1
* left 2
* center 4
* right 8
* bottom 16
*/
public $columns = 21;
/**
* Default modulename
*/
public $name = 'PORTAL_TR_MAP';
/**
* Default module-image:
* file must be in "{T_THEME_PATH}/images/portal/"
*/
public $image_src = '';
/**
* module-language file
* file must be in "language/{$user->lang}/mods/portal/"
*/
public $language = 'portal_tr_map_module';
/**
* custom acp template
* file must be in "adm/style/portal/"
*/
public $custom_acp_tpl = '';
/** @var \phpbb\config\config */
protected $config;
/** @var \phpbb\db\driver */
protected $db;
/** @var \phpbb\template */
protected $template;
/** @var \phpbb\user */
protected $user;
/**
* Construct a tr-map object
*
* @param \phpbb\config\config $config phpBB config
* @param \phpbb\db\driver $db phpBB db driver
* @param \phpbb\template $template phpBB template
* @param \phpbb\user $user phpBB user object
*/
public function __construct($config, $db, $template, $user)
{
$this->config = $config;
$this->db = $db;
$this->template = $template;
$this->user = $user;
}
/**
* {@inheritdoc}
*/
public function get_template_center($module_id)
{
/* $text = "Bingo Bango";
$this->template->assign_vars(array(
'PORTAL_WELCOME_MSG' => $text,
)); */
return 'tr_map_center.html';
}
/**
* {@inheritdoc}
*/
public function get_template_acp($module_id)
{
return array(
'title' => 'ACP_PORTAL_TR_MAP',
'vars' => array(),
);
}
/**
* {@inheritdoc}
*/
public function install($module_id)
{
$this->config->set('board3_tr_map_' . $module_id, '');
return true;
}
/**
* {@inheritdoc}
*/
public function uninstall($module_id, $db)
{
$this->config->delete('board3_tr_map_' . $module_id);
return true;
}
}
Das ist die Moduldatei tr_map.php die im Verzeichnis portal/modules/ liegt.
Code: Select all
<?php
/**
*
* @package Board3 Portal v2.1 - Forum Mitgliederkarte
* @copyright (c) 2013 Board3 Group ( www.board3.de )
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
*
*/
/**
* DO NOT CHANGE
*/
if (!defined('IN_PHPBB'))
{
exit;
}
if (empty($lang) || !is_array($lang))
{
$lang = array();
}
// DEVELOPERS PLEASE NOTE
//
// All language files should use UTF-8 as their encoding and the files must not contain a BOM.
//
// Placeholders can now contain order information, e.g. instead of
// 'Page %s of %s' you can (and should) write 'Page %1$s of %2$s', this allows
// translators to re-order the output of data while ensuring it remains correct
//
// You do not need this where single placeholders are used, e.g. 'Message %d' is fine
// equally where a string contains only two placeholders which are used to wrap text
// in a url you again do not need to specify an order e.g., 'Click %sHERE%s' is fine
$lang = array_merge($lang, array(
'PORTAL_TR_MAP' => 'Karte mit Standorten',
// ACP
'ACP_PORTAL_TR_MAP' => 'Mitgliederkarte',
));
Diese Datei mit dem Namen portal_tr_map_module.php liegt in alle Sprachordnern (z. B. portal/languae/de/modules/) liegt
Code: Select all
{$C_BLOCK_H_L}{$TITLE}{$C_BLOCK_H_R}
<table class="tablebg" cellspacing="1" width="100%">
<tr class="row1">
<td style="padding:5px 5px 5px 5px;">
<div class="postbody">
{PORTAL_WELCOME_MSG}
</div>
</td>
</tr>
</table>
{$C_BLOCK_F_L}{$C_BLOCK_F_R}
Diese HTML-Datei mit Namen tr_map_center.html befindet sich in allen Styleordnern (z. B. portal/styles/prosilver/template/portal/modules/).
Das neue Modul erscheint nicht in der Liste der hinzufügbaren Module. Ich habe bord3 deaktiviert und wieder aktiviert, Browsercache gelöscht und abgeschaltet, Apache neu gestartet,... Alles ohne Erfolg. Ich wäre dankbar wenn mir irgendwer erklären könnte was ich hier falsch mache. Ich verwende phpBB3 Version 3.1.2 und board3 Version 2.1.0 RC 1.
Gruß Berthold
Re: PHP Code im eigenen Block
Posted: 30. December 2014 20:02
by Kirk
Hab momentan leider keine Zeit dies zu testen.
Re: PHP Code im eigenen Block
Posted: 26. April 2015 10:18
by alfi0815
Hallo,
es geht, eine .php in den eigenen Block anzeigen lassen:
1. Am Angang ins php script
Code: Select all
header("Content-Type: text/javascript");
einfügen.
2. Am Ende (.. für die Ausgabe.. echo ersetzen..) mit
Code: Select all
document.writeln("<b><?=$zahl;?><\/b>");
3. Die php Datei in
umbenennen.
4. Einfügen in eigenem Block mit
5. Aufruf im eigenen Block, ohne BBCode,
Code: Select all
<script type="text/javascript" src=".._js.php"></script>