[NEU] Article List Reloaded (ALR)

Alles rund um Module und Plugins in CONTENIDO 4.9.
peanut
Beiträge: 246
Registriert: Do 25. Nov 2004, 19:34
Kontaktdaten:

Re: [NEU] Article List Reloaded (ALR)

Beitrag von peanut » So 3. Apr 2016, 13:46

Also wenn du was zum Nachladen hast empfehle ich dir dringend "Lazy Load" anzusehen. ( Suchmaschine bemühen - JQuery ) - Damit werden alle "Bilder" erst geladen wenn sie im Viewport erscheinen. Schont den Server und wird "scheinbar" von Tante G belohnt weils schneller die Seite lädt. Also den oberen Teil :-)
du liest nie ein Buch und weisst weise der Bildung auszuweichen ....

peanut
Beiträge: 246
Registriert: Do 25. Nov 2004, 19:34
Kontaktdaten:

Re: [NEU] Article List Reloaded (ALR)

Beitrag von peanut » So 3. Apr 2016, 13:52

Aber mal was ganz anderes. Ich such mir hier schon einen Wolf. Wie bekomme ich ein 4. Text Element dazu ? Ich habe das Image draussen. Es sind standardmässig ja nur 3 verfügbar steht im HTML Template des Moduls. Aber wo stelle ich 4 + ein ? Immer diese Extra Würste :-)

Code: Alles auswählen

			   <div class="text0">{$article.1_text}</div>
				<div class="text1">{$article.2_text}</div>
				<div class="text2">{$article.3.text}</div>		
				<div class="text3">{$article.4.text}</div>	<---- ??? 
du liest nie ein Buch und weisst weise der Bildung auszuweichen ....

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

Re: [NEU] Article List Reloaded (ALR)

Beitrag von homtata » So 3. Apr 2016, 14:43

Heyho peanut,

ich meine mich nicht zu erinnern, die Anzahl der Elemente begrenzt zu haben. Elemente, die in der Artikelkonfiguration hinzugefügt wurden, stehen im Array auch zur Verfügung und können dann im Smarty über die Nummer auch angesprochen werden. Sollte eigentlich klappen.
Es ist lediglich ein Bug in der Version (vermutlich ab 4.9.8), dass aufgrund irgendeiner Änderung das letzte Element wohl nicht immer ausgegeben wird, dann solltest du noch ein überflüssiges Element hinzufügen, das nicht ausgegeben werden muss, bis ich mal Zeit habe, den Bug zu fixen.

LG
Viktor

peanut
Beiträge: 246
Registriert: Do 25. Nov 2004, 19:34
Kontaktdaten:

Re: [NEU] Article List Reloaded (ALR)

Beitrag von peanut » So 3. Apr 2016, 17:28

Also an alle die das gleiche Problem haben sollten .... Ich habs nun rausgetüftelt.

1. Das Image ist fest verdrahtet selbst wenn man es im Template löscht. Das heisst das Text Element "2" immer vergeben ist. ( soweit ich das getestet und verstanden habe )
2. Wenn man also 4 Text Elemente einbauen will muss man im Ganzen 6 vergeben

Text 1 - Normal
Text 2 - Irgendwas ... Wird nicht ausgegeben weil es das Image reserviert hat
Text 3 - Normal
Text 4 - Normal
Text 5 - Normal <---- Bis hier kommen immer noch 3 Elemente .... Ohne kommenden Bugfix
Text 6 - Irgendwas ... Wird nicht ausgegeben wird aber benötigt um die Schleife einen vorher erst zu beenden <---- 4 Elemente werden ab nun angezeigt .... Harte Nuss das rauszufinden
du liest nie ein Buch und weisst weise der Bildung auszuweichen ....

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

Re: [NEU] Article List Reloaded (ALR)

Beitrag von homtata » So 3. Apr 2016, 21:16

Okay, danke für die Info. Muss ich mir wie gesagt nochmal anschauen, weil das natürlich so nicht gedacht ist, aber es erklärt einige Probleme in gewissen Setups. Immerhin haben wir so den Workaround nochmal definiert, bis ich der Sache auf den Grund komme. Da grad sehr viel zu tun ist hier, kann das aber dauern, ich bitte um Geduld.

peanut
Beiträge: 246
Registriert: Do 25. Nov 2004, 19:34
Kontaktdaten:

Re: [NEU] Article List Reloaded (ALR)

Beitrag von peanut » So 3. Apr 2016, 22:18

