1.6k Aufrufe
Gefragt in Skripte(PHP,ASP,Perl...) von ana Mitglied (277 Punkte)
Hallo zusammen.
Folgendes:

Ich habe eine "leere Seite" in mein Forum (local) eingebaut.
Dazu habe ich 3 Dateien erstellt.

1. Datei: brube.php
<?php
/**
*
* @author Original Autor Lady Sunshine admin@geheimniswelt.de - http://www.geheimniswelt.de/
*
* @package phpBB3
* @version $Id$
* @copyright (c) 2009 Geheimniswelt.de
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/

/**
* @ignore
*/
define('IN_PHPBB', true);
$phpbb_root_path = './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);

include($phpbb_root_path . 'includes/functions_display.' . $phpEx);

$user->session_begin();
$auth->acl($user->data);
$user->setup('mods/meine_sprach_datei');


$example_variable = sprintf($user->lang['TIME_NOW'], $user->format_date(time()));
$google_logo = '<img src="http://www.geheimniswelt.de/sunshine/tempstuff/brube.png" />';

$template->assign_vars(array(
'EXAMPLE_VAR' => $example_variable,
'GOOGLE_LOGO' => $google_logo,
));

$some_array = array(
array(
'beispiel' => 'Bruno',
'demonstration' => 'Hier folgt bald eine Beschreibung und einige Fotos von Bruno!',
),
array(
'beispiel1' => 'Bessy',
'demonstration1' => 'Hier folgt bald eine Beschreibung und einige Fotos von Bessy!',
),

);

foreach ($some_array as $row)
{
$template->assign_block_vars('block_name', array(
'EXAMPLE' => $row['beispiel'],
'DEMO' => $row['demonstration'],
));
}

page_header($user->lang['MEIN_TITEL']);

$template->set_filenames(array(
'body' => 'mein_template.html',
));

page_footer();

?>


2. Datei: (damit der Style übernommen wird) mein_template.html
[code]<!-- INCLUDE overall_header.html -->

<div>{MY_AVATAR}</div>
<div>{EXAMPLE_VAR}</div>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="18" height="18"><img src="{T_THEME_PATH}/images/tl.png" width="18" height="18" alt="" /></td>
<td height="18" style="background:url('{T_THEME_PATH}/images/tm.png');"></td>
<td width="18" height="18"><img src="{T_THEME_PATH}/images/tr.png" width="18" height="18" alt="" /></td>
</tr>
<tr>
<td width="18" style="background:url('{T_THEME_PATH}/images/ml.png');"></td>
<td>
<table class="tablebg" cellspacing="1" width="100%">
<tr>
<CENTER><div>{GOOGLE_LOGO}</div></CENTER>
</tr>
</table>
</td>
<td width="18" style="background:url('{T_THEME_PATH}/images/mr.png');"></td>
</tr>
<tr>
<td width="18" height="18" align="right"><img src="{T_THEME_PATH}/images/bl.png" width="18" height="18" alt="" /></td>
<td height="18" style="background:url('{T_THEME_PATH}/images/bm.png');"></td>
<td width="18" height="18"><img src="{T_THEME_PATH}/images/br.png" width="18" height="18" alt="" /></td>
</tr>
</table>
<br />
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="18" height="18"><img src="{T_THEME_PATH}/images/tl.png" width="18" height="18" alt="" /></td>
<td height="18" style="background:url('{T_THEME_PATH}/images/tm.png');"></td>
<td width="18" height="18"><img src="{T_THEME_PATH}/images/tr.png" width="18" height="18" alt="" /></td>
</tr>
<tr>
<td width="18" style="background:url('{T_THEME_PATH}/images/ml.png');"></td>
<td>
<table class="tablebg" cellspacing="1" width="100%">
<tr>
<th>{L_EXAMPLE}</th>
<th>{L_DEMO}</th>
</tr>
<!-- BEGIN block_name -->
<tr class="<!-- IF block_name.S_ROW_COUNT is even -->bg1<!-- ELSE -->bg2<!-- ENDIF -->">
<td>{block_name.EXAMPLE}</td>
<td>{block_name.DEMO}</td>
</tr>
<!-- END block_name -->
</table>
</td>
<td width="18" style="background:url('{T_THEME_PATH}/images/mr.png');"></td>
</tr>
<tr>
<td width="18" height="18" align="right"><img src="{T_THEME_PATH}/images/bl.png" width="18" height="18" alt="" /></td>
<td height="18" style="background:url('{T_THEME_PATH}/images/bm.png');"></td>
<td width="18" height="18"><img src="{T_THEME_PATH}/images/br.png" width="18" height="18" alt="" /></td>
</tr>
</table>
<br />
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="18" height="18"><img src="{T_THEME_PATH}/images/tl.png" width="18" height="18" alt="" /></td>
<td height="18" style="background:url('{T_THEME_PATH}/images/tm.png');"></td>
<td width="18" height="18"><img src="{T_THEME_PATH}/images/tr.png" width="18" height="18" alt="" /></td>
</tr>
<tr>
<td width="18" style="background:url('{T_THEME_PATH}/images/ml.png');"></td>
<td>
<table class="tablebg" cellspacing="1" width="100%">
<tr>
<th>{L_EXAMPLE}</th>
<th>{L_DEMO}</th>
</tr>
<!-- BEGIN block_name -->
<tr class="<!-- IF block_name.S_ROW_COUNT is even -->bg1<!-- ELSE -->bg2<!-- ENDIF -->">
<td>{block_name.EXAMPLE}</td>
<td>{block_name.DEMO}</td>
</tr>
<!-- END bl

