src/PeskyCMF/Scaffold/RenderableValueViewer.php
public function getDotJsInsertForValue(array $additionalVarNameParts = [], $type = 'string', $default = null, $encodeHtml = null) {
        $jsonStringify = false;
        switch ($type) {
            case 'json_encode':
                $jsonStringify = true;
                $type = 'json';
                break;
            case 'array_encode':
                $jsonStringify = true;
                $type = 'array';
                break;
        }
        if ($encodeHtml === null) {
            $encodeHtml = !in_array($type, ['json', 'array'], true);
        }
        $encoding = $encodeHtml ? '!' : '=';
        if ($jsonStringify) {
            return "{{{$encoding} JSON.stringify(" . $this->getFailsafeValueForDotJs($additionalVarNameParts, $type, $default) . ') }}';
        } else {
            return "{{{$encoding} " . $this->getFailsafeValueForDotJs($additionalVarNameParts, $type, $default) . ' }}';
        }
    }
public function getDotJsInsertForValue(array $additionalVarNameParts = [], $type = 'string', $default = null, $encodeHtml = null) {
        $jsonStringify = false;
        switch ($type) {
            case 'json_encode':
                $jsonStringify = true;
                $type = 'json';
                break;
            case 'array_encode':
                $jsonStringify = true;
                $type = 'array';
                break;
        }
        if ($encodeHtml === null) {
            $encodeHtml = !in_array($type, ['json', 'array'], true);
        }
        $encoding = $encodeHtml ? '!' : '=';
        if ($jsonStringify) {
            return "{{{$encoding} JSON.stringify(" . $this->getFailsafeValueForDotJs($additionalVarNameParts, $type, $default) . ') }}';
        } else {
            return "{{{$encoding} " . $this->getFailsafeValueForDotJs($additionalVarNameParts, $type, $default) . ' }}';
        }
    }
public function getDotJsInsertForValue ( array $ additionalVarNameParts = [ ] , $ type = 'string' , $ default = null , $ encodeHtml = null ) { $ jsonStringify = false ; switch ( $ type ) { case 'json_encode' : $ jsonStringify = true ; $ type = 'json' ; break ; case 'array_encode' : $ jsonStringify = true ; $ type = 'array' ; break ; } if ( $ encodeHtml === null ) { $ encodeHtml = ! in_array ( $ type , [ 'json' , 'array' ] , true ) ; } $ encoding = $ encodeHtml ? '!' : '=' ; if ( $ jsonStringify ) { return "{{{$encoding} JSON.stringify(" . $ this -> getFailsafeValueForDotJs ( $ additionalVarNameParts , $ type , $ default ) . ') }}' ; } else { return "{{{$encoding} " . $ this -> getFailsafeValueForDotJs ( $ additionalVarNameParts , $ type , $ default ) . ' }}' ; } }
Get failsafe value insert for doT.js
Normal insert looks like:
{{! it.viewer_name || '' }} or {{= it.viewer_name || '' }} but more complicated to provide failsafe insert
@param array $additionalVarNameParts - additional parts of var name
@param string $type - @see $this->getFailsafeValueForDotJs();
Special types: 'json_encode', 'array_encode' - both apply JSON.stringify() to
inserted value of type 'json' or 'array' respectively
@param string|null $default - default value for cases when value is not provided or null.
Don't forget to wrap strings into quotes:
- "''" - inserts empty string (used instead of null),
- "[]" inserts array
@param bool|null $encodeHtml
- true: encode value to allow it to be inserten into HTML arguments;
- false: insert as is
- null: uatodetect depending on $type
@return string
@throws \PeskyCMF\Scaffold\ValueViewerConfigException
Get failsafe value insert for doT . js Normal insert looks like : {{ ! it . viewer_name || }} or {{ = it . viewer_name || }} but more complicated to provide failsafe insert