Kein Problem. In der Zeit kannst mir vielleicht ein letztes Mal kurz auf die Sprünge helfen. Und zwar ist eine Artikel Liste nur wirklich schön mit einem sogenannten ODD und EVEN Effekt. Ich hab noch nicht so viel Erfahrung mit Smarty und hab mal etwas versucht. Doch er will nicht. Ich denke aber mal das braucht eigentlich jeder heutzutage der eine schöne Artikel Liste will.

Code: Alles auswählen

{foreach $name as $newsArticle}
   {if $name@iteration is even by 3}
     <div style="background-color: #fff">{$name}</div>
   {else}
     <div style="background-color: #eee">{$name}</div>
   {/if}
 {/foreach}
Das sollte eigentlich eine elegante kurze hell hell hell dunkel dunkel dunkel Hintergrundfarbe liefern in der Artikel Liste. hmmmm
du liest nie ein Buch und weisst weise der Bildung auszuweichen ....

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

Re: [NEU] Article List Reloaded (ALR)

Beitrag von homtata » So 3. Apr 2016, 22:43

Hm. Ich google mir das auch immer wieder aufs neue zusammen über die Smarty-Homepage, da ist einiges gut dokumentiert.

Der springende Punkt ist die Schleifeninitalisierung an sich, der funktioniert nicht wie in php, sondern im Stil, der auch in der ALR gezeigt ist, dann erweitert um "key", der in diesem Fall ggf. genutzt werden kann zur Berechnung, da er in unserem Fall numerisch ist und kein String:

Code: Alles auswählen

{foreach from=$articleList item=article key=number}

{if $number is even by 3}
{else}
{/if}

{/foreach}
Es kann sein, dass du die if-Bedingung noch anpassen musst und $number künstlich erhöhst/dezimierst , da $number bei 0 beginnt, nicht bei 1.

Alternativ kannst du mit dem Smarty "counter" arbeiten, der ist auch recht gut dokumentiert.

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

Re: [NEU] Article List Reloaded (ALR)

Beitrag von Faar » Mo 4. Apr 2016, 08:36

ODD und EVEN wird doch heutztage so gemacht:

Code: Alles auswählen

p:nth-child(2n) {
    background: #ff0000;
}
Oder so:

Code: Alles auswählen

p:nth-child(odd) {
    background: #ff0000;
}

p:nth-child(even) {
    background: #0000ff;
}
Natürlich kann man p auch gegen anders austauschen, wie div oder li.
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 » Mi 11. Mai 2016, 18:11

dermicha hat geschrieben:Das letzte Element kommt nicht mehr an, weil die Schleife nicht mehr alle Elemente durchläuft. Wenn das letzte Element ein Bild ist...

In Zeile 402 muss es meiner Meinung nach lauten:

