+ Antworten
Ergebnis 1 bis 6 von 6

Thema: Erstes eigenes Modul: Neue Beiträge seit letztem Login?

  1. #1
    War schon öfter hier
    Registriert seit
    04.10.2008
    Beiträge
    178
    Bedankte sich
    25
    Erhielt 4 Danksagungen
    in 4 Beiträgen

    Standard Erstes eigenes Modul: Neue Beiträge seit letztem Login?

    Hallo!

    Ich hatte schon länger nach einer solchen Komponente gesucht, die die neuesten Beiträge seit dem letzten Login zeigt, kennt ihr vielleicht soetwas?

    Aber da ich sowieso einen spezielleren brauche, habe ich mich nun endlich drangewagt und mein erstes eigenes modul geschrieben (bzw. angefangen) (eigentlich bräuchte ich eine komponente, aber die module sollen um einiges leichter sein, also tuts das auch)

    Nach diversen google-sessions und tutorials habe ich jetzt das erste konstrukt fertig.

    Leider zeigt es auf meiner Testinstallation (kopie der liveseite) garnichts an? Im Debugmodus wird von meinem modul gar keine datenbankabfrage angezeigt?

    Gibt es vielleicht irgendwo ein Tutorial mit den typischen Anfängerfehlern bei der Modulerstellung?

    Das Modul soll, wenn es fertig ist, die neuesten Artikel (jos_content), Bilder (Joomgallery), Videos (hwdvideoshare) und Kommentare (Jcomments) sowie Forenbeiträge (kunena) anzeigen, die seit dem letzten Login hinzugekommen (userverwaltung mit cb) sind.

    Ich wollte als erstes lediglich die Beiträge anzeigen.

    Ich poste einfach mal den code den ich bisher habe, bitte erschlagt mich nicht, wie gesagt mein erster versuch, da ist bestimmt irgendwo ein total doofer fehler, den ich nicht finde

    mod_newposts.php:
    Code:
    <?php
    //direct access
    if ( ! ( defined( '_VALID_CB' ) || defined( '_JEXEC' ) || defined( '_VALID_MOS' ) ) ) { die( 'Direct Access to this location is not allowed.' ); }
    
    // helper.php aufrufen
    JLoader::import('mod_newposts.helper', JPATH_SITE.DS.'modules');
    
    //User laden
    $user =& JFactory::getUser();
    
    //User id
    $userid=$user->id;
    
    //Last visit
    $userlastvisit=$user->lastvisitDate;
    
    //default.php einbinden
    require(JModuleHelper::getLayoutPath('mod_newposts'));
    
    ?>
    helper.php
    Code:
    <?php
    // Verhindern, dass die Datei direkt aufgerufen wird
    if ( ! ( defined( '_VALID_CB' ) || defined( '_JEXEC' ) || defined( '_VALID_MOS' ) ) ) { die( 'Direct Access to this location is not allowed.' ); }
    
    class modPostsHelper{
    
      function getPosts(&$params){
    
        //?
        global $_CB_framework;
        
        //db object holen
        $db  = &JFactory::getDBO();
        
        //aktuelle Zeit
    	$now		=	date( 'Y-m-d H:i:s', $_CB_framework->now() + $_CB_framework->getCfg( 'offset' ) * 60 * 60 );
        
        //
        //query zusammenbauen
        $query = "SELECT title,catid"
               . "\n FROM #__content"
               . "\n WHERE created <= $now AND created >= $userlastvisit"
    		   . "\n AND a.state = 1 "
    		   . "\n ORDER BY a.created DESC"
             ;
        $db->setQuery( $query );
        
        $rows = $db->loadObjectList();;
        $posts = "<ul>\n";
        if ($rows) {
          foreach ($rows as $row){
            $posts .= "<li>".$row->text."</li>\n";
          }
        }
        $posts .=  "</ul>\n";
        return   $posts;
      }
    }
    ?>
    default.php im tmpl ordner
    Code:
    <?php
    // Verhindern, dass die Datei direkt aufgerufen wird
    if ( ! ( defined( '_VALID_CB' ) || defined( '_JEXEC' ) || defined( '_VALID_MOS' ) ) ) { die( 'Direct Access to this location is not allowed.' ); }
    
      echo $posts;
    ?>

  2. #2
    War schon öfter hier
    Registriert seit
    04.10.2008
    Beiträge
    178
    Bedankte sich
    25
    Erhielt 4 Danksagungen
    in 4 Beiträgen

    Standard

    Also so wie es aussieht wird die helper.php garnicht aufgerufen, ein echo in der mod_newposts gibt das gewünschte aus, in der helper nicht.

    Anscheinend ein krasser anfängerfehler, bitte hilfeee!

  3. #3
    War schon öfter hier
    Registriert seit
    04.10.2008
    Beiträge
    178
    Bedankte sich
    25
    Erhielt 4 Danksagungen
    in 4 Beiträgen

    Standard

    okey, sorry, ich habe die klasse garnicht aufgerufen.

    ähem, der eintrag fehlt:

    $posts = modPostsHelper::getPosts();


    Das ist wirklich lustig, immer wenn ich in der klemme stecke, schreibe ich ins forum, kurze zeit danach seh ich selbst den fehler. *kopfklatsch*

    sorry

    Tutorials zum Modulentwickeln wären wirklich super, vor allem solche die die joomla-api ausführlich erklären....

    Dankeeee

  4. #4
    War schon öfter hier
    Registriert seit
    08.12.2009
    Ort
    Eifel
    Beiträge
    144
    Bedankte sich
    40
    Erhielt 17 Danksagungen
    in 17 Beiträgen

    Standard

    Hey, cool, das ist genau dass, was ich auch schon lange suche. Wie funktioniert das Ganze? Die beiden Dateien erstellen und dann?...., stehe derzeit auf dem Schlauch. Kann das hier und jetzt allerdings nicht testen, heute abend zuhause...

  5. #5
    War schon öfter hier
    Registriert seit
    04.10.2008
    Beiträge
    178
    Bedankte sich
    25
    Erhielt 4 Danksagungen
    in 4 Beiträgen

    Standard

    Hi

    Sorry hab deine Frage garnicht gesehen.

    Also das Modul ist fertig und schon in Betrieb, es zeigt die neuesten Inhalte seit dem letzten Login in den bestimmten Komponenten und Bereichen (halt genau auf meine Bedürfnisse zugeschnitten), bei bedarf geb ich die Dateien gerne weiter, mit Kenntnissen ists bestimmt leicht anpassbar


    Ah mir ist noch eine Frage eingefallen!

    Wenn ich in diesem Modul auf einen Link klicke, wird es mittels SEF als ein Beitrag im Modul angezeigt. Wie kann ich aber den richtigen Link einfügen?

    Also die URL ist dann folgende

    domain.de/inhalte/neueste-inhalte/166

    es sollte aber so sein:

    domain.de/artikelbereich/kategorie/166-beitrag-sef-name

    In der tmpl generiert das Modul lediglich einen normalen nicht-sef link, z.B. hier:

    echo "<td><a href=\"index.php?option=com_content&amp;view=artic le&amp;id=".$post->id."&amp;catid=".$post->catid."\">".$post->title."</a></td><td><p>".$post->ctitle."</p></td><td><p class=\"np_created\">".$postdatum."</p></td>";

    ???? Hilfe?
    Geändert von Igather (13.09.2010 um 15:30 Uhr)

  6. #6
    Neu an Board
    Registriert seit
    27.09.2008
    Beiträge
    26
    Bedankte sich
    6
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    Mit JRoute::_("ADRESSE") kannst du sowas machen.

    Code:
    echo "<td><a href=\"".JRoute::_("index.php?option=com_content&amp;view=article&amp;id=".$post->id."&amp;catid=".$post->catid)."\">".$post->title."</a></td><td><p>".$post->ctitle."</p></td><td><p class=\"np_created\">".$postdatum."</p></td>";

+ Antworten

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein