Überschrift nur anzeigen, wenn in Kategorie ein Beitrag steht

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Überschrift nur anzeigen, wenn in Kategorie ein Beitrag steht

    Hallo,

    Ich würde Hilfe in den Betreff schreiben, aber dass hilft euch ja auch nicht weiter.
    Aber als Codezusammenbastler ohne wirkliche Programmierkenntnisse weiß ich nicht mehr weiter.

    Ich will Beiträge nach Kategorien sortiert anzeigen lassen.
    Die Überschrift einer Kategorie soll aber nur dann erscheinen,
    wenn in der jeweiligen Kategorie überhaupt ein Beitrag vorhanden ist.
    Das soll nämlich nur dann der Fall sein, wenn die letzte Veröffentlichung höchstens vier Wochen zurückliegt.
    Einige Kategorien sind dann ohne Beitrag und dann will von denen natürlich auch keine Überschrift sehen.

    Der Code sieht folgendermaßen aus:

    PHP-Code:
    <?php
     
    require_once('../magpierss/rss_fetch.inc');

     
    $rss_url 'http://www.sgcastrop.de/wordpress/?cat=3&feed=rss2';
     
    $my_rss fetch_rss($rss_url);
     
    $my_rss_items array_slice($my_rss->items010);

     foreach (
    $my_rss_items as $item) {
     
    $title $item['title'];
     
    $url $item['link'];
     
    $description $item['description'];
     
    $timestamp $item['date_timestamp'];
     
    $date date ("d.m.Y"$timestamp);
     
    $author $item[dc][creator];
     
    $rueckblick time() - $timestamp;

     if(
    time() - 2419200 $rueckblick)

        {
    ?>
    <b><font size="-1">1.Mannschaft</font></b><br><br>
    <?php
        
    }


     if(
    $rueckblick 2419200)
        {

    ?>
    <dt><?php print"$date"?>: <a href="<?php print"$url"?>"><?php print"$title"?></a> <i>von <?php print"$author"?></i> </dt>
    <?php
        
    }
     }

    ?>
    <hr>
    Ich weiß, so kann das natürlich nicht funktionieren,
    weil die If-Else Anweisung für die Überschrift in der foreach Schleife steckt.
    Es wird für jeden Artikel die Überschrift neu ausgegeben.
    Wenn ich die Überschrift nach oben stelle, habe ich die Variable $rueckblick aber noch nicht.

    Ich bin auch der Meinung, dass
    PHP-Code:
     $my_rss_items array_slice($my_rss->items010); 
    und
    PHP-Code:
     if($rueckblick 2419200) ... 
    kollidieren, denn einmal werden die letzten zehn Beiträge angesprochen
    und einmal die Beiträge der letzten vier Wochen.

    Es muss doch auch noch einen einfacheren Weg geben.
    Theoretisch brauch ich ja nur die Abfrage
    Wenn irgendein Beitrag der Katregorie jünger als 4 Wochen ist,
    dann zeig mir die Überschrift an, sonst nicht.


    Aber wie?
    Ich weiß weder wie ich den entscheidenden timestamp packen kann
    noch wie ich ihn dann weiterverarbeite.

    Für Eure Hilfe wäre ich sehr dankbar.
    Zuletzt geändert von Linksaussen_11; 02.04.2008, 14:34.

  • #2
    die Sortierung nach kategorien ist scheinbar bereits im rssfeed enthalten(?)
    Also enthält $my_rss alle Eintraege zu einer Kategorie?
    Beantworte nie Threads mit mehr als 15 followups...
    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

    Kommentar


    • #3
      Ja, durch die Zeile

      PHP-Code:
      $rss_url 'http://www.sgcastrop.de/wordpress/?cat=3&feed=rss2'
      ist die Kategorie schon festgelegt.

      ______________________________________________________


      Ich glaube aber, dass ich noch einen Lösungsansatz gefunden habe.
      Wenn ich das letzte Element aus dem mehrdimensionalen Array unten anspreche (hier konkret: Den Zeitstempel [date_timestamp]), dann erhalte ich den Zeitstempel des letzten Beitrags.
      Denn ich brauche ja nur den aktuellsten, die anderen sind ja vernachlässigbar.

      PHP-Code:

      Array ( 

      [
      0] => Array ( 

      [
      0] => Array ( 
      [
      title] => Vorschau Kreisliga B1Zurück an die Spitze
      [
      link] =>[url]http://www.sgcastrop.de/wordpress/?p=363[/url] 
      [comments] => [url]http://www.sgcastrop.de/wordpress/?p=363#comments[/url] 
      [pubdate] => Sun30 Mar 2008 14:57:00 +0000 

      [dc] => Array ( 
      [
      creator] => Daniel Komorek ) [category] => 1.MannschaftAllgemeinSpielberichte (1. Mannschaft
      [
      guid] => [url]http://www.sgcastrop.de/wordpress/?p=363[/url] 
      [description] => Wie die Überschrift des heutigen Artikels lautet [...] 

      [
      wfw] => Array ( 
      [
      commentrss] => [url]http://www.sgcastrop.de/wordpress/?feed=rss2&p=363[/url] )
      [summary] => Wie die Überschrift des heutigen Artikels lautet [...] 
      [
      date_timestamp] => 1206889020 ))) 
      Ich kann dann sagen:
      Wenn dieser Beitrag jünger als 4 Wochen ist,
      dann zeig mir die Überschrift an, sonst nicht.

      Ich bekomme diesen Wert aber nicht ausgelesen.
      Bevor ich mit einer IF-Anweisung weiterarbeiten will, habe ich versucht diesen Wert mit diversen Ausgabebefehlen auzulesen, aber es hat nichts geholfen,

      weder mit

      PHP-Code:
        print_r (array($my_rss_items[0][0][wfw][date_timestamp])); 
      noch mit

      PHP-Code:
      echo  $my_rss_items[0][0]['wfw']['date_timestamp']; 
      Hier können Syntaxfehler drin sein, aber ich hab auch alle anderen Kombinationen schon durch (mit Anführungsstrichen, Klammern hinzufügen und wegnehmen, ...).
      Vielleicht könnt ihr mir einen Gefallen tun und auch noch mal drüber sehen.

      Danke
      Zuletzt geändert von Linksaussen_11; 02.04.2008, 14:31.

      Kommentar


      • #4
        code umbrechen! sonst findet keine sau den antwort-button!

        peter
        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
        Meine Seite

        Kommentar


        • #5
          also wenn dein array schon sortiert ist dann sortiere es doch anders rum geh von oben bis unten durch und wenn dein timestamp älter als deine 4 wochen sind dann gibste den Eintrag aus...

          was is denn jetzt so schwer da dran?
          Deinn rss gibt Dir doch schon alles.
          Achja und wenn der erste eintrag gültig ist gibste deine Überschrift aus.
          Beantworte nie Threads mit mehr als 15 followups...
          Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

          Kommentar


          • #6
            Hallo MelloPie,

            ich weiss, da ist eigentlich nichts schwieriges dran,
            aber an

            ...dann gibste den Eintrag aus...
            liegt es ja gerade.

            Das krieg ich nicht hin, obwohl es ein einfaches print oder echo ist.
            Und wie ich ein Array auslese, weiss ich ja mittlerweile auch,
            abgesehen, davon, dass immer noch kleine Syntaxfehler drin sein können.

            Und auch gedanklich krieg ichs hin.

            Achja und wenn der erste eintrag gültig ist gibste deine Überschrift aus.
            ist ja nichts anderes als das:

            Wenn dieser Beitrag jünger als 4 Wochen ist,
            dann zeig mir die Überschrift an, sonst nicht.

            Kommentar


            • #7
              Würdest du wohl deinen Code noch umbrechen, dass man nicht seitwärts scrollen muss, um den Antwort-Button zu finden!
              Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

              [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
              Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

              Kommentar


              • #8
                Also wenn Du es gedanklich hinbekommst, dann sollte auch das coding nicht so schwerfallen. Du hast die Logik im Kopf dann nimm den Werkzeugkasten und baue Dein Script und wenn Du detailprobleme bei der Umsetzung hast wird Dir schon jemand helfen.

                Dein bisheriger code zeigt aber dass Du Deine Logik nicht umgesetzt hast, da sind definitiv logische Fehler und eben auch Deine vielzitierten syntaxfehler drin.

                Und mal so am rande wenn Du nur eine logik zusammenbekommst aber so was einfaches wie eine Ausgabe nicht dann solltest Du Dir überlegen ob Du das beauftragst oder dich mal hinsetzt und das Umsetzen lernst.

                Dann wird aus dem
                Codezusammenbastler ohne wirkliche Programmierkenntnisse
                vielleicht mal ein kleiner oder grosser Programmierer.
                Beantworte nie Threads mit mehr als 15 followups...
                Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

                Kommentar


                • #9
                  PHP-Code:
                  echo  $my_rss_items[0][0]['wfw']['date_timestamp']; 
                  anscheind machen die ... dimensionen noch ein problem

                  denn da ist ein array element zuviel drin!

                  deine array ausgabe! wenn ich es richtig verstanden habe sieht ohne inhalt so aus
                  Code:
                  Array 
                  (
                      [0] => 
                      Array 
                      ( 
                          [0] => 
                          Array 
                          ( 
                              [title] =>
                              [link] =>
                              [comments] => 
                              [pubdate] => 
                              [dc] => 
                              Array 
                              ( 
                                  [creator] => 
                              )          
                              [category] => 
                              [guid] =>
                              [description] =>
                              [wfw] => 
                              Array 
                              ( 
                                  [commentrss] =>  
                              )
                              [summary] => 
                              [date_timestamp] =>
                          )
                      )
                  )
                  also um an timestamp zu kommen must du ...
                  na na richtig

                  PHP-Code:
                   echo $my_rss_items[0][0]['date_timestamp']; 
                  benutzen.
                  Bitte Beachten.
                  Foren-Regeln
                  Danke

                  Kommentar


                  • #10
                    Hallo Wyveres,

                    vielen Dank für deine Hilfe und Tschuldigung für die eigentlich läppische
                    Frage nach der Ausgabe des Arrays.

                    Da aber ich nicht 100-%ig wusste, wie ich ein mehrdimensionales Array
                    anspreche, war ich mir auch nicht sicher, ob die Syntax des
                    Ausgabebefehls richtig war.

                    War sie auch nicht, aber aus anderen Gründen.
                    Weil ich nämlich die Klammer hinter [commentrss] übersehen habe,
                    hat das Array nur eine Tiefe von 3 nicht von 4.

                    Trotzdem erhalte ich mit deinem Code diese Ausgabe

                    PHP-Code:
                    Array ( [0] => ) 
                    , also nicht das Ergebnis sondern den Namen der Variablen,
                    und dann offensichtlich auch nur den des "oberen Arrays".

                    Kommentar

                    Lädt...
                    X