[NEU] Article List Reloaded (ALR)

Alles rund um Module und Plugins in CONTENIDO 4.9.
Faar
Beiträge: 1915
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: [NEU] Article List Reloaded (ALR)

Beitrag von Faar » Di 26. Nov 2013, 17:21

Hi Homtata,

hast du mir einen Ausdruck von $sTmpValue?

Ich habe das Modul nicht installiert und ohne den Ausdruck weiß ich nicht, woran ich bin.

VG,
Frank
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

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

Re: [NEU] Article List Reloaded (ALR)

Beitrag von homtata » Di 26. Nov 2013, 17:48

leider nein.
du müsstest dann das modul installieren, konfigurieren und an der stelle mal ein "echo" für diese Variable machen, dann siehst du ja ungefähr, was da aus der datenbank kommt ;-)
Ich hab diese stelle wie gesagt nie weiter gedumpt oder angepasst - ich kenne nur das ergebnis der berechnung, mehr hat mich erstmal nicht interessiert ;-)

LG

Faar
Beiträge: 1915
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: [NEU] Article List Reloaded (ALR)

Beitrag von Faar » Di 26. Nov 2013, 17:57

Ich habe nur das ältere System ArticleList Advanced 3.2 (beta) von funomat irgendwo installiert, aber das müsste dann ja noch der gleiche Code an dieser Stelle sein.
Ich schau mal nach.
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

Faar
Beiträge: 1915
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: [NEU] Article List Reloaded (ALR)

Beitrag von Faar » Di 26. Nov 2013, 18:33

Hallo homtata,

probier das hier mal aus, sollte gehen bei korrektem HTML:

Code: Alles auswählen

$sTmpValue = urldecode($db3->f('value'));

$doc=new DOMDocument();
$doc->loadHTML($sTmpValue);
$xpath = new DOMXPath($doc);
$aImg=$xpath->evaluate('//img');
if($aImg->length>0)
foreach($aImg as $val)
{
  echo 'Pfad: '.$val->getAttribute('src').'<br />';
}
VG,
Frank
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

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

Re: [NEU] Article List Reloaded (ALR)

Beitrag von homtata » Di 26. Nov 2013, 18:53

Hallo Frank,

das mach ich demnächst gern, nur ist zur Zeit zuviel beruflich los zum Jahresende... Bei nächster Gelegenheit setze ich mich dran. Wir müssten jetzt noch die src so auseinanderklamüsern, dass Pfad und Bildname getrennt vorliegen (Pfad auch noch bereinigt umd "upload/"), dann ist es mit den Daten, die aus CMS_IMG kommen, identisch und perfekt.
LG
Viktor

Faar
Beiträge: 1915
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: [NEU] Article List Reloaded (ALR)

Beitrag von Faar » Di 26. Nov 2013, 20:14

Hab dir dafür ein kleines Testprogramm zum rumspielen, musst es nur irgendwo hochladen.

Code: Alles auswählen

<?php
$sTmpValue=<<<HTM
<html>
<head>
<titel>nix</title>
</head>
<body>
<h1>Testprogramm</h1>
<div>
<a href="http://domain.de">ein Link ohne Bild</a>
<a href="http://domain.de"><img src="pfad/bild1.jpg" width="200px" height="20px" ></a>
<img src="de/pfad/andresbild2.jpg" width="250px" height="200px" title="abcdefg" >
</div>
</body>
</html>
HTM;

// DOM Methode
$doc=new DOMDocument();
$doc->loadHTML($sTmpValue);
$xpath = new DOMXPath($doc);
$aImg=$xpath->evaluate('//img');
if($aImg->length>0)
foreach($aImg as $val)
{
  echo 'Pfad: '.$val->getAttribute('src').'<br />';
}
?>
Man könnte dann

Code: Alles auswählen

explode("/",$val->getAttribute('src'))
machen oder

Code: Alles auswählen

