[NEU] Article Include

Alles rund um Module und Plugins in CONTENIDO 4.9.
Antworten
homtata
Beiträge: 1142
Registriert: Mi 14. Jan 2004, 14:41
Kontaktdaten:

[NEU] Article Include

Beitrag von homtata » Di 10. Sep 2013, 08:03

Hallo Community,

ich habe gerade gesehen, dass xmurrix parallel auch eine Lösung online hat. Diese orientiert sich mehr an der bisherigen Vorgehensweise; ich hab hier noch einen anderen Vorschlag, der im Prinzip mehr wie eine Artikelliste mit nur 1 Artikel funktioniert, aber sehr gut konfigurierbar und anpassbar ist. Hier die Details:

Modul Article Include
Schließt CMSTypen eines existierenden Artikesl in einen anderen ein

Wie arbeitet das Modul?
- Nachdem über die Vorlage ein konkreter Artikel gewählt wurde, werden im Ausgabebereich derzeit 3 Contenttypen für Überschriften und 5 Contenttypen für HTML-Text ausgelesen.
- Diese werden an das HTML-Template (Smarty) weitergeleitet.

Konfiguration der Vorlage
- Kategorie wählen, bestätigen, und dann Artikel auswählen.
- Vorlage zuordnen.

Anpassung des Output und des Template
- in dieser Kombination kann das Modul recht leicht für weitere Bedürfnisse angepasst werden.
- Es können weitere Contenttypen ausgelesen und an das Template weitergereicht werden.
- Es lassen sich beliebig viele neue Templates erstellen und zuordnen.
- Da nun nicht mehr in der älteren Version auf Ausgabedumps zurückgegriffen wird, sondern direkt auf den gespeicherten Inhalt, können diese Inhalte durch neue HTML-Templates auf Wunsch auch neu arrangiert werden.
- Im Prinzip handelt es sich hier eher um eine Art extrem kastrierte Teaserfunktion für EINEN Artikel.

Kommentare
- Ich habe bewusst auf den Zugriff aus dem Cache verzichtet, da ich das für meine Einsatzzwecke nicht brauche, und ich im Gegenteil manchmal den eigentlich erzeugten Code lieber nochmal angepasst hätte.
- So soll manchmal der gleiche Artikel an unterschiedlichen Stellen auf verschiedenen Seiten zum Einsatz kommen und dort aber anders aufgeteilt / verschachtelt sein, bzw. mal mit, mal ohne eine Überschrift des Originals.
- Das lässt sich mit diesem Modul und den unterschiedlichen HTML-Templates nun gut realisieren.

September 2013, Viktor Lehmann, TONE2TONE e.K.
Dateianhänge
content_article_include.zip
(6.67 KiB) 244-mal heruntergeladen

rethus
Beiträge: 1851
Registriert: Di 28. Mär 2006, 11:55
Wohnort: Mönchengladbach
Kontaktdaten:

Re: [NEU] Article Include

Beitrag von rethus » Di 26. Nov 2013, 17:38

Super Modul, genau das was ich gesucht habe. Danke!

+1 von mir :lol:
Could I help you... you can help me... buy me a coffee . (vielen ❤ Dank an: Seelauer, Peanut, fauxxami )

xstable.com: - HighSpeed Hosting, Domains, DomainReselling, Linux-Administration
suther.de: - App-Programierung, High-Performance-Webpages, MicroServices, API-Anbindungen & Erstellung

Software... ein Blick wert: GoogleCalender Eventlist, xst_dynamic_contentType

Christina5
Beiträge: 22
Registriert: Fr 18. Okt 2013, 12:28
Kontaktdaten:

Re: [NEU] Article Include

Beitrag von Christina5 » Mi 2. Jul 2014, 16:40

Hallo Homtata,

ich habe dein Article_include Modul bei mir in Contenido 4.9.3 eingebunden und es funktioniert super. Ist genau das, wonach cih gesucht habe.
Ich habe nur eine Frage: Wie kann ich das Modul anpassen, damit es keine CSS Styles oder image Container mehr rausfiltert?

