Seite 1 von 3

if - or abfrage will nicht

Verfasst: 09.12.2006 03:16
von kolja
nabend forum

obwohl ich eigentlich an anderer stelle arbeiten sollte,
möchte ich das doch nicht so stehen lassen:

ich habe in die navigaton des easyCMS mods eine if - or bedingung hinzugefügt:

Code: Alles auswählen

for( $i = 0; $i < count($parent_chapter_row); $i++ )
{
	$parent_chapter_id = $parent_chapter_row[$i]['chapter_id'];
	$parent_chapter_name = $parent_chapter_row[$i]['chapter_name'];

	if( $is_auth_parents[$parent_chapter_id]['a_view'] )
	{
		$template->assign_block_vars('chapterrow', array(
			'CHAPTER_NAME' => $parent_chapter_name,
			'U_VIEW_CHAPTER' => append_sid("portal.$phpEx?aid=$parent_chapter_id")
			)
		);

	if( $article_id == $parent_chapter_row[$i]['chapter_id'] or $article_id == $parent_chapter_row[$i]['chapter_parent_id']) // hab ich eingefügt 
					{
		for( $j = 0; $j < count($child_chapter_row); $j++ )
		{
			$child_chapter_id = $child_chapter_row[$j]['chapter_id'];
			$child_chapter_name = $child_chapter_row[$j]['chapter_name'];

			if( $is_auth_children[$child_chapter_id]['a_view'] )
			{
			
				if( $child_chapter_row[$j]['chapter_parent_id'] == $parent_chapter_id )
				{

					$template->assign_block_vars('chapterrow.subchapterrow', array(
						'CHAPTER_NAME' => $child_chapter_name,
						'U_VIEW_CHAPTER' => append_sid("portal.$phpEx?aid=$child_chapter_id")
						)
					);
}}}}}}
nur dieser teil kommt von mir:

Code: Alles auswählen

if( $article_id == $parent_chapter_row[$i]['chapter_id'] 
 or $article_id == $parent_chapter_row[$i]['chapter_parent_id'])
damit möcht ich die ausgabe des templates der unterkategorien ($child_chapter) einschränken

die article_id kommt aus der url

die vergleiche ich mit der chapter_id oder der chapter_parent_id

und dann sollten doch in der ausgabe die unterkategorien ausgeklappt werden

das funktioniert leider aber nur bei nem klick auf eine kategorie
bei einem klick auf eine der unterkategorien werden diese wieder eingeklappt

ich wüsste aber nicht, was an dem vergleich mit der chapter_parent_id falsch ist

oder fehlt dafür etwas ??

hier mal der testlink:
http://mona-davinci.de/phpbb/portal.php
nur bands und mackatree haben schon inhalte und funktionieren

kolja

Verfasst: 09.12.2006 09:25
von PhilippK
Hast du die $article_id auch mit

Code: Alles auswählen

$_GET['article_id']
initialisiert?

Gruß, Philipp

Verfasst: 09.12.2006 11:27
von kolja
meinst du so:

Code: Alles auswählen

$article_id = ( isset($HTTP_POST_VARS['aid']) ) ? intval($HTTP_POST_VARS['aid']) : ( ( isset($HTTP_GET_VARS['aid']) ) ? intval($HTTP_GET_VARS['aid']) : 0 );
kolja

Verfasst: 09.12.2006 13:05
von Miriam
Dummerweise ist die übergebene aid nicht mehr Parent, sondern dann Child.
Und es wird nicht ausgewertet, dass dieses Child selbst Parents hat.... Das Script sieht nur: es gibt keine Childs, die ich per ausgeklapptem Menue anzeigen kann ---> Ergo: Menu klappt wieder ein.

Verfasst: 09.12.2006 13:40
von kolja
kann ich dann nicht einfach ne zweite aid (bzw aid1) übergeben ??

kolja

Verfasst: 09.12.2006 13:47
von Miriam
Nenn sie doch pid (parent_id),
Wenn die pid gesetzt ist, soll die Navi mit der pid soundso aufklappen.

Verfasst: 09.12.2006 13:53
von kolja
ja, aber dann uss ich sie an diesen stellen immer mit aufrufen, oder ?:

Code: Alles auswählen

'U_VIEW_CHAPTER' => append_sid("portal.$phpEx?aid=$parent_chapter_id")
kann ich denn da noch mehr anhängen ??

kolja

Verfasst: 09.12.2006 14:25
von Miriam
Du kannst bis zu 2000 Zeichen in die URL packen.... (manche Browser packen das aber nicht)

Hau die URL mal richtig voll --->
http://www.phpbb.de/memberlist.php?mode ... tart=41825

Hier sind mode, order und start als GET Parameter übergeben.

Verfasst: 09.12.2006 15:01
von kolja
hab ich gemacht :-)

Code: Alles auswählen

	if( $article_id == $parent_chapter_row[$i]['chapter_id'] or $parent_id == $parent_chapter_row[$i]['chapter_parent_id']) // hab ich eingefügt 
					{
		for( $j = 0; $j < count($child_chapter_row); $j++ )
		{
			$child_chapter_id = $child_chapter_row[$j]['chapter_id'];
			$child_chapter_name = $child_chapter_row[$j]['chapter_name'];

			if( $is_auth_children[$child_chapter_id]['a_view'] )
			{
			
				if( $child_chapter_row[$j]['chapter_parent_id'] == $parent_chapter_id )
				{

					$template->assign_block_vars('chapterrow.subchapterrow', array(
						'CHAPTER_NAME' => $child_chapter_name,

						'U_VIEW_CHAPTER' => append_sid("portal.$phpEx?aid=$child_chapter_id?pid=$parent_chapter_id")
));}}}}}
zweitletzte zeile
die pid muss ja auch nur bei den untermenues mit übergeben werden

aber jetzt wird das untermenue immer angezeigt...

vielleicht noch wer nen tip ??

kolja

Verfasst: 09.12.2006 20:21
von Miriam
Also ich kenn e den Code als solches nicht, aber meinst Du nicht, dass es eher eine UND Verknüpfung sein sollte?

Code: Alles auswählen

if( $article_id == $parent_chapter_row[$i]['chapter_id'] AND $parent_id == $parent_chapter_row[$i]['chapter_parent_id'])