De meer recente versies van de compoment bevat de mogelijkheid een functie aan te roepen op het moment dat een feed succesvol geparsed is. Een mogelijkheid hiervan is om bijvoorbeeld na elke update automatisch een bericht te plaatsen op een weblog. Dat kan dezelfde joomla installatie zijn of een willekeurige andere weblog.

Voorbeeld toepassing

In de feeds-example.php vind je een stukje code, als je deze code overneemt in je eigen feeds.php zal als alles goed gaat de site toppers.gryla.nl automatisch van een post voorzien worden bij elke update van een feed. toppers.gryla.nl is een wordpress installatie met een iets aangepast versie van xmlrpc

 

Encoding

De feeds van daisycon zijn ISO-8859-15 gecodeerd. Voor XMLfiles gaat dit op php5 systemen niet goed, libxml ondersteunt het niet. Als het ophalen van xml feeds misgaat zet je Auto Encoding uit (nee/no) en vul je ISO-8859-1 (dus niet 15) in bij de encoding. Dit gaat meestal het best.

Feed generator

Eerdere problemen met de feed-url van daisycon zijn opgelost.

Gebruik de link bij  Download feed en niet de link uit de tekstbox.

Tip: Gebruik de feed van feeds

De updated feature?

De parser ondersteund de feature van daisycon om alleen de updated items te downloaden niet. Het algoritme van de import wordt daardoor een heel stuk ingewikkelder, de parser moet aardig overhoop en daisycon is de enige die deze feature op dit moment heeft. Er zijn dan ook geen plannen om het wel te ondersteunen.

 

 

 

 

 

The numbers on this page refer to the subversion (svn) revision numbers. The number of your install can be found on the 'about' page in the datafeeds section in the administrator or in the 'extensions Install/Uninstall' submenu components

 

click out/framed merchant page (1135)

the component supports a clickout out to an external page, either for tracking or as framed view

title and description search (1090)

the component now supports full text search using the component search. The search is performed using mysql-like or using a full text search (in boolean mode). Please enable a full text index on the description and title fields before unlocking the later feature. Be aware that text search is expensive. Please report your experience.

mysql statements for full text index

ALTER TABLE `jos_dataitems` ADD FULLTEXT(`title`)

ALTER TABLE `jos_dataitems` ADD FULLTEXT(`description`)


Cleafs feed structure (975)

the parser does not support the old format anymore.

The fields in additional are returned as is, fields with internal delimiters like xxx/yyy/zzz are not splitted. As a result the fields c_0, c_1 etc are not available anymore

 

M4n and affilinet Feed of feeds (956)

gzopen (798)

the component allows using gz (gzip) compressed files, for a faster download. gz compressing is supported by for example webgains and standard by commission junction.

The option is not enabled by default. gzopen works fine on uncompressed files but is a bit slower compared to fopen.

add

define('USE_GZOPEN',true);

to your feeds.php to enable gz support

Search plugin (717)

de parameters van de search plugin zijn aangepast, de link die terugwijst naar de items is nu naar believen in te stellen

 

merchant tmpl voor de module

er is een  template voor de module gekomen die gebruikt maakt van de merchant url en merchant image uit de feed configuratie.

 

datafeeds en commentaar (707)

Er is een experimente versie van de component template waar het mogelijk is om commentaar aan items toe te voegen. Dit is op basis van jcomment en een plugin.

 

feed namen (666)

soms hebben merchants meerdere feeds, die allemaal een unieke naam moeten hebbenb in de configuratie. Die zie je dan ook allemaal terug in de menu's. Het is nu mogelijk 'subnamen' op te geven in de configuratie:

  • sunweb:wintersport
  • sunweb
  • sunweb:autovakanties

wordt allemaal sunweb.

database aanpassing

Er is een wijziging van de database geweest, bij een upgrade wordt die automatisch aangepast. Echter, in oude versies van joomla (< 1.5.10) werkt de upgrade niet goed ( bug in joomla ). Problemen? Ga naar http:///administrator/index.php?option=com_datafeeds&c=check en  voor de check en update uit.

libxml fix (608)

de manier waarop de libxml bug te omzeilen is is aangepast

Wijzigingen database structuur (585)

In de loop van de tijd zijn er een aantal kleine wijzigingen in de structuur van de database geweest. Voor de belangrijkste is er een check toegevoegd ( svn : 585 ).

  • Een upgrade kan nu wat langer duren afhankelijk van de omvang van de database.
  • Het is van belang met een recente versie van joomla te werken ( > 1.5.10 ). In de oudere zit een fout in de installatie procedure