Ich habe für die Artikel, die mit dem Modul eingebunden werden, ein extra Layout, in dem 2-3 Container stehen, welche mittels div-Klassen gelayaoutet werden. In die Container lade ich dann das Standard content_text oder das content_image Modul.
Leider filtert das Article_include Modul mir jedes Mal die div-Klassen bzw. das content_image Modul raus. In der Backend-Vorschau sieht noch alles super aus, sobald der Artikel aber in einem anderen eingebunden wird und das Modul also aktiv ist, ist alles weg.

Da ich mcih nicht so gut auskenne, wäre es toll, wenn du mir die Code-Stelle nennen kannst und mir sagst, wie ich das erweitern kann. Das ist sicherlich keine große Sache, oder?

Viele Grüße und besten Dank!
Christina

homtata
Beiträge: 1142
Registriert: Mi 14. Jan 2004, 14:41
Kontaktdaten:

Re: [NEU] Article Include

Beitrag von homtata » Mi 2. Jul 2014, 19:26

Hallo Christina,

ganz so einfach sind einige Dinge für dieses Modul nicht, wie Du dir das vorstellst, wenn du nicht ein paar Grundverständnisse und PHP-Kenntnisse für Contenido mitbringst... Mein Modul spricht ganz gezielt existierende Container aus Artikeln an und liest das aus, was dazu in der Datenbank gespeichert ist. In der Grundversion beschränkt sich das auf gewisse Texte und Überschriften. Es lässt sich auch auf Bildcontainer erweitern (Beispiel dann unten), erfordert dann aber auch immer angepasste Smarty-Templates.
Das Modul löscht KEINERLEI Tags oder Code aus dem Originalcontainer. Wenn umgebende DIV-Tags nicht "mitgenommen" werden, dann mit Sicherheit deshalb, weil diese im Layout (und damit außerhalb des Containers) stehen. Wenn du die brauchst, musst du die ggf. in den Smarty-Templates meines Moduls wieder ergänzen.
Möglicherweise ist aber auch Murrats Modul "mpArticleInclude" für dich besser geeignet, schaus dir mal an.

Hier eine Alternative für den Modul-Output, indem ein Bildcontainer mit der id 10 ausgelesen wird:

Code: Alles auswählen

<?php

/**
 *
 * @package Module
 * @subpackage IncludeArticle
 * @version SVN Revision $Rev:$
 *
 * @author info@tone2tone.com
 * @copyright TONE2TONE e.K., Viktor Lehmann
 * @link http://www.tone2tone.com
  */

#Get current settings
$containerid = "CMS_VALUE[4]";
$cms_idcat   = "CMS_VALUE[1]";
$cms_idart   = "CMS_VALUE[2]";
$template    = "CMS_VALUE[20]";

// Prepare module info. Needed later to check if defined default smarty template is a real file 
$mod = new cApiModule($cCurrentModule);
$tplpath = $cfgClient[$client]["path"]["frontend"]."data/modules/".$mod->get("alias")."/template/";

$article = new cApiArticleLanguage();
$article->loadByArticleAndLanguageId($cms_idart, $lang);
$thisimage = $article->getContent('CMS_IMGEDITOR', 10); // liefert die img-id
$img01 = new stdClass();

$loadimage = new cApiUpload();
$loadimage->loadBy( "idupl", $thisimage );

$img01->path   = "upload/".$loadimage->get("dirname").$loadimage->get('filename');


list ($img->width, $img->height, $img->type, $img->attr) = getimagesize( $img->uploadpath );


// use smarty template to output header text
$tpl = cSmartyFrontend::getInstance();
$tpl->assign('containerid', $containerid);
$tpl->assign('headline01', strip_tags($article->getContent('CMS_HTMLHEAD', 1)));
$tpl->assign('headline02', $article->getContent('CMS_HTMLHEAD', 2));
$tpl->assign('headline03', $article->getContent('CMS_HTMLHEAD', 3));
$tpl->assign('text01', $article->getContent('CMS_HTML', 1));
$tpl->assign('text02', $article->getContent('CMS_HTML', 2));
$tpl->assign('text03', $article->getContent('CMS_HTML', 3));
$tpl->assign('text04', $article->getContent('CMS_HTML', 4));
$tpl->assign('text05', $article->getContent('CMS_HTML', 5));
$tpl->assign('img01', $img01);

