views, pager-rel, node-bol meghivva, argumentumok alapjan

eaposztrof képe

sokan sokfele felteszik a kerdest, hogyan lehet pager-t hasznalni block, es node tartalmakban? igy + egy kis extra, gyorslinkek, argument-ek:

http://www.blackjackchamp.com/blackjack-online-casinos
ez az URL egy node, tartalma:

<?php
 $urlstr=explode('/',$_SERVER['REQUEST_URI']);
switch ($urlstr[2]) {	// ha http://www.blackjackchamp.com/blackjack-online-casinos/...
case 'boss-media':		// mint pl http://www.blackjackchamp.com/blackjack-online-casinos/boss-media
    $args[]='386';
    break;
case 'cryptologic':
    $args[]='387';
    break;
case 'microgaming':
    $args[]='388';
    break;
case 'playtech':
    $args[]='389';
    break;
case 'real-time-gaming':
    $args[]='390';
    break;
case 'vegas-technology':
    $args[]='391';
    break;
case 'wagerworks':
    $args[]='392';
    break;
case 'us-players':
    $args[]='354';
    break;
} 
?>
<?php
	$view = views_get_view('bj_online_casinos_review');
	print views_build_view('node', $view, $args, TRUE, 100); 	// meghivom a 'bj_online_casinos_review' nevu view-t node-kent, pager bekapcsolva, limit: 100
?>

"bj_online_casinos_review" view beallitasai:

    [*] Provide Page View
    Pager: None
    Nodes per Page: 0
    Header:
    <table><tr><td width="100">
    <li> <?php
    	if (preg_match("/all-casinos/i",$_SERVER['REQUEST_URI'])) {$all="active";};
    	if (preg_match("/boss-media/i",$_SERVER['REQUEST_URI'])) {$bos="active";};
    	if (preg_match("/cryptologic/i",$_SERVER['REQUEST_URI'])) {$cry="active";};
    	if (preg_match("/microgaming/i",$_SERVER['REQUEST_URI'])) {$mic="active";};
    	if (preg_match("/playtech/i",$_SERVER['REQUEST_URI'])) {$pla="active";};
    	if (preg_match("/real-time-gaming/i",$_SERVER['REQUEST_URI'])) {$rea="active";};
    	if (preg_match("/vegas-technology/i",$_SERVER['REQUEST_URI'])) {$weg="active";};
    	if (preg_match("/wagerworks/i",$_SERVER['REQUEST_URI'])) {$wag="active";};
    	if (preg_match("/us-players/i",$_SERVER['REQUEST_URI'])) {$usp="active";};
    	print l('All Casinos', 'blackjack-online-casinos/all-casinos',$attributes = array('title'=>t('All Casinos'),'class'=>$all));
    	echo "</li><br/><li> ";
    	print l('US Players', 'blackjack-online-casinos/us-players',$attributes = array('title'=>t('All Casinos'),'class'=>$usp));
    	echo "</li></td><td style=\"background:transparent;border:none\" valign=\"top\"><li> ";
    	print l('Boss Media', 'blackjack-online-casinos/boss-media',$attributes = array('title'=>t('Boss Media'),'class'=>$bos));
    	echo " </li><li> ";
    	print l('CryptoLogic', 'blackjack-online-casinos/cryptologic',$attributes = array('title'=>t('CryptoLogic'),'class'=>$cry));
    	echo " </li><li> ";
    	print l('Microgaming', 'blackjack-online-casinos/microgaming',$attributes = array('title'=>t('Microgaming'),'class'=>$mic));
    	echo " </li><li> ";
    	print l('Playtech', 'blackjack-online-casinos/playtech',$attributes = array('title'=>t('Playtech'),'class'=>$pla));
    	echo " </li><br/><li> ";
    	print l('Real Time Gaming', 'blackjack-online-casinos/real-time-gaming',$attributes = array('title'=>t('Real Time Gaming'),'class'=>$rea));
    	echo " </li><li> ";
    	print l('Vegas Technology', 'blackjack-online-casinos/vegas-technology',$attributes = array('title'=>t('Vegas Technology'),'class'=>$veg));
    	echo " </li><li> ";
    	print l('WagerWorks', 'blackjack-online-casinos/wagerworks',$attributes = array('title'=>t('WagerWorks'),'class'=>$wag));	
    ?>
    </li></ul></td>
    </tr></table></div>
    Arguments
    Taxonomy: Term ID
    Default: Display All Values
    Filters
    Taxonomy: Term: review_category
Fórum: 
eaposztrof képe

bocsi.. az kimaradt, hogy az url-ket (pl.: /blackjack-online-casinos/microgaming) hozza kell rendelni a node-hoz amely tartalazza a scriptet.

egeszsegetekre! ;)

0
0

42

pp képe

Teljesen rossz a kiindulás!

Sose használj álnevet, mindig a Drupal eredeti útvonalait használd.

 $urlstr=explode('/',$_SERVER['REQUEST_URI']);
 ...$urlstr[n]...;

Helyett használd:

  ...arg(n)...

Ez működik akkor is, ha nincs bekapcsolva a rövid webcímek.
Nem is értem miért ezt használod, hisz így át kell forgatnod a cuccot az álnévből az azonosítóra.

A második kódban pedig szintén az eredeti útvonalat használd, és a Drupal majd jól lecseréli az útvonal álnévre, valamint ha az az active akkor a megfelelő class-t bele is rakja a linkbe.
így a második kódod egy pár soros kódra egyszerűsödik, ami még rugalmas is lesz, hisz ha bővíted a kategória listát, akkor ez is változik.
Minek a table, minek a br, miértnem theme('links',$link)...stb.. stb...

Én biztos nem views-el állnék neki ennek a feladatnak, ha jól értem amit csinálsz, de ha leírod mit szeretnél pontosan, akkor akár még ide is írom.. tudod code4beer

pp

0
0
eaposztrof képe

pont ezert irtam le ide es igen, igy maris atlatom.
kulonben ugy szuletnek az ilyen agyontekert kodok, hogy megcsinalok valamit, aztan kiderul h meg ezt is bele kellene, azt is, es vegul mar azt sem tudom h ki miert hol es merre.
de szerencsere vannak kik Code4Beer ezaltal nagy a rutinjuk;)

0
0

42

Illyés Edit képe

Kétféle megoldás van erre: Insert View, Panels.

Az Insert View alapból nem hajlandó a pagert megjeleníteni, itt egy hekk ami a jelek szerint működik.

A Panels 2 alapból tudja, bár volt benne egy bug, amit február 12-én javítottak, tehát a 2.x dev verziót érdemes próbálgatni.

0
0