PHP Code im eigenen Block

Aktuelle Version: 2.1.0
Veröffentlicht: 26.10.2015
Forum rules
Vor dem erstellen neuer Supportanfragen bitte zuerst in die board3 Portal FAQ schauen und die Suche benutzen!
Viele Fragen sind bereits schon gestellt und beantwortet worden.
Bitte auch unsere Forumsregeln lesen und beachten!
Locked

Topic author
Berthold
Tester
Posts: 14
Joined: 3. December 2014 14:40

PHP Code im eigenen Block

Post 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

BertB

Re: PHP Code im eigenen Block

Post 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

Topic author
Berthold
Tester
Posts: 14
Joined: 3. December 2014 14:40

Re: PHP Code im eigenen Block

Post 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
User avatar

Kirk
Dev
Posts: 1950
Joined: 27. July 2010 18:02
phpBB.de User: Kirk
Contact:

Re: PHP Code im eigenen Block

Post 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.
Gruß Udo

Topic author
Berthold
Tester
Posts: 14
Joined: 3. December 2014 14:40

Re: PHP Code im eigenen Block

Post 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
User avatar

Kirk
Dev
Posts: 1950
Joined: 27. July 2010 18:02
phpBB.de User: Kirk
Contact:

Re: PHP Code im eigenen Block

Post 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.
Gruß Udo

Topic author
Berthold
Tester
Posts: 14
Joined: 3. December 2014 14:40

Re: PHP Code im eigenen Block

Post 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
User avatar

Kirk
Dev
Posts: 1950
Joined: 27. July 2010 18:02
phpBB.de User: Kirk
Contact:

Re: PHP Code im eigenen Block

Post by Kirk »

Hab momentan leider keine Zeit dies zu testen.
Gruß Udo
User avatar

alfi0815
Active Member
Posts: 4
Joined: 3. March 2015 15:44
phpBB.de User: alfi0815

Re: PHP Code im eigenen Block

Post 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

Code: Select all

.._js.php
umbenennen.
4. Einfügen in eigenem Block mit

Code: Select all

<div> </div>
5. Aufruf im eigenen Block, ohne BBCode,

Code: Select all

<script type="text/javascript" src=".._js.php"></script>
;)
Locked

Return to “Board3 Portal 2.1.x - Deutscher Support”