parse_url($val->getAttribute('src')) 
oder

Code: Alles auswählen

 pathinfo($val->getAttribute('src'))
und noch Code darum herum, um genau das zu bekommen, was man sucht.

Bei vielen Bildern im Quelltext wird das ein tüchtiges Array :roll:
... aber da stehen dann alle Daten drin aus denen man das passende Bild aussuchen kann.
Oder man beschränkt sich gleich nur auf das erste gefundene Bild... was aber nicht unbedingt passend sein müsste.
Jedenfalls gibt es eine Lösung und kommt Zeit, kommt Code :)

VG,
Frank
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

Spl4sh3r
Beiträge: 20
Registriert: So 1. Dez 2013, 16:28
Kontaktdaten:

Re: [NEU] Article List Reloaded (ALR)

Beitrag von Spl4sh3r » Fr 6. Dez 2013, 21:22

Wer Probleme mit dem Datumformat hat und Ausgaben wie 'Dez.ember' hat. Ich habe den Output entsprechend den Variablen des Input angepasst. Das ist nur eine schnelle Fehlerbehebung, langfristig sollte man überlegen ob man das ganze nicht etwas entschlackt und vor allem nicht erst alle Möglichkeiten in ein Array stopft und später zu gucken welche Ausgabe man haben möchte sondern anders rum.

Zeile 303

Code: Alles auswählen

$article['published']      = ($aSettings['DateFormat'] == 'F j, Y' || $aSettings['DateFormat'] == 'j F Y' || $aSettings['DateFormat'] == 'l, j F Y') ? $article['published_short'] : $article['published_long'] ;
			$article['created']        = ($aSettings['DateFormat'] == 'F j, Y' || $aSettings['DateFormat'] == 'j F Y' || $aSettings['DateFormat'] == 'l, j F Y') ? $article['created_short'] : $article['created_long'] ;
			$article['lastmodified']   = ($aSettings['DateFormat'] == 'F j, Y' || $aSettings['DateFormat'] == 'j F Y' || $aSettings['DateFormat'] == 'l, j F Y') ? $article['lastmodified_short'] : $article['lastmodified_long'] ; 
mit

Code: Alles auswählen

$article['published'] = ($aSettings['DateFormat'] == 'F j, Y' || $aSettings['DateFormat'] == 'j F Y') ?
				$article['published_long'] : $article['published_short'];
			$article['created'] = ($aSettings['DateFormat'] == 'F j, Y' || $aSettings['DateFormat'] == 'j F Y') ?
				$article['created_long'] : $article['created_short'];
			$article['lastmodified'] = ($aSettings['DateFormat'] == 'F j, Y' || $aSettings['DateFormat'] == 'j F Y') ?
				$article['lastmodified'] : $article['lastmodified'];
und Zeile 464

Code: Alles auswählen

$article[$k."_date"]   = ($aSettings['DateFormat'] == 'F j, Y' || $aSettings['DateFormat'] == 'j F Y' || $aSettings['DateFormat'] == 'l, j F Y') ? $article[$k."article_short"] : $article[$k."article_long"] ;
mit

Code: Alles auswählen

$article[$k."_date"]   = ($aSettings['DateFormat'] == 'F j, Y' || $aSettings['DateFormat'] == 'j F Y') ? $article[$k."article_long"] : $article[$k."article_short"] ;
Grüße Spl4sh3r

Spl4sh3r
Beiträge: 20
Registriert: So 1. Dez 2013, 16:28
Kontaktdaten:

Re: [NEU] Article List Reloaded (ALR)

Beitrag von Spl4sh3r » Sa 7. Dez 2013, 14:26

