ConPresso Community

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

 
Zufällige Anordung der Artikel

 
Neue Antwort erstellen    ConPresso Community Foren-Übersicht -> laufender Betrieb ConPresso 4
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
MarkusR
Handbuchversteher


Anmeldungsdatum: 01.01.1970
Beiträge: 7009

BeitragVerfasst am: 15.06.2009 13:53    Titel: Zufällige Anordung der Artikel Antworten mit Zitat

Nachdem hier ja schon nachzulesen ist, wie man eine alphabetische Sortierung der Artikel erzeugt
http://community.conpresso.de/viewtopic.php?p=22485#22485

hier nun eine Version für eine zufällige Anordnung (um die Seiten abwechslungsreicher zu gestalten - Google liebt das):

in _include/common.inc.php
Code:
// some defaults for common options (these need translations)
$articleSortMethodsDefault = 'idx, pub_datum desc';
$articleSortMethods = array(
    __('by index, date (newest on top)') => 'idx, pub_datum desc',
    __('by index, date (oldest on top)') => 'idx, pub_datum asc',
    __('manual') => 'sort_id desc'
);

ändern zu
Code:
// some defaults for common options (these need translations)
$articleSortMethodsDefault = 'idx, pub_datum desc';
$articleSortMethods = array(
    __('by index, date (newest on top)') => 'idx, pub_datum desc',
    __('by index, date (oldest on top)') => 'idx, pub_datum asc',
    __('zufällig') => 'titel, idx asc',
    __('manual') => 'sort_id desc'
);


dann in _inculdesite/i_index.php den Block
Code:
$GLOBALS['lastUpdated'] = 0;
$articleSeparator = '';
while($db->next_record()) {
    echo $articleSeparator;

    $db_template      = $db->v('templates_id');
    $db_nr            = $db->v('nr');
    $db_idx           = $db->v('idx');
    $db_email         = $db->v('email');
    $db_autor         = $db->v('autor');
    $db_changer       = $db->v('changer');
    $db_pub_datum     = $db->v('pub_datum');
    $db_verfallsdatum = $db->v('verfallsdatum');
    $db_commentary    = $db->v('commentary');
    $db_titel         = $db->v('titel');
    $db_initial       = $db->v('initial');
    $db_freigabe      = $db->v('freigabe');
    $db_rubric_id     = $db->v('rubric_id');
    $db_last_modify   = $db->v('last_modify');
    if ($GLOBALS['lastUpdated']<strtotime($db_last_modify)) {
        $GLOBALS['lastUpdated'] = strtotime($db_last_modify);
    }
    require(CPO_BASEDIR.'_include/select_template.php');

    $articleSeparator = $cpoRubricSettings['articleSeparator'];
}

ersetzen durch
Code:
$GLOBALS['lastUpdated'] = 0;
$articleSeparator = '';
if ($cpoRubricSettings['sorting'] != 'titel, idx asc')  { // keine Zufallswiedergabe
   while($db->next_record()) {
      echo $articleSeparator;

      $db_template      = $db->v('templates_id');
      $db_nr            = $db->v('nr');
      $db_idx           = $db->v('idx');
      $db_email         = $db->v('email');
      $db_autor         = $db->v('autor');
      $db_changer       = $db->v('changer');
      $db_pub_datum     = $db->v('pub_datum');
      $db_verfallsdatum = $db->v('verfallsdatum');
      $db_commentary    = $db->v('commentary');
      $db_titel         = $db->v('titel');
      $db_initial       = $db->v('initial');
      $db_freigabe      = $db->v('freigabe');
      $db_rubric_id     = $db->v('rubric_id');
      $db_last_modify   = $db->v('last_modify');
      if ($GLOBALS['lastUpdated']<strtotime($db_last_modify)) {
         $GLOBALS['lastUpdated'] = strtotime($db_last_modify);
      }
      require(CPO_BASEDIR.'_include/select_template.php');

      $articleSeparator = $cpoRubricSettings['articleSeparator'];
   }
} elseif ($cpoRubricSettings['sorting'] == 'titel, idx asc')  { // Zufallswiedergabe
   $randArticles = array();
   $ordNr = 0;
   while($db->next_record()) {
      $randArticles[$ordNr]['db_template']      = $db->v('templates_id');
      $randArticles[$ordNr]['db_nr']            = $db->v('nr');
      $randArticles[$ordNr]['db_idx']           = $db->v('idx');
      $randArticles[$ordNr]['db_email']         = $db->v('email');
      $randArticles[$ordNr]['db_autor']         = $db->v('autor');
      $randArticles[$ordNr]['db_changer']       = $db->v('changer');
      $randArticles[$ordNr]['db_pub_datum']     = $db->v('pub_datum');
      $randArticles[$ordNr]['db_verfallsdatum'] = $db->v('verfallsdatum');
      $randArticles[$ordNr]['db_commentary']    = $db->v('commentary');
      $randArticles[$ordNr]['db_titel']         = $db->v('titel');
      $randArticles[$ordNr]['db_initial']       = $db->v('initial');
      $randArticles[$ordNr]['db_freigabe']      = $db->v('freigabe');
      $randArticles[$ordNr]['db_rubric_id']     = $db->v('rubric_id');
      $randArticles[$ordNr]['db_last_modify']   = $db->v('last_modify');
      $ordNr++;
   }
   shuffle($randArticles);
   foreach ($randArticles AS $outputArticle) {
      echo $articleSeparator;

      $db_template      = $outputArticle['db_template'];
      $db_nr            = $outputArticle['db_nr'];
      $db_idx           = $outputArticle['db_idx'];
      $db_email         = $outputArticle['db_email'];
      $db_autor         = $outputArticle['db_autor'];
      $db_changer       = $outputArticle['db_changer'];
      $db_pub_datum     = $outputArticle['db_pub_datum'];
      $db_verfallsdatum = $outputArticle['db_verfallsdatum'];
      $db_commentary    = $outputArticle['db_commentary'];
      $db_titel         = $outputArticle['db_titel'];
      $db_initial       = $outputArticle['db_initial'];
      $db_freigabe      = $outputArticle['db_freigabe'];
      $db_rubric_id     = $outputArticle['db_rubric_id'];
      $db_last_modify   = $outputArticle['db_last_modify'];
      if ($GLOBALS['lastUpdated']<strtotime($db_last_modify)) {
         $GLOBALS['lastUpdated'] = strtotime($db_last_modify);
      }
      require(CPO_BASEDIR.'_include/select_template.php');

      $articleSeparator = $cpoRubricSettings['articleSeparator'];
   }
}

_________________
Ciao Markus
ConPresso-Module
ConPresso und PHP 7

 
Für dieses Posting bedanken sich die folgenden User: baluo, Mr. Magpie
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
dutch
ConPresso-Experte


Anmeldungsdatum: 04.07.2007
Beiträge: 529

BeitragVerfasst am: 08.07.2014 09:13    Titel: Zufallsausgabe in 4.1.6? Antworten mit Zitat

Hallo Markus,

bin gerade auf diesen alten Beitrag gestoßen, auf der Suche nach Artikelzufallsausgabe.
So wie hier beschrieben, geht es in der Version 4.1.6 wohl nicht...
Wenn ich mich nicht irre, gibt es die entsprechende Stelle in der common.inc.php nicht (mehr).

Wie müsste man das für die 4.1.6 realisieren Question

Gruß,
dutch
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MarkusR
Handbuchversteher


Anmeldungsdatum: 01.01.1970
Beiträge: 7009

BeitragVerfasst am: 08.07.2014 11:06    Titel: Antworten mit Zitat

In CPO 4.1.6 benutzt man einfach die Seitentemplates und folgende Zeile
Code:
<!-- Page: articles; sorting=RAND(); -->


Ansonsten suche mal in _admin/rubrics.php den Block
Code:
$fields = array(
    'titel ASC'          => 'Title ascending',
    'titel DESC'         => 'Title descending',
    'datum ASC'          => 'Date ascending',
    'datum DESC'         => 'Date descending',
    'verfallsdatum ASC'  => 'Expiration date ascending',
    'verfallsdatum DESC' => 'Expiration date descending',
    'pub_datum ASC'      => 'Publication date ascending',
    'pub_datum DESC'     => 'Publication date descending',
    'idx ASC'            => 'Index ascending',
    'idx DESC'           => 'Index descending',
    'sort_id DESC'       => 'Manual',
);

und ergänze im Array
Code:
'RAND()'       => 'Random',


Nicht getestet!

Nachtrag: ORDER BY RAND() kann bei großen Datenmengen wohl auch zu langen Laufzeiten (slow queries) führen. Bei intensivem Einsatz oder sehr großen Webauftritten sollte man daher ggf. doch den obenstehenden Code umarbeiten. Wenn die Laufzeiten unauffällig sind, kann man aber natürlich einfach rand() benutzen.

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


Anmeldungsdatum: 04.07.2007
Beiträge: 529

BeitragVerfasst am: 15.07.2014 13:52    Titel: Antworten mit Zitat

Hallo Markus,

sorry für die späte Rückmeldung.
Ich werde es ausprobieren.
Danke!

Gruß,
dutch
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
dutch
ConPresso-Experte


Anmeldungsdatum: 04.07.2007
Beiträge: 529

BeitragVerfasst am: 21.07.2014 10:54    Titel: feedback Antworten mit Zitat

Habe die random-Ausgabe jetzt eingebaut und funktioniert bestens Wink
Danke!

Gruß,
dutch
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neue Antwort erstellen    ConPresso Community Foren-Übersicht -> laufender Betrieb ConPresso 4 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