loopDbChunk
Creator: Alexandr Voronkin (elastic)
About loopDbChunk
It,s like snippet loopDbChunk for the EVO, but only for the REVO. The snippet will loop over a database table and for each row will inject all fields into placeholders contained in a chunk.
Information
Released
March 15, 2011
Supported Database
MySQL
License
GPLv2
Supported Versions
2.0 - Current
Downloads
1,656
Instructions
&dbConnect - (Opt)Boolean. If true, will connect to foreign db, uses config.inc.php under core/components/package/config/&package - The name of the folder that contains the xPDO model package.&model - The path to the xPDO model package folder, relative to the core folder.If you use a snippet to work with MODX core tables, you do not need to specify parameters &package and &model.&class - The xPDO model class that represents a specific table.&alias - (Opt)Sets a SQL alias for the table.&select - (Opt)commaseperated list of table columns. If not specified, all columns are selected.&where - (Opt) A JSON expression of criteria to build any additional where clauses from. An example would be&where={{"alias:LIKE":"foo%", "OR:alias:LIKE":"%bar"},{"OR:pagetitle:=":"foobar", "AND:description:=":"raboof"}}.&sortby - (Opt)Field to sort by.&sortdir - (Opt)Order which to sort by.&orderby - (Opt) Sorting by multiple fields. For example &orderby = parent ASC, id DESC&limit - Limits the number of rows returned.&offset - An offset of rows returned by the criteria to skip.&ids - (Opt)commaseperated list of ids.&idField - (Opt)fieldname for idField if other than 'id'.&outerTpl - (Opt)wrapper template with placeholder [[+output]] for items.&tpl - Row template. [NOTE: if not provided, properties are dumped to output for each row]&tplOdd - (Opt)Template for rows with an odd idx value (see idx property).&tplFirst - (Opt)Template for the first row (see first property).&tplLast - (Opt)Template for the last row (see last property).&idx - You can define the starting idx of the rows, which is an property that is incremented as each row is rendered.&first - Define the idx which represents the first row (see tplFirst).&last - Define the idx which represents the last row (see tplLast).&toplaceholder - If set, will assign the result to this placeholder instead of outputting it directly.&debug - If true, will send the SQL query to the MODx log. Fork it -> https://github.com/elastic/loopDbChunkBugs -> https://github.com/elastic/loopDbChunk/issuesShow 3 last resources.[[loopDbChunk?&class=modResource&where={"published:=":1,"hidemenu:=":0}&sortby=pagetitle&sortdir=ASC&tpl=tableRowTpl&tplFirst=tableRowFirstTpl&tplLast=tableRowLastTpl&limit=3]]Show all approved comments(Quip).[[loopDbChunk?&package = quip&model = components/quip/model/&class=quipComment&where={"approved:=":1}&limit=&tpl=`commentRowTpl`]]Can be used with snippet getPage.[[!getPage?&element=`loopDbChunk`&package = `quip`&model = `components/quip/model/`&class=`quipComment`&where=`{"approved:=":1}`&limit=&tpl=commentRowTpl&limit=3]]<div class="pageNav">[[!+page.nav]]</div>Using &alias, &select, &orderby:[[!loopDbChunk?&class=modResource&alias=doc&select=pagetitle&where={"published:=":1,"hidemenu:=":0}&orderby=parent ASC,id DESC&tpl=@INLINE <li>[[+pagetitle]]</li>&outerTpl=@INLINE <ul>[[+output]]</ul>&limit=5&debug=1]]Get some records with specified ids:[[loopDbChunk? &class=modResource &ids=10,11,12,15 &sortby=pagetitle &sortdir=ASC &tpl=tableRowTpl ]]Using &ids for a table where the primary-key isn't id but for example products_id:[[loopDbChunk? &package=xt &class=Products &ids=10,11,12,15 &idField=products_id &tpl=tableRowTpl ]]Connect to a table in a foreign database:[[loopDbChunk? &package=xt &dbConnect=1 &class=Products &limit=20 &tpl=tableRowTpl ]]/core/components/xt/config/config.inc.php:$database_type = 'mysql';$database_server = 'xxx';$database_user = 'xxx';$database_password = 'xxx';$database_connection_charset = 'utf8';$dbase = 'xxx';$table_prefix = '';
New in 2.2.1-alpha0
2.2.1New properties: alias, select, orderby2.1.0New properties: dbConnect, ids, idField, outerTplThanks to Bruno17(https://github.com/Bruno17)!