dd / evolutioncms-snippets-ddgetchunk
Snippet gets the chunk contents by its name. For example, it useful to get chunks inside JS code.
Installs: 1
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 2
Forks: 0
Open Issues: 0
Type:modxevo-snippet
Requires
- php: >=5.6.0
- dd/evolutioncms-libraries-ddtools: >=0.60.0
This package is auto-updated.
Last update: 2024-11-06 07:42:49 UTC
README
Snippet gets the chunk contents by its name. For example, it useful to get chunks inside JS code.
Also it can:
- Pass additional data to chunk for parsing.
- Escape special chars for JS.
- Remove empty placeholders.
Requires
- PHP >= 5.6
- (MODX)EvolutionCMS >= 1.1
- (MODX)EvolutionCMS.libraries.ddTools >= 0.60
Installation
Using (MODX)EvolutionCMS.libraries.ddInstaller
Just run the following PHP code in your sources or Console:
//Include (MODX)EvolutionCMS.libraries.ddInstaller require_once( $modx->getConfig('base_path') . 'assets/libs/ddInstaller/require.php' ); //Install (MODX)EvolutionCMS.snippets.ddGetChunk \DDInstaller::install([ 'url' => 'https://github.com/DivanDesign/EvolutionCMS.snippets.ddGetChunk', 'type' => 'snippet' ]);
- If
ddGetChunk
is not exist on your site,ddInstaller
will just install it. - If
ddGetChunk
is already exist on your site,ddInstaller
will check it version and update it if needed.
Manually
1. Elements → Snippets: Create a new snippet with the following data
- Snippet name:
ddGetChunk
. - Description:
<b>2.4</b> Snippet gets the chunk contents by its name. For example, it useful to get chunks inside JS code.
. - Category:
Core
. - Parse DocBlock:
no
. - Snippet code (php): Insert content of the
ddGetChunk_snippet.php
file from the archive.
2. Elements → Manage Files
- Create a new folder
assets/snippets/ddGetChunk/
. - Extract the archive to the folder (except
ddGetChunk_snippet.php
).
Parameters description
-
name
- Desctription: Chunk name or code via
@CODE:
prefix. - Valid values:
stringChunkName
string
— use inline templates starting with@CODE:
- Required
- Desctription: Chunk name or code via
-
placeholders
- Desctription:
Additional data has to be passed into the chunk.
Arrays are supported too:some[a]=one&some[b]=two
=>[+some.a+]
,[+some.b+]
;some[]=one&some[]=two
=>[+some.0+]
,[some.1]
. - Valid values:
stringJsonObject
— as JSONstringHjsonObject
— as HJSONstringQueryFormatted
— as Query string- It can also be set as native PHP object or array (e. g. for calls through
\DDTools\Snippet::runSnippet
or$modx->runSnippet
):arrayAssociative
object
- Default value: —
- Desctription:
Additional data has to be passed into the chunk.
-
removeEmptyPlaceholders
- Desctription: Placeholders which have not values to be replaced by will be deleted from parsed chunk if the parameter equals 1.
- Valid values:
0
1
- Default value:
0
-
escapeResultForJS
- Desctription: Escaping special chars for JS.
- Valid values:
0
1
- Default value:
0
Examples
All examples are written using HJSON for the placeholders
parameter, but if you want you can use vanilla JSON instead.
Get content of the form into JS code
<script> var form = '[[ddGetChunk? &name=`someForm` &escapeResultForJS=`1`]]'; //Insert form to page $('body').append(form); </script>
Get chunk with Ditto and send necessary additional data into it
[[ddGetChunk?
&name=`someChunk`
&placeholders=`{
id: 33
orderBy: "someTv ASC, pub_date DESC"
}`
]]
Code of someChunk
:
<div class="some"> <div class="someDesignDiv"></div> <div> [[Ditto? &startID=`[+id+]` &orderBy=`[+orderBy+]` &tpl=`someChunk_item` ]] </div> </div>
Run the snippet through \DDTools\Snippet::runSnippet
without DB and eval
\DDTools\Snippet::runSnippet([ 'name' => 'ddGetChunk', 'params' => [ 'name' => 'someChunk' ] ]);