ConPresso Community

Fragen, Antworten, Diskussionen rund um das Content Management System ConPresso

 
Wechselner Content. Wie machen die das?

 
Neue Antwort erstellen    ConPresso Community Foren-Übersicht -> ConPresso 3.x
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Sabine
Gast





BeitragVerfasst am: 17.05.2005 13:44    Titel: Wechselner Content. Wie machen die das? Antworten mit Zitat

Auf Conpresso.de wird in der rechten Spalte der Seite http://conpresso.de/conpresso/de_zwei-minuten/index.php bei jedem Klick eine andere News ausgegeben. Wie wird das gemacht?
Nach oben
MarkusR
Handbuchversteher


Anmeldungsdatum: 01.01.1970
Beiträge: 7010

BeitragVerfasst am: 17.05.2005 14:26    Titel: Re: Wechselner Content. Wie machen die das? Antworten mit Zitat

Man ermittelt die Artikelzahl $artikelzahlzahl der dort eingebundenen Rubrik,
ermittelt damit eine Zufallszahl
$zufallsartikel = rand(0,$artikelzahlzahl-1);
und baut seine query nach folgendem Schema:
"SELECT * FROM ".$dbPrefix."_news WHERE kategorie=................. LIMIT ".$zufallsartikel .",1";

siehe auch
http://www.php.net/manual/de/function.rand.php


_________________
Ciao Markus
ConPresso-Module
ConPresso und PHP 7
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Mr. Magpie
ConPresso-Experte


Anmeldungsdatum: 01.01.1970
Beiträge: 996
Wohnort: Wuppertal

BeitragVerfasst am: 28.06.2005 12:06    Titel: Re: Wechselner Content. Wie machen die das? Antworten mit Zitat

Hallo Markus,

kannst Du das noch etwas konkretisieren? Ich hab' bis jetzt mit PHP noch nix am Hut, würde aber solch ein Feature gerne nutzen.

Wo muss ich denn sie Artikelanzahl ermitteln? Un wie mach ich die Ausgabe?

_________________
Günther Ludwig, amazingBytes webdesign   

Referenzen finden Sie hier: amazingBytes webdesign - Referenzen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Sirki
Gast





BeitragVerfasst am: 17.09.2005 09:44    Titel: Antworten mit Zitat

An welche Stelle baue ich dies in eine sog. index10.php ein?
Nach oben
MarkusR
Handbuchversteher


Anmeldungsdatum: 01.01.1970
Beiträge: 7010

BeitragVerfasst am: 17.09.2005 10:58    Titel: Antworten mit Zitat

Wie sieht dieses Werk denn bisher aus...?

Das Erraten der Stelle ist sonst etwas mühsam...

_________________
Ciao Markus
ConPresso-Module
ConPresso und PHP 7
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Sirki
Gast





BeitragVerfasst am: 17.09.2005 11:44    Titel: Antworten mit Zitat

if ( $System_release == 1 ) {

$query = "SELECT * FROM cpo_news WHERE kategorie='news'AND artikel_archiv < 2 AND freigabe = 0 AND pub_datum < '".$jetzt."' AND verfallsdatum > '".$jetzt."' ORDER BY pub_datum DESC LIMIT ".$zufallsartikel .",1";

} else {

$query = "SELECT * FROM cpo_news WHERE kategorie='news'AND artikel_archiv < 1 AND freigabe != 2 AND pub_datum < '".$jetzt."' AND verfallsdatum > '".$jetzt."' ORDER BY pub_datum DESC LIMIT ".$zufallsartikel .",1";

}

iund dann weiter unten
$db = new DB;
$db->query($query);
$anzahl = $db->num_rows();
$zufallsartikel = rand(0,$artikelzahl-20);
Nach oben
MarkusR
Handbuchversteher


Anmeldungsdatum: 01.01.1970
Beiträge: 7010

BeitragVerfasst am: 17.09.2005 12:16    Titel: Antworten mit Zitat


 Ah so... verstehe zwar nicht was index10.php mit dem Code zu tun hat, da nur 1 Artikel gewählt wird, aber dennoch:

Von Vorteil ist es immer, eine Variable vor der Benutzung ihres Wertes auch mit einem Wert zu versehen.

