Seite 1 von 1

Erläuterung der Datenbank bzw. der Tabelleninhalte

Verfasst: Do 24. Aug 2006, 16:47
von hohorstmann
Ich habe es nur zum Teil finden können.

Möchte von jedem einzelnen Artikel
  • last modified
    Head des Artikels
    zugehörige URL
auslesen.

Wo finde ich eine Beschreibung der DB-Tabellen?
Oder kann mir jemand entscheidende Tips geben?

Thx

Verfasst: Do 24. Aug 2006, 16:49
von i-fekt
Was für eine Beschreibung? Was du suchst sollte die Tabelle con_content sein, am besten schaust du mal mit phpMyAdmin rein.

Verfasst: Do 24. Aug 2006, 17:08
von hohorstmann
Nicht ganz. Ich sehe dort nicht idcat oder idart, die auf einen Artikel verweisen.

Last modified etc ist richtig. die Headline ist nicht erkennbar.

Deshalb denke ich, dass in con_content ein Verweis zu einer anderen Tabelle enthalten ist.

... nur ...

Verfasst: Do 24. Aug 2006, 17:38
von Dodger77
hohorstmann hat geschrieben:Nicht ganz. Ich sehe dort nicht idcat oder idart, die auf einen Artikel verweisen.

Last modified etc ist richtig. die Headline ist nicht erkennbar.

Deshalb denke ich, dass in con_content ein Verweis zu einer anderen Tabelle enthalten ist.
Zu den Verknüpfungen zwischen den einzelnen Tabellen schau dir mal das Datenbankmodell an, das du dir hier herunterladen kannst:

http://www.contenido.org/opensourcecms/ ... a-104.html

Und die Headline des Artikels ist in der con_content (idtype 1).

Verfasst: Do 24. Aug 2006, 18:12
von HerrB
Und dann gäbe es noch zahlreiche Artikellisten-Module (wo man schmulen könnte) und das ArticleObject (siehe im Forum V4.4 API), mit dem man sowas leicht ausgeben kann.

Gruß
HerrB

Verfasst: Sa 26. Aug 2006, 09:09
von hohorstmann
Na das ist doch schon was!