Eventueel is de check ook met de hand uit te voeren plak onderstaande string achter je site-url:

administrator/index.php?option=com_datafeeds&c=check

Download en upload van feedconfiguraties

Om de uitwisseling van configuraties tussen websites iets eenvoudiger te maken is her mogelijk de settings van een feed te downloaden als XML bestand. Op de feed wijzig pagina vind je de link XML voor de download. Op de datafeeds pagina zelf staat een icon upload. (svn : 574)

 

 

(de upload is er dus niet voor de datafeeds zelf!)

Tradetracker feed van feeds

Via het soap protocol is het nu ook mogelijk om een overzicht van de tradetracker feeds te krijgen. (helaas is soap lang niet altijd standaard op servers, ga bij TT vragen om een csv lijst van de feeds ) (versie 549). In de configuratie ( parameters) moet je de website en de sleutel opgeven. de TT site id is optioneel

 

Alleen unieke titels op een pagina

Bij sommige producten komt een bepaalt item meerdere keren voor, bijvoorbeeld reizen met verschillende vertrekdata, kleding in verschillende kleuren. Dit is te voorkomen door te groeperen op 'titel' en groeperen aan te zetten voor alle levels. Echter het groeperen op titel is een vrij kostbare sql operatie ( titel is text en niet geindexeerd).  Daarom is er de mogelijkheid dubbele titels er bij de weergave uit te filteren De standaard weergave  geeft dan elke titel+feed combinatie meer 1 keer weer.  De optie kan op menu niveau aangezet worden in de advanced sectie. (versie 480)

Zoekfunctie aangepast

de zoekplugin maakt nu gebruik van de instellingen van het in de plugin opgegeven menu of van het eerste datafeeds menu dat het kan vinden (versie 463).

Automatisch invullen van feed configuratie

(versie 415) Op basis van bekende velden zal de component proberen een aantal velden (titel, href,  image, prijs,  Select 1,  Select 2,  Select 3)  in de configuratie al in de vullen. Van lang niet alle feeds zijn de velden bekend bij met name de Select velden zul je vaak zelf een betere keuze moeten maken.

Automatische Daisycon Configuratie

Versie 400, zie het artikel over de daisycon configuratie

HTML entities

Vanaf versie 384 worden html entities standaard gedecodeerd naar de karakter set

zie ook het artikel over de rare tekens

Google sitemap

versie 294

Aanroep

http://website/index.php?option=com_datafeeds&view=items&format=xmlmap

voorbeeld

http://www.winkelpromenade.be/index.php?option=com_datafeeds&view=items&format=xmlmap

dit geeft een sitemap van sitemaps. In de sitemap van sitemap vind je de links naar de afzonderlijke sitemaps

All-in-one installatie

De component, module en plugin vormen nu 1 pakket. Tevens wordt als  voorbeeld een menu item aangemaakt ( en de module geactiveerd ) waardoor je na installatie meteen een werkend systeem hebt.

De component ondersteunt nu de upgrade methode van joomla. Je kunt de component dus herinstalleren zonder eerste een deinstall uit te voeren. (Vanaf 250)

Zie ook de opmerking bij de module aanpassing

Linkstructuur

Links volgen nu meer de joomla conventie. De oude links worden doorgestuurd.

Referentie tracking

In versie 0.9 is de referentie tracking die in eerdere versies beperkt aanwezig was uitgebouwt.  Voor een klik wordt een string meegegeven die tot de betreffende pagina te herleiden is.

 

Verder

 

mod_datamenu layout selectie ( vanaf 238 )

De wijze waarop je het layout selecteerd is eenvoudiger, het pulldown menu toont nu alle layout die er zijn.

BELANGRIJK : als je een module voor het eerst weer bewerkt, controleer het gekozen layout. Als je een custom layout  gebruikt moet je de instelling handmatig aanpassen in het pulldown menu. Helaas is dat niet te goed te automatiseren.

 

Downloads

Er zit een bug in php/libxml die  html encoded characters kwijtmaakt '& amp;' '& lt;' '& gt;' enzovoorts. In de feed configuratie zie je dat bij de ruwe data de &'s missen in de url.

Dit probleem is opgelost in libxml 2.7.3 in combinatie met php 5.2.9. Upgraden is de beste uitweg. Zit je niet op een eigen server en moet je je host overtuigen? Van het probleem heeft niet alleen deze joomla component last maar ook gebruikers van bijvoorbeeld wordpress.

