We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 3232
    • 380 Posts
    Has anyone experienced this?

    If I preview a page that is unpublished, I run into parse errors when a template tries to get a template variable. It will always return "empty" which causes problems in ditto filers or implode/explode functions.

    an example is

    <?php
    $rtIntDocId = (isset($docId)) ? $docid : $modx->documentIdentifier;
    $rtStrDocField = (isset($tvtag)) ? trim($tvtag) : 'null';
    $rtBoolDelimiter = (isset($delimiter)) ? $delimiter : ', ';
    $output = $modx->getTemplateVarOutput($rtStrDocField,$rtIntDocId);
    $field = $output[$rtStrDocField];
    $rtSplit = split($rtBoolDelimiter, $field);
    $rtSplitNumber = count($rtSplit);
    $rtNum = rand(1, $rtSplitNumber);
    $rtNum = $rtNum - 1;
    unset($rtIntDocId, $rtStrDocField, $rtBoolDelimiter);
    return $rtSplit[$rtNum];
    ?>


    When the page is published, it returns a tag but when the page is unpublished it returns nothing which causes the problems.
      • 4172
      • 5,888 Posts
      maybe this will work better?

      <?php
      $rtIntDocId = (isset($docId)) ? $docid : $modx->documentObject['id'];
      $rtStrDocField = (isset($tvtag)) ? trim($tvtag) : 'null';
      $rtBoolDelimiter = (isset($delimiter)) ? $delimiter : ', ';
      $output = $modx->getTemplateVarOutput($rtStrDocField,$rtIntDocId);
      if ($output == false)
      $output = $modx->getTemplateVarOutput($rtStrDocField,$rtIntDocId,'0');
      if ($output == false)
      return '';
      $field = $output[$rtStrDocField];
      $rtSplit = explode($rtBoolDelimiter, $field);
      $rtSplitNumber = count($rtSplit);
      $rtNum = rand(1, $rtSplitNumber);
      $rtNum = $rtNum - 1;
      unset($rtIntDocId, $rtStrDocField, $rtBoolDelimiter);
      return $rtSplit[$rtNum];
      ?>
        -------------------------------

        you can buy me a beer, if you like MIGX

        http://webcmsolutions.de/migx.html

        Thanks!
        • 3232
        • 380 Posts
        Thank you, this was actually very helpful, I wasn’t aware that this API was either published or unpublished and that we need to check for both.

        thanks