De module voor gerelateerde artikels die Joomla voorziet laat in haar eenvoudigheid niet veel souplesse toe. Vandaar dat extensies welkom zijn. We vergelijken hier enkele extensies, gratis en betalend.
De besproken extensies zijn:
- FJ-Related Articles Plus (gratis)
- JV-Relatives (30 Dollar)
- Raxo Related Articles (25 Euro)
Bij de demo van dit artikel in de JUG-bijeenkomst, werd een 4° extensie aangeprezen:
- Anywhere Articles van Regular Labs.
We zullen op het einde van dit artikel in het kort de voor- en nadelen vermelden.
In de site was het de bedoeling om naast een artikel de aanverwante artikels te tonen maar op 2 verschillende plaatsen met elk een verschillend selectiecriteria. De hiervoor vermelde extensies zijn hiervoor in verschillende fasen gebruikt (tot de beste gevonden werd).
Op het einde van het artikel is er een vergelijkende tabel waarin alle eigenschappen vergeleken worden.
Er is nog een 4° extensie die helemaal niet voldoet aan de oorspronkelijke bedoeling maar die we op einde toch zullen bespreken:
- iRelated (20 Dollar)
FJ-Related Articles Plus
Wordt er een onderscheid gemaakt tussen de 2 relaties door de ene te baseren op meta-trefwoorden en de andere op tags dan zal je er niet komen met de gratis extensie. De developer van FJ-Related Articles geeft wel de keuze maar door 2 aparte versies (met dezelfde naam). Dus kan je deze 2 versies niet in één en dezelfde site installeren. De code is niet meer gepubliceerd in de Joomla Extension Directory maar nog wel te vinden op http://joomlacode.org/gf/project/freejoomla/wiki/?pagename=FJ+Related+Articles+Component+Home
Een ander probleem dat zich bij sommige template(versie)s voor kan doen: bij het bewerken van artikels in de front-end zijn de velden voor tags en meta-trefwoorden niet altijd present.
Eén voordeel heeft de gratis extensie wel tegenover zijn te betalende: je kan een component maken waarbij je de tags of trefwoorden opgeeft en dan zullen de verwante artikels zich mooi in een lijst presenteren.
In het voorbeeld hierboven bemerk je enkele mogelijke problemen die bij de 3 extensies naar voor kwamen:
Je kan bij het bewerken van een artikel een afbeelding plaatsen in het speciale veld 'Afbeelding introtekst' om de afbeelding niet te tonen in de volle tekstpagina maar enkel bij de introtekst. Deze mogelijkheid is iets waar meerdere extensies het moeilijk mee hebben (en niet alleen de hier besproken).
In de site halen we foto's uit Flickr door middel van een extensie waarbij dan de foto in de tekst kan verschijnen via een code als {flickr photo=1234567}. De extensie voor Related Articles zou dus dergelijke shortcode wel moeten interpreteren. Geen probleem zou ik denken: bij een definitie van een module is er het veld: 'Bewerk inhoud'. Merkwaardig genoeg ontbreekt dit in alle 3 extensies. De Raxo developer schreef wel waar en hoe je dit in de code kon wijzigen. De code had er zelfs gepaste commentaar voorgeplaatst maar waarom dit niet met een extra keuzeveld in/uit-geschakeld kon worden?
Hieronder een voorbeeld van FJ-Related (let wel: bij zijn component werkte die voorbewerking van inhoud wel goed zoals in de vorige afbeelding in het groen aangeduid is):
Zoals je kan opmerken in de pop-up die bij hoover de introtekst toont, wordt die shortcode { voor flickr } niet gerenderd.
Open Source laat code wijziging toe en als we in een php-bestand van FJ-Related wat code wijzigen (met uitvoerig gebruik van kopiëren & plakken + logisch denken), krijgen we voor bovenstaande module al een beter resultaat:
Maar we willen voor onze site meer soepelheid en een mooiere voorstelling waarbij we niets aan de code moeten wijzigen, dus op zoek naar een andere extensie.
JV-Relatives
JV-Relatives op de JED en zeker op hun site konden mij overtuigen. Na aankoop bleek het doel en functionaliteit niet echt te matchen. Groot was mijn verbazing dat de instelling van de module centraal gebeurde, je kon de instellingen niet specificeren bij de creatie van een module maar onder het menu Componenten (hoewel er geen component gecreëerd kan worden zoals met FJ-Related). Dus hier kan ik geen 2 verschillende criteria mee definiëren omdat er maar 1 plaats van configuratie is.
Die algemene instelling is te verklaren als we het oorspronkelijke doel van JV-Relatives erkennen: over heel de site bij artikels verwante artikels vermelden. In ons voorbeeld was het doel specifieker en wel omlijnd. De toenmalige documentatie vermeldde niet hoe die 2 toepassingen configureren: in ons geval moest de plugin geïnactiveerd worden terwijl die wel aan mocht blijven staan voor een algemeen gebruik van verwante artikels.
Hieronder worden de 2 toepassingen getoond: de configuratie en het resultaat op de site.
Plugin uitgeschakeld, verwante artikels getoond in een module.
Overeenkomstige configuratie:
Als we verwante artikels willen bij elk artikel op de site en dit zonder hiervoor een module te definiëren, dan wordt de configuratie bijvoorbeeld:
Zonder wijziging van CSS resulteert dit in volgende front-end:
Als we in de configuratie het aantal kolommen wijzigen is het resultaat aanvaardbaar:
Je kan de verwante artikels ook opzij van een artikel laten verschijnen of op een door jouw zelfgekozen plaats mits het plaatsen van de shortcode {jvrelateves}.
Alle keuzes op een rijtje:
Twee voorbeelden met de setting Aligned with top right of articie content:
Met het tonen van Artikel tekst en Thumbnail aangeschakeld:
Tonen van Artikel tekst en Thumbnail beiden Af/Neen:
Met een kleine aanpassing van CSS zal men allicht tot een aanvaardbare presentatie kunnen komen.
Ik denk dat deze toepassing, inclusief het mogelijk gebruik van shortcode, de sterkste punten zijn van JV-Relatives.
Heb je hieraan echter geen nood, zoals in mijn geval, dan is de extensie van Raxo dé oplossing. Ze blijkt nu zelf nog iets goedkoper te zijn dan die van JV-Related.
RAXO Related Articles
Als je de configuratie schermen overloopt, dan wordt het snel duidelijk welke mogelijkheden er allemaal mogelijk zijn. Op hun site zijn ze mooi uitgelegd. Groot was mij verwondering dan ook als bleek dat de layout mogelijkheden niet goed gedocumenteerd werden (nergens melding van welke stijl-classen voorgeprogrammeerd zijn). Misschien is dit nu aangepast in de documentatie op de site.
Enkele screenshots geven een mooi idee van de standaard waarden.
Op hun site zijn alle configuratie-mogelijkheden mooi getoond, dus kijk even op Raxo docs: Related Articles
Hoewel de kolommen-layout er op hun site mooi gealigneerd uitzien, blijkt dit doordat de afmeting van de afbeeldingen goed uitgekiemd zijn, zo niet wrapt de tekst er nog net naast, zoals op onderstaande afbeelding te zien is.
Dus ondanks vele goede punten is hier enige eigen CSS-correctie vereist.
Er zijn 4 layout-types voorhanden met elk de kleuren donker & licht blauw, violet, purper, rood, oranje, geel, groen turkoois en grijs. De layout-types kan je kiezen uit een dropdown-lijst: raxo-bricks, raxo-columns, raxo-default, raxo-list. Hierboven was het layout-type raxo-column gebruikt met de blauwe kleur. Deze layout gelijkt sterk op layout-type raxo-bricks maar bij deze laatste wordt de afbeelding boven de titel weergeven.
Maar voor de kleuren moet je dan maar raden dat het een combinatie is van layout-type + kleur. bijvoorbeel in raxo-bricks krijg je zo volgende klassen: bricks-yellow, bricks-orange, bricks-red, bricks-violet, bricks-pink, bricks-blue, bricks-turquoise, bricks-green, bricks-gray. De CSS'en vind je in ../modules/mod_raxo_related_articles/tmpl/ waarin de mappen staan met de naam van de layout-types.
Hieronder de layout-type raxo-list in het rood (met de pijl zichtbaar opgekleurd bij hoover).
Als laatste voorbeeld de module in een rechterkolom geprangd met de standaard layout (met maximaal 200 letters voor de tekst), ditmaal in het groen:
Waar JV-Relatives wel een goede rendering van shortcode { flickr uitvoerde, lukte dit pas na contact-name met Raxo. Het was opgelost door 1 lijn code toe te voegen in het bestand helper.php:
achter de bestaande regel:
// Plugins Support
// $item->i
ntrotext = $plugins_support ? JHtml::_('content.prepare', @$item->introtext) : preg_replace('/{[^{]+?{\/.+?}|{.+?}/', '', @$item->introtext);
moet je volgende commando bijvoegen:
$item->introtext = JHtml::_('content.prepare', @$item->introtext);
Waarom dit niet als een optie in de configuratie-schermen geïmplementeerd was ... ik heb het raden ernaar.
Maar dit waren dan ook de enige negatieve punten die ik voor deze extensie tegenkwam.
iRelated Articles
Als afsluiter bespreken we een extensie die niet beantwoordde aan de gestelde noden maar die wel interessant is als alternatief voor JV-Relatives.
iRelated Articles toont net zoals JV-Relatives binnenin een artikel een blok(je) met een verwant artikel.
Wat deze extensie apart maakt is dat de verwantschap niet steunt op verwante tags of meta-trefwoorden, maar dat je per artikel volledig zelf kiest welke verwanten er getoond mag worden.
In het backend scherm Artikelen: Bewerken is er een extra veld dat van de extensie iRelated Articles:
Als je daarin een trefwoord begint te typen, dan zullen daaronder alle artikel-titels getoond worden die dit woord bevatten.
Als je verder typt verfijnt zich de lijst. Je hoeft dan enkel het artikel via zijn titel er uit te pikken. Als er al artikels toebedeeld zijn, dan worden die eronder (in lichtblauw) afgebeeld en kan je ze eventueel ontsluiten als verwante.
De component geeft je een overzicht van alle artikels met hun verwante artikels.
In de configuratie van de plug-in bepaal je
- waar je de blokken (die verwante tekst tonen) mogen verschijnen
- Verberg
- Fixed Paragraph
- Repeat every x paragraphs
- Middle of the content
- After content
- Middle and after the content
- Random Pararaphs
- en dan voor de gekozen verschijningsvorm een fijnere specificatie zoals bij (de) hoeveel(ste) paragrafen van het gastheerartikel de verwanten moeten verschijnen
Zo werd er in onderstaand voorbeeld voor gekozen om de verwanten te tonen bij vastgestelde paragrafen, namelijk de 1°, 3° en 6° paragraaf van het gastheerartikel.
Daarnaast kan me specificeren hoe de verwante artikelen in die blokken getoond moet worden.
Met bovenstaande setting komt men tot een resultaat zoals:
met naast de derde paragraaf van het gastheer-artikel weer een blok voor een ander verwant artikel.
Als je #Artikelen in lijst op 2 zet krijg je 2 artikelen per blok:
Anywhere Articles
De selectiecriteria of filter laat meer mogelijkheden toe: net zoals Raxo kan j e kiezen op Tags, Category Featured, Auteur, maar niet ! op Meta-keys. Bijzonder is wel dat je kan testen op bepaalde condities via een IF & ELSE zoals bijvoorbeeld:
{if category == 'Katten' && 'Tips' IN tags} .... {/if}
Je kan heel wat tonen: enkel de tags, een Custom Field en elke kolom uit de tabel van Artikels is ter beschikking (en je kan alles combineren).
Voor de afbeelding kan je effectief kiezen voor de n°de afbeelding maar een automatisch resizen zoals bij Raxo is onmogelijk net zo min om de keuze automatisch te laten uitvoeren.
Voorbeeld: toon 5 artikels van categorie Katten met hun titel als link en daaronder de afbeelding van de intro met introtekst.
{articles category="Katten" limit="5"}[link][title][/link][image-intro][introtext]{/articles}
Toon artikels met tag=Tip en die tot dezelfde category behoren als het artikel waarin deze code staat, en dit in dalende orde van publicatie-datum:
{articles categories="current" tags="Tip" ordering="publish_up DESC"}[link][title][/link] [introtext]{/articles}
Toon alle artikels in gelijk welke categorie waarbij de tag='agenda' met hun kreatiedatum als "01 jan 2018"en dan de titel (als link) en dit maximaal 800px breed:
{articles tags="agenda" limit="30" ordering="created"}[div width="800"] [created format="d M Y"] [link] [title] [/link] [/div]{/articles}
Vergelijkingstabel
Joomla Extensie: | FJ-Related Article Plus | JV-Relatives | Raxo Related Articles | |
site developer: | site + doc | site + doc | site + doc | |
prijs: | gratis | 30 Euro | 20 Euro | |
component | Component voorzien? | ja | neen | neen |
selectie | Object voor matchen: | afhankelijk van versie: tags ofwel keywords | tags, keywords | tags, keywords,auteur |
selectie | Keuze voor match op 'alle' tags ? | ja of op een te bepalen minimum aantal | neen | neen |
selectie | Forceren van specifieke tag | ja | neen | neen |
filter | Beperking tot gekozen categorieën | ja | ja | ja |
filter | Beperking tot auteurs | ja | neen | |
filter | Keuze te beperken tot 'zelfde' categorie | ja | ja | ja |
filter | Switchen tot Wel/Niet behorende tot de selectie | neen | neen | ja |
filter | Kan je Speciale artikels (Home-pagina) uitsluiten? | neen | neen | ja |
filter | Kan je bepaalde artikels uitsluiten? | neen | neen, tenzij via URL | ja |
tekst | Keuze om introtekst als tip te tonen | ja | nvt | nvt |
tekst | Bepalen lengte van getoonde tekst | ja | ja | ja |
rendering | Kan men kiezen om de link op titel of afbeelding te plaatsen? | neen | ja | ja |
rendering | Kan je kiezen welke artikel(meta)informatie getoond mag worden | in Component wel | ja | ja |
rendering | Afbeelding is te kiezen | neen | neen | uit intro, artikel of automatisch |
rendering | Afmeting afbeelding te regelen? | neen | ja | ja |
rendering | Volgorde is te bepalen? (relevantie = aantal matchende elementen) | datum, titel, relevantie | datum, rating, titel, relevantie | datum, rating, titel |
rendering | Aantal te tonen verwante items is te bepalen? | ja | ja | ja |
rendering | Wat als geen verwanten? | toont zelfgeschreven tekst | jouw tekst of keuze om artikel uit zelfde categorie te tonen | toont toch (zo maar) artikels |
rendering | Voorbewerking artikel-inhoud bij te voegen: JHtml::_('content.prepare', textvariabele); | Component: ja. Module: enkel mits code-ingreep | ja | onmogelijk tenzij code-ingreep |
rendering | Heb je keuze uit verschillende stijlen? | neen | aligneren van thumbnail | 4 stijlen & 4 kleuren |
integratie | Aansluiting met andere extensies? | neen | EasyBlog, K2, AceSEF, sh404SEF | neen |
vergelijking | Grootste voordeel? | gratis | automatisch getoond bij alle artikels zonder extra module / code | zeer veel selectie & filter en tweak mogelijkheden |
vergelijking | Ander voordeel | kan als component gebruikt worden met evt. een eigen filterveld | goede keuze aan stijlen | |
vergelijking | Grootste nadeel? | in module toont het de (intro)tekst enkel als tooltip | 1 configuratie voor heel de site | toont random artikels als er geen verwanten zijn |
vergelijking | Andere nadeel, problemen | Tekst ""geen verwante artikels"" wordt getoond als foutmelding! Alignering afbeelding niet soepel. | Sommige styling kon vollediger, beter | |
type | Functionaliteit | FJ-Related Articles Plus | JV-Relatives | RAXO Related Articles |
Auteur: Manu Ampe