Page 1 of 1

Sortovanie vo foreach

Posted: Sun Aug 19, 2012 10:24 pm
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

Re: Sortovanie vo foreach

Posted: Sat Nov 03, 2012 11:04 pm
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')}

Re: Sortovanie vo foreach

Posted: Sun Nov 04, 2012 10:38 pm
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;
    }}

Re: Sortovanie vo foreach

Posted: Sun Nov 04, 2012 11:28 pm
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?

Re: Sortovanie vo foreach

Posted: Sun Nov 04, 2012 11:38 pm
by kuzmany
Vsetko sa da, ked sa chce. Ale dal som ti funkcne riesenie, a nebudem ti pomahat s ugly horsim riesenim:)

Re: Sortovanie vo foreach

Posted: Mon Nov 05, 2012 8:55 am
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'

Re: Sortovanie vo foreach

Posted: Tue Nov 13, 2012 9:52 am
by kuzmany
Jo pozrem sa na to :)

Re: Sortovanie vo foreach

Posted: Mon Nov 19, 2012 10:15 am
by Joseph777
kuzmany wrote:Jo pozrem sa na to :)
dik

Re: Sortovanie vo foreach

Posted: Fri Jan 11, 2013 10:47 pm
by Joseph777

Re: Sortovanie vo foreach

Posted: Fri Jan 11, 2013 11:58 pm
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 ;)

Re: Sortovanie vo foreach

Posted: Mon Jan 21, 2013 1:22 pm
by Joseph777
diky moc

funguje jak oci :o