zoukankan      html  css  js  c++  java
  • [MODx] 8. Snippet get data, chunk display

    Simple Example:

    Lets process this chunk and output its value. We have this Chunk, called "WelcomeChunk":

    <p>Welcome [[+name]]!</p>

    We'll put this in our Snippet:

    $output = $modx->getChunk('WelcomeChunk',array(
       'name' => 'John',
    ));
    return $output;

    So every key in the associative array passed to the getChunk method corresponds to an available placeholder inside the chunk, e.g. [[+name]]

    <p>Welcome John!</p>

    Nested $properties

    In our Chunk:

    <a href="http://site.com/profile?user_id=[[+user.id]]!">User Details</a>

    In our Snippet:

    $output = $modx->getChunk('UserLink',array(
       'user' => array('id' => 123)
    );
    return $output;

    Parsing a String

    Sometimes you need to parse a string using the MODX parser – this does not use getChunk, but it is related. Using the MODX parser is a bit slower than using a simple str_replace function, but it does let you use complex placeholders (e.g. to include another Chunk) and output filters etc. The trick is to create a temporary Chunk object, then run the process method on it.

    // The formatting String
    $tpl = 'Hello, my name is [[+name]]';
     
    // Properties
    $props = array('name' => 'Bob');
     
    // Create the temporary chunk
    $uniqid = uniqid();
    $chunk = $modx->newObject('modChunk', array('name' => "{tmp}-{$uniqid}"));
    $chunk->setCacheable(false);
     
    $output = $chunk->process($props, $tpl);

    See: http://rtfm.modx.com/revolution/2.x/developing-in-modx/other-development-resources/class-reference/modx/modx.getchunk

  • 相关阅读:
    React 事件机制
    EggJs学习 (一)
    css 选择器及样式属性
    css盒子模型
    ES5 继承方式
    正则表达式
    Flex布局
    npm
    深拷贝、浅拷贝
    Webpack实战(入门、进阶与调优)
  • 原文地址:https://www.cnblogs.com/Answer1215/p/4209701.html
Copyright © 2011-2022 走看看