Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Galeria zdjęć - foreach od końca do początku
Forum PHP.pl > Forum > PHP
ralf_box
Witam, mam problem z galerią web-album.org(tutaj wrzuciłem galerie do testów- tak ona wygląda http://www.costa081992.yoyo.pl/), ponieważ nie wiem jak zrobić aby nowo utworzone katalogi z zdjęciami trafiały na początek strony, a nie na koniec, przeszukałem silnik strony i znalazłem odpowiedni fragment kodu odpowiadający za to, i teraz moje pytanie jak przerobić pętle foreach aby ona zaczynała od końca tabeli i kończyła na początku, byłbym bardzo wdzięczny gdyby ktoś pomógł mi przerobić ten skrypt, jeżeli byłoby potrzebne mogę wrzucić do ściągnięcia cały silnik galerii.

  1. function Menu_category()
  2. { global $USER_PRIV,$LA;
  3. $ret='';
  4. $ret.='<DIV id="frame_categories">';
  5. $ret.='<TABLE width="100%" border=0>';
  6.  
  7. foreach($USER_PRIV as $key=>$value)
  8. {
  9. if ($key!='ext')
  10. {
  11. if ($value["access"]=='Y' && $value["view_category"]=='Y' && $value["date_publication"]!='0000-00-00 00:00:00')
  12. {
  13. $ret.='<TR>';
  14. $ret.='<TD>';
  15. $ret.='<IMG src="'.SYSTEM_LAYOUT_PATH.'/'.SYSTEM_LAYOUT_SKIN.'/img/bul.gif">';
  16. $ret.='</TD>';
  17. $ret.='<TD class=cat_list width="99%">';
  18. $link='category.php?id='.$value["id"];
  19. $ret.='<A href='.$link.'>'.$value["name"].'</A>';
  20. $ret.=' ['.$value["photos_count"].']';
  21. $ret.='</TD>';
  22. $ret.='</TR>';
  23. if ($value["id_login"]==USER_LOGIN) $edit_category=1;
  24. $cat_exist=1;
  25. }
  26. }
  27. }
  28. if (!isset($cat_exist))
  29. {
  30. $ret.='<TR>';
  31. $ret.='<TD class=notice colspan=2 align=center>';
  32. $ret.=Gif0(5);
  33. $ret.=$LA[401];
  34. $ret.='</TD>';
  35. $ret.='</TR>';
  36. }
  37. $ret.='</TABLE>';
  38. if (isset($edit_category) || $USER_PRIV["ext"]["add_category"]=='Y')
  39. {
  40. $ret.=HR();
  41. $ret.='<DIV class=link2 align=right>';
  42. $link_mc='category_manage.php';
  43. $ret.='<A href="'.$link_mc.'">'.$LA[911].'</A>'.Arrows().'<BR>';
  44. $ret.='</DIV>';
  45. }
  46. $ret.='</DIV>';
  47. return $ret;
  48. }


  1. function Start_Page()
  2. {
  3. global $USER_PRIV,$LA;
  4. $ret='';
  5. $ret.='<DIV id="categories_preview">';
  6. $count=1;
  7. $ret.='<TABLE border=0 width="100%" cellpadding=5 cellspacing=10>';
  8. $ret.='<TR>';
  9. foreach($USER_PRIV as $key=>$value)
  10. {
  11. if ($key!='ext' && $value["view_category"]=='Y' && $value["access"]=='Y' && $value["date_publication"]!='0000-00-00 00:00:00')
  12. {
  13. $cat_avail=1;
  14. if ($value["edit_category"]=='Y') $edit_category=1;
  15. if ($count==3)
  16. {
  17. $count=1;
  18. $ret.='</TR><TR>';
  19. }
  20. $ret.='<TD class=table_td width="50%" align=center valign=bottom style="padding:5px">';
  21. $query="SELECT id,hash FROM ".DB_PREFIX."photos2 WHERE id_category=".$key." AND date_publication!='0000-00-00 00:00:00' ORDER BY RAND() LIMIT 1";
  22. $array2=db_query_select($query);
  23. if (isset($array2[0]["hash"]))
  24. {
  25. $ret.='<A href="category.php?id='.$key.'">';
  26. $image_size=@getimagesize(SYSTEM_PHOTOS_DIRECTORY.'/'.$array2[0]["hash"].'_m');
  27. $image_size=(isset($image_size[3])) ? $image_size[3].' ' : '';
  28. $ret.='<IMG '.$image_size.'class=pic src="photo_jpg.php?type=m&id='.$array2[0]["id"].'" alt="'.stripslashes($value["name"]).'">';
  29. $ret.='</A>';
  30. $ret.='<BR>';
  31. }
  32. $ret.=Gif0(3);
  33. $ret.='<DIV class=cat_list>';
  34. $ret.='<A href="category.php?id='.$key.'">';
  35. $ret.=$value["name"];
  36. $ret.='</A>';
  37. $ret.='</DIV>';
  38. if ($value["description"]!='' && $USER_PRIV["ext"]["show_cat_desc"]=='Y') $ret.='<DIV class=detail2 align=center>'.Text_cut(stripslashes($value["description"]),70).'</DIV>';
  39. $tmp='';
  40. $link_edit='category_add.php?id='.$key;
  41. $link_del='category_del.php?id='.$key;
  42. if (isset($admin_bar)) unset($admin_bar);
  43. if ($USER_PRIV[$key]["edit_category"]=='Y')
  44. {
  45. $admin_bar[] = array('name'=>$LA[107],'url'=>$link_edit);
  46. }
  47. if ($USER_PRIV[$key]["del_category"]=='Y')
  48. {
  49. $admin_bar[] = array('name'=>$LA[108],'url'=>$link_del,'option'=>"c");
  50. }
  51. $tmp.='<DIV align=center>';
  52. if (isset($admin_bar)) $tmp.=Admin_bar($admin_bar);
  53. $tmp.='</DIV>';
  54. if ($USER_PRIV["ext"]["show_cat_owner"]=='Y') $tmp.='<DIV class=detail2 align=left>'.$LA[403].': <B>'.$value["id_login"].'</B></DIV>';
  55. if ($USER_PRIV["ext"]["show_cat_date"]=='Y') $tmp.='<DIV class=detail2 align=left>'.$LA[402].': <B>'.$value["date_add"].'</B></DIV>';
  56. if ($USER_PRIV["ext"]["show_cat_cnt"]=='Y') $tmp.='<DIV class=detail2 align=left>'.$LA[405].': <B>'.$USER_PRIV[$key]["photos_count"].'</B></DIV>';
  57. if($tmp) $ret.=HR().$tmp;
  58. $ret.='</TD>';
  59. $count++;
  60. }
  61. }
  62. $ret.='</TR>';
  63. $ret.='</TABLE>';
  64. if (!isset($cat_avail))
  65. {
  66. $ret.='<BR>';
  67. $ret.='<DIV class=notice align=center>';
  68. $ret.=$LA[401];
  69. $ret.='</DIV>';
  70. }
  71. if (isset($edit_category) || $USER_PRIV["ext"]["add_category"]=='Y')
  72. {
  73. $ret.=Gif0(5);
  74. $ret.='<DIV class=link1 align=right>';
  75. $link_mc='category_manage.php';
  76. $ret.=Gif0(5).'<BR><A href="'.$link_mc.'">'.$LA[911].'</A>'.Arrows();
  77. $ret.='</DIV>';
  78. }
  79. $ret.='</DIV>';
  80. return $ret;
  81. }
darko
albo użyj array_reverse albo przerób foreach na pętlę for i "jedź" od końca, albo wyciągaj dane w zapytaniu sortując malejąco po date_publication (order by rand() 1 wyciągnie losowo wybrany wiersz).
ralf_box
Dzięki, wszystko dział już smile.gif
tylko mam jeszcze małe pytanko czy tak napisany jak poniżej to jest on poprawnie napisany?? bo wg. tamtej strony nie wiedziałem zbytnio jak go napisać, ale działać - działa:)
  1. $USER_PRIV2 = array_reverse($USER_PRIV, TRUE);
magnus
Nie musisz nawet używać drugiej zmiennej.

$x = array_reverse($x, true) odwróci kolejność tablicy x i zapakuje ją z powrotem do x.

Ale skoro już grzebiesz w silniku, to może faktycznie wydajniej będzie znaleźć zapytanie, które pobiera te dane i zmienić kolejność (ORDER BY)?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.