$answer['msg'] = $language['connector.rights']; } break; case 'datatable': default: if ($action && $tvid) { // document exists? $res = $modx->db->select('*', $modx->getFullTableName('site_content'), 'id=' . $docid); if ($modx->db->getRecordCount($res)) { // document with docId editable? $docObj = $modx->getPageInfo($docid, 0, '*'); if ($docObj) { // get the settings for the multiTV $tvSettings = $modx->getTemplateVar($tvid, '*', $docid, $docObj['published']); if ($tvSettings && ($tvSettings['elements'] = '@INCLUDE' . MTV_PATH . 'multitv.customtv.php')) { $multiTV = new multiTV($modx, array('type' => 'tv', 'tvDefinitions' => $tvSettings, 'tvUrl' => MTV_PATH)); $includeFile = $multiTV->includeFile($action, 'processor'); // processor available? if ($includeFile) { include $includeFile; } else { $answer['error'] = true; $answer['msg'] = $language['connector.noprocessor']; } } else { $answer['error'] = true; $answer['msg'] = $language['connector.nomultitv']; } } else { $answer['error'] = true; $answer['msg'] = $language['connector.rights'];
* * @category module * @version 2.0 * @license http://www.gnu.org/copyleft/gpl.html GNU Public License (GPL) * @author Jako (thomas.jakobi@partout.info) * * @internal description: <strong>2.0</strong> Custom Template Variabe containing a sortable multi item list or a datatable and a datatable CRUD module. * @internal module code: include(MODX_BASE_PATH.'assets/tvs/multitv/multitv.module.php'); */ if (IN_MANAGER_MODE != 'true') { die('<h1>ERROR:</h1><p>Please use the MODx Content Manager instead of accessing this file directly.</p>'); } global $modx; // set customtv (base) path define('MTV_PATH', str_replace(MODX_BASE_PATH, '', str_replace('\\', '/', realpath(dirname(__FILE__)))) . '/'); define('MTV_BASE_PATH', MODX_BASE_PATH . MTV_PATH); // load classfile $class_file = MTV_BASE_PATH . 'includes/multitv.class.php'; if (!file_exists($class_file)) { $modx->messageQuit(sprintf('Classfile "%s" not found. Did you upload the module files?', $class_file)); } require_once $class_file; $configs = isset($configs) ? array_map('trim', explode(',', $configs)) : array(); $options = array('moduleId' => (int) $_GET['id'], 'action' => isset($_GET['action']) ? trim(strip_tags($_GET['action'])) : 'load', 'managerDir' => MGR_DIR . '/', 'tvUrl' => MTV_PATH, 'managerTheme' => $modx->config['manager_theme'], 'type' => 'module', 'modulename' => $_SESSION['itemname']); $multiTV = new multiTV($modx, $options); if ($configs) { $output = $multiTV->runModule($configs); } else { $output = '<h3>Please specify at least one configuration in module config</h3>'; } echo $output;
<?php /** * multiTV * * @category customtv * @version 2.0 * @license http://www.gnu.org/copyleft/gpl.html GNU Public License (GPL) * @author Jako (thomas.jakobi@partout.info) * * @internal description: <strong>2.0</strong> Custom Template Variabe containing a sortable multi item list or a datatable. * @internal input option code: @INCLUDE/assets/tvs/multitv/multitv.customtv.php */ if (IN_MANAGER_MODE != 'true') { die('<h1>ERROR:</h1><p>Please use the MODx Content Manager instead of accessing this file directly.</p>'); } // set customtv (base) path define('MTV_PATH', str_replace(MODX_BASE_PATH, '', str_replace('\\', '/', realpath(dirname(__FILE__)))) . '/'); define('MTV_BASE_PATH', MODX_BASE_PATH . MTV_PATH); if (!class_exists('multiTV')) { include MTV_BASE_PATH . 'includes/multitv.class.php'; } $multiTV = new multiTV($modx, array('type' => 'tv', 'tvDefinitions' => $row, 'tvUrl' => MTV_PATH)); echo $multiTV->generateScript();
// load template variable settings $tvName = isset($tvName) ? $tvName : ''; $fromJson = isset($fromJson) ? $fromJson : ''; if (!empty($fromJson)) { $tvSettings = array('name' => $tvName, 'value' => $fromJson); } else { $res = $modx->db->select('*', $modx->getFullTableName('site_tmplvars'), 'name="' . $tvName . '"'); $tvSettings = $modx->db->getRow($res); } if (!$tvSettings) { return 'Template variable ' . $tvName . ' does not exists or parameter fromJson empty.'; } // pre-init template configuration $tvSettings['tpl_config'] = isset($tplConfig) ? $tplConfig : ''; // init multiTV class $multiTV = new multiTV($modx, array('type' => 'tv', 'tvDefinitions' => $tvSettings, 'tvUrl' => MTV_PATH)); $templates = $multiTV->templates; // get snippet parameter $params = array(); $params['docid'] = isset($docid) ? $docid : $modx->documentObject['id']; $params['outerTpl'] = isset($outerTpl) ? $outerTpl : (isset($templates['outerTpl']) ? '@CODE:' . $templates['outerTpl'] : '@CODE:<select name="' . $tvName . '">[+wrapper+]' . (isset($paginate) && $paginate ? '[+pagination+]' : '') . '</select>'); $params['emptyOutput'] = isset($emptyOutput) && !$emptyOutput ? false : true; $params['noResults'] = isset($noResults) ? $noResults : ''; $params['rowTpl'] = isset($rowTpl) ? $rowTpl : (isset($templates['rowTpl']) ? '@CODE:' . $templates['rowTpl'] : '@CODE:<option value="[+value+]">[+key+]</option>'); $params['display'] = isset($display) ? $display : 5; $params['offset'] = isset($offset) ? intval($offset) : 0; $params['rows'] = isset($rows) && $rows != 'all' ? explode(',', $rows) : 'all'; $params['toPlaceholder'] = isset($toPlaceholder) && $toPlaceholder != '' ? $toPlaceholder : false; $params['toJson'] = isset($toJson) && $toJson != '' ? $toJson : false; $params['randomize'] = isset($randomize) && $randomize ? true : false; $params['reverse'] = isset($reverse) && $reverse ? true : false;