1. Getting Started
      1. Basic Installation
      2. What is MODx
    2. Content Editing
      1. Editing Documents
      2. MODx Tags
        1. Document Variables
      3. Terminology
      4. The Manager
      5. Who Should Read This
    3. Designing
      1. Adding Chunks
      2. Adding MODx Tags
        1. Resource Fields
      3. Adding Snippets
      4. Document Caching
      5. Template Basics
    4. Administration
      1. Friendly URL Solutions
      2. Manager Users
        1. Manager Roles And Groups
        2. Reset your Password - Unblock your User
        3. Why Manager Users, Roles and Groups
      3. Moving Site
      4. Taking sites down for maintenance
      5. Upgrading
      6. Web Users
        1. Creating a Web User
        2. Web User Groups and Document Groups
        3. Why Web Users and Groups
    5. Developer's Guide
      1. API Reference
        1. DBAPI
          1. delete
          2. escape
          3. getInsertId
          4. query
          5. select
          6. update
        2. Document Object
        3. DocumentParser Object
          1. addEventListener
          2. changeWebUserPassword
          3. documentContent
          4. documentGenerated
          5. documentIdentifier
          6. documentListing
          7. documentMethod
          8. documentObject
          9. getAllChildren
          10. getCachePath
          11. getChildIds
          12. getDocumentChildren
          13. getDocumentChildrenTVarOutput
          14. getDocumentChildrenTVars
          15. getLoginUserID
          16. getLoginUserName
          17. getLoginUserType
          18. getManagerPath
          19. getParent
          20. getParentIds
          21. getUserData
          22. hasPermission
          23. isBackend
          24. isFrontend
          25. logEvent
          26. maxParserPasses
          27. minParserPasses
          28. regClientCSS
          29. runSnippet
          30. table_prefix
          31. tstart
          32. webAlert
      2. Chunks
      3. Modules
        1. How to create and run a module from within the Content Manager
        2. Managing module dependencies
        3. Setting up configuration parameters
        4. Writing the module code
      4. Plugins
      5. Snippets
      6. Template Variables
        1. (at) Binding
          1. (at)CHUNK
          2. (at)DIRECTORY
          3. (at)DOCUMENT
          4. (at)EVAL
          5. (at)FILE
          6. (at)INHERIT
          7. (at)SELECT
          8. What are (at) Bindings
        2. Creating a Template Variable
        3. What are Template Variables
        4. Widgets
          1. Misc. Widget
          2. DataGrid Widget
          3. Floater Widget
          4. Hyperlink Widget
          5. Marquee Widget
          6. RichTextBox Widget
          7. Ticker Widget
          8. Viewport Widget
          9. What are Widgets

runSnippet

API Function Definition
Name runSnippet
Versions > 0.9.2
Parameters string $snippetName [, array $params]
Return success Output of a given snippet
Return failure empty string (or false?)
Return type string
Object hierarchy DocumentParser

Retrieves a snippet from the database (or cache) given the name of the snippet. Extra parameters may also be sent to the snippet via it's optional second parameter. This function is usually used to run a snippet from within other Snippets or even Modules.

Examples

$dittoOutput = $modx->runSnippet(
        "Ditto",
        array(
            "tpl" => "<post><title>[+title+]</title><summary>[+summary+]</summary></post>"
        )
);

Related functions

  • [getChunk]
  • [evalSnippet]

Function source

API Source File - manager/includes/document.parser.class.inc.php - 1689
function runSnippet($snippetName, $params= array ()) {
  if (isset ($this->snippetCache[$snippetName])) {
      $snippet= $this->snippetCache[$snippetName];
      $properties= $this->snippetCache[$snippetName . "Props"];
  } else { // not in cache so let's check the db
      $sql= "SELECT * FROM " . $this->getFullTableName("site_snippets") . " WHERE " . $this->getFullTableName("site_snippets") . ".name='" . mysql_escape_string($snippetName) . "';";
      $result= $this->dbQuery($sql);
      if ($this->recordCount($result) == 1) {
          $row= $this->fetchRow($result);
          $snippet= $this->snippetCache[$row['name']]= $row['snippet'];
          $properties= $this->snippetCache[$row['name'] . "Props"]= $row['properties'];
      } else {
          $snippet= $this->snippetCache[$snippetName]= "return false;";
          $properties= '';
      }
  }
  // load default params/properties
  $parameters= $this->parseProperties($properties);
  $parameters= array_merge($parameters, $params);
  // run snippet
  return $this->evalSnippet($snippet, $parameters);
}

Notes

The paramaters array passed to this function should be of the form 'paramater' => 'value'; If you prefer a more readable function call, create an array first, such as:

$params['param1'] = 'value1';
$params['param2'] = 'value2';

$html = $modx->runSnippet('mysnippet', $params);

Suggest an edit to this page on GitHub (Requires GitHub account. Opens a new window/tab).