Code: Alles auswählen

                            for ($k = 1; $k <= $aSettings['Elements']; $k++) {
In der aktuellen Datei ist es 'k < ...'

Testen kann man es auch einfach, indem man die Anzahl zusätzlicher Elemente um eins höher setzt.

Grüße
Michael
Der Fehler ist noch nicht behoben worden, ohne $k <= werden nicht alle Elemente ausgezählt.
Ich habe 3 zusätzliche Elemente und egal ob ich als letztes Element ein Bild oder einen Text nahm, es fehlte immer.
Mit @dermicha seiner Lösung funktioniert es.

Und was meiner Meinung nach schlecht gelöst ist, das ist die Zahlen-Nummerierung der Elemente.
Man sollte nicht Bild-Elemente mit Text-Elementen gleichsetzen und einfach durchzählen.
Das erste Bild das ausgewählt wird, sollte 1_img heißen und nicht wie in meinem Fall jetzt 3_img.
Denn im Template muss es eine Logik geben, die nicht durch eine andere Einstellung gleich wieder obsolet wird.
1. Text = 1_text
1. Bild = 1_img
Damit könnte man auch leichter gültige Templates aufbauen, weil logischerweise immer die ersten Elemente in der Reihenfolge ausgewählt sind.
Will jetzt dann mal einer einen Text nicht anzeigen lassen, erscheint im Template jetzt auch kein Bild mehr, weil das Bild dann Element 2 ist und 2_img heißt.
Das Template kann sich nicht automatisch anpassen und hat noch 3_img drin stehen.
Daran hakt es.

:|
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 » Mi 18. Mai 2016, 13:20

Hallo Faar,

die angesprochene Zeile hatte ich aufgrund von Userrückmeldungen extra umgebaut, da die Schleife wohl MIT Gleichheitsoperator einmal zuviel durchlaufen wurde... aber ich baue es jetzt erstmal wieder zurück und werde den geänderten Code vorne posten.

Die Numerierung der Container werde ich auf absehbare Zeit nicht ändern, das habe ich für mich absichtlich geändert im Vergleich zur früheren ALA. Ich stelle an den Artikellisten auch nicht ständig was um oder muss unbedingt zwischendrin Container hinzufügen oder sonstwas, daher ist es für mich am logischsten, die Elemente in der Reihenfolge ihres Aufrufs zu numerieren. Ich sehe da keinen grundsätzlichen einfacheren Umgang bei einer anderen Numerierung und halte mich da einfach an meine persönliche Vorliebe.

peanut
Beiträge: 246
Registriert: Do 25. Nov 2004, 19:34
Kontaktdaten:

Re: [NEU] Article List Reloaded (ALR)

Beitrag von peanut » Do 19. Mai 2016, 05:30

Hallo zusammen

Wie es scheint kommt in der 4.9.9 Version dieser error. Zumindest glaube ich das es an diesem Modul liegt. Nach leeren des error logs und nochmaligem Aufruf der Seite mit dem Modul kommt dann exakt so oft dieser Fehler wie auch Artikel aufgelistet werden. 20 Artikel = 20 gleiche Fehlermeldungen. Ich habe noch kein Mod Rewrite aktiviert.

Deprecated call: cApiStrTrimAfterWord() [functions.api.string.php(49)]: "This method is deprecated and is not needed any longer"
cApiStrTrimAfterWord() called in file include.front_content.php(750) : eval()'d code(367)
eval() called in file include.front_content.php(750)
include() called in file front_content.php(62)

Ich hab mal danach gesucht und irgendwas in der contenido/includes muss da wohl angepasst werden. Kann aber falsch liegen.

Any ideas ?
Danke im voraus
Gruss
Peanut
du liest nie ein Buch und weisst weise der Bildung auszuweichen ....

Oldperl
Beiträge: 4250
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Kontaktdaten:

Re: [NEU] Article List Reloaded (ALR)

Beitrag von Oldperl » Do 19. Mai 2016, 05:41

Moin peanut,
peanut hat geschrieben:

Code: Alles auswählen

Deprecated call: cApiStrTrimAfterWord() [functions.api.string.php(49)]: "This method is deprecated and is not needed any longer"
	cApiStrTrimAfterWord() called in file include.front_content.php(750) : eval()'d code(367)
	eval() called in file include.front_content.php(750)
	include() called in file front_content.php(62)
Such mal in deinen Modulen nach cApiStrTrimAfterWord. Das
eval()'d code(367)
kann Dir dabei helfen (Hier: Zeilennummer = 367). Den entsprechenden Code findest Du einfach in cms/cache/code. Diesen Ordner einfach mal leeren, die entsprechende Seite im Frontend aufrufen und dann die neue Code-Datei im Cache-Ordner mit einem Editor öffnen.
Du kannst dann die gefundenen Stellen in den entsprechenden Modulen, die im Quelltext mit
$cCurrentModule = 33;
$cCurrentContainer = 205;
markiert sind, beispielsweise einfach durch die entsprechenden PHP-Funktionen, oder eigene Funktionalitäten, ersetzen.

Gruß aus Franken

Ortwin
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog

dermicha
Beiträge: 95
Registriert: Mi 9. Dez 2009, 17:57
Kontaktdaten:

Re: [NEU] Article List Reloaded (ALR)

Beitrag von dermicha » Do 19. Mai 2016, 07:40

Hallo peanut,

die Meldung besagt, dass eine vom Modul verwendete Funktion in einer zukünftigen Version von Contenido nicht mehr unterstützt werden bzw. einen anderen Namen haben wird. Um die Meldung zu vermeiden einfach an vier Stellen im Modul-Output

Code: Alles auswählen

capiStrTrimAfterWord
durch

Code: Alles auswählen

cString::trimAfterWord
ersetzen. Weitere Änderungen dieser Art (Deprecations) finden sich unter
https://docs.contenido.org/display/CONDEVE/Deprecations

@homtata: Kannst Du das bitte auch in der Download-Datei korrigieren?

Viele Grüße
Michael

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

Re: [NEU] Article List Reloaded (ALR)

Beitrag von Faar » Do 19. Mai 2016, 09:50

Ich habe ein knapp 3 MB großes Logfile mit dieser Deprecated Call Meldung.

Danke, dann weiß ich schon wo ich suchen muss.

Nochmal Kaffee,
Faar
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 » Do 19. Mai 2016, 10:57

Danke für den Hinweis, ist im Quellcode geändert, neue Version ist online.

Antworten