Instellen template-variabele forumlist_body.html

Hulp nodig bij een stijl? Voor zowel XHTML/CSS als grafische vragen uiteraard gerelateerd aan phpBB3.
Forumregels

LEES: Richtlijnen voor Support. Vul de support template in!
phpBB3.0.x
Verschaf iemand geen servertoegang tenzij het niet anders kan. Maak altijd eerst een volledige backup en verander de inloggevens na afloop. Eigen risico.
Plaats reactie
Gebruikersavatar
Johan
Berichten: 2376
Lid geworden op: 05 mei 2007, 15:24
Locatie: memberlist.php

Instellen template-variabele forumlist_body.html

Bericht door Johan » 15 dec 2010, 19:59

  • Adres van je forum: Localhost
    Event. modificaties op je forum: Nee
    Wanneer ontstond het probleem? n.v.t.
    phpBB versie: 3.0.8


    Heb je onlangs iets veranderd aan je forum? Ja, zie hieronder
    Wat is het probleem?
Spoiler: bekijk
Voor een nieuw projectje heb ik 2 identieke forums, met dezelfde database dus, naast elkaar draaien. Het idee hiervan is als volgt: ik heb 4 categorieën: algemeen - spel1 - spel2 - algemeen. De algemene categorieën en bijbehorende forums zijn op beide forums te zien, die andere twee zijn afhankelijk van het forumnummer (spel1 = forum1, spel2 = forum2).

Omdat de categorie spel1 niet op forum2 hoort, moet die worden verborgen. De beste manier leek mij om dit via ./styles/prosilver/template/forumlist_body.html te doen. Hierin heb ik dus het volgende:

Code: Selecteer alles

<!-- IF forumrow.FORUM_ID != 5 -->
... code voor de categorie
<!-- ENDIF -->
Dit werkt prima, maar de forums in die categorie zijn nog steeds zichtbaar, die moeten ook weg. Met forumrow.FORUM_ID lukte dit niet, dus leek het me het beste een nieuwe variabele forumrow.FORUM_PARENT_ID te maken. Hiervoor heb ik in ./includes/functions_display.php dit gedaan:

Code: Selecteer alles

            $template->assign_block_vars('forumrow', array(
                'S_IS_CAT'                => true,
                'FORUM_ID'                => $row['forum_id'],
                'FORUM_PARENT_ID'        => $row['parent_id'],
                'FORUM_NAME'            => $row['forum_name'],
                'FORUM_DESC'            => generate_text_for_display($row['forum_desc'], $row['forum_desc_uid'], $row['forum_desc_bitfield'], $row['forum_desc_options']),
                'FORUM_FOLDER_IMG'        => '',
                'FORUM_FOLDER_IMG_SRC'    => '',
                'FORUM_IMAGE'            => ($row['forum_image']) ? '<img src="' . $phpbb_root_path . $row['forum_image'] . '" alt="' . $user->lang['FORUM_CAT'] . '" />' : '',
                'FORUM_IMAGE_SRC'        => ($row['forum_image']) ? $phpbb_root_path . $row['forum_image'] : '',
                'U_VIEWFORUM'            => append_sid("{$phpbb_root_path}viewforum.$phpEx", 'f=' . $row['forum_id']))
            );] 
Praktisch gezien heb ik gewoon de forumrow.FORUM_PARENT_ID toegevoegd aan de lijst met variabelen. Het probleem is nu dat hij niet wordt herkend/toegepast.. Zit ik in het verkeerde bestand te zoeken of zit er een fout in mijn code/gedachten?
Edit: Na wat hulp van Jim werkt de functie nu, HTML herkent 'm maar hij wordt niet meegenomen in het IF-statement in de HTML..
Voormalig Support Teamlid

Gebruikersavatar
Ger
Berichten: 4864
Lid geworden op: 03 jan 2006, 22:23
Locatie: 192.68.1.100
Contacteer:

Re: Instellen template-variabele forumlist_body.html

Bericht door Ger » 16 dec 2010, 10:01

Dus als ik het goed begrijp werkt dit wel:

Code: Selecteer alles

<p>Parent ID: {forumrow.FORUM_PARENT_ID}</p>
Maar dit niet?

Code: Selecteer alles

<!-- IF forumrow.FORUM_PARENT_ID -->
<p>Parent ID: {forumrow.FORUM_PARENT_ID}</p>
<!-- ENDIF -->
Dat lijkt me haast niet kunnen... Kun je misschien een wat ruimer stukje uit de template laten zien?

Gebruikersavatar
Johan
Berichten: 2376
Lid geworden op: 05 mei 2007, 15:24
Locatie: memberlist.php

Re: Instellen template-variabele forumlist_body.html

Bericht door Johan » 16 dec 2010, 10:43

Parent ID: {forumrow.FORUM_PARENT_ID} werkt prima, hij echoot dan de parent ID. Als ik dit toevoeg:

Code: Selecteer alles

<!-- IF forumrow.FORUM_PARENT_ID != 5 --> Hello world <!-- ENDIF -->
krijg ik gewoon overal Hello world, behalve bij de forums in categorie 5. De IF werkt dus. Echter, ik heb nu dit:
http://pastebin.com/Lpd2tnxj

Hij pakt hem niet als ik 'm om een groter gedeelte zet..
Voormalig Support Teamlid

Gebruikersavatar
Ger
Berichten: 4864
Lid geworden op: 03 jan 2006, 22:23
Locatie: 192.68.1.100
Contacteer:

Re: Instellen template-variabele forumlist_body.html

Bericht door Ger » 16 dec 2010, 10:51

Johan schreef:Hij pakt hem niet als ik 'm om een groter gedeelte zet..
Als dat het probleem is, zou ik haast zeggen dat er iets mis gaat met de nesting van je IF-statements. Beste methode om dat uit te zoeken is het netjes uitpluizen en stuk voor stuk inspringen.
Verplaatst van support naar stijlen
- Ger

Gebruikersavatar
Johan
Berichten: 2376
Lid geworden op: 05 mei 2007, 15:24
Locatie: memberlist.php

Re: Instellen template-variabele forumlist_body.html

Bericht door Johan » 17 dec 2010, 14:59

Inmiddels heeft Jim me geholpen en dit na enkel pogingen opgelost:


OPEN
./includes/functions_display.php

VIND

Code: Selecteer alles

		$root_data = array('forum_id' => 0);
		$sql_where = '';
VERVANG MET

Code: Selecteer alles

		$root_data = array('forum_id' => 0);
		$sql_where = 'f.forum_id <> 5';
(5 is de categorie die niet weegegeven mag worden)




Danku danku danku Jim <3
Voormalig Support Teamlid

Plaats reactie