Habe die Variation des Artikellisten-Moduls von HerrB genommen, da mir diese bis auf eine Kleinigkeit bestens gefällt (http://www.contenido.org/forum/viewtopi ... 8565#48565). Einbau war problemlos.

Jetzt möchte ich noch das Datum
lastmodified
zusätzlich ausgeben und nach diesem dann auch absteigend sortieren.

Kann jemand dem absoluten php-Nichtwisser da in die Schuhe helfen und im Output Modul die Code-Sequenz einfügen?

Code: Alles auswählen

<?php 
$strSelCats = "CMS_VALUE[0]"; // selected categories 
$maxChar  = "CMS_VALUE[3]"; // Max. shown topic length 

if (!is_numeric($maxChar) || $maxChar < 1) { 
   $maxChar = "50"; 
} 

if($strSelCats != "") { 
   $arrSelCats = explode(",", $strSelCats); 

    // Table header 
    echo '<table align="center" width="500" border="0" cellspacing="0" cellpadding="0">',chr(10); 
    echo '<tr><td height="30" colspan="2" ></td></tr>',chr(10); 
    
    echo '<tr>
	 <td height="21" width="0" style="border: 0px; border-top:1px; border-bottom:1px; border-color: #F7C473; border-style: solid; background-color: #FCF2D5"><img src="images/grey.gif" width="22" height="21" border="0"></td>',chr(10); 
    echo '<td width="400" style="border: 1px; border-left:0px; border-color: #F7C473; border-style: dashed; background-color: #FCF2D5; padding-left:10px" class="punkte"><b>CMS_VALUE[2]</b></td>
          <td width="100" align="center" style="border: 1px; border-left:0px; border-color: #F7C473; border-style: dashed; background-color: #FCF2D5; padding-left:10px" class="punkte"><b>Datum</b></td>
          </tr>',chr(10); 

      foreach ($arrSelCats as $strCat) {    
      // select all articles in category 
      $query =  "SELECT CONTENT.value AS headline, ????????? AS modified, ARTLANG.idart AS id FROM ";
      $query .= $cfg["tab"]["cat_art"]." AS CATART, "; 
      $query .= $cfg["tab"]["art_lang"]." AS ARTLANG, "; 
      $query .= $cfg["tab"]["content"]." AS CONTENT "; 
      $query .= "WHERE CATART.idcat = '$strCat' "; 
  
      if ("CMS_VALUE[6]" != "enabled") { 
         $query .= "AND CATART.is_start = '0' "; 
      } 
      $query .= "AND CONTENT.idartlang = ARTLANG.idartlang "; 

      // Container-ID 
      if (!is_numeric("CMS_VALUE[8]")) { 
         $query .= "AND CONTENT.typeid = '1' "; 
      } else { 
         $query .= "AND CONTENT.typeid = 'CMS_VALUE[8]' "; 
      } 

      // Content-Type 
      if (!is_numeric("CMS_VALUE[9]")) { 
         $query .= "AND CONTENT.idtype = '1' "; 
      } else { 
         $query .= "AND CONTENT.idtype = 'CMS_VALUE[9]' "; 
      } 

      $query .= "AND ARTLANG.idart = CATART.idart AND ARTLANG.idlang = '$lang' "; 
      $query .= "AND ARTLANG.online = '1' ORDER BY "; 
      if ("CMS_VALUE[6]" == "enabled" && "CMS_VALUE[7]" == "enabled") { // Startartikel an erster Stelle 
         $query .= "CATART.is_start DESC, "; 
      } 

      // Sort by 
      if ("CMS_VALUE[4]" == "") { 
         $query .= "CATART.idart "; 
      } else { 
         $query .= "CMS_VALUE[4] "; 
      } 

      // ASC/DESC 
      if ("CMS_VALUE[5]" == "") { 
         $query .= "DESC "; 
      } else { 
         $query .= "CMS_VALUE[5] "; 
      } 

      // LIMIT 
      if (is_numeric("CMS_VALUE[10]") && "CMS_VALUE[10]" > 0) { 
         $query .= "LIMIT 0, CMS_VALUE[10]"; 
      } 

      // execute query 
      $db->query($query); 

      if ($db->num_rows() > 0) { 

         while ($db->next_record()) { 
            $headline = urldecode($db->f("headline")); 
            $headline = strip_tags($headline);
            $modified = "?????????????";
             
            if (strlen($headline) > $maxChar) { 
               $headline = substr($headline, 0, $maxChar); 
               $headline .= '..';
                           } 

            $link = $sess->url("front_content.php?client=$client&lang=$lang&idcat=$strCat&idart=".$db->f("id")); 
          
             echo '<tr>
                   <td colspan="2" class="text" height="22" style="border: 1px; border-top:0px; border-color: #F7C473; border-style: dashed; background-color: #FCF2D5; padding-left:10px"><a href="'.$link.'">'.$headline.'</a></td>
                   <td align="center" colspan="2" class="text" height="22" style="border: 1px; border-top:0px; border-color: #F7C473; border-style: dashed; background-color: #FCF2D5; padding-left:10px">'.$modified.'</td>
                   </tr>',chr(10);
         unset($modified);
         } 
          
          unset($headline); 
      } // end if 
   } // end foreach 

   echo '</table><br>',chr(10); 

} // end if 
?>
Danke an den, der hilft.
Ho

Verfasst: Mo 28. Aug 2006, 14:21
von HerrB
Guck mal in mit phpmyadmin in die DB, müsste art_lang sein, denke ich.

Gruß
HerrB

Verfasst: Mo 28. Aug 2006, 16:05
von hohorstmann
Danke, Problem gelöst --->
Ich hatte "nur" keine Ahnung, dass man z.B. schreibt:

Code: Alles auswählen

$moddie = $db->f("moddie");
um der php-Variablen "$moddie" den Wert aus einem MySQL-Datenfeld "moddie" zuzuweisen.

Sorry, Ho