src/PeskyCMF/Scaffold/RenderableValueViewer.php
public function getConditionalDotJsInsertForValue($thenInsert, $elseInsert, array $additionalVarNameParts = []) {
        $fullName = $this->getVarNameForDotJs();
        $parts = array_merge(explode('.', $fullName), $additionalVarNameParts);
        $conditions = [];
        $chain = 'it';
        for ($i = 1, $cnt = count($parts); $i < $cnt; $i++) {
            $chain .= '.' . $parts[$i];
            $conditions[] = '!!' . $chain;
        }
        return '{{? ' . implode(' && ', $conditions) . '}}' . $thenInsert  . '{{??}}' . $elseInsert . '{{?}}';
    }
public function getConditionalDotJsInsertForValue($thenInsert, $elseInsert, array $additionalVarNameParts = []) {
        $fullName = $this->getVarNameForDotJs();
        $parts = array_merge(explode('.', $fullName), $additionalVarNameParts);
        $conditions = [];
        $chain = 'it';
        for ($i = 1, $cnt = count($parts); $i < $cnt; $i++) {
            $chain .= '.' . $parts[$i];
            $conditions[] = '!!' . $chain;
        }
        return '{{? ' . implode(' && ', $conditions) . '}}' . $thenInsert  . '{{??}}' . $elseInsert . '{{?}}';
    }
public function getConditionalDotJsInsertForValue ( $ thenInsert , $ elseInsert , array $ additionalVarNameParts = [ ] ) { $ fullName = $ this -> getVarNameForDotJs ( ) ; $ parts = array_merge ( explode ( '.' , $ fullName ) , $ additionalVarNameParts ) ; $ conditions = [ ] ; $ chain = 'it' ; for ( $ i = 1 , $ cnt = count ( $ parts ) ; $ i < $ cnt ; $ i ++ ) { $ chain .= '.' . $ parts [ $ i ] ; $ conditions [ ] = '!!' . $ chain ; } return '{{? ' . implode ( ' && ' , $ conditions ) . '}}' . $ thenInsert . '{{??}}' . $ elseInsert . '{{?}}' ; }
Get failsafe conditional value insert for doT.js
Conditional insert looks like:
{{? !!it.viewer_name }}$thenInsert{{??}}$elseInsert{{?}} but more complicated to provide failsafe insert
@param string $thenInsert - insert this data when condition is positive
@param string $elseInsert - insert this data when condition is negative
@param array $additionalVarNameParts - additional parts of var name
@return string
@throws \PeskyCMF\Scaffold\ValueViewerConfigException
Get failsafe conditional value insert for doT . js Conditional insert looks like : {{ ? !!it . viewer_name }} $thenInsert {{ ?? }} $elseInsert {{ ? }} but more complicated to provide failsafe insert