Esempio n. 1
0
 /**
  * Render the Plugin Info
  * 
  * @param unknown_type $params
  * @param unknown_type $pObj
  */
 public function getExtensionSummary($params, &$pObj)
 {
     $data = GeneralUtility::xml2array($params['row']['pi_flexform']);
     $this->init($data);
     if (is_array($data)) {
         // PluginMode
         $firstControllerAction = array_shift(explode(';', $data['data']['sDefault']['lDEF']['switchableControllerActions']['vDEF']));
         $this->pluginMode = str_replace('->', '_', $firstControllerAction);
         // List
         $listIdentifier = $data['data']['sDefault']['lDEF']['settings.listIdentifier']['vDEF'];
         // Filter
         $filterBoxIdentifier = $data['data']['sDefault']['lDEF']['settings.filterboxIdentifier']['vDEF'];
         // Export
         $exportType = array_pop(explode('.', $data['data']['sDefault']['lDEF']['settings.controller.List.export.view']['vDEF']));
         $exportFileName = $data['data']['sDefault']['lDEF']['settings.prototype.export.fileName']['vDEF'];
         $exportFileName .= $data['data']['sDefault']['lDEF']['settings.prototype.export.addDateToFilename']['vDEF'] ? '[DATE]' : '';
         $exportFileName .= '.' . $data['data']['sDefault']['lDEF']['settings.prototype.export.fileExtension']['vDEF'];
         $exportDownloadType = 'tx_ptextlist_flexform_export.downloadtype.' . $data['data']['sDefault']['lDEF']['settings.prototype.export.downloadType']['vDEF'];
         $exportListIdentifier = $data['data']['sDefault']['lDEF']['settings.exportListIdentifier']['vDEF'];
     }
     $this->fluidRenderer->assign($this->pluginMode, true);
     $this->fluidRenderer->assign('listIdentifier', $listIdentifier);
     $this->fluidRenderer->assign('filterBoxIdentifier', $filterBoxIdentifier);
     $this->fluidRenderer->assign('exportType', $exportType);
     $this->fluidRenderer->assign('exportFileName', $exportFileName);
     $this->fluidRenderer->assign('exportDownloadType', $exportDownloadType);
     $this->fluidRenderer->assign('exportListIdentifier', $exportListIdentifier);
     $this->fluidRenderer->assign('caLabel', 'LLL:EXT:pt_extlist/Resources/Private/Language/locallang.xml:tx_ptextlist_flexform_controllerAction.' . $this->pluginMode);
     return $this->fluidRenderer->render();
 }
/**
 * This function will replace fields taken from the fields variable
 * and insert them into the passed string replacing [variableName] 
 * tokens where found.
 *
 * @param unknown_type $params
 * @param unknown_type $smarty
 * @return unknown
 */
function smarty_function_sugar_replace_vars($params, &$smarty)
{
    if (empty($params['subject'])) {
        $smarty->trigger_error("sugarvar: missing 'subject' parameter");
        return;
    }
    $fields = $smarty->get_template_vars('fields');
    $subject = $params['subject'];
    $matches = array();
    $count = preg_match_all('/\\[([^\\]]*)\\]/', $subject, $matches);
    for ($i = 0; $i < $count; $i++) {
        $match = $matches[1][$i];
        if (!empty($fields[$match]) && isset($fields[$match]['value'])) {
            $value = $fields[$match]['value'];
            if (isset($fields[$match]['type']) && $fields[$match]['type'] == 'enum' && isset($fields[$match]['options']) && isset($fields[$match]['options'][$value])) {
                $subject = str_replace($matches[0][$i], $fields[$match]['options'][$value], $subject);
            } else {
                $subject = str_replace($matches[0][$i], $value, $subject);
            }
        }
    }
    if (!empty($params['assign'])) {
        $smarty->assign($params['assign'], $subject);
        return '';
    }
    return $subject;
}
Esempio n. 3
0
/**
 * Загружает в переменную список блоков
 *
 * @param unknown_type $params
 * @param unknown_type $smarty
 * @return unknown
 */
function smarty_function_get_blocks($params, &$smarty)
{
    if (!array_key_exists('assign', $params)) {
        trigger_error("get_blocks: missing 'assign' parameter", E_USER_WARNING);
        return;
    }
    $smarty->assign($params['assign'], Engine::getInstance()->Viewer_GetBlocks());
    return '';
}
Esempio n. 4
0
/**
 * Позволяет транслировать данные в json
 *
 * @param unknown_type $params
 * @param unknown_type $smarty
 * @return unknown
 */
function smarty_function_json($params, &$smarty)
{
    if (!array_key_exists('var', $params)) {
        $smarty->trigger_error("json: missing 'var' parameter");
        return;
    }
    $var = $params['var'];
    $_contents = json_encode($var);
    if (!empty($params['assign'])) {
        $smarty->assign($params['assign'], $_contents);
    } else {
        return $_contents;
    }
}
/**
 * This function will replace fields taken from the fields variable
 * and insert them into the passed string replacing [variableName] 
 * tokens where found.
 *
 * @param unknown_type $params
 * @param unknown_type $smarty
 * @return unknown
 */