2 Antworten

0 Punkte
Beantwortet von Experte (3.2k Punkte)
ich bin nicht ganz der php-profi, aber ich denke, es liegt an falschen indexnamen in den arrays (bzw im 2. array)
$some_array = array(
array(
'beispiel' => 'Bruno',
'demonstration' => 'Hier folgt bald eine Beschreibung und einige Fotos von Bruno!',
),
array(
'beispiel' => 'Bessy', //vorher 'beispiel1'
'demonstration' => 'Hier folgt bald eine Beschreibung und einige Fotos von Bessy!',
//vorher 'demonstration1'
),

);

foreach ($some_array as $row)
{
$template->assign_block_vars('block_name', array(
'EXAMPLE' => $row['beispiel'],
'DEMO' => $row['demonstration'],
));
}

ma schaun, ob ich die struktur graphisch darstellen kann:

_____________some_array_________________
| | |
array (index 0)______ ______array (index 1)_____
| | | | |
(index 'beispiel') (index 'demonstration') (index 'beispiel')||(index 'demonstration')
"bruno" "inhalt bruno..." "bessy" "inhalt bessy..."


hmm... sowas zu zeichnen war noch nie meine stärke und dann uach noch als ascii-art... sollt mir nen editor dafür laden ;)... nja, wollt halt verdeutlichen, dass es baumförmig aussieht.

da die einzelnen arrays "in sich" geschlossen sind und somit lokal, ist es nicht nötig, ihre elemente unterschiedlich zu benennen. im gegenteil: durch die foreach-schleife wird nur aus dem array 'beispiel' und demonstration', nicht aber 'beispiel1' und 'demonstration1' genommen.
hoffe, das hilft, und ich konnte erklären, was ich meinte.

Ele

PS. endlich mal ne "vollständige" Anfrage mit gut infos und quellcode, womit man auch was anfangen kann *Thumbs up* ;)
0 Punkte
Beantwortet von ana Mitglied (277 Punkte)
Hi Elefunty,
Danke für deine Antwort. So richtig begriffen habe ich das jetzt leider nicht ......
ABER ich wurde zumindest mal angschupst, danke schön! *gg

Ich habe das jetzt erstmal ganz simpel über die lang-datei geregelt.
d.h.
ich habe folgendes in der lang geändert:

$lang = array_merge($lang, array(
'BESSY' => 'Hier folgt bald eine Beschreibung und einige Fotos von Bessy!',
'EXAMPLE' => 'Bessy',
'EXAMPLE1' => 'Bruno',
'BRUNO' => 'Hier folgt bald eine Beschreibung und einige Fotos von Bruno!',
'TIME_NOW' => 'Die aktuelle Zeit lautet %s',
'MEIN_TITEL' => 'Bruno und Bessy!',
));


und in der html (style) folgendes geändert:

<table class="tablebg" cellspacing="1" width="100%">
<tr>
<th>{L_EXAMPLE}</th>
<TH>{L_BESSY}</TH>
</tr>
<!-- BEGIN block_name -->


<table class="tablebg" cellspacing="1" width="100%">
<tr>
<th>{L_EXAMPLE1}</th>
<TH>{L_BRUNO}</TH>
</tr>
<!-- BEGIN block_name -->
<tr class="<!-- IF block_name.S_ROW_COUNT is even -->bg1<!-- ELSE -->bg2<!-- ENDIF -->">
<td>{block_name.EXAMPLE1}</td>
<td>{block_name.DEMO}</td>
</tr>
<!-- END block_name -->


Nun ist es zwar immernoch net ganz wie ich es gern hätte, doch solangsam komm ich hin wo ich hin will *grins*

LG
ana
...