public static function getInstance() { if (!isset(self::$instance)) { self::$instance = new Dataface_CSSTool(); } return self::$instance; }
public function __construct() { $type = null; if (@$_GET['-xatadoc']) { import('modules/XataJax/classes/JavascriptDocumentor.php'); $type = 'JavascriptDocumentor'; } $js = Dataface_JavascriptTool::getInstance($type); $conf = Dataface_Application::getInstance()->_conf; $conf = @$conf['Dataface_JavascriptTool']; if (!$conf) { $conf = array(); } if (@$conf['debug']) { $js->setMinify(false); $js->setUseCache(false); } $js->addPath(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'js', XATAJAX_URL . '/js'); $js->addPath(DATAFACE_SITE_PATH . DIRECTORY_SEPARATOR . 'js', DATAFACE_SITE_URL . '/js'); $js->addPath(DATAFACE_PATH . DIRECTORY_SEPARATOR . 'js', DATAFACE_URL . '/js'); $css = Dataface_CSSTool::getInstance(); $css->addPath(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'css', XATAJAX_URL . '/css'); $css->addPath(DATAFACE_SITE_PATH . DIRECTORY_SEPARATOR . 'css', DATAFACE_SITE_URL . '/css'); $css->addPath(DATAFACE_PATH . DIRECTORY_SEPARATOR . 'css', DATAFACE_URL . '/css'); }
public function __construct() { $js = Dataface_JavascriptTool::getInstance(); $js->addPath(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'js', XATAJAX_URL . '/js'); $js->addPath(DATAFACE_SITE_PATH . DIRECTORY_SEPARATOR . 'js', DATAFACE_SITE_URL . '/js'); $js->addPath(DATAFACE_PATH . DIRECTORY_SEPARATOR . 'js', DATAFACE_URL . '/js'); $css = Dataface_CSSTool::getInstance(); $css->addPath(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'css', XATAJAX_URL . '/css'); }
function registerPaths() { if (!$this->pathsRegistered) { $mod = $this; $jt = Dataface_JavascriptTool::getInstance(); $jt->addPath(dirname(__FILE__) . '/js', $mod->getBaseURL() . '/js'); $ct = Dataface_CSSTool::getInstance(); $ct->addPath(dirname(__FILE__) . '/css', $mod->getBaseURL() . '/css'); } }
/** * Defines how a depselect widget should be built. * * @param Dataface_Record $record The Dataface_Record that is being edited. * @param array &$field The field configuration data structure that the widget is being generated for. * @param HTML_QuickForm The form to which the field is to be added. * @param string $formFieldName The name of the field in the form. * @param boolean $new Whether this widget is being built for a new record form. * @return HTML_QuickForm_element The element that can be added to a form. * */ function &buildWidget(&$record, &$field, &$form, $formFieldName, $new = false) { $factory = Dataface_FormTool::factory(); $mt = Dataface_ModuleTool::getInstance(); $mod = $mt->loadModule('modules_depselect'); //$atts = $el->getAttributes(); $widget =& $field['widget']; $atts = array(); if (!@$atts['class']) { $atts['class'] = ''; } $atts['class'] .= ' xf-depselect'; if (!@$atts['data-xf-table']) { $atts['data-xf-table'] = $field['tablename']; } $targetTable = Dataface_Table::loadTable($field['widget']['table']); if (PEAR::isError($targetTable)) { error_log("Your field {$formFieldName} is missing the widget:table directive or the table does not exist."); throw new Exception("Your field {$formFieldName} is missing the widget:table directive or the table does not exist."); } $targetPerms = $targetTable->getPermissions(); $atts['data-xf-depselect-options-table'] = $field['widget']['table']; if (@$targetPerms['new']) { $atts['data-xf-depselect-perms-new'] = 1; } $atts['df:cloneable'] = 1; $jt = Dataface_JavascriptTool::getInstance(); $jt->addPath(dirname(__FILE__) . '/js', $mod->getBaseURL() . '/js'); $ct = Dataface_CSSTool::getInstance(); $ct->addPath(dirname(__FILE__) . '/css', $mod->getBaseURL() . '/css'); // Add our javascript $jt->import('xataface/widgets/depselect.js'); $filters = array(); if (@$field['widget']['filters'] and is_array($field['widget']['filters'])) { foreach ($field['widget']['filters'] as $key => $val) { $filters[] = urlencode($key) . '=' . urlencode($val); } } $atts['data-xf-depselect-filters'] = implode('&', $filters); if (@$field['widget']['nomatch']) { $atts['data-xf-depselect-nomatch'] = $field['widget']['nomatch']; } if (@$field['widget']['dialogSize']) { $atts['data-xf-depselect-dialogSize'] = $field['widget']['dialogSize']; } if (@$field['widget']['dialogMargin']) { $atts['data-xf-depselect-dialogMargin'] = $field['widget']['dialogMargin']; } //$el->setAttributes($atts); $el = $factory->addElement('depselect', $formFieldName, $widget['label'], $atts); if (PEAR::isError($el)) { throw new Exception($el->getMessage(), $el->getCode()); } return $el; }
function test_compile1() { $js = Dataface_CSSTool::getInstance(); $js->clearCache(); $js->addPath(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'CSSToolTest' . DIRECTORY_SEPARATOR . 'css1', '/css1'); $js->import('stylesheetA.css'); $js->import('stylesheetB.css'); $js->import('stylesheetC.css'); $actual = trim($js->getContents()); $expected = "body{background-color:black;font-size:10px;padding-left:10px;padding-right:20px}table{border:1px solid black}.divB{font-weight:bold}.divC{color:red;padding:20px 10px;margin-top:1px;margin-left:30px}"; $this->assertEquals($actual, $expected); }
public function __construct() { $app = Dataface_Application::getInstance(); $s = DIRECTORY_SEPARATOR; if (isset($app->version) and $app->version >= 2) { $app->registerEventListener('SkinTool.ready', array($this, 'registerSkin'), true); } else { df_register_skin('g2', dirname(__FILE__) . $s . 'templates'); } $app->registerEventListener('filterTemplateContext', array($this, 'filterTemplateContext')); $jt = Dataface_JavascriptTool::getInstance(); $jt->ignore('jquery.packed.js'); $jt->ignore('jquery-ui.min.js'); $jt->ignore('xatajax.core.js'); $jt->ignore('xatajax.util.js'); $jt->ignore('xataface/lang.js'); $jt->ignoreCss('jquery-ui/jquery-ui.css'); $app->addHeadContent('<script src="' . htmlspecialchars(DATAFACE_URL . '/js/xataface/lang.js') . '"></script>'); $app->addHeadContent('<script src="' . htmlspecialchars(DATAFACE_URL . '/modules/XataJax/js/jquery.packed.js') . '"></script>'); $app->addHeadContent('<script src="' . htmlspecialchars(DATAFACE_URL . '/modules/XataJax/js/jquery-ui.min.js') . '"></script>'); $app->addHeadContent('<script src="' . htmlspecialchars(DATAFACE_URL . '/modules/XataJax/js/xatajax.core.js') . '"></script>'); $app->addHeadContent('<script src="' . htmlspecialchars(DATAFACE_URL . '/modules/XataJax/js/xatajax.util.js') . '"></script>'); $app->addHeadContent('<link rel="stylesheet" type="text/css" href="' . htmlspecialchars(DATAFACE_URL . '/modules/XataJax/css/jquery-ui/jquery-ui.css') . '"/>'); $app->addHeadContent('<link rel="stylesheet" type="text/css" href="' . htmlspecialchars($this->getBaseURL() . '/css/xataface-global.css') . '"/>'); $jt->addPath(dirname(__FILE__) . $s . 'js', $this->getBaseURL() . '/js'); $ct = Dataface_CSSTool::getInstance(); $ct->addPath(dirname(__FILE__) . $s . 'css', $this->getBaseURL() . '/css'); $jt->import('xataface/modules/g2/global.js'); $app->addJSStrings(array('themes.g2.VIEW_SEARCH_RESULTS' => df_translate('themes.g2.VIEW_SEARCH_RESULTS', 'View Search Results'), 'themes.g2.SEARCH_RESULTS' => df_translate('themes.g2.SEARCH_RESULTS', 'Search Results'))); // Let's create the actions for our tables. $app = Dataface_Application::getInstance(); $order = -1000; $prefix = 'top_left_menu_actions_'; $at = Dataface_ActionTool::getInstance(); foreach ($app->_conf['_tables'] as $k => $v) { $nav = $app->getNavItem($k, $v); if ($nav) { $action = array('name' => $prefix . $k, 'label' => $nav['label'], 'description' => @$nav['description'], 'selected' => @$nav['selected'], 'url' => @$nav['href'], 'category' => 'top_left_menu_bar', 'order' => $order++); if (@$nav['permission']) { $action['permission'] = $nav['permission']; } if (@$nav['condition']) { $action['condition'] = $nav['condition']; } $at->addAction($prefix . $k, $action); } } }
function test_css() { $css = Dataface_CSSTool::getInstance(); $css->addPath(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'JavascriptToolTest' . DIRECTORY_SEPARATOR . 'css1', '/css1'); $js = new Dataface_JavascriptTool(); $js->clearCache(); $js->addPath(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'JavascriptToolTest' . DIRECTORY_SEPARATOR . 'js1', '/js1'); $js->addPath(DATAFACE_PATH . '/js', '/dataface/js'); $js->import('scriptE.js'); $actual = trim($js->getContents()); $expected = <<<END if(typeof(window.__xatajax_included__)!='object'){window.__xatajax_included__={};};(function(){var headtg=document.getElementsByTagName("head")[0];if(!headtg)return;var linktg=document.createElement("link");linktg.type="text/css";linktg.rel="stylesheet";linktg.href="http://example.com/site/index.php?-action=css&--id=styleA.css-efd492ea792872aeb8bf19070f7154fa";linktg.title="Styles";headtg.appendChild(linktg);})();if(typeof(window.__xatajax_included__['scriptE.js'])=='undefined'){window.__xatajax_included__['scriptE.js']=true;alert('script E');} END; $expected = trim($expected); $this->assertEquals($expected, $actual); $expected = ''; $actual = $js->getHtml(); $this->assertEquals($expected, $actual); }
/** * Merges the paths of the internal CSS tool with the paths of the * singleton CSS tool instance. * @returns void */ public function mergeCSSPaths() { $css = Dataface_CSSTool::getInstance(); foreach ($this->css->getPaths() as $k => $v) { $this->css->removePath($k); } foreach ($css->getPaths() as $k => $v) { $this->css->addPath($k, $v); } }