本文整理汇总了PHP中FabrikWorker::replaceWithUserData方法的典型用法代码示例。如果您正苦于以下问题:PHP FabrikWorker::replaceWithUserData方法的具体用法?PHP FabrikWorker::replaceWithUserData怎么用?PHP FabrikWorker::replaceWithUserData使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类FabrikWorker
的用法示例。
在下文中一共展示了FabrikWorker::replaceWithUserData方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: getFusionchart
/**
* Load the Fusion chart lib
*
* @return string
*/
public function getFusionchart()
{
$this->cantTrendLine = array();
$document = JFactory::getDocument();
$params = $this->getParams();
$worker = new FabrikWorker();
$fc_version = $params->get('fusionchart_version', 'free_old');
$free22 = $this->pathBase . 'fusionchart/libs/FusionChartsFree/Code/PHPClass/Includes/FusionCharts_Gen.php';
$pro30 = $this->pathBase . 'fusionchart/libs/FusionCharts/Code/PHPClass/Includes/FusionCharts_Gen.php';
if ($fc_version == 'free_22' && JFile::exists($free22)) {
require_once $free22;
$document->addScript($this->srcBase . "fusionchart/libs/FusionChartsFree/JSClass/FusionCharts.js");
$fc_swf_path = COM_FABRIK_LIVESITE . $this->srcBase . "fusionchart/libs/FusionChartsFree/Charts/";
} elseif ($fc_version == 'pro_30' && JFile::exists($pro30)) {
require_once $pro30;
$document->addScript($this->srcBase . "fusionchart/libs/FusionCharts/Charts/FusionCharts.js");
$fc_swf_path = COM_FABRIK_LIVESITE . $this->srcBase . "fusionchart/libs/FusionCharts/Charts/";
} else {
require_once $this->pathBase . 'fusionchart/libs/FCclass/FusionCharts_Gen.php';
$document->addScript($this->srcBase . "fusionchart/libs/FCcharts/FusionCharts.js");
$fc_swf_path = COM_FABRIK_LIVESITE . $this->srcBase . "fusionchart/libs/FCcharts/";
}
$calc_prefixes = array('sum___', 'avg___', 'med___', 'cnt___');
$calc_prefixmap = array('sum___' => 'sums', 'avg___' => 'avgs', 'med___' => 'medians', 'cnt___' => 'count');
$w = $params->get('fusionchart_width');
$h = $params->get('fusionchart_height');
$chartType = $params->get('fusionchart_type', '');
if ($chartType == '') {
throw new InvalidArgumentException('Not chart type selected');
}
// Create new chart
$this->FC = new FusionCharts($chartType, $w, $h);
// If we are pro lets use the new JavaScript Library
if ($fc_version === 'pro_30') {
$this->FC->setRenderer('javascript');
}
// Define path to FC's SWF
$this->FC->setSWFPath($fc_swf_path);
$this->setChartMessages();
// Setting Param string
$strParam = $this->getChartParams();
$label_step_ratios = (array) $params->get('fusion_label_step_ratio');
$x_axis_label = (array) $params->get('fusion_x_axis_label');
$chartElements = (array) $params->get('fusionchart_elementList');
$chartColours = (array) $params->get('fusionchart_elcolour');
$listid = (array) $params->get('fusionchart_table');
$chartCumulatives = (array) $params->get('fusionchart_cumulative');
$elTypes = (array) $params->get('fusionchart_element_type');
$this->setAxisLabels();
$dual_y_parents = $params->get('fusionchart_dual_y_parent');
$chartWheres = (array) $params->get('fusionchart_where');
$limits = (array) $params->get('fusionchart_limit');
$this->c = 0;
$gdata = array();
$glabels = array();
$gcolours = array();
$gfills = array();
$this->max = array();
$this->min = array();
$calculationLabels = array();
$calculationData = array();
$calcfound = false;
$tmodels = array();
$labelStep = 0;
foreach ($listid as $tid) {
$this->min[$this->c] = 0;
$this->max[$this->c] = 0;
if (!array_key_exists($tid, $tmodels)) {
$listModel = null;
$listModel = JModelLegacy::getInstance('list', 'FabrikFEModel');
$listModel->setId($tid);
$tmodels[$tid] = $listModel;
} else {
$listModel = $tmodels[$tid];
}
$table = $listModel->getTable();
$form = $listModel->getForm();
// $$$ hugh - adding plugin query, 2012-02-08
if (array_key_exists($this->c, $chartWheres) && !empty($chartWheres[$this->c])) {
$chartWhere = $this->_replaceRequest($chartWheres[$this->c]);
$chartWhere = $worker->replaceWithUserData($chartWhere);
$listModel->setPluginQueryWhere('fusionchart', $chartWhere);
} else {
// If no where clause, explicitly clear any previously set clause
$listModel->unsetPluginQueryWhere('fusionchart');
}
/* $$$ hugh - remove pagination BEFORE calling render(). Otherwise render() applies
* session state/defaults when it calls getPagination, which is then returned as a cached
* object if we call getPagination after render(). So call it first, then render() will
* get our cached pagination, rather than vice versa.
*/
$limit = (int) FArrayHelper::getValue($limits, $this->c, 0);
$listModel->setLimits(0, $limit);
$nav = $listModel->getPagination(0, 0, $limit);
$listModel->render();
//.........这里部分代码省略.........
示例2: parseMessageForPlaceHolder
/**
* iterates through string to replace every
* {placeholder} with posted data
* @param string text to parse
* @param array data to search for placeholders (default $_REQUEST)
* @param bool if no data found for the place holder do we keep the {...} string in the message
* @param bool add slashed to the text?
* @param object user to use in replaceWithUserData (defaults to logged in user)
*/
public function parseMessageForPlaceHolder($msg, $searchData = null, $keepPlaceholders = true, $addslashes = false, $theirUser = null)
{
$this->_parseAddSlases = $addslashes;
if ($msg == '' || is_array($msg) || strpos($msg, '{') === false) {
return $msg;
}
$msg = str_replace(array('%7B', '%7D'), array('{', '}'), $msg);
if (is_object($searchData)) {
$searchData = JArrayHelper::fromObject($searchData);
}
//$post = JRequest::get('post');
//$$$ rob changed to allow request variables to be parsed as well. I have a sneaky feeling this
// was set to post for a good reason, but I can't see why now.
// $$$ hugh - for reasons I don't understand, merging request just doesn't seem to work
// in some situations, so I'm adding a replaceRequest call here as a bandaid.
// @TODO $$$ rob can you remember what those situations where? Because doing this is messing up form plugins (e.g redirect) when they do replace on getEmailData()
// as having the line below commented in causes the request to be used before searchData.
// FabrikWorker::replaceRequest($msg);
$post = JRequest::get('request');
$this->_searchData = is_null($searchData) ? $post : array_merge($post, $searchData);
$this->_searchData['JUtility::getToken'] = JUtility::getToken();
$msg = FabrikWorker::replaceWithUserData($msg);
if (!is_null($theirUser)) {
$msg = FabrikWorker::replaceWithUserData($msg, $theirUser, 'your');
}
$msg = FabrikWorker::replaceWithGlobals($msg);
$msg = preg_replace("/{}/", "", $msg);
/* replace {element name} with form data */
$msg = preg_replace_callback("/{[^}\\s]+}/i", array($this, 'replaceWithFormData'), $msg);
if (!$keepPlaceholders) {
$msg = preg_replace("/{[^}\\s]+}/i", '', $msg);
}
return $msg;
}
示例3: parseMessageForRowHolder
/**
* Iterates through string to replace every
* {placeholder} with row data
* (added by hugh, does the same thing as parseMessageForPlaceHolder in parent
* class, but for rows instead of forms)
*
* NOTE - I can't remember why I added this way back when in 2.x, instead of using the helper function,
* I just know there was a good reason, to do with the helper func making assumptions about something
* (I think to do with how form data is formatted) which weren't true when rendering list data. I have
* a suspicion that in the intervening years, the helper func and the way we format data may now be
* copacetic, and we could do away with this separation, and just use the normal helper func. Might be
* worth testing, as this code looks like it has suffered bitrot, and doesn't do a number of things the main
* helper func now does.
*
* @param string $msg text to parse
* @param array &$row of row data
* @param bool $addSlashes add slashes to the replaced data (default = false) set to true in fabrikcalc element
*
* @return string parsed message
*/
public function parseMessageForRowHolder($msg, &$row, $addSlashes = false)
{
$this->aRow = $row;
if (!strstr($msg, '{')) {
return $msg;
}
$this->parseAddSlases = $addSlashes;
$msg = FabrikWorker::replaceWithUserData($msg);
$msg = FabrikWorker::replaceWithGlobals($msg);
$msg = preg_replace("/{}/", "", $msg);
$this->rowIdentifierAdded = false;
/* replace {element name} with form data */
/* $$$ hugh - testing changing the regex so we don't blow away PHP structures! Added the \s so
* we only match non-space chars in {}'s. So unless you have some code like "if (blah) {foo;}", PHP
* block level {}'s should remain unmolested.
*/
$msg = preg_replace_callback("/{[^}\\s]+}/i", array($this, 'replaceWithRowData'), $msg);
$lang = $this->lang->getTag();
$lang = str_replace('-', '_', $lang);
$msg = str_replace('{lang}', $lang, $msg);
return $msg;
}