if ( $template != "" ) {
	$tpl->display($template);
}


?>
sowie ein dazugehöriges Smarty-HTML-Template:

Code: Alles auswählen

{if 0 lt $ulId|strlen}<!-- includeArticle -->{/if}

<div class='boxright' style=''>
	
	{if NULL neq $img01}<img src="{$img01->path}">{/if}
	{if $headline01 != ""}<h1>{$headline01}</h1>{/if}
	{if $text01 != ""}{$text01}{/if}
	
</div>

{if 0 lt $ulId|strlen}<!-- end includeArticle -->{/if}
LG Viktor

Christina5
Beiträge: 22
Registriert: Fr 18. Okt 2013, 12:28
Kontaktdaten:

Re: [NEU] Article Include

Beitrag von Christina5 » Do 3. Jul 2014, 08:45

Hallo Viktor,

vielen Dank für deine schnelle und ausführliche Antwort. Was die Grundverständnisse von PHP angeht..naja, sagen wir mal so, ich kann es lesen und verstehe, was passiert, aber ich kann es nicht schrieben, weil ich in der Syntax nicht fit bin.
Ich teste deine Ergänzung mal und melde mich wieder zurück.

Mit Murrats Modul bin ich leider nicht klar gekommen, aber ich vermute, dass ich da einen Denkfehler habe.
Schauen wir mal, was der Morgen so bringt :-)

LG
Christina

farina
Beiträge: 259
Registriert: Fr 24. Okt 2003, 13:16
Wohnort: Düren
Kontaktdaten:

Re: [NEU] Article Include

Beitrag von farina » Do 17. Jul 2014, 12:52

Hallo Viktor,
ich habe das Bild mithilfe deiner Ergänzung integriert. Klappt Super!
Nun habe ich versucht das CMS_DATE mit ausgeben zu lassen. Das kriege ich aber nicht hin.
Kannst du mir einen Tipp geben?

LG Siggi

homtata
Beiträge: 1142
Registriert: Mi 14. Jan 2004, 14:41
Kontaktdaten:

Re: [NEU] Article Include

Beitrag von homtata » Do 17. Jul 2014, 20:04

Was genau hast du denn versucht?

Ich würde erstmal im Moduloutput ergänzen (ggf. korrekte Nummer für CMS_DATE anpassen)

Code: Alles auswählen

$tpl->assign('date01', $article->getContent('CMS_DATE', 1));
und dann im Template

Code: Alles auswählen

{if $date01 != ""}{$date01}{/if}
Was landet dann in der Frontendausgabe? Falls das komischer XML-Code sein sollte, dann seh ich noch eine weitere Möglichkeit, das in die korrekte Form zu bringen, eher so:

Code: Alles auswählen

$dom = new domDocument;
$datexml =  $article->getContent('CMS_DATE', 1);
$dom->loadXML($datexml);
$xml = simplexml_import_dom($dom);
$date01  = date('Y-m-d',  (int)$xml->timestamp);
...
$tpl->assign('date01', $date01);
LG Viktor

farina
Beiträge: 259
Registriert: Fr 24. Okt 2003, 13:16
Wohnort: Düren
Kontaktdaten:

Re: [NEU] Article Include

Beitrag von farina » Fr 18. Jul 2014, 08:55

Schritt 1 und Schritt 2 hatte ich gemacht und war bis zu dem komischen XML-Code im Frontend gekommen.
Die weitere Möglichkeit hat geholfen. Das Date wird nun angezeigt.
VIELEN DANK für die Hilfe
Gruß Siggi

dominik.ziegler
Beiträge: 437
Registriert: Do 19. Jun 2008, 09:09

Re: [NEU] Article Include

Beitrag von dominik.ziegler » Di 22. Jul 2014, 18:27

Für eine der künftigen Versionen planen wir einen vereinfachten Zugriff auf diese Informationen, damit nicht das XML-Dokument geparst werden muss.
Viele Grüße
Dominik

Antworten