Zufallswiedergabe
-
- ConPresso-Newbie
- Beiträge: 20
- Registriert: 05.10.2005 14:15
- Danksagung erhalten: 1 Mal
Zufallswiedergabe
Hallo semf,
ich möchte das Latest-News Modul verwenden, um zufällig vier Artikel aus verschiedenen Rubriken anzeigen zu lassen.
Wenn ich das Prinzip richtig verstanden habe, sucht das Modul zufällig einen Artikel heraus und stellt diesen mit den nächsten 3 Artikel dieser Rubrik dar.
Wenn der Zufall nun aber auf einen der ersten drei eingestellten Artikel fällt, werden weniger als vier dargestellt. So kann es vorkommen, dass nur 1 bis 3 Artikel ausgelesen werden.
Ist es möglich, dass immer vier Artikel angezeigt werden?
Dann müsste vielleicht das Auslesen wiederholt werden, bis man 4 Artikel erreicht hat?!?!
(Einstellungen: "Navigation aktiviert" und "Artikel pro Seite: 4")
ich möchte das Latest-News Modul verwenden, um zufällig vier Artikel aus verschiedenen Rubriken anzeigen zu lassen.
Wenn ich das Prinzip richtig verstanden habe, sucht das Modul zufällig einen Artikel heraus und stellt diesen mit den nächsten 3 Artikel dieser Rubrik dar.
Wenn der Zufall nun aber auf einen der ersten drei eingestellten Artikel fällt, werden weniger als vier dargestellt. So kann es vorkommen, dass nur 1 bis 3 Artikel ausgelesen werden.
Ist es möglich, dass immer vier Artikel angezeigt werden?
Dann müsste vielleicht das Auslesen wiederholt werden, bis man 4 Artikel erreicht hat?!?!
(Einstellungen: "Navigation aktiviert" und "Artikel pro Seite: 4")
-
- Modul-Entwickler
- Beiträge: 1853
- Registriert: 01.01.1970 02:00
- Wohnort: Gütersloh-Friedrichsdorf
- Hat sich bedankt: 14 Mal
- Danksagung erhalten: 40 Mal
hmm, kann ich jetzt so aus dem stand wenig zu sagen. als workaround
evtl. mal vier profile mit jeweils einem artikel aus einer rubrik mittels
index_php.php untereinander setzen. ungetestet!
evtl. mal vier profile mit jeweils einem artikel aus einer rubrik mittels
index_php.php untereinander setzen. ungetestet!
Viel Erfolg!
Module ConPresso 4.x
Latest News
Tell-a-friend
Module ConPresso 3.4.x
Index_X
Kontakt
RSS-Feed
Umfrage
Gästebuch
Tell-a-Friend
Modul-Download
Module ConPresso 4.x
Latest News
Tell-a-friend
Module ConPresso 3.4.x
Index_X
Kontakt
RSS-Feed
Umfrage
Gästebuch
Tell-a-Friend
Modul-Download
-
- ConPresso-Newbie
- Beiträge: 20
- Registriert: 05.10.2005 14:15
- Danksagung erhalten: 1 Mal
Hi semf,
danke für die Antwort. Dein Workaround habe ich ausprobiert und würde auch funktionieren.
Find ich aber etwas unschön, außerdem könnte der Zufall dann auch auf den selben Artikel fallen
Bin der Sache aber dann noch auf den Grund gegangen und habe was Interessantes entdeckt.
Der Zufall wird wohl anhand der Artikel-ID der betroffenen Rubriken ausgewählt. Wenn nun die maximale Artikelanzahl auf bspw. 4 gestellt wird und der Zufall auf die niedrigste Artikel-ID dieser Rubriken fällt, kommt nur ein Artikel. Die Abfrage müsste wohl die maximale Anzahl berücksichtigen und dementsprechend die Artikel ausgeben.
Bsp.: bei max. 4 Artikel dürfte der Zufall nur auf die viertniedrigste ID fallen, so dass auch 4 Artikel ausgegeben werden können.
Bin mal gespannt, ob ich mehr oder weniger richtig liege ...
danke für die Antwort. Dein Workaround habe ich ausprobiert und würde auch funktionieren.
Find ich aber etwas unschön, außerdem könnte der Zufall dann auch auf den selben Artikel fallen