Zitat:
Man ermittelt die Artikelzahl $artikelzahl der dort eingebundenen Rubrik, ermittelt damit eine Zufallszahl

sollte soviel heißen wie : erst Artikelzahl ermitteln, dann daraus eine zufällige Nummer auswählen.

Das könnte dann so aussehen:
php:
<?php
$db 
= new DB
if ( 
$System_release == ) { 
    
$query "SELECT count(*) FROM cpo_news WHERE kategorie='news'AND artikel_archiv < 2 AND freigabe = 0 AND pub_datum < '".$jetzt."' AND verfallsdatum > '".$jetzt."'"
} else { 
    
$query "SELECT count(*) FROM cpo_news WHERE kategorie='news'AND artikel_archiv < 1 AND freigabe != 2 AND pub_datum < '".$jetzt."' AND verfallsdatum > '".$jetzt.""

$db->query($query);
$db->next_record();
$artikelzahl $db->v('count(*)'); 
$zufallsartikel rand(0,$artikelzahl-1);

if ( 
$System_release == ) { 
    
$query "SELECT * FROM cpo_news WHERE kategorie='news'AND artikel_archiv < 2 AND freigabe = 0 AND pub_datum < '".$jetzt."' AND verfallsdatum > '".$jetzt."' ORDER BY pub_datum DESC LIMIT ".$zufallsartikel .",1"
} else { 
    
$query "SELECT * FROM cpo_news WHERE kategorie='news'AND artikel_archiv < 1 AND freigabe != 2 AND pub_datum < '".$jetzt."' AND verfallsdatum > '".$jetzt."' ORDER BY pub_datum DESC LIMIT ".$zufallsartikel .",1"

$db->query($query); 

// ... und so weiter und so fort ...
?>


_________________
Ciao Markus
ConPresso-Module
ConPresso und PHP 7
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Sirki
Gast





BeitragVerfasst am: 17.09.2005 13:47    Titel: Antworten mit Zitat

Sorry, mit index10.php wollte ich ausdrücken, dass immer eine News aus der Rubrik News andersow eingeettet wird. Frage jetzt aber nicht, was anderswo bedeutet!
Nach oben
Sirki
Gast





BeitragVerfasst am: 18.09.2005 19:25    Titel: Antworten mit Zitat

Erhalte beim einbinden folgende Fehlermeldung!

Was muss ich machen?

Fatal error: Cannot instantiate non-existent class: db in /home/www/web153/html/content/conpresso/news/index10.php on line 2
Nach oben
MarkusR
Handbuchversteher


Anmeldungsdatum: 01.01.1970
Beiträge: 7010

BeitragVerfasst am: 18.09.2005 19:39    Titel: Antworten mit Zitat

Kann es sein, daß Du vor $db = new DB sonst nichts mehr stehen hast, wie z.B. die Einbindung der common.inc...?
Ohne die geht unter ConPresso gar nichts... Wink

Ich habe mein Beispiel nur auf den von Dir geposteten Code-Schnipsel bezogen...

Einfach mal auf den Anfang der sonstigen ConPresso-Dateien achten, wenn man was neues dazu erfinden will... Wink

Oder hast darauf verzichtet und dann ein include mittels http:// statt ein normales gemacht?

_________________
Ciao Markus
ConPresso-Module
ConPresso und PHP 7
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Sirki
Gast





BeitragVerfasst am: 22.09.2005 20:27    Titel: Antworten mit Zitat

Irgendwie funzt der Code nicht. Weiss auch nicht!

<?php

define('CPO', true);

if (file_exists("../_cfg/const.php")) require("../_cfg/const.php");
else require("../_cfg/const.php.dist");

require("../_include/category_rubric.inc.php");
require("../_include/var_category.php");

$Artikel_header = $Rubric_header;

require("const_rubric_language.php");

# --- HEADER ---

# require("_inc_header.php");

echo "<div class=\"htitel\">\n";

$jetzt = time();

if ( $System_release == 1 ) {

$query = "SELECT * FROM cpo_news WHERE kategorie='sponsoren'AND artikel_archiv < 2 AND freigabe = 0 AND pub_datum < '".$jetzt."' AND verfallsdatum > '".$jetzt."' ORDER BY pub_datum DESC LIMIT 0,1 ";

} else {

$query = "SELECT * FROM cpo_news WHERE kategorie='sponsoren'AND artikel_archiv < 1 AND freigabe != 2 AND pub_datum < '".$jetzt."' AND verfallsdatum > '".$jetzt."' ORDER BY pub_datum DESC LIMIT 0,1 ";

}

DEBUG(2, $query, __FILE__, __LINE__);
$db = new DB;
if ( $System_release == 1 ) {
$query = "SELECT count(*) FROM cpo_news WHERE kategorie='news'AND artikel_archiv < 2 AND freigabe = 0 AND pub_datum < '".$jetzt."' AND verfallsdatum > '".$jetzt."'";
} else {
$query = "SELECT count(*) FROM cpo_news WHERE kategorie='news'AND artikel_archiv < 1 AND freigabe != 2 AND pub_datum < '".$jetzt."' AND verfallsdatum > '".$jetzt."";
}
$db->query($query);
$db->next_record();
$artikelzahl = $db->v('count(*)');
$zufallsartikel = rand(0,$artikelzahl-1);

if ( $System_release == 1 ) {
$query = "SELECT * FROM cpo_news WHERE kategorie='news'AND artikel_archiv < 2 AND freigabe = 0 AND pub_datum < '".$jetzt."' AND verfallsdatum > '".$jetzt."' ORDER BY pub_datum DESC LIMIT ".$zufallsartikel .",1";
} else {
$query = "SELECT * FROM cpo_news WHERE kategorie='news'AND artikel_archiv < 1 AND freigabe != 2 AND pub_datum < '".$jetzt."' AND verfallsdatum > '".$jetzt."' ORDER BY pub_datum DESC LIMIT ".$zufallsartikel .",1";
}
$db->query($query);
$anzahl = $db->num_rows();

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


echo "<table border=\"0\" cellpadding=\"2\" cellspacing=\"1\">\n";

while($db->next_record()):
//hier beginnt der Bildteil
$datei_nr = $db->v("bild");

$query = "SELECT datei, alttext, beschreibung FROM cpo_data WHERE id = '$datei_nr'";

DEBUG(2, $query, __FILE__, __LINE__);
$db_2 = new DB;
$db_2->query($query);

if ($db_2->num_rows()>0){
$db_2->next_record();
$imgtmp = '<img border="1" src="../page/conpresso/_data/'.$db_2->v("datei").'" align=left vspace=3 hspace=4 alt="'.$db_2->v("alttext").'">';
}
else {
$imgtmp='';
}
//hier endet der Bildteil
$db_nr = $db->v("nr");
$db_mehr = $db->v("mehr");
$db_pub_datum = $db->v("pub_datum");
$db_bild_link = $db->v("bild_link");
$db_titel = $db->v("titel");
$db_untertitel = $db->v("untertitel");
$db_text_1 = $db->v("text_1");
$db_text_2 = $db->v("text_2");
$db_freigabe = $db->v("freigabe");
$db_rubric = $db->v("kategorie");
$datum = date( "d.m.Y", $db_pub_datum );

// Artikel-Nummer
echo "<tr>
<td align=\"left\" valign=\"top\">";
#echo "<b><A HREF=\"../page/conpresso/".$db_rubric."/detail.php?nr=".$db_nr."\">".$db_titel.$imgtmp." </A></b><br> ";
echo "<b><font size=1>".$db_titel.$imgtmp."</font></b><br> ";
echo "$db_text_1";
echo "</td></tr>";





endwhile;

echo "</table>\n";

} else {

echo "<span class='nodata'><br><br>".$Rubric_nodata."<br><br></span><br>\n";

}

echo "</div>";
# require("_inc_footer.php");-->

?>
Nach oben
MarkusR
Handbuchversteher


Anmeldungsdatum: 01.01.1970
Beiträge: 7010

BeitragVerfasst am: 22.09.2005 21:21    Titel: Antworten mit Zitat


 
Zitat:
Irgendwie funzt der Code nicht. Weiss auch nicht!

ist keine besonders präzise Beschreibung dessen, was Du beobachtest, bevor Du hier einen Haufen Code ablädst.

Wenn man da mal ein bißchen aufräumt, ein paar Schreibfehler korrigiert (auf die PHP expilzit beim Aufruf hinweist), dann funzt es doch ganz wunderbar.

php:
<?php 
define
('CPO'true); 

// **** Ab hier kann entfernt werden, wenn die Datei includet wird **********
if (file_exists("../_cfg/const.php")) require("../_cfg/const.php"); 
else require(
"../_cfg/const.php.dist"); 
require(
"../_include/category_rubric.inc.php"); 
require(
"../_include/var_category.php"); 
require(
"const_rubric_language.php"); 
// **** Bis hier kann entfernt werden, wenn die Datei includet wird **********

echo "<div class=\"htitel\">\n"

$jetzt time(); 
$die_kategorie "news";

if ( 
$System_release == ) { 
    
$query "SELECT count(*) FROM ".$dbPrefix."_news WHERE kategorie='".$die_kategorie."' AND artikel_archiv < 2 AND freigabe = 0 AND pub_datum < '".$jetzt."' AND verfallsdatum > '".$jetzt."'"
} else { 
    
$query "SELECT count(*) FROM ".$dbPrefix."_news WHERE kategorie='".$die_kategorie."' AND artikel_archiv < 1 AND freigabe != 2 AND pub_datum < '".$jetzt."' AND verfallsdatum > '".$jetzt."'"

$db->query($query); 
$db->next_record(); 
$artikelzahl $db->v('count(*)'); 
$zufallsartikel rand(0,$artikelzahl-1); 

if ( 
$System_release == ) { 
    
$query "SELECT * FROM ".$dbPrefix."_news WHERE kategorie='".$die_kategorie."' AND artikel_archiv < 2 AND freigabe = 0 AND pub_datum < '".$jetzt."' AND verfallsdatum > '".$jetzt."' ORDER BY pub_datum DESC LIMIT ".$zufallsartikel .",1"
} else { 
    
$query "SELECT * FROM ".$dbPrefix."_news WHERE kategorie='".$die_kategorie."' AND artikel_archiv < 1 AND freigabe != 2 AND pub_datum < '".$jetzt."' AND verfallsdatum > '".$jetzt."' ORDER BY pub_datum DESC LIMIT ".$zufallsartikel .",1"

$db->query($query); 
$anzahl $db->num_rows(); 

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

    echo 
"<table border=\"0\" cellpadding=\"2\" cellspacing=\"1\">\n"

    while(
$db->next_record()): 
        
//hier beginnt der Bildteil 
        
$datei_nr $db->v("bild"); 

        
$query "SELECT datei, alttext, beschreibung FROM ".$dbPrefix."_data WHERE id = '".$datei_nr."'"

        
DEBUG(2$query__FILE____LINE__); 
        
$db_2 = new DB
        
$db_2->query($query); 

        if (
$db_2->num_rows()>0){ 
            
$db_2->next_record(); 
            
$imgtmp '<img border="1" src="../page/conpresso/_data/'.$db_2->v("datei").'" align=left vspace=3 hspace=4 alt="'.$db_2->v("alttext").'">'
        } else { 
            
$imgtmp=''
        } 
        
//hier endet der Bildteil 
        
$db_nr $db->v("nr"); 
        
$db_mehr $db->v("mehr"); 
        
$db_pub_datum $db->v("pub_datum"); 
        
$db_bild_link $db->v("bild_link"); 
        
$db_titel $db->v("titel"); 
        
$db_untertitel $db->v("untertitel"); 
        
$db_text_1 $db->v("text_1"); 
        
$db_text_2 $db->v("text_2"); 
        
$db_freigabe $db->v("freigabe"); 
        
$db_rubric $db->v("kategorie"); 
        
$datum date"d.m.Y"$db_pub_datum ); 

        
// Artikel-Nummer 
        
echo "<tr><td align=\"left\" valign=\"top\">"
        echo 
"<b><font size=1>".$db_titel.$imgtmp."</font></b><br> "
        echo 
$db_text_1
        echo 
"</td></tr>"
    endwhile; 
    echo 
"</table>\n"
} else { 
    echo 
"<span class='nodata'><br><br>".$Rubric_nodata."<br><br></span><br>\n"

echo 
"</div>"
?> 


zu sehen auf http://mods.50n.de/home/zufall.php


_________________
Ciao Markus
ConPresso-Module
ConPresso und PHP 7
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neue Antwort erstellen    ConPresso Community Foren-Übersicht -> ConPresso 3.x Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen