Sortovanie vo foreach

Česká/Slovenská podpora pro CMS Made Simple
Post Reply
Joseph777
Forum Members
Forum Members
Posts: 206
Joined: Wed Mar 16, 2011 9:13 am

Sortovanie vo foreach

Post by Joseph777 »

Zdravim

Da sa menu vygenerovat napr. podla ratingu od najlespieho po najhorsi (inak povedane da sa vo foreach sortovat napr. podla content block rating)?

tym ratingom myslim ze mam vytvoreny content block rating
Stranka A ma rating 50
B ma rating 30
C rating 80

a ja chcem aby mi menugenerator pekne vygeneroval menu zoradene podla tohoto ratingu (od najlepsieho po najhorsi) teda
C
A
B

lebo nikde som to nenasiel, tu je vychytavka ako sa da sortovat abecedne menutext http://www.i-do-this.com/blog/69/Sortin ... in-foreach
Joseph777
Forum Members
Forum Members
Posts: 206
Joined: Wed Mar 16, 2011 9:13 am

Re: Sortovanie vo foreach

Post by Joseph777 »

takze podla
http://www.i-do-this.com/blog/69/Sortin ... in-foreach
sa na triedenie vo foreach daju pouzit iba premenne z {$nodelist|print_r} ako [id] [menutext] [extra1] atd?

neviete niekto ci sa da pouzit na triedenie (aby zobrazovalo polozky podla vysky hodnotenia) napr.

Code: Select all

{$cgsimple->get_page_content($node->alias,'rating')}
kuzmany
Power Poster
Power Poster
Posts: 448
Joined: Tue Oct 10, 2006 5:00 pm
Location: Bratislava

Re: Sortovanie vo foreach

Post by kuzmany »

Vyuzi pole extra1.

Malo by stacit iba vo funkcii do_sort zamenit menutext za extra1

Code: Select all

 function do_sort($a, $b) {
        return $a->extra1 > $b->extra1;
    }}
Joseph777
Forum Members
Forum Members
Posts: 206
Joined: Wed Mar 16, 2011 9:13 am

Re: Sortovanie vo foreach

Post by Joseph777 »

dik
a neda sa nejako priradit {$cgsimple->get_page_content($node->alias,'rating')} do extra1

vies aby extra1 zobrazovalo ten isty obsah ako content block rating

ci to sa neda?
kuzmany
Power Poster
Power Poster
Posts: 448
Joined: Tue Oct 10, 2006 5:00 pm
Location: Bratislava

Re: Sortovanie vo foreach

Post by kuzmany »

Vsetko sa da, ked sa chce. Ale dal som ti funkcne riesenie, a nebudem ti pomahat s ugly horsim riesenim:)
Joseph777
Forum Members
Forum Members
Posts: 206
Joined: Wed Mar 16, 2011 9:13 am

Re: Sortovanie vo foreach

Post by Joseph777 »

ja som ti zan vdacny ale
tu ani tak nejde ze by to bolo ugly riesenie ale pre mna by bolo funkcne pretoze ten rating je block modulu advanced content, ktory je dropdown a ma block_tab='Hodnotenie'
kuzmany
Power Poster
Power Poster
Posts: 448
Joined: Tue Oct 10, 2006 5:00 pm
Location: Bratislava

Re: Sortovanie vo foreach

Post by kuzmany »

Jo pozrem sa na to :)
Joseph777
Forum Members
Forum Members
Posts: 206
Joined: Wed Mar 16, 2011 9:13 am

Re: Sortovanie vo foreach

Post by Joseph777 »

kuzmany wrote:Jo pozrem sa na to :)
dik
Joseph777
Forum Members
Forum Members
Posts: 206
Joined: Wed Mar 16, 2011 9:13 am

Re: Sortovanie vo foreach

Post by Joseph777 »

kuzmany
Power Poster
Power Poster
Posts: 448
Joined: Tue Oct 10, 2006 5:00 pm
Location: Bratislava

Re: Sortovanie vo foreach

Post by kuzmany »

Vytvoril by som si pouzivatelsky tag nodelist_assign

Code: Select all


if(!isset($params['nodelist']) || !is_array($params['nodelist'])  || !isset($params['block']) ||  !isset($params['assign']))
return;

$smarty = cmsms()->GetSmarty();
$contentops = cmsms()->GetContentOperations();


$nodelist = $params['nodelist'];
$block = $params['block'];
foreach($nodelist as $key=>$node){
$content = $contentops->LoadContentFromAlias($node->alias);
if( is_object($content) ) 
	$nodelist[$key]->$block  = $content->GetPropertyValue($block);
      
}

$smarty->assign($params['assign'], $nodelist);
Na zaciatok menu sablony by si mal dat

Code: Select all

{nodelist_assign nodelist=$nodelist block='nazovblockubezpodivinskychznakov' assign='nodelist'}
Podla toho navodu by si mal potom upravit do_sort (http://www.i-do-this.com/blog/69/Sortin ... in-foreach):

Code: Select all


 function do_sort($a, $b) {
        return $a->nazovblockubezpodivinskychznakov> $b->nazovblockubezpodivinskychznakov;
    }}

Fakin skript sa stara aby ti pridal do $nodelist pola dalsi parameter na zaklade tvojho blocku (napr. hodnotenie) a to potom dokazes zosortovat podla navodu. To uz zvladnes snad ;)
Joseph777
Forum Members
Forum Members
Posts: 206
Joined: Wed Mar 16, 2011 9:13 am

Re: Sortovanie vo foreach

Post by Joseph777 »

diky moc

funguje jak oci :o
Post Reply

Return to “Czech/Slovak - Česky/Slovensky”