Andere workaround is alleen csv bestanden te gebruiken, of voeg ( versie 608 en hoger) een define toe aan je feeds.php

 

define('LIBXML_BUG','yes');

 

 

 

Meer info bij php of leef je uit met google

 

 

In principe kun je een joomla-installatie met com_datafeeds net zo verplaatsen of copieren als je met een gewone joomla installatie zou doen. Bestanden zippen,copieren,ftpen (whatever) database dumpen. Op nieuwe locatie configuration.php aanpassen voor nieuwe locatie en database, database importeren en klaar.

Tikje tricky is de mogelijke omvang van de dataitems tabel. Die is al gauw een paar mbytes groot. Nu is het helemaal niet nodig om de dataitems ook te verplaatsen, met een run van de feedcron heb je de tabel weer gevuld.

Houd er rekening mee dat de doorsnee shared-host niet is ingericht op databases die groter zijn dan enkele (tientallen) Megabytes. datafeeds verbruiken circa 1 Mbyte per 1000 items. Als de tabel met items te groot wordt ga je dat in de performance merken, http requests duren langer,  de server krijgt ze niet weggewerkt en de http-processen stappelen zich op. Met name mod_datamenu's (de menu's/zoek versies) kunnen vrij zware query's opleveren. In het minst ergste geval schopt je hoster je de deur uit, erger is dat je bezoekers afhaken.

Op een goede shared host moet het geen probleem zijn websites met 20-40 duizen items te hebben.

Hieronder een rijtje met tips. Met (shared) is aangegeven of deze aktie op een shared host mogelijk is. De meeste tips zijn niet joomla-datafeeds specifiek maar algemeen te gebruiken.

In onderstaande wordt uitgegaan van de standaard configuratie van joomla met de prefix jos_, pas dit eventueel aan.

Website splitsen (shared)

Het splitsen van de website in meerdere is een oplossing om de database klein te houden, helaas ondersteund joomla multi-site niet lekker ( er zijn componenten voor te koop ) dus heb je hier meerdere keren onderhoud.

Joomla cache (shared)

Wat goed helpt is het inschakelen van de cache van joomla. Meestal is het inschakelen van cache voor modules geen goed plan omdat joomla dit wat knullig cached ( niet pagina afhankelijk ). De caching van mod_datamenu houdt er rekening mee dat elke pagina een andere (en zelfs meerdere) module-inhoud toont. Echter omdat de feeds uit heel veel items bestaan met heel veel menu's en submenu's komen er ook heel veel bestanden in de cache te staan. Hier heb je dus weer flink ruimte nodig op schijf. En er zijn ervaringen dat de file cache weer langzaam wordt als er veel bestanden instaan.

 

waarschuwing : Op een omvangrijke site (veel menu's) kan de cache heel groot worden ( Gig's) er is dan kans dat je in de problemen komt om de cachee weer te wissen !!!

sessions op none (shared)

In de standaard installatie slaat joomla de sessions op in de database. Dat zijn een aardige hoeveelheid lees en schrijf akties. Je kunt de session ook file based maken door de setting op 'none' te zetten. Dan slaat php de sessies op de disk op. Dat kan per saldo voordeliger zijn.

Nog mooier zou zijn de sessies voor de frontend uit te schakelen, of en hoe dit kan moet nog uitgezocht worden. In feite is heel het sessie verhaal onzinnig zolang men niet inlogt ( ok, ok er zijn modules en plugins die het wel nodig hebben....)

php zlib compressie (shared)

php heeft de mogelijkheid om de content (de genereerde html) te bufferen en voor versturen te comprimeren. Dit heeft het voordeel dat er minder bandbreedte nodig is. Dat is ( was met huidig breedband ? ). Als je bij je host op een budget zit met betrekking tot bandbreedte kan het een optie zijn zlib aan te zetten om te sparen.

Keerzijde is dat bij output buffering die hele content op de server blijft totdat alles gereed is, bij ongebufferde output gaat de zaak meteen de deut uit, er is dus minder geheugen nodig. Daarnaast is er voor het comprimeren op het einde extra performance van de server nodig.  Het kan dus helpen zlib compressie uit te zetten.

Bij websites als deze bestaat bovendien een groot deel van de data uit niet php output ( javascript, afbeeldingen, stylesheets) en het is maar de vraag of je met zlib compressie veel bespaart.

  • in php.ini zlib.output_compression = On/Off
  • in .htaccess php_flag zlib.output_compression on/off