function smarty_function_sugar_replace_vars($params, &$smarty)
{
    if (empty($params['subject'])) {
        $smarty->trigger_error("sugarvar: missing 'subject' parameter");
        return;
    }
    $fields = empty($params['fields']) ? $smarty->get_template_vars('fields') : $params['fields'];
    $subject = replace_sugar_vars($params['subject'], $fields, !empty($params['use_curly']));
    if (!empty($params['assign'])) {
        $smarty->assign($params['assign'], $subject);
        return '';
    }
    return $subject;
}
/**
 * This function will replace fields taken from the fields variable
 * and insert them into the passed string replacing [variableName] 
 * tokens where found.
 *
 * @param unknown_type $params
 * @param unknown_type $smarty
 * @return unknown
 */
function smarty_function_sugar_replace_vars($params, &$smarty)
{
    if (empty($params['subject'])) {
        $smarty->trigger_error("sugarvar: missing 'subject' parameter");
        return;
    }
    $fields = empty($params['fields']) ? $smarty->get_template_vars('fields') : $params['fields'];
    $lDelim = "[";
    $rDelim = "]";
    if ($params['use_curly']) {
        $lDelim = "{";
        $rDelim = "}";
    }
    $subject = $params['subject'];
    $matches = array();
    $count = preg_match_all('/\\' . $lDelim . '([^\\' . $rDelim . ']*)\\' . $rDelim . '/', $subject, $matches);
    for ($i = 0; $i < $count; $i++) {
        $match = $matches[1][$i];
        //List views will have fields be an array where all the keys are upper case and the values are jsut strings
        if (!isset($fields[$match]) && isset($fields[strtoupper($match)])) {
            $match = strtoupper($match);
        }
        $value = isset($fields[$match]) ? $fields[$match] : null;
        if (!is_null($value)) {
            if (isset($value['function']['returns']) && $value['function']['returns'] == 'html') {
                $bean = $smarty->get_template_vars('bean');
                $value = $bean->{$match};
            } else {
                if (is_array($value) && isset($value['value'])) {
                    $value = $value['value'];
                }
            }
            if (isset($fields[$match]['type']) && $fields[$match]['type'] == 'enum' && isset($fields[$match]['options']) && isset($fields[$match]['options'][$value])) {
                $subject = str_replace($matches[0][$i], $fields[$match]['options'][$value], $subject);
            } else {
                $subject = str_replace($matches[0][$i], $value, $subject);
            }
        }
    }
    if (!empty($params['assign'])) {
        $smarty->assign($params['assign'], $subject);
        return '';
    }
    return $subject;
}
/**
 * Загружает список языковых текстовок в шаблон
 *
 * @param unknown_type $params
 * @param unknown_type $smarty
 * @return unknown
 */
function smarty_function_lang_load($params, &$smarty)
{
    if (!array_key_exists('name', $params)) {
        trigger_error("lang_load: missing 'name' parameter", E_USER_WARNING);
        return;
    }
    $aLangName = explode(',', $params['name']);
    $aLangMsg = array();
    foreach ($aLangName as $sName) {
        $aLangMsg[$sName] = Engine::getInstance()->Lang_Get(trim($sName), array(), false);
    }
    if (!isset($params['json']) or $params['json'] !== false) {
        $aLangMsg = json_encode($aLangMsg);
    }
    if (!empty($params['assign'])) {
        $smarty->assign($params['assign'], $aLangMsg);
    } else {
        return $aLangMsg;
    }
}
/**
 * Позволяет транслировать данные в json
 *
 * @param unknown_type $params
 * @param unknown_type $smarty
 * @return unknown
 */
function smarty_function_json($params, &$smarty)
{
    if (!array_key_exists('var', $params)) {
        trigger_error("json: missing 'var' parameter", E_USER_WARNING);
        return;
    }
    if (class_exists('Entity') && $params['var'] instanceof Entity) {
        $aMethods = null;
        if (!empty($params['methods'])) {
            $aMethods = is_array($params['methods']) ? $params['methods'] : explode(',', $params['methods']);
        }
        $var = func_convert_entity_to_array($params['var'], $aMethods);
    } else {
        $var = $params['var'];
    }
    $_contents = json_encode($var);
    if (!empty($params['assign'])) {
        $smarty->assign($params['assign'], $_contents);
    } else {
        return $_contents;
    }
}
Esempio n. 9
0
 /**
  *
  * description
  *
  * @param $var
  * @param $val
  * @return unknown_type
  */
 public function assign($var, $val)
 {
     $this->view->assign($var, $val);
 }