/** * View for <param type="private" class="cbpaidParamsExt" method="data">... * * @param string $value Stored Data of Model Value associated with the element * @param ParamsInterface $pluginParams Main settigns parameters of the plugin * @param string $name Name attribute * @param CBSimpleXMLElement $param This XML node * @param string $control_name Name of the control * @param string $control_name_name css id-encode of the names of the controls surrounding this node * @param boolean $view TRUE: view, FALSE: edit * @param cbpaidTable $modelOfData Data of the Model corresponding to this View * @param cbpaidTable[] $modelOfDataRows Displayed Rows if it is a table * @param int $modelOfDataRowsNumber Total Number of rows * @return null|string */ public function data($value, &$pluginParams, $name, &$param, $control_name, $control_name_name, $view, &$modelOfData, &$modelOfDataRows, &$modelOfDataRowsNumber) { global $_CB_database; $data = $param->getElementByPath('data'); if ($data) { $dataTable = $data->attributes('table'); if (!$dataTable) { if (is_object($modelOfData) && $modelOfData instanceof TableInterface) { $dataTable = $modelOfData->getTableName(); } elseif (is_object($modelOfData) && isset($modelOfData->_tbl)) { $dataTable = $modelOfData->_tbl; } else { $dataTable = null; } } $xmlsql = new XmlQuery($_CB_database, $dataTable, $pluginParams); $xmlsql->setExternalDataTypeValues('modelofdata', $modelOfData); $xmlsql->process_orderby($data->getElementByPath('orderby')); // <data><orderby><field> fields $xmlsql->process_fields($param); // <data><rows><field> fields $xmlsql->process_where($data->getElementByPath('where')); // <data><where><column> fields $value = $xmlsql->queryloadResult(); // get the value if ($view) { if ($value === null) { $value = $param->attributes('default'); } return htmlspecialchars($value); } else { return '<input name="' . $control_name_name . '" type="text" id="' . $control_name_name . '" value="' . htmlspecialchars($value) . '"' . $this->_title($param) . ' />'; } } return null; }
/** * Parse the ticks to plot * @access private * * @param SimpleXMLElement $el <ticks type="function" name="nameofJSfunction" /> * @param callback $callBacks * @return array */ function _plot_parseTickFormatter( &$el, &$callBacks ) { global $_CB_database; $names_values = array(); if ( $el ) { $type = $el->attributes( 'type' ); $data = $el->getElementByPath( 'field' ); if ( ($type == 'append' ) && $data ) { $dataTable = $data->attributes( 'table' ); if ( ! $dataTable ) { $dataTable = null; } $xmlsql = new XmlQuery( $_CB_database, $dataTable, $this->_pluginParams ); $xmlsql->setExternalDataTypeValues( 'modelofdata', $this->_modelOfData[0] ); $xmlsql->process_data( $data ); $textToAppend = $xmlsql->queryloadResult( $data ); // get the records if ( $textToAppend ) { $names_values = new PlotJsonFormatter( 'function(val, axis) { return val.toFixed(axis.tickDecimals)+" ' . addslashes( CBTxt::T( $textToAppend ) ) . '"; }' ); } } else { $callBacksNew = $callBacks; unset( $callBacksNew[$el->getName()] ); $names_values = $this->xml2arr( $el, $callBacksNew ); } } return $names_values; }