Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Skrypt rankingowy, Ustawienie pozycji wpisu
miooodek
post
Post #1





Grupa: Zarejestrowani
Postów: 67
Pomógł: 1
Dołączył: 5.03.2008
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Dzień dobry,

Bardzo długo nie pisałem niczego w php, a teraz mam taki oto problem,

Mam skrypcik rankingowy ale chciałbym móc zmieniać pozycje wyświetlanych wpisów by np interesujący mnie wpis był zawsze na samej górze listy, jednak nie chce zmieniać jego średniej oceny.

Takie oto coś generuje moja toplistę, doszedłem do tego jak dopisywać coś do poszczególnych wpisów wstawiając do kodu
  1. <?php if ($review['Review']['id'] == 22) echo 'Moja wiadomosc'; ?>


Oto kod generujący listę w widoku.

  1. <div class="table-d2">
  2. <?php $countTop = count($topReviews); $i = 0; ?>
  3. <?php foreach ($topReviews as $review): $i++; ?>
  4.  
  5. <a href="<?php echo 'view-review/'; echo $review['Url']['url']; ?>">
  6. <div class="section <?php echo $first ? 'first' : ''; ?>">
  7. <table border="0" cellpadding="0" cellspacing="0">
  8. <tr>
  9. <td class="ac">
  10. <div style="width:130px;height:130px;">
  11. <table width="100%" height="100%" cellspacing="0" cellpadding="0" border="0"><tr><td align="center" valign="middle" style="padding:0px;">
  12. <?php
  13. if ($review['Review']['file_id'] != 0) {
  14. echo $html->link($html->image(array('controller' => 'tfiles', 'action' => 'serve',
  15. $review['Review']['file_id'], 'small'),
  16. array_merge(array('alt'=>$review['Review']['name']), $thumbs['review'])),
  17. array('controller' => 'reviews',
  18. 'action' => 'view',
  19. 'rurl' => $review['Url']['url']),
  20. array('escape'=>false));
  21. } else {
  22. echo $html->link($html->image("noimage.jpg"), array('controller' => 'reviews',
  23. 'action' => 'view',
  24. 'rurl' => $review['Url']['url']),
  25. array('escape'=>false));
  26. }
  27. ?>
  28. </td></tr></table></div>
  29.  
  30. </td>
  31. <td class="al">
  32. <div class="name"><?php echo $html->link($review['Review']['name'],array('controller' => 'reviews',
  33. 'action' => 'view',
  34. 'rurl' => $review['Url']['url'])); ?></div>
  35. <p><?php echo $text->truncate($review['Review']['description'], 200, array('exact' => true)) ?></p>
  36.  
  37. </td>
  38. <td>
  39. <div class="stars">
  40.  
  41. <?php
  42. $stars = Set::extract('/CommentsTopic/stars', $review['Comment']);
  43. $rating = 0;
  44. if (count($stars) > 0) {
  45. $rating = round(array_sum($stars) / count($stars));
  46. }
  47. echo $fr->stars($rating);
  48. ?>
  49.  
  50. </div>
  51. <div class="rating">
  52. <?php echo $rating ?>/5
  53. </div>
  54. <center><?php echo $html->link("opinie ({$review['Review']['comment_count']})",
  55. array('controller' => 'reviews',
  56. 'action' => 'view',
  57. 'rurl' => $review['Url']['url']),
  58. array('escape' => false)); ?></center>
  59. </td>
  60. </tr>
  61. </table>
  62. </div></a>
  63. <?php endforeach; ?>
  64. </div>
Go to the top of the page
+Quote Post
jaslanin
post
Post #2





Grupa: Zarejestrowani
Postów: 511
Pomógł: 143
Dołączył: 13.03.2010
Skąd: Jasło

Ostrzeżenie: (0%)
-----


Dbanie o kolejność to operacja na daynch więc powinna być przeprowadzana w modelu, a nie widoku.

Jeżeli to możliwe to lepiej jest takie rzeczy oczywiście załatwiać na bazie danych. Ale jeżeli nie jest to opcją:

Jeżeli tablica $topReviews jest numeryczna, to robisz to tak:

  1. // $arr - your array
  2. $temp = $arr[15];
  3. unset($arr[15]);
  4. array_unshift($arr, $temp);


jeżeli asocjacyjna to:

  1. $temp = array($key => $array[$key]);
  2. unset($array[$key]);
  3. $array = $temp + $array;


Ten post edytował jaslanin 16.09.2012, 17:57:38
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 05:46