Wenn ich das Modul in einer 2. Vorlage verwende kann es dort nicht konfiguriert werden.
-->Nachtrag: Das Passiert wenn man das Modul mehrfach kombiniert und vergisst cInclude wieder zu includen! :( :roll:

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

Re: [NEU] Article List Reloaded (ALR)

Beitrag von rethus » Mo 9. Dez 2013, 20:18

benja hat geschrieben:Die Bilder werden jetzt angezeigt, da hatte ich einen Fehler in der Vorlage, aber das Konfigurieren geht immer noch nicht :-(
Darf man erfahren wo der Fehler lag.
Ich habe das Modul installiert und ausprobiert, da wurde ein Bild aus Text angezeigt.
Dann hatte ich ein paar Elemente (nur über die Konfiguration) in der Reihenfolge getauscht, nun werden Bilder aus Text nicht mehr angezeigt (egal, wie ich diese Konfiguriere).
Bin für jeden Tipp dankbar.



### Nachtrag

Sehe gerade, wenn ich die "Headline" in der Konfiguration setze, bekommt er auch das Bild wieder rein. Lass ich die raus, bekommt er es nicht.
Die Vorlage genauer untersucht, stelle ich fest, dass eine Anpassung hier die Elemente manuell angegeben werden müssen.

Will heißen:
Wählt man in der Konfiguration "Überschrift leer", "image aus text", "text", muss das Template wie folgt aussehen:

Code: Alles auswählen

<div class="artImage">
				<a href="{$article.1_imgSrc}"><img src="{$article.1_img}" width="{$article.1_width}" height="{$article.1_height}" alt="{$article.1_medianame}" title="{$article.1_medianame}"></a>
				</div>
				<p class="artText">{$article.2_text}<br />{$article.3_text}</p>
			
			{if $article.link != '' }
				<p class="linkMore"><a href="{$article.link}">{$listObj->more2}</a></p>
Warum wird das bei dem Modul so gemacht?
Kann das nicht nachvollziehen, da man doch in der Konfiguration schon sagt, dass welches Element man wählt.
Ist irgendwie doppelte Arbeit und enorme Verkomplizierung (bei Änderungen).

Praktischer Fall, ein Redakteur vergisst in dem Artikel ein Element zu befüllen (z.B. Überschrift), schon verlagern sich alle positionen der folgenden Elemente, und $article.2_text würde nicht mehr greifen, weil er $article.1_text in diesem Fall heißen müsste.
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

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

Re: [NEU] Article List Reloaded (ALR)

Beitrag von homtata » Mo 9. Dez 2013, 23:41

Ei, das ist halt historisch so gewachsen. Bitte nicht vergessen, dass dieses Modul in einem gewissen Sinn nix anderes ist als eine massiv angepasste Version von "Article List Advanced", die bis 4.8 lief. Da wurde die Nummerierung der Container zwar anders gehandhabt (dort wurden alle Elemente getrennt hochgezählt: also bei der Reihenfolge "text", "bild im Text", "text" war der Aufruf dann text_1, img_1, text_2), und nun wird halt die Containernummer absolut hochgezählt. Faktisch ist es momentan nicht machbar, dass die Containernummern fest bleiben. Diese werden eben je nach Konfiguration im Input festgelegt und werden dann im Output so wieder fest benötigt. Um die Anpassung des Templates bei zusätzlichen Container, die vor oder zwischen bestehende Container eingeschoben wurden, kam man auch schon in der alten Version nicht drumrum.

Wie unterschiedlich sieht denn dein Template aus, wenn du "Headline" setzt und wie gemeldet alle Bilder und Texte zu sehen bekommst? Eigentlich dürfte sich das nicht beeinflussen. Die Headline (im oberen Teil des dritten Konfigurationsteils) ist ein Element, was von den Containern unten komplett losgelöst ist. Eigentlich ;-)

benjas Problem lag in einem Fehler begründet, der inzwischen behoben ist. Um die anderen Rückmeldungen kann ich mich wohl erst nach Weihnachten kümmern, im Moment müssen erstmal die Jahresendaufträge abgearbeitet werden. Danke an alle, die Feedback geben und den Code mitverbessern, da ich bei dem komplexen Ding nur schwer alle Varianten durchtesten kann und Fehler unvermeidlich sind - schließlich programmiere ich das erstmal nur für meine Bedürfnisse um und teste eben nur punktuell.

LG

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

Re: [NEU] Article List Reloaded (ALR)

Beitrag von rethus » Di 10. Dez 2013, 15:38

soweit hab ich es jetzt laufen.
Da ich es mit meinem neuen Modul xst_dynamic_contenttype (http://forum.contenido.org/viewtopic.php?f=89&t=34744) laufen habe, kann es tatsächlich sein, dass über die Konfiguration des Artikels mal eben eine andere Content-Type-ID gesetzt wird.
Dies würde sich dann natürlich auch auf die Darstellung in deinem Modul auswirken.

Ich bin immer ein freund von dynamischen Verknüpfungen, aber du sagtest es ja schon, is historisch gewachsen.
Alles in allem danke für deine Mühe und die Optimierung des Article-List-Advanced Modul.
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

Faar
Beiträge: 1915
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: [NEU] Article List Reloaded (ALR)

Beitrag von Faar » Di 10. Dez 2013, 16:21

Das Problem bei diesem Modul ist, dass es zu viel kann (Featureitis).
Bei Contenido ist es anders als bei einfach gestrickten CMS wie Wordpress. Dort habe ich in der Regel eine Überschrift und einen Artikel- oder Seitentext, Wordpress ist ein Blog-System und daher bestens für Artikel-Listen-Darstellung geeignet.
Bei Contenido sieht das wesentlich anders aus im Kern, denn Contenido hat beliebig viele Container, die alle im Layout Platz haben können und alle beliebigen Content enthalten können.
Eine Contenido Seite kann im Inhaltsbereich so aufgebaut sein:

Überschrift
Textblock (mit Bild im Text)


oder auch so:

Irgendwelcher Content
Überschrift 1
Überschrift 2
Zitate
Modulbereich für alles
Textblock
Suchausgabe
Textblock mit Bild
Irgendwas
usw...


Man kann mit Contenido (fast) alles machen und jeder macht es so wie er es braucht, sofern er es kann.

Woher soll die Article-List-Advanced nun wissen, wie der Seitenaufbau ist? Also wo sich die Überschrift befindet und wo der eigentliche Text ist der geteasert werden soll und wo bitte das Bild im Text?
Funomat (wo ist er eigentlich?) hat daher grundsätzlich immer eine Beispielkonfiguration im Systemkategoriebereich aufgebaut, woran sich die ALA orientieren kann.
Ich vermute, die ALA nimmt sich dann die Bezeichner oder Namen der Module oder CMS_Typen als Hilfe, wo die richtigen Daten zu finden sind.
Und meistens klappte es dann auch, wenn man eine saubere Beispielseite hat.

Das Prinzip ist nicht schlecht (wenn es denn so auch richtig funktioniert), denn damit kann man auch dann auch komplexere Seiten-Aufbauten listen.
Im Gegensatz dazu funktioniert die Newsliste problemlos, weil sie von einem klaren Aufbau Überschrift-->Text (mit Bild im Text) ausgeht.

Was ich hier zu verbessern fände, wenn man die Auswahl des Bildes und des Textes optisch sehen kann, bei der Konfiguration.
Das heißt, die ganze Text- und Bildauswertung muss bereits im Anfang des Moduls vonstatten gehen, damit man bei der Konfiguration etwas sieht.
Zumindest Überschrift, Text und Bild des ersten Artikels sollte angezeigt werden und das Beispiel wird dann genommen, um die Inhalte aller anderen Seiten in der Datenbank zu finden und zu listen.
Das heißt auch, dass man einiges in der ALA in Funktionen oder Klassen packen müsste, damit man diese Flexibilität bekommt.
Aber dann, da wäre ich mir ziemlich sicher, gäbe es kaum noch Probleme mit der Konfiguration.

Ich hatte zwar bereits mal in einem anderen Modul sowas angefangen, allerdings macht sich das nicht von alleine und wie Homtata dezent hingewiesen hatte, vor Weihnachten wird das sowieso nichts mehr.
Und ich glaube, das wird auch nicht so leicht umzusetzen sein und vielleicht muss man das Prinzip nochmal gründlicher überlegen und mehr Contenido eigene Lösungen mit einbeziehen.
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

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

Re: [NEU] Article List Reloaded (ALR)

Beitrag von homtata » Di 10. Dez 2013, 16:48

"Featuritis" ist gut *grins*

Im Prinzip hab ich die ALA genommen und umgebaut, weil ich genau DAS brauche. Featuritis.. Die Newslisten von Contenido waren und sind für viele Einsatzzwecke noch zu unflexibel in der Steuerung, und ich erledige wirlklich etliches über solche Module wie die ALA. Bei MEINEN Kunden ist es auch so, dass ich die gar nicht in den Templatekonfigurationen der Artikellisten rumwerkeln lasse, was manche Sachen angeht... Die sollen sich als Redakteure auf die Inhaltserstellung konzentrieren, und ich bereite den Rest vor ;-)
Im Prinzip macht die ALR doch nix anderes als jede Newsliste: Sie berechnet nach der Konfiguration vordefinierte Werte in Standardvariablen. Die ALR unterscheidet sich ja nur dadurch von der ALA, dass es durch CON 4.9 und Smarty viel einfacher ist, komplette Arrays und Objekte an Smarty zu übergeben - daher dachte ich : what the heck, warum soll ich denn alle ohnehin berechneten Variablen über Bord werfen? Kippe ich sie einfach zusätzlich ins Array, dann kann zugreifen, wer will. Wer nicht will, hält sich an die beschriebenen Standardvariablen, dann springen die Werte weiterhin ja nach Konfiguration der ALR um... Ich brauchte auch schonmal Listen, wo ich ein- und denselben Quelltext in zwei verschiedenen Varianten zur gleichen Zeit brauchte, daher hat das schon seine Vorteile (für den Webmaster).
Daher werde ich sehr wahrscheinlich auch an dieser Version der ALR gar nicht sehr viel weiter rumschrauben außer Fehlerbereinigungen und leichte Codeverbesserungen, denn in der bisherigen Form ist es für meine Zwecke perfekt und die Anpassung an Redakteursbedürfnisse (quasi WYSIWIG und sowas) stünde im Moment hierfür in keinem Kosten-/Nutzenverhältnis.

Klar ist aber auch: anders als bei der normalen Newsliste geht das hier ohne genaues Lesen der Anleitung und Konfigurationsmöglichkeiten nicht, dafür ist dann doch zuviel "Featuritis" und Anpassung durch den Webmaster gefragt. ;-)

Peer
Beiträge: 309
Registriert: Fr 9. Sep 2005, 17:22
Kontaktdaten:

Re: [NEU] Article List Reloaded (ALR)

Beitrag von Peer » Mi 11. Dez 2013, 17:28

Hallo,

habe das Modul unter Contenido 4.2 angelegt.
Leider wird mir, wenn ich das Modul eingebaut habe die Konfiguration nicht angezeigt.

Hat jemand einen Tipp für mich, wo ich nach der Ursache suchen kann ???

Gruß

Peer

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

Re: [NEU] Article List Reloaded (ALR)

Beitrag von homtata » Mi 11. Dez 2013, 17:35

Hallo Peer,

das ist etwas ungewöhnlich... welche anderen Module hast du denn in der zugehörigen Vorlage noch eingeklemmt? Vielleicht behakelt sich da ja etwas im Zusammenspiel. Das Modul an sich ist geladen? Du siehst den Eingabebereich und den Ausgabebereich des Modulcodes?

LG

Antworten