Bin der Sache aber dann noch auf den Grund gegangen und habe was Interessantes entdeckt.
Der Zufall wird wohl anhand der Artikel-ID der betroffenen Rubriken ausgewählt. Wenn nun die maximale Artikelanzahl auf bspw. 4 gestellt wird und der Zufall auf die niedrigste Artikel-ID dieser Rubriken fällt, kommt nur ein Artikel. Die Abfrage müsste wohl die maximale Anzahl berücksichtigen und dementsprechend die Artikel ausgeben.
Bsp.: bei max. 4 Artikel dürfte der Zufall nur auf die viertniedrigste ID fallen, so dass auch 4 Artikel ausgegeben werden können.
Bin mal gespannt, ob ich mehr oder weniger richtig liege ...

-
- ConPresso-Profi
- Beiträge: 1004
- Registriert: 01.01.1970 02:00
- Wohnort: Wuppertal
- Hat sich bedankt: 274 Mal
- Danksagung erhalten: 59 Mal
Jetzt verstehe ich, warum bei mir die Datei "Newsticker_(vertikal).txt" nach jedem Aufruf von makefile.php unterschiedlich groß ist und dementsprechend eine unterschiedliche Anzahl "Latest News" enthält.
Unter Zufallswiedergabe hätte ich eher eine zufällige Reihenfolge der gefundenen Artikel vermutet denn eine zufällige Anzahl und Auswahl von Artikeln.
Außerdem heißt dies ja, dass nur beim Ausführen der makefile.php eine zufällige Auswahl der Latest News erfolgt. Das hatte ich mir bisher so noch nicht klar gemacht.
Eigentlich hatte ich vor, den Aufruf von makefile.php mit dem Ausloggen vom Backend zu koppeln (wie das geht: http://community.conpresso.de/viewtopic.php?t=2915), da ich keine Cronjobs einsetzen kann.
Jetzt die eigentliche Frage: Gibt es eine gute Möglichkeit, wie ich - bei gutem Zeitverhalten - makefile.php öfters aufrufen lassen kann?
Unter Zufallswiedergabe hätte ich eher eine zufällige Reihenfolge der gefundenen Artikel vermutet denn eine zufällige Anzahl und Auswahl von Artikeln.
Außerdem heißt dies ja, dass nur beim Ausführen der makefile.php eine zufällige Auswahl der Latest News erfolgt. Das hatte ich mir bisher so noch nicht klar gemacht.
Eigentlich hatte ich vor, den Aufruf von makefile.php mit dem Ausloggen vom Backend zu koppeln (wie das geht: http://community.conpresso.de/viewtopic.php?t=2915), da ich keine Cronjobs einsetzen kann.
Jetzt die eigentliche Frage: Gibt es eine gute Möglichkeit, wie ich - bei gutem Zeitverhalten - makefile.php öfters aufrufen lassen kann?
-
- ConPresso-Entwickler
- Beiträge: 1748
- Registriert: 01.01.1970 02:00
- Hat sich bedankt: 81 Mal
- Danksagung erhalten: 133 Mal
Hi Magpie,
Ich bin mit dem Thema nicht ganz vertraut, aber ich denke sowas koennte funktionieren:
Das prueft ob das Alter der Datei in $filename den Wert $maxSekundenAlt ueberschreitet und ruft in dem Fall makefile.php auf.
Sowas koennte man z.B. in den globalen Header oder aehnliches einbauen.
Balu
Ich bin mit dem Thema nicht ganz vertraut, aber ich denke sowas koennte funktionieren:
Code: Alles auswählen
$filename = 'Newsticker_(vertikal).txt';
$maxSekundenAlt = 5*60; // 5 Minuten
if (file_exists($filename) && time()-filemtime($filename)>$maxSekundenAlt) {
include('makefile.php');
}
Sowas koennte man z.B. in den globalen Header oder aehnliches einbauen.
Balu
-
- ConPresso-Profi
- Beiträge: 1004
- Registriert: 01.01.1970 02:00
- Wohnort: Wuppertal
- Hat sich bedankt: 274 Mal
- Danksagung erhalten: 59 Mal
Erstmal vielen Dank Balu,
diese Lösung hilft ersteinmal, die Serverlast erheblich zu reduzieren.
Leider besteht aber dennoch das "Problem", dass die Zusammenstellung der Latest News bei aktivierter "Zufallswiedergabe" erheblich in der Anzahl News variiert.
Ich habe übrigens deine Lösung etwas generalisiert, da ja das Modul-Verzeichnis bei jedem Projekt anders sein kann:
diese Lösung hilft ersteinmal, die Serverlast erheblich zu reduzieren.
Leider besteht aber dennoch das "Problem", dass die Zusammenstellung der Latest News bei aktivierter "Zufallswiedergabe" erheblich in der Anzahl News variiert.
Ich habe übrigens deine Lösung etwas generalisiert, da ja das Modul-Verzeichnis bei jedem Projekt anders sein kann:
Code: Alles auswählen
$mod_latest_news_dir = $activeModules['Latest News']['directory'];
$filename = CPO_BASEDIR.$mod_latest_news_dir.'/Newsticker_(vertikal).txt';
$maxSekundenAlt = 5*60; // 5 Minuten
if (file_exists($filename) && time()-filemtime($filename)>$maxSekundenAlt) {
include(BASE_ABS.$mod_latest_news_dir.'/makefile.php');
}
-
- ConPresso-Profi
- Beiträge: 1004
- Registriert: 01.01.1970 02:00
- Wohnort: Wuppertal
- Hat sich bedankt: 274 Mal
- Danksagung erhalten: 59 Mal
... es sieht (für mich) so aus, als wenn beim Aufruf von makefile.php die Profil-ID nicht weggelassen werden kann. Deshalb muss der obige Code geändert werden zu: (Änderungen fett)
Code: Alles auswählen
$mod_latest_news_dir = $activeModules['Latest News']['directory'];
$filename = CPO_BASEDIR.$mod_latest_news_dir.'/Newsticker_(vertikal).txt';
$maxSekundenAlt = 5*60; // 5 Minuten
if (file_exists($filename) && time()-filemtime($filename)>$maxSekundenAlt) {
include(BASE_ABS.$mod_latest_news_dir.'/makefile.php[b]?profid=4[/b]');
}
-
- Handbuchversteher
- Beiträge: 7416
- Registriert: 01.01.1970 02:00
- Hat sich bedankt: 116 Mal
- Danksagung erhalten: 938 Mal
Das liegt daran wenn man statt mittels CPO_BASEDIR einen http-include mittels BASE_ABS macht. Dann fehlen natürlich die Rubrikinformationen, die man für die Benutzung der Alias-Funktion benötigt.
Ciao Markus
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
-
- ConPresso-Profi
- Beiträge: 1004
- Registriert: 01.01.1970 02:00
- Wohnort: Wuppertal
- Hat sich bedankt: 274 Mal
- Danksagung erhalten: 59 Mal
ich dachte, das müsste so gemacht werden, da es in den Moduleinstellungen heißt, makefile.php sollte mit
aufgerufen werden, also als http-include.
Wahrscheinlich habe ich nur noch nicht verstanden, was der Unterschied zwischen BASE_ABS und CPO_BASEDIR genau ist - oder ich sitz' auf der Leitung.
Dennoch vielen Dank und noch einen ruhigen Sonntag
Code: Alles auswählen
include("http://www.internate-vdp.de/mod_latest_news/makefile.php?profid=4");
Wahrscheinlich habe ich nur noch nicht verstanden, was der Unterschied zwischen BASE_ABS und CPO_BASEDIR genau ist - oder ich sitz' auf der Leitung.
Dennoch vielen Dank und noch einen ruhigen Sonntag
-
- Handbuchversteher
- Beiträge: 7416
- Registriert: 01.01.1970 02:00
- Hat sich bedankt: 116 Mal
- Danksagung erhalten: 938 Mal
Mit einem echo davor erfährt man es.Mr. Magpie hat geschrieben:Wahrscheinlich habe ich nur noch nicht verstanden, was der Unterschied zwischen BASE_ABS und CPO_BASEDIR genau ist - oder ich sitz' auf der Leitung.
BASE_ABS ist die absolute URL des Projektes
CPO_BASEDIR ist die Pfadangabe auf dem Server
Die Angabe einer Profil-ID ist natürlich nötig bei einem http-include.
Bei einem normalen include ist die Rubrik ja bekannt und kann über den Rubrikalias genutzt werden.
Allerdings habe ich dies nicht für makefile getestet sondern nur für die normalen Latest-News-Ausgaben.
Kann also auch alles falsch sein. Und wenn es als http-include funzt, dann ist ja gut.
Ich hatte mich ja auch nur auf
bezogen. Wenn man dann natürlich weiß, daß... es sieht (für mich) so aus, als wenn beim Aufruf von makefile.php die Profil-ID nicht weggelassen werden kann.
dann sieht es für mich auch so aus.es in den Moduleinstellungen heißt, makefile.php sollte mit Code:Code: Alles auswählen
include("http://www.internate-vdp.de/mod_latest_news/makefile.php?profid=4");
aufgerufen werden
Ciao Markus
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
-
- ConPresso-Profi
- Beiträge: 1004
- Registriert: 01.01.1970 02:00
- Wohnort: Wuppertal
- Hat sich bedankt: 274 Mal
- Danksagung erhalten: 59 Mal
Ich möchte gerne dieses Thema wieder anpacken. Was muss ich wo ändern, damit nicht eine zufällige Artikelanzahl erscheint?Mr. Magpie hat geschrieben:Leider besteht aber dennoch das "Problem", dass die Zusammenstellung der Latest News bei aktivierter "Zufallswiedergabe" erheblich in der Anzahl News variiert.
Günther Ludwig
-
- Handbuchversteher
- Beiträge: 7416
- Registriert: 01.01.1970 02:00
- Hat sich bedankt: 116 Mal
- Danksagung erhalten: 938 Mal
Aus meiner Sicht wird keine reine Zufallswiedergabe erzeugt sondern es wird lediglich ein zufälliger Startpunkt gewählt, ab dem dann die gewünschte Anzahl ausgegeben wird. Daher kann es bei einem Start kurz vor Ende der Artikelliste zu geringeren Anzahlen kommen.
Wenn man keine "echte" Zufallswiedergabe benötigt, dann könnte man in index.inc.php den Teil
ersetzen durch
wobei ich nicht getestet habe ob dann die -1 da noch benötigt wird...
Wenn man keine "echte" Zufallswiedergabe benötigt, dann könnte man in index.inc.php den Teil
Code: Alles auswählen
//Random-Mode
if ($arrSettings['randommode']==1) {
$_GET['pos'] = rand($arrSettings['startposition'], $numberOfNews-1);
}
Code: Alles auswählen
//Random-Mode
if ($arrSettings['randommode']==1) {
$_GET['pos'] = rand($arrSettings['startposition'], $numberOfNews-$arrSettings['articlespersite']-1);
}
Ciao Markus
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
-
- ConPresso-Profi
- Beiträge: 1004
- Registriert: 01.01.1970 02:00
- Wohnort: Wuppertal
- Hat sich bedankt: 274 Mal
- Danksagung erhalten: 59 Mal
Hallo Markus, leider funktioniert das nicht. Ich hab' die Codeersetzung an beiden Vorkommen in _includes/index.inc.php gemacht. Mit dem Ergebnis, dass die Anzahl der Ticker-Meldungen immer noch sehr stark schwankt.
Dann hab' ich entdeckt, dass auch makefile.php den gleichen Zufallscode zweimal enthält und auch diesen dann mit deinem Vorschlag ersetzt.
Nun ist der Zufall völlig eliminiert
- es wird immer dieselbe Anzahl an Artikeln in genau derselben Reihenfolge getickert.
Daher versuchsweise den ursprünglichen Code in _includes/index.inc.php wiederhergestellt: Macht keinen Unterschied, Anzahl und Reihenfolge der Ticker-Meldungen bleibt starr.
Dann hab' ich entdeckt, dass auch makefile.php den gleichen Zufallscode zweimal enthält und auch diesen dann mit deinem Vorschlag ersetzt.
Nun ist der Zufall völlig eliminiert

Daher versuchsweise den ursprünglichen Code in _includes/index.inc.php wiederhergestellt: Macht keinen Unterschied, Anzahl und Reihenfolge der Ticker-Meldungen bleibt starr.
Günther Ludwig
-
- Handbuchversteher
- Beiträge: 7416
- Registriert: 01.01.1970 02:00
- Hat sich bedankt: 116 Mal
- Danksagung erhalten: 938 Mal
Schade daß ich selbst keinen Webauftritt habe an dem man das betrachten könnte. Über die ausgegebenen Artikel könnte man vielleicht auf das Verhalten schließen... 

Ciao Markus
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle