Newsliste oder Blog

Alles rund um Module und Plugins in CONTENIDO 4.9.
Antworten
Skyjacker
Beiträge: 11
Registriert: Do 10. Jan 2013, 12:42
Kontaktdaten:

Newsliste oder Blog

Beitrag von Skyjacker » Mi 6. Feb 2013, 12:26

Hey Leute,

ich habe da mal eine Frage, und zwar: ich möchte gerne das sich mehrere Artikel einer Kategorie einfach auf einer Seite untereinander setzen ohne das man auf mehr lese button oder ähnliches klicken muss. Alles ganz einfach und simple gehalten.

Ich habe ja dieses Newsliste Modul schon entdeckt, allerdings ließt Contenido irgendwie das CMS_HTML und CMS_HTMLHEAD nicht aus und so habe ich nur Datum und diesen mehr button da, der auch direkt auf den Artikel verlinkt. Was mache ich falsch? oder gibt es evtl eine einfachere Möglichkeit Artikel einfach und schnell untereinander zu setzen?

Wäre euch über eine Antwort sehr dankbar :-)

Spider IT
Beiträge: 1416
Registriert: Fr 3. Dez 2004, 10:15

Re: Newsliste oder Blog

Beitrag von Spider IT » Mi 6. Feb 2013, 15:19

Hallo Skyjacker,

damit das Newsmodul Inhalte anzeigen kann, müssen diese in den Artikeln in den richtigen Feldern eingetragen sein.
Damit geht es nicht nur um CMS_HTMLHEAD und CMS_HTML, sondern auch die Feldnummern sind wichtig, also CMS_HTMLHEAD[1] und CMS_HTML[1].
Im Newsmodul werden die Texte aus CMS_HTML[1] zudem auf eine vorgegebene Länge abgeschnitten (Aufruf der Funktion capiStrTrimAfterWord() mit Längenvorgabe der Variable $mxtext).
Mit ein paar wenige Handgriffe kannst du das wahrscheinlich an deine Bedürfnisse anpassen, je nachdem was genau du erreichen möchtest.

Gruß
René

xmurrix
Beiträge: 3147
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: Newsliste oder Blog

Beitrag von xmurrix » Mi 6. Feb 2013, 16:22

Hallo Skyjacker,

du kannst folgende Lösung dafür verwenden.

Die Artikel, deren Inhalt in der Liste erscheinen sollen, sollten im Layout die Marker "<!--start:content-->" und "<!--end:content-->", das kann man später dafür verwenden, um den Inhalt darin zu extrahieren. Hier ein Beipsiel für das Layout:

Code: Alles auswählen

<html>
    <body>
        <!--start:content-->
        <!--- ... content of article --->
        <!--end:content-->
    </body>
</html>
Dann erstelle ein Modul, das follgenden Code im Module-Output hat:

Code: Alles auswählen

<?php
// include some files
cInclude('classes/Contenido_Category', 'Contenido_Category_Articles.class.php');
cInclude('classes/Contenido_Category', 'Contenido_Category.class.php');

if (!is_object($db)) {
    $db = new DB_Contenido();
}
$oCat = new Contenido_Category_Articles($db, $cfg, $client, $lang);

// Load all articles in $myCategoryId
$aArticles = $oCat->getArticlesInCategory($myCategoryId);
$oUrl = Contenido_Url::getInstance();

// Loop through article list
foreach ($aArticles as $oArticle) {
    // full url to article
    $aParams = array(
        'idart' => $oArticle->get('idart'),
        'lang' => $lang
    );
    $url = $oUrl->build($aParams, true);

    // get article output
    $articleContent = file_get_contents($url);

    // extract content
    $startPos = strpos($articleContent, "<!--start:content-->");
    $endPos   = strpos($articleContent, "<!--end:content-->");
    $articleCode = substr($articleContent, $startPos, $endPos - $startPos);

    // output content
    echo '<div class="my-article-list-item">' . $articleCode . "</div>\n";
}
?>
Der Code ist einfach gehalten ist also nicht mit Validierung/Fehlerbehandlung aufgebläht, du kannst es deinen Wünschen entsprechend erweitern.
Die Variable $myCategoryId enthält die Id der Kategorie, das kannst du mit CMS_VAR konfigurierbar achen, oder über Mandanteneinstellungen...
Bei dieser Variante wird zu jedem Artikel ein Request abgeschickt, d. h. die Seiten werden per file_get_contents() vom Server angefragt.
Es sollte sichergestellt sein, dass HTTP Requests mit file_get_contents erlaubt sind oder du verwendest Alternativen wie Sockets oder Curl.
Es wäre nicht schlecht, die Seiten zu Cachen, so dass nicht jedes Mal alle Artikel vom Server angefragt werden, z. B. nur alle 30 Minuten. Bedenke aber auch, dass ein einfacher Cache nicht Synchron mit dem Backend sein kann, d. h. Änderungen an Artikeln könnten erst später im Frontend erscheinen, also wenn der Cache ungültig und daher erneuert wird.

Wichtig:
Das Beispiel ist nicht getestet, bitte vorher Prüfen!

Gruß
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.

Skyjacker
Beiträge: 11
Registriert: Do 10. Jan 2013, 12:42
Kontaktdaten:

Re: Newsliste oder Blog

Beitrag von Skyjacker » Mi 6. Feb 2013, 20:12

Ah-! Danke schonmal für die Antworten, ich werde beides mal ausprobieren! Wo kann ich denn einstellen wo cms_html(1) usw ist? Ich mach ich das im Template oder wo ist das hinterlegt?

Spider IT
Beiträge: 1416
Registriert: Fr 3. Dez 2004, 10:15

Re: Newsliste oder Blog

Beitrag von Spider IT » Mi 6. Feb 2013, 21:15

Skyjacker hat geschrieben:Wo kann ich denn einstellen wo cms_html(1) usw ist?
Das steht in den genutzten Modulen, also im Headlinemodul muss CMS_HTMLHEAD[1] und im Textmodul CMS_HTML[1] verwendet sein.
Achte auch auf die Schreibweise, also GROSSSCHREIBUNG und eckigen Klammern.

Gruß
René

Skyjacker
Beiträge: 11
Registriert: Do 10. Jan 2013, 12:42
Kontaktdaten:

Re: Newsliste oder Blog

Beitrag von Skyjacker » Do 7. Feb 2013, 00:08

Super! Hat fast alles geklappt mit dem normalen Newslisten modul! Jetzt nur ein problem. wie bekomme ich mehr zeichen des Textes darein als nur die paar und den mehr button weg? :D Ihr seid super! :-)

Spider IT
Beiträge: 1416
Registriert: Fr 3. Dez 2004, 10:15

Re: Newsliste oder Blog

Beitrag von Spider IT » Do 7. Feb 2013, 10:03

Wie ich anfangs schon geschrieben habe, gibt es im Modul (im Output-Bereich) eine Variable $mxtext, welche für die maximale Anzahl Zeichen steht.
Diese kannst du natürlich einfach auf einen astronomischen Wert setzen, dann wird dein Text nicht mehr gekürzt.
Im Modul-Template (teaser-standard.html) ist der Link enthalten, diesen kannst du dort am besten auskommentieren (mit <!-- und -->).

Gruß
René

Skyjacker
Beiträge: 11
Registriert: Do 10. Jan 2013, 12:42
Kontaktdaten:

Re: Newsliste oder Blog

Beitrag von Skyjacker » Do 7. Feb 2013, 13:42

Ja das hattest du geschrieben, allerdings ist alles was ich im Modul "News" in der Ausgabe finde das hier...

Code: Alles auswählen

<?php
/**
 * Description: News output
 *
 * @version    1.0.0
 * @author     unknown
 * @copyright  four for business AG <www.4fb.de>
 *
 * {@internal
 *   created unknown
 *   $Id: news_output.php 2755 2012-07-25 20:10:28Z xmurrix $
 * }}
 */

echo "CMS_TEASER[1]";

?>
:-/

Spider IT
Beiträge: 1416
Registriert: Fr 3. Dez 2004, 10:15

Re: Newsliste oder Blog

Beitrag von Spider IT » Do 7. Feb 2013, 14:20

Hmmm, dann hab ich hier wohl ein älteres im Einsatz.
Gibt es da keinen Konfigurationsparameter?
Bei den neueren CMS-Typen kann man im Editor doch einen Stift anklicken um sie zu konfigurieren, ich habe aber mit CMS_TEASER noch nichts gemacht.

Gruß
René

Skyjacker
Beiträge: 11
Registriert: Do 10. Jan 2013, 12:42
Kontaktdaten:

Re: Newsliste oder Blog

Beitrag von Skyjacker » Do 7. Feb 2013, 14:33

Ja ich bin zu doof! :D Habs gefunden man kann das direkt im Artikel einstellen :D

Antworten