Next Previous Title mit Bilder

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

  • #31
    Mei mei...

    Es gibt soo viele Tutorials. Eine Blätternfunktion hab ich am ersten Tag geschrieben an dem ich mit PHP angefangen habe... ohne Codeschnipsel oder Tips. Grundlagen + Trial & Error waren genug. Ein bischen muss man sich halt anstrengen. Aber wenn derjenige halt kaum logisches Auffassungsvermögen hat, bringt auch eine fertige Lösung nichts, gelernt wird dabei eh nix...

    Mein Gott, ich hör mich ja schon fast an wie die Mods...
    Ich sollte ins Bett... *gähn*
    Der Mensch ist ein Tier das zuviel denkt!

    Kommentar


    • #32
      @sagg: Also wenn ich Deinen Code etwas umtippe:
      PHP-Code:
      $query "SELECT `id` FROM `jos_content` WHERE `id`='".$id++."'" 
      dann kommt da zumindest immer im Gegensatz zu dem mit Limit die Nummer des Beitrages raus. Wenn ich den in meinem Code den ich sonst für die Datenbankabfrage nehme raus.

      Nutze ich den von Schattenbaum, dann kommt da am Ende nichts rau, auch keine Fehlermeldung.

      Text bringt logischerweise eine Fehlermeldung, weil es nicht in der Tabelle enthalten ist. DieTabelle URL gibt es, aber da ist nichts enthalten.

      $id++ soll ja eigentlich hochzählen, wenn ich die ganze Geschichte kürze:
      PHP-Code:
      $query "SELECT id FROM `jos_content` WHERE id='$id'" 
      habe ich das gleiche Ergebnis.

      Das Ergebnis ist immer die Artikelnummer. Ich kann auch andere Spalten nehmen, Title Author etc. bei meiner dbabfrage kommt immer das auf den Artikel bezogene Ergebnis raus, und bei Schattenbaum nichts.
      Zuletzt geändert von Yehudi; 11.02.2006, 11:26.

      Kommentar


      • #33
        Ich habe ein Mambot gefunden, welches genau die Vor- und Rückwertsgeschichte macht, als Mambot in Joomla funktioniert, nur an der falschen Stelle.
        Leider ist es kein Modul, die kann man nämlich positionieren.

        Wenn ich das über meine includet-Datei laufen lasse, dann kommt eine Meldung:
        ander Stelle, wo das Teil erscheinen soll:

        Code:
         	
        Fatal error: Cannot redeclare botprevnext() (previously declared
        in
        # line 4
        Offenbar bezieht sich der Code noch auf sich selber, bzw seine Ausgangsbasis.

        Das Problem müßte in den ersten Reihen liegen. Den Code poste ich ganz, damit es nicht zu eventuell später zu Verständnisproblemen kommen kann:

        PHP-Code:
        <?php
        $_MAMBOTS
        ->registerFunction'onPrepareContent''botPrevNext' );

        function 
        botPrevNext$published, &$row$params$page=0  ) {
                global 
        $mainframe$database$mosConfig_absolute_path,$mosConfig_lang;

               if (!
        $published ) {
                    return 
        true;
                }

               
        // Get the right language if it exists
                
        if (file_exists($mosConfig_absolute_path.'
        /mambots/content/rd_prevnext.'
        .
        $mosConfig_lang.'.php')) {
                  include_once(
        $mosConfig_absolute_path.'
        /mambots/content/rd_prevnext.'
        .
        $mosConfig_lang.'.php');
                } else {
                  include_once(
        $mosConfig_absolute_path.'
        /mambots/content/rd_prevnext.
        english.php'
        );
                }

            
        $task mosGetParam$_REQUEST'task''' );
            if (  ( 
        $task == "view" ) && !$params->get'popup' ) ) {

                   
        // loads the links for Next & Previous Button
                    
        $query "SELECT a.id"
                    
        "\n FROM jos_content AS a"
                    
        "\n WHERE a.catid = "$row->catid.""
                    
        "\n AND a.catid != 0 AND a.state = '1' AND ordering 
        $row->ordering"
                    
        "\n ORDER BY a.ordering DESC"
                    
        "\n LIMIT 1"
                    
        ;
                    
        $database->setQuery$query );
                    
        $row->prev $database->loadResult();
                
                    
        $query "SELECT a.id"
                    
        "\n FROM jos_content AS a"
                    
        "\n WHERE a.catid = "$row->catid.""
                    
        "\n AND a.catid != 0 AND a.state = '1' AND ordering 
        $row->ordering"
                    
        "\n ORDER BY a.ordering"
                    
        "\n LIMIT 1"
                    
        ;
                    
        $database->setQuery$query );
                    
        $row->next $database->loadResult();
                       
        $nav $row->prev $row->next
                if ( 
        $row->prev || $row->next ) {
                               
        $row->text $row->text 
        '<div class="pagenav">'
         
        _RD_PREVNEXT_HEAD;
                }
                       
                if ( 
        $row->prev ) {
                        
        $prev=$row->prev;
                    
        $query "Select title,title_alias from jos_content where id =
         '
        $prev'";
                    
        $database->setQuery($query);
                    
        $database->loadObject($result);
                    
        $title$result->title;
                               
        $alias $result->title_alias;

                               
        $query "select id from jos_menu where published = '1' 
        and type = 'content_item_link' and componentid= '
        $prev'";
                               
        $database->setQuery$query );
                               
        $Itemid $database->loadresult();
                               
                               if (!
        $Itemid) {
                                       
        // needed to reduce queries used by getItemid           
                                       
        $bs $mainframe->getBlogSectionCount();
                               
        $bc $mainframe->getBlogCategoryCount();
                               
        $gbs $mainframe->getGlobalBlogSectionCount();
                               
        // get Itemid
                               
        $Itemid $mainframe->getItemid
        $prev00$bs$bc$gbs );
                               }    
                           
        // Blank itemid checker for SEF
                           
        if ($Itemid == NULL) {
                               
        $Itemid '';
                           } else {
                               
        $Itemid '&amp;Itemid='$Itemid;
                           }
                       
                           if (
        $alias) {
                               
        $linktext $alias;
                           } else {
                               
        $linktext $title;
                           }    
                               
        $link '<p class="pagenav">
        '
        ._RD_PREVNEXT_PC.'<a href="'
                                 
        sefRelToAbs'index.php?option=com_content&amp;task=view&amp;id=
        '
        $prev 
        $Itemid ) .'" class="readon">' 
                                 
        $linktext '</a><span style="display:none;">
        . </span></p>'
        ;
                               if (!
        $row->next$link $enddiv
                               
        $row->text $row->text $link;
                                    
                }
                
                if ( 
        $row->prev && $row->next ) {
                        
        $row->text $row->text '<br />';    
                }

               if ( 
        $row->next ) {
                        
        $next=$row->next;
                    
        $query "Select title,title_alias 
        from jos_content where id = '
        $next'";
                    
        $database->setQuery($query);
                    
        $database->loadObject($result);
                    
        $title$result->title;
                               
        $alias $result->title_alias;
                               
                               
        $query "select id from jos_menu where published = '1' 
        and type = 
        'content_item_link' and componentid='
        $next';";
                               
        $database->setQuery$query );
                               
        $Itemid $database->loadResult();
                               
                               if (!
        $Itemid) {
                                       
        // needed to reduce queries used by getItemid           
                                       
        $bs $mainframe->getBlogSectionCount();
                               
        $bc $mainframe->getBlogCategoryCount();
                               
        $gbs $mainframe->getGlobalBlogSectionCount();
                               
        // get Itemid
                               
        $Itemid $mainframe->getItemid
        $next00$bs$bc$gbs );
                               }    
                           
        // Blank itemid checker for SEF
                           
        if ($Itemid == NULL) {
                               
        $Itemid '';
                           } else {
                               
        $Itemid '&amp;Itemid='$Itemid;
                           }
                       
                           if (
        $alias) {
                               
        $linktext $alias;
                           } else {
                               
        $linktext $title;
                           }
                               
        $link '<p class="pagenav">
        '
        ._RD_PREVNEXT_NC.'<a href="'
                                 
        sefRelToAbs'index.php?option=com_content&amp;task=view&amp;id='
        $next 
        $Itemid ) .'" class="readon">' 
                                 
        $linktext '</a><span style="display:none;">
        . </span></p>'
        ;
                               
        $row->text $row->text $link;
                }
                if ( 
        $row->prev || $row->next ) {
                               
        $row->text $row->text '</div>';
                }

           }
                return 
        true;
        }

        ?>
        Fast am Schluss des Code kommt hier auch noch mal ein "Blankchecker for SEF" welches ich für den URL Design einsetze. Je weiter es zum Schluss hingeht, um so verständlicher und klarer finde ich den Code, das einzige Problem ist wohl der Einstieg.
        Zuletzt geändert von Yehudi; 15.02.2006, 17:03.

        Kommentar


        • #34
          Dieser Teil bereitet mir eigentlich am meisten Kopfzerbrechen, und ich glaube, wenn der angepasst ist, dann müßte es gehen, nur weiss ich da echt nicht was ich da machen soll.

          PHP-Code:
          <?php
          $_MAMBOTS
          ->registerFunction'onPrepareContent''botPrevNext' );

          function 
          botPrevNext$published, &$row$params$page=0  ) {
                  global 
          $mainframe$database$mosConfig_absolute_path,$mosConfig_lang;

                 if (!
          $published ) {
                      return 
          true;
                  }

                 
          // Get the right language if it exists
                  
          if (file_exists($mosConfig_absolute_path.'/mambots/content/rd_prevnext.'.
          $mosConfig_lang.'.php')) {
                    include_once(
          $mosConfig_absolute_path.'/mambots/content/rd_prevnext.'.
          $mosConfig_lang.'.php');
                  } else {
                    include_once(
          $mosConfig_absolute_path.'/mambots/content/rd_prevnext.
          english.php'
          );
                  }

              
          $task mosGetParam$_REQUEST'task''' );
              if (  ( 
          $task == "view" ) && !$params->get'popup' ) )

          Kommentar


          • #35
            Ich habe den Code noch etwas mehr angepasst:

            PHP-Code:
            <?php
            define
            ('_RD_PREVNEXT_NC','Nächster Beitrag: ');
            define('_RD_PREVNEXT_PC','Vorheriger Beitrag');
            $output '';  

                    
            $option mosGetParam$_REQUEST'option''' );
                    
            $task mosGetParam$_REQUEST'task''' );
                    if (  ( 
            $task == "view" ) && !$params->get'popup' 
                    && 
            $option "com_content" ) {            
                             
            $id mosGetParam$_REQUEST'id''0' );            
                             if (
            $id) { 
            // loads the links for Next & Previous Button
                            
            $query "SELECT a.id"
                            
            "\n FROM jos_content AS a"
                            
            "\n WHERE a.catid = "$row->catid.""
                            
            "\n AND a.catid != 0 AND a.state = '1' AND ordering <                      
            $row->ordering"
                            
            "\n ORDER BY a.ordering DESC"
                            
            "\n LIMIT 1"
                            
            ;
                            
            $database->setQuery$query );
                            
            $prev $database->loadResult();
                        
                            
            $query "SELECT a.id"
                            
            "\n FROM jos_content AS a"
                            
            "\n WHERE a.catid = "$row->catid.""
                            
            "\n AND a.catid != 0 AND a.state = '1' AND ordering > 
            $row->ordering"
                            
            "\n ORDER BY a.ordering"
                            
            "\n LIMIT 1"
                            
            ;
                            
            $database->setQuery$query );
                            
            $next $database->loadResult();
                            
            $nav $prev $next;
                               
                        if ( 
            $prev ) {
                        
            $query "Select title from jos_content where id = '$prev'";
                            
            $database->setQuery($query);
                            
            $database->loadObject($result);
                            
            $title$result->title;
                            
                            
            $query "select id from jos_menu where published = '1' 
                             and type = 'content_item_link' and componentid= '
            $prev'";
                            
            $database->setQuery$query );
                            
            $Itemid $database->loadresult();
                                       
                               if (!
            $Itemid) {
                                
            // needed to reduce queries used by getItemid           
                                
            $bs $mainframe->getBlogSectionCount();
                                   
            $bc $mainframe->getBlogCategoryCount();
                                   
            $gbs $mainframe->getGlobalBlogSectionCount();
                                   
            // get Itemid
                                   
            $Itemid $mainframe->getItemid$prev00$bs$bc$gbs );
                           }    
                           
            // Blank itemid checker for SEF
                           
            if ($Itemid == NULL) {
                                   
            $Itemid '';
                           } else {
                                   
            $Itemid '&Itemid='$Itemid;
                           }
                               
                               
            $linktext $title;
                               
            $link '<p class="pagenav">'.PREVNEXT_PC.'
            <a href="' 
            sefRelToAbs
            'index.php?option=com_content&task=view&id='$prev $Itemid ) .'"
            class="readon">'
                                   
            $linktext '</a><span style="display:none;">. </span></p>';
                           if (!
            $next$link $enddiv;
                           
            $output .= $link;
                                            
                        }
                        
                        if ( 
            $prev && $next ) {
                            
            $output .= '<br />';    
                        }
                
                       if ( 
            $next ) {
                            
                            
            $query "Select title from jos_content where id = '$next'";
                            
            $database->setQuery($query);
                            
            $database->loadObject($result);
                            
            $title$result->title;
                            
                            
            $query "select id from jos_menu where published = '1'    
            and type = 'content_item_link' and componentid='
            $next';";
                            
            $database->setQuery$query );
                            
            $Itemid $database->loadResult();
                            if (!
            $Itemid) {
                                
            // needed to reduce queries used by getItemid           
                                
            $bs $mainframe->getBlogSectionCount();
                                
            $bc $mainframe->getBlogCategoryCount();
                                
            $gbs $mainframe->getGlobalBlogSectionCount();
                                
            // get Itemid
                                
            $Itemid $mainframe->getItemid$next00$bs$bc$gbs );
                           }    
                           
            // Blank itemid checker for SEF
                           
            if ($Itemid == NULL) {
                               
            $Itemid '';
                           } else {
                               
            $Itemid '&Itemid='$Itemid;
                           }
                               
                           
            $linktext $title;
                           
            $link '<p class="pagenav">'.PREVNEXT_NC.'<a href="' 
            sefRelToAbs'index.php?option=com_content&task=view&id=
            '
            $next $Itemid ) .'" class="readon">'
                                 
            $linktext '</a><span style="display:none;">. </span></p>';
                           
            $oitput .= $link;
                        }
                
                   }
                   echo 
            $output
                }

            ?>
            Zur Zeit zeigt wird kein Fehler angezeigt, aber auch kein Ergebnis. Das ganze liegt auf einer includet Datei, umden Code so besser bearbeiten und austauschen zu können.
            Zuletzt geändert von Yehudi; 15.02.2006, 18:58.

            Kommentar

            Lädt...
            X