News Reihenfolge

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

      News Reihenfolge

      Servus liebe Leute, ich schon wieder..

      Ich hab hier im Forum (und auch im anderen Forum) bereits danach gesucht, jedoch leider keine Lösung gefunden.
      Ich befasse mich gerade mit dem Newssystem des Chats und mir ist aufgefallen, dass die News, die zuletzt geschrieben wurde immer unten auftaucht.
      Nun möchte ich aber, dass die neue News immer über der letzten ist. Wie mach ich das ??

      Im anderen Forum gab es den Hinweis von bulri001 das man den Array in der News.pm umdrehen soll (@Array-Name=reverse(@Array-Name);).. aber des bekomm ich leider nicht hin, hoffe ihr könnt mir da helfen.
      Hi ho,

      Habe noch mal wegen der News nach gedacht, kamm auch gerade erst garnicht drauf :lol:

      Aber ich glaube so sollte es funzen

      Plugins/VarHandlers/News.pm

      ersetze mal dein Code mit dem Code hier.

      PHP-Quellcode

      1. ###################################################################
      2. # GT-Chat 0.95 Alpha Plugin #
      3. # Written for release whatever #
      4. # Author: Wladimir Palant #
      5. # #
      6. # This plugin provides the template variables that are necessary #
      7. # for the chat news. The information is taken from the file #
      8. # Variables/news.txt. #
      9. ###################################################################
      10. package GT_Chat::Plugins::News::095_02;
      11. use strict;
      12. @GT_Chat::Plugins::News_enum::095_02::ISA = ('GT_Chat::Enum');
      13. return bless({
      14. template_var_handlers => {
      15. 'news.messagenum' => \&handler,
      16. 'news.message' => \&handler,
      17. 'news.author' => \&handler,
      18. 'news.date' => \&handler,
      19. 'news.messages' => \&handler,
      20. 'news.messagecount' => \&handler,
      21. },
      22. });
      23. sub handler
      24. {
      25. my($self,$main,$var) = @_;
      26. $main->open(local *NEWS, $main->translateName('vardir::news.txt')) || return;
      27. my @messages = <NEWS>;
      28. $main->close(*NEWS);
      29. @messages = reverse(@messages);
      30. return if ($#messages < 0);
      31. my $num = 0;
      32. $messages[$num] =~ s/[\n\r]//g;
      33. my ($message,$author,$date) = split(/\|/,$messages[$num]);
      34. my %ret = (
      35. messagenum => $num,
      36. message => $message,
      37. author => $author,
      38. date => $date,
      39. messagecount => $#messages+1,
      40. );
      41. if ($var eq 'news.messages')
      42. {
      43. my $enum = $main->{modules}{'sourcedir::Enum.pm'};
      44. $ret{messages} = GT_Chat::Plugins::News_enum::095_02->new($main,\@messages);
      45. }
      46. $main->{template_vars}{news} = \%ret;
      47. }
      48. package GT_Chat::Plugins::News_enum::095_02;
      49. sub new
      50. {
      51. my($self,$main,$list) = @_;
      52. return bless({
      53. main => $main,
      54. list => $list,
      55. index => -1,
      56. opened => 0,
      57. });
      58. }
      59. sub open
      60. {
      61. my $self=shift;
      62. $self->{closed} if $self->{opened};
      63. $self->{index} = -1;
      64. $self->{opened} = 1;
      65. }
      66. sub hasNext
      67. {
      68. my $self=shift;
      69. return ($self->{opened} && $self->{index} < $#{$self->{list}});
      70. }
      71. sub next
      72. {
      73. my $self=shift;
      74. return undef unless $self->{opened} && $self->{index} < $#{$self->{list}};
      75. $self->{index}++;
      76. $self->{list}[$self->{index}] =~ s/[\n\r]//g;
      77. my %ret = ();
      78. @ret{'message', 'author', 'date'} = split(/\|/,$self->{list}[$self->{index}]);
      79. return \%ret;
      80. }
      81. sub close
      82. {
      83. my $self=shift;
      84. $self->{opened} = 0;
      85. }



      Solte normal Funzen

      Lg.
      Hosting-Panter.eu - Home
      Antiref.net


      if ($ahnung == 'keine' ) { use ( FAQ ) && ( Google | | Suche ) }
      if ($antwort == 0 ) { post ( Frage ) }
      Danke für die Änderung, Neo. Werde ich auch mal später einbauen. Ich habe jedoch noch eine Frage zu der News Reihenfolge... Auf der Loginpage zeige ich die News auch an, allerdings wird nur der älteste Newseintrag angezeigt. Wie kann ich den Code so umändern, dass immer der neueste angezeigt wird?
      Der Code sieht momentan so aus:

      PHP-Quellcode

      1. <th>News</th>
      2. </tr>
      3. <TR class="row2"><TD><TABLE width="100%" cellspacing=5>
      4. <td>{IF|$news.message}
      5. <b>Chat-News</b> ({GETDATE|$news.date}):<br> {DOFILTER|links|formatting|smileys}{GET|$news.message}{ENDDO} {IF|$news.author}- <i>von {GET|$news.author}</i>{ENDIF}
      6. <br>
      7. {IF|$news.messagecount>1}
      8. <div class="smalltext">
      9. <a href="{GET|$runtime.completeurl}&template=allnews" onclick="openWindow('allnews',600,200);return false;" class="stdlink">Alle Chat-News anzeigen</a>
      10. </div>
      11. {ENDIF} {ENDIF}
      12. </div>
      13. </td></tr>


      Danke schön!

      Liebe Grüße
      Steffi