Een alternatieve manier om compressie toe te passen is via de apache server zelf. Terwijl er zelf ervaring zijn met een negatieve invloed op de performance bij php-zlib compressie, zijn er op dezelfde server positieve ervaringen met AddOutputFilterByType DEFLATE

MySQL Indexen optimaliseren (shared)

Als mod_datamenu gebruikt wordt om content aan het dataitems menu te koppelen (artikel variant) dan voert de module een zoekaktie uit op de alias in jos_content hier is geen index op:

ALTER TABLE `jos_content` ADD INDEX ( `alias` ) ;

 

mysql

 

De belangrijkste parameter om de performance van mysql te beinvloeden is geheugen. Hoe meer geheugen hoe meer mysql in geheugen kan cachen en hoe beter de performance wordt. Aangezien geheugen akties nog steeds een factor sneller zijn dan lezen en schrijven van de harddisk. Daarnaast is het zaak het geheugen binnen joomla goed toe te wijzen belangrijke parameters:

  • mysql key_buffer

  • mysql query_buffer

  • mysql table_cache

  • delay_key_write

mysql verdere tips

Nog een paar opties die je kunt overwegen om met name ruimte te besparen:

  • skip-networking
  • skip-bdb
  • skip-innodb

Waarschijnlijk zijn er bij de installatie van MySQL een aantal voorbeeld configuraties meegeinstalleerd. zoek op de hardeschijf of google op my-huge.cnf my-large.cnf. Prima inzicht in de mogelijkheden, met aardig wat uitleg

mysql slow queries

Interresant is het om te weten waar het misgaat. MySQL heeft de mogelijkheid queries die erg lang nodig hebben te loggen met behulp van de volgende opties. In de server status via phpmyadmin kun je trouwens zien hoeveel slow queries er zijn.

  • log_slow_queries
  • log_long_format

En om te kijken welke queries geen index gebruiken en dus potentieel traag zijn:

  • log-queries-not-using-indexes (mysql > 4.1)

Met laatste parameter kan er een flinke hoeveelheid langskomen, wellicht geen goed idee deze logging altijd aan te hebben

Waar de log-file dan staat is afhankelijk van je omgeving

 

my.cfg voorbeeld

 

Onderstaande configuratie voor mysql houd databases met bijna 200.000 items draaiende op een VPS met 786MBytes geheugen. Af en toe is het wat krap.

 

{include_code_listing /var/www/www.affiliatefeeds.nl/images/code/my-cfg-89.txt}

 

accelerators (shared ? )

Er zijn verschillende php accelerators, Zend, fastcgi en meer. Dit zou allemaal prima smaen moeten werken met joomla+datafeeds maar er is nog geen ervaring mee.

Eigen Hosting

Aan de mysql parameters sleutelen mag op een shared host meestal niet. De oplossing is dan een VPS of Dedicated Server.

Een eigen server is ook de oplossing als je joomla cache erg veel ruimte in beslag neemt.

 

En verder

als het nog wilder wordt ga dan denken aan meerdere servers. Aparte server voor mysql, mysql database splitsen over meerdere schijven, andere database engine (InnoDB), meerdere apacher servers, squid als proxy/load balancer. Maar bovenal meer geheugen..

Heb je tips, kommentaar of aanvullingen? Graag !

 


Sommige elementen in feeds bevatten leestekens, sommige van de leestekens kunnen ergens in de keten van MySQL/php/joomla/html problemen veroorzaken.

Het gaat om : '/-:&"?_+

De ' en " zijn lastig met MySQL, de /,?,+ en & kunnen problemen veroorzaken in de URL. De - en : worden door joomla op een bijzondere manier behandelt in verband met het SEF systeem.

Daarom worden deze tekens vervangen door een spatie ( ` in geval van ') voordat elementen ( selecties/menu items) aan de MySQL database worden  toegevoegd.

In de callback functie zijn de leestekens nog niet aangepast. Als je op de site bijvoorbeeld 'Nieuw Zeeland' hebt staan kan dat zijn oorsprong hebben in 'Nieuw-Zeeland' of 'Nieuw Zeeland'.

En umlauten en karakteres met trema's en zo?

Het is toegestaan umlauten en soortgelijke karakters in de URI op te nemen, soms wordt de URI dan vertaald naar een encoded string.   In het oorspronkelijke systeem werden de karakters vervangen door hun altenatieve schrijfwijze &ueml; -> ue. Dit is echter een nogal dure bewerking en daarom is ervoor gekozen dit niet meer te doen..

Er zijn op dit moment geen plannen de component naar wordpress om te bouwen.

Met tools als Wordpress CSV and Datafeed Import Plugin en de csvpig is het mogelijk feeds in wordpress te importeren. 

deze tools zijn ook de gebruiken icm com_datafeeds, dwz de datafeed component kan een csv feed genereren. zie bijvoorbeeld http://badmode.logze.nl

 

 

Uitgaande van een werkende wordpress installatie met de runPHP toevoeging (stap 1 en 2 uit Edwin's verhaal):

  • installeer joomla, bijvoorbeeld in een sub-directory. installeer joomla in dezelfde database als wordpress.
    • Omdat ze verschillende prefixen gebruiken ( wp versus jos ) is dat goed mogelijk
  • installeer com_datafeeds
  • in de algemene instellingen van joomla kun je de website (frontend) eventueel uitzetten.
  • Uitgaande van de aanwezige demo feeds zou onderstaande php code nu in wordpress moeten werken

Je kunt er bijvoorbeeld ook voor kiezen om joomla alsnog te gebruiken om je feeds te presenteren en je wordpress blog als lokaas.

De gebruikte php code is net iets anders dan die van Edwin (Stap 4) :

{include_code_listing /var/www/www.affiliatefeeds.nl/images/code/wordpress-87.txt}

Pas bij het knippen en plakken op dat de commentaren in de eerste regel niet over meerdere uitgesmeerd worden!

 

 

Deze module kan gebruikt worden voor:

  • weergeven van een menu
  • plaatsen van tekst of links  bij een com_datafeeds menu : zie dit artikel
  • weergeven van een toplijst.

De module werkt altijd samen met een com_datafeeds menu . Dit menu definieert het filter waarmee in de database gezocht wordt.

De opties

Niet alle opties worden voor alle layouts gebruikt.

Algorithm Selectie methode van menu items ( zie onder ) in menu layouts
prefix Om verschillende artikele/links te kunnen toevoegen zie dit artikel
Default ID Wijst naar een com_datafeed menu. Als de module op een pagina weergegeven wordt waar geen datafeeds menu aanwezig is wordt dit menu item gebruik. Het is ook mogelijk om het gebruik van een bepaalt menu te forceren door een min-teken te gebruiken
Table grid Aantal  kolommen dat naast elkaar gezet moet worden. Wordt bijvoorbeeld gebruikt in de search layout. Als je hier 2 kiest met levels op 8 krijg je een tabel van 2 kolomen en 4 rijen.
Number of levels Aantal subniveau's dat getoond gaat worden(zie onder)
Number of items Aantal items dat in niet top niveau's getoond gaat worden (zie onder)
Sorteer Niveau 0 Sorteer optie (gebruikt bij lijsten)
Volgorde Sorteer volgorde (gebruikt bij lijsten)
Advanced tab
Neven Hoofdselectie/value's Analoog aan de hoofdselectie bij de menu configuratie kan hier weer een kleine selectie gemaakt worden. De combinate merchant/esprit zal alleen de items uit de esprit feed laten zien

Menu niveau's en aantallen.

Gegeven de volgende data

  • Frankrijk
    • Elzas
    • Provence
    • Parijs
      • Single Reis
  • Spanje
    • Andalusie
    • Costa Brava

In de beginsituatie zal het menu zo weergeven worden:

Niveau/Menu 1

  • Frankrijk
  • Spanje

Niveau/Menu 2

  • Elzas
  • Andalusie

Niveau/Menu 3

  • Single Reis

Hierbij is  Number of items ingesteld op 2. Het tweede menu niveau zonder selectie ( dat is in de beginstand niveau 2 ) geeft dan maximaal Number of items weer gebaseerd op hits.

Stel jeer wordt nu Frankrijk geselecteerd. ( niveau drie even buiten beschouwing )

Minimaal Smart
Maximaal

Niveau 1

  • Frankrijk

Niveau 2

  • Elzas
  • Provence
  • Parijs

 

Niveau 1

  • Frankrijk
  • Spanje

Niveau 2

  • Elzas
  • Provence
  • Parijs
Niveau 1
  • Frankrijk
  • Spanje
Niveau 2
  • Elzas
  • Provence
  • Parijs
  • Andaluesie
  • Costa Brava

Bij een keuze voor 'Maximaal' is er kans op selectis die niets opleveren.

 

Automatische Keuze

Stel in de begin situatie wordt in het derde menu voor 'single reis' gekozen, de enige optie die er dan voor nivuea  1 en 2 is Frankrijk,Parijs. Er is geen keuze en het item is niet te selecteren

Geen keuze

Stel in de begin situatie wordt in het eerste menu 'Spanje' gekozen. Er is dan voor niveau 3 geen keuze meer met de Algomitmes 'Minimaal' en 'Smart'

Custom layout

De module staat het toe eenvoudig andere layouts toe te voegen.

Stel je wilt het menu aanpassen aan je eigen wensen. Kopier bijvoorbeeld default.php naar bijvoorbeeld mijnmenu.php Vervang in het script in de classnaam 'default' door 'mijnmenu' en pas het script verder aan. Dus de naam van de class is Data<filename>Menu. Selecteer je scripts als layout.

De layouts zijn er in drie varianten, menu's, lijsten en custom.  Om een custom layout voor een lijst te maken moet de bestandsnaam eindigen in _list.php. Bij een custom layout eindigd de naam op _custom. Bij een lijst en een menu wordt een ingebouwde query uitgevoerd. Bij een custom layout moet je het helemaal zelf doen.

 

 

{include_code_listing /var/www/www.affiliatefeeds.nl/images/code/count_custom.txt}

 

Default ID

De module mod_datamenu verwijst altijd naar een datafeeds->items menu. Als de module weergegeven wordt op een datafeeds->items menu pagina dan gebruikt de module automatisch de instellingen/filters van die pagina. Als de module geplaatst is op een pagina die geen datafeeds-items is dan heeft de module geen instellingen en kan niets weergeven worden. Om toch op een willekeurige pagina een zoekmodule of een toplijst te kunnen weergeven gebruik je de default id.

In het voorbeeld rechts is de startpagina een gewoon artikel, stel je wilt op deze pagina op een module positie een toplijst van Vakanties en reizen aanmaken. In de module parameters komt dan in default-id '36' te staan. Wil je zowel een toplijst van zowel de vakanties als wintersport dan wordt het '36,45'.

Of je wilt op de vakantie pagina juist wel een toplijst van de wintersport. Gewoonlijk zou de module automatisch de top lijst van het eigen datafeeds menu overnemen. Vul voor de default-id een negatieve waarde in om de relatie met een datafeeds-items menu te fixeren : '-45'

Met de plugin loadposition ( core joomla ) kun je de module ook willekeurig in een artikel weergeven.

 

Tips

  1. De module gebruikt diverse instellingen van het betreffende menu item. Zo onder andere de headings voor de menu's. (tot versie 346 in het  Advanced Tab van de instellingen)
  2. Je kunt de module meerdere keren onder elkaar plaatsen door  meerdere default ids op te geven 36,45 of beter -36,-45 ( dan staan ze er onafhankelijk van het menu item )
  3. Sommige custom layouts geven titels weer van de betreffende component. Dit is niet zoals wellicht te verwachten de titel linksboven in de menu instellingen (dat is namelijk de naam van het menu-item), maar de titel rechts onder bij de systeem parameters.
  4. Wil je altijd eerst de lijst/menu van het huidige datafeeds menu en dan de rest. Gebruik dan eerst een nul: 0,-36,-45

 

 

The search plugin extends the joomla core search. It allows to search the items database.

For joomla 1.7+ see this article

Plugin params

The item links

The joomla search results page links back to the dataitems menu, the parameters 'Add to...' allow to customize the link:

This will add the unique item id to the link, the target page will only show this single item. This option has a drawback: the item id is not preserved when  the item changes, for example one of the Select fields gets a different value.

This adds the title to the page url, displaying possibly multiple items.

This selection field as defined in the menu configuration. The next parameter (Menu levels) defines how menu fields are shown.

Link to merchant

This option allows to use the affiliate link, redirecting directly to the merchants store

Setting the target menu Menu Id

The items in the database do not have a structure, the structure is defined in the menu configuration. Therefore a target menu id must be set in the plugin configuration.

Searching multiple menu's

There is a catch here, assuming a site has multiple menu's each with a different main selection ( the first selection in the menu configuration), for example:

menu - 1 has a Select0 on 'Widgets'

menu - 2 has a Select0 on 'Gifts'

So you can't use the (single) search plugin to search both menu's structures.

If a site as multiple datafeed menu's you might want to define an extra menu without a main selection, pointing the search plugin to this menu

 

 

searching the title and description

By default the plugin will not search the title and description of the items, since this might be an expensive operation. On small sets of items or a proper server you can enable the search in the plugin configuration: 'Search Title' and 'Search Description'