Seite 1 von 1

variablenzugriff ändern

Verfasst: 15.01.2007 14:10
von sph
hallo!

ich wende mich mit einem anliegen an euch, das zwar konkret ein phpBB2-board betrifft, jedoch ist das problem eher allgemeiner natur und ich hoffe hier tips, anregungen oder natürlich lösungen zu erhalten.


beim anpassen des boards bin ich auf eine hürde gestoßen die ich, php-laie, nicht lösen kann:
ich möchte variablen in anderen teilen des boards verwenden als ursprünglich vorgesehen.


das heißt: die variablen

{NEWEST_USER}
{LOGGED_IN_USER_LIST}
{TOTAL_USERS_ONLINE}
{TOTAL_POSTS}

werden üblicherweise im index ausgegeben, ich habe jedoch vor sie im 'overall_header.tpl' zu verwenden. desweiteren wurde der "Top Topics on Index Mod (1.1.0)" installiert, und die im 'page_header.php' neu definierte variable

{topicrecentpopular.TOPICSRECENT}

sollte auch im header abrufbar sein.

da mir dort bei der verwendung der variablen nicht die gewünschten daten angezeigt werden gehe ich davon aus dass man den zugriff darauf erst konfigurieren muss.

>> was muss ich ändern um mein vorhaben zu realisieren? wer kann mir sagen was ich wo ändern/einfügen muss?

>> warum ist der variablenzugriff eigentlich eingeschränkt? kann mir jemand erklären warum man nicht von vornherein in jedem bereich des forums auf jede verfügbare variable zugreifen kann? welchen nutzen oder sinn hat das?



ich würde mich über klärende, hilfreiche antworten sehr freuen,
danke fürs lesen und nice days!




---
edit: ich hoffe ich werde nicht mißverstanden wenn ich hier zu phpBB2.de verlinke - dort habe ich ebenfalls um hilfe gebeten, vielleicht möchte der ein oder andere das ja lesen:

http://www.phpbb2.de/ftopic42225.html

so far so good...

Verfasst: 18.01.2007 17:42
von sph
*push*

ja, also auch wenns scheinbar niemanden interessiert hab ich nach bestem wissen versucht mein 'problem' zu lösen.

stand der dinge:


{topicrecentpopular.TOPICSRECENT} - erledigt.
hab den mod statt im index direkt im page_header eingebaut, funktioniert bestens.


{TOTAL_USERS} und {NEWEST_USER} - erledigt.
total_users hab ich vergessen zu erwähnen, möchte ich auch im header benutzen. deswegen wandert das hier:

Code: Alles auswählen

$total_users = get_db_stat('usercount');
if( $total_users == 0 )
{
	$l_total_user_s = $lang['Registered_users_zero_total'];
}
else
{
	$l_total_user_s = $lang['Registered_users_total'];
}

$newest_userdata = get_db_stat('newestuser');
$newest_user = $newest_userdata['username'];
$newest_uid = $newest_userdata['user_id'];
vom index in den page_header. wenn man dann noch

Code: Alles auswählen

'TOTAL_USERS' => sprintf($l_total_user_s, $total_users),
'NEWEST_USER' => sprintf($lang['Newest_user'], '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=$newest_uid") . '">', $newest_user, '</a>')
bei "$template -> assign_vars..." mit angibt funktioniert das sogar...





bleiben noch 3 variablen.

> {LOGGED_IN_USER_LIST} bzw. {TOTAL_USERS_ONLINE}
ratlos. die definition der variable steht im page_header. sollte wohl auch irgendwie global funktionieren, tut es aber nicht. beim index und bei der ansicht eines forums werden die eingeloggten user korrekt angezeigt, in allen anderen bereichen des forums jedoch nichtmehr - was natürlich schlecht ist. hab ich da durch bisherige basteleien was vermurkst? verträgt sich da was nicht?


> {TOTAL_POSTS}
ja. aus dem index hab ich das hier

Code: Alles auswählen

$total_posts = get_db_stat('postcount');
if( $total_posts == 0 )
{
	$l_total_post_s = $lang['Posted_articles_zero_total'];
}
else
{
	$l_total_post_s = $lang['Posted_articles_total'];
}
in den page_header geholt und

Code: Alles auswählen

'TOTAL_POSTS' => sprintf($l_total_post_s, $total_posts),
bei "$template -> assign_vars..." angegeben. zwar funktioniert jetzt die anzeige der beiträge insgesamt im header so wie ich will, allerdings taucht beim lesen eines topics ein anderes gravierendes problem auf:

unter den bisher geschriebenen beiträgen werden eine ganze menge leere beiträge angefügt :x
und zwar genau so viele dass die anzahl der beiträge eines topics mit der anzahl der beiträge insgesamt übereinstimmt :shock:

ich hab da auch so ne vermutung, ich glaube dass meine änderungen einen konflikt in der "viewtopic.php" erzeugen, dort heißt es ab zeile 827 (ff.):

Code: Alles auswählen

//
// Okay, let's do the loop, yeah come on baby let's do the loop
// and it goes like this ...
//
for($i = 0; $i < $total_posts; $i++)
ich bin ratlos und überfordert. ich hatte erwartet dass diese umbasteleien problemlos und vor allem sehr einfach zu bewerkstelligen wären...


help?! ideas?


danke fürs lesen,

mfg

Verfasst: 19.01.2007 00:03
von Akschel
bei mir steht in der index.php (bei mir Zeile 367)

Code: Alles auswählen

$template->assign_vars(array(
		'TOTAL_POSTS' => sprintf($l_total_post_s, $total_posts),
		'TOTAL_USERS' => sprintf($l_total_user_s, $total_users),
Tipp deine Variablen einfach wie folgt in die nächste Zeile ein: (Das ist eine Beispielvariable von mir)

Code: Alles auswählen

'ZUFALLZITAT' => $zufallzitat,
So ist es mir gelungen die Variable $zufallzitat als {ZUFALLZITAT} in einer der Template-Dateien anzeigen zu lassen.

Probier das mal aus und gib dein Feedback obs geklappt hat :)

Verfasst: 19.01.2007 23:36
von sph
Akschel hat geschrieben:bei mir steht in der index.php ...
ja... nein - andersrum :)

alle genannten variablen stammen ursprünglich aus der index.php. mein wunsch wäre es allerdings diese variablen in den header-dateien ausgeben zu lassen, weshalb ich sie irgendwie bei ../includes/page_header.php mit einbeziehen muss.

und da reichts leider nicht einfach nur die entsprechenden variablen bei "$template->assign_vars..." mit anzugeben, da müssen definitionen, funktionen usw. auch mit verschoben werden... :\

aber vielen dank für deine unterstützung! :)


greets, schönes wochenende