lang ist's her: rubric_include mit markierten Artikeln

Allgemeine Infos zu ConPressoPlus.
Zweck, Änderungen, etc.
Benutzeravatar
hscha
ConPresso-Experte
Beiträge: 799
Registriert: 22.02.2006 23:00
Wohnort: Berlin
Hat sich bedankt: 222 Mal
Danksagung erhalten: 32 Mal

lang ist's her: rubric_include mit markierten Artikeln

Beitrag von hscha »

Hallo Markus,

für meine Chorseite würde ich gern das Thema "rubric_include" wieder aufwärmen...
Hier: viewtopic.php?f=15&t=4576&hilit=rubric_include&start=15...hatten wir u.a. ausführlich darüber diskutiert (uff, schon 12 Jahre her!).
Ich würde gern aus meinem Liedrepertoire über ein Feld im Template einzelne Artikel markieren können und diese in einer Extra-Rubrik gesammelt als Liste ausgeben.
Ich weiß jedoch nicht mehr, wie man das realisieren kann. Meines Wissens haben wir damals eine bestimmte Anzahl von Artikeln gesammelt in einer anderen Rubric ausgegeben...
Falls es dich nicht zu sehr nervt: Kannst du meinem Gedächtnis auf die Sprünge helfen?
Grüße aus Berlin von
Horst
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7457
Registriert: 01.01.1970 02:00
Hat sich bedankt: 117 Mal
Danksagung erhalten: 939 Mal

Re: lang ist's her: rubric_include mit markierten Artikeln

Beitrag von MarkusR »

Hallo Horst,

ich habe keine Erinnerung daran, ob wir das damals für Dich gelöst haben.

Im Grunde ist es ja nur eine Modifikation der SQL-Abfrage.

Dazu müsste man eben Name und Typ des abzufragendes Feldes sowie den zu erwartenden Inhalt kennen.
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
Benutzeravatar
hscha
ConPresso-Experte
Beiträge: 799
Registriert: 22.02.2006 23:00
Wohnort: Berlin
Hat sich bedankt: 222 Mal
Danksagung erhalten: 32 Mal

Re: lang ist's her: rubric_include mit markierten Artikeln

Beitrag von hscha »

Hallo Markus,
ich habe es mit einer Checkbox (mod_text) versucht: Feldname ist "song4event". Wenn ich das Häkchen setze, wird in der Tabelle 'cpo_content_text' der Feldname 'song4event' angelegt und als Text ebenfalls 'song4event'. Den entsprechenden Artikel muss man dann über die Artikelnr. in cpo_news suchen, was bedeutet, zunächst über 5000 Datensätze zu durchsuchen, dann nochmal 1100...
Die ursprüngliche Funktion rubric_include sucht direkt in cpo_news.
Wahrscheinlich ist es eher sinnvoll, ein Feld aus cpo_news zu verwenden, z.B. 'commentary', und dort einen entsprechenden Wert einzutragen, z.B. 'event' o.ä.
Hast du eine Idee dazu?
Grüße von Horst
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7457
Registriert: 01.01.1970 02:00
Hat sich bedankt: 117 Mal
Danksagung erhalten: 939 Mal

Re: lang ist's her: rubric_include mit markierten Artikeln

Beitrag von MarkusR »

hscha hat geschrieben: 15.10.2025 11:07 Wahrscheinlich ist es eher sinnvoll, ein Feld aus cpo_news zu verwenden, z.B. 'commentary', und dort einen entsprechenden Wert einzutragen, z.B. 'event' o.ä.
Wozu denn?
Die SQL-Abfrage kann man ja einfach über mehrere Tabellen laufen lassen.

Das Abfragen vom Inhalt spezieller Felder ist ja das, was mod_feature_search macht.

Aber statt einem ganzen Modul tut es auch die Änderung/Ergänzung der Abfrage, zur Not auch zwei oder verschachtelte Abfragen.
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
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7457
Registriert: 01.01.1970 02:00
Hat sich bedankt: 117 Mal
Danksagung erhalten: 939 Mal

Re: lang ist's her: rubric_include mit markierten Artikeln

Beitrag von MarkusR »

Hier mal ein Vorschlag mit konkretem Code:

statt

Code: Alles auswählen

$query = "SELECT rubric_id, commentary, verfallsdatum, templates_id, nr, idx, email, autor, pub_datum, titel, initial, freigabe, changer FROM " . CPO_NEWS . " WHERE " . ( $cpoSystem['release'] ? "artikel_archiv<2 AND freigabe=" . STATE_RELEASED : "artikel_archiv<1 AND freigabe!=" . STATE_BLOCKED ) . " AND pub_datum<='" . date('Y-m-d H:i:s', time()) . "' AND verfallsdatum>='".date('Y-m-d H:i:s', time())."' AND rubric_id='".$rubrik_id."' ORDER BY ".$sortierung." LIMIT 0," . $artikelanzahl . " ";
könnte es heißen

Code: Alles auswählen

$query = "SELECT rubric_id, commentary, verfallsdatum, templates_id, nr, idx, email, autor, pub_datum, titel, initial, freigabe, changer FROM " . CPO_NEWS . " WHERE " . ( $cpoSystem['release'] ? "artikel_archiv<2 AND freigabe=" . STATE_RELEASED : "artikel_archiv<1 AND freigabe!=" . STATE_BLOCKED ) . " AND pub_datum<='" . date('Y-m-d H:i:s', time()) . "' AND verfallsdatum>='".date('Y-m-d H:i:s', time())."' AND rubric_id='".$rubrik_id."' AND nr IN (SELECT article_id FROM " . CPO_CONTENT_TEXT . " WHERE fieldname='song4event' AND text='song4event') ORDER BY ".$sortierung." LIMIT 0," . $artikelanzahl . " ";
also ergänzt um
AND nr IN (SELECT article_id FROM " . CPO_CONTENT_TEXT . " WHERE fieldname='song4event' AND text='song4event')
vor ORDER BY
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
Benutzeravatar
hscha
ConPresso-Experte
Beiträge: 799
Registriert: 22.02.2006 23:00
Wohnort: Berlin
Hat sich bedankt: 222 Mal
Danksagung erhalten: 32 Mal

Re: lang ist's her: rubric_include mit markierten Artikeln

Beitrag von hscha »

Danke! (Darauf hatte ich gehofft!)
Ich probiere es heute Abend aus und bin sehr gespannt ;-)
Zuletzt geändert von hscha am 15.10.2025 12:12, insgesamt 1-mal geändert.
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7457
Registriert: 01.01.1970 02:00
Hat sich bedankt: 117 Mal
Danksagung erhalten: 939 Mal

Re: lang ist's her: rubric_include mit markierten Artikeln

Beitrag von MarkusR »

Falls es nicht funktioniert, dann werde doch bitte etwas konkreter mit Preisgebung des verwendeten Codes.
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
Benutzeravatar
hscha
ConPresso-Experte
Beiträge: 799
Registriert: 22.02.2006 23:00
Wohnort: Berlin
Hat sich bedankt: 222 Mal
Danksagung erhalten: 32 Mal

Re: lang ist's her: rubric_include mit markierten Artikeln

Beitrag von hscha »

Na klar! :D
Benutzeravatar
hscha
ConPresso-Experte
Beiträge: 799
Registriert: 22.02.2006 23:00
Wohnort: Berlin
Hat sich bedankt: 222 Mal
Danksagung erhalten: 32 Mal

Re: lang ist's her: rubric_include mit markierten Artikeln

Beitrag von hscha »

Hallo Markus,
die Abfrage funktioniert perfekt!
Hier der ganze Funktionscode:

Code: Alles auswählen

function rubric_include($rubrik_id, $template_id, $artikelanzahl, $sortierung) {
global $content, $db_autor, $db_changer, $db_content, $db_email,
       $db_idx, $db_initial, $db_last_modify, $db_nr, $db_pub_datum,
       $db_rubric_id, $db_template, $db_titel, $db_verfallsdatum,
       $fetchedcontent, $hdlr_parser_content, $hdlr_parser_replacement,
       $key, $_name, $parameters, $placeholder, $placeholders_cache,
       $replacement, $_type, $typeNames, $cpoSystem, $tl, $activeModules;
 

switch ($sortierung){
   case 'manual': $sortierung = 'sort_id desc'; break;
   case 'index auf': $sortierung = 'idx asc'; break;
   case 'index ab': $sortierung = 'idx desc'; break;
   default: $sortierung = 'sort_id desc';
}

$pagetype = 'index';

ob_start();

// datenbank-abfrage

$query = "SELECT rubric_id, commentary, verfallsdatum, templates_id, nr, idx, email, autor, pub_datum, titel, initial, freigabe, changer FROM " . CPO_NEWS . " WHERE " . ( $cpoSystem['release'] ? "artikel_archiv<2 AND freigabe=" . STATE_RELEASED : "artikel_archiv<1 AND freigabe!=" . STATE_BLOCKED ) . " AND pub_datum<='" . date('Y-m-d H:i:s', time()) . "' AND verfallsdatum>='".date('Y-m-d H:i:s', time())."' AND rubric_id='".$rubrik_id."' AND nr IN (SELECT article_id FROM " . CPO_CONTENT_TEXT . " WHERE fieldname='song4event' AND text='song4event') ORDER BY ".$sortierung." LIMIT 0," . $artikelanzahl . " ";
$db = new DB;
$db->query($query);

while($db->next_record()) {

    $db_template      = $template_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');
    require(CPO_BASEDIR.'_include/select_template.php');

}

$rubriccontent = ob_get_contents();
ob_end_clean();

return $rubriccontent;
}
Um das Ganze flexibler zu gestalten, könnte man
fieldname='song4event' AND text='song4event'
per Variable übergeben. Ausprobiert habe ich das nur für die Checkbox von mod_text.

1000 Dank und Grüße von
Horst