createUrl()
* @param string $linkTxt Text to show for the link
* @param string $linkTarget Optional target to use for the link
* @param string $linkclass Optional class to add to the link
* @param array $attribs Optional array of attirbutes to set on the link
*/
public static function getImageLink($imgName, $linkUrl, $linkTxt, $linkTarget = null, $linkClass = 'imagelink', $attribs = array())
{
if (!is_null($linkUrl) && $linkUrl != '#') {
$linkUrl = Yii::app()->getController()->createUrl($linkUrl);
} else {
$linkUrl = "#";
}
$output = ' $value) {
$output .= ' ' . $attrib . '="' . str_replace('"', '"', $value) . '"';
}
}
$output .= '>';
return $output;
}
/**
* getFieldText returns complete field information text.
*
* Usage: getFieldText($field, $option)
*
* @return string
* @param array $field the field information from createFieldMap
* @param array $option option for filtering
*/
public static function getFieldText($field, $option=array())
{
// Default options
if(!isset($option['flat'])){$option['flat']=true;}
//if(!isset($option['separator'])){$option['separator']=array('[',']');}
if(isset($field['fieldname']))
{
$questiontext=$field['question'];
if(isset($field['scale']) && $field['scale'])
{
$questiontext.="({$field['scale']})";
}
if(isset($field['subquestion']) && $field['subquestion'])
{
$questiontext.="({$field['subquestion']})";
}
if(isset($field['subquestion1']) && $field['subquestion1'])
{
$questiontext.="({$field['subquestion1']})";
}
if(isset($field['subquestion2']) && $field['subquestion2'])
{
$questiontext.="({$field['subquestion2']})";
}
}
else
{
$questiontext="";
}
if ($option['flat'])
{
$questiontext=flattenText($questiontext,false,true);
}
return $questiontext;
}
/**
* getFieldCode returns complete field information code.
*
* Usage: getFieldCode($field, $option)
*
* @return string
* @param array $field the field information from createFieldMap
* @param array $option option for filtering
*/
public static function getFieldCode($field, $option=array())
{
// Default options
if(!isset($option['LEMcompat'])){$option['LEMcompat']=false;}
if($option['LEMcompat']){$option['separator']="_";}
if(!isset($option['separator'])){$option['separator']=array('[',']');}
if(isset($field['fieldname']))
{
if(isset($field['title']) && $field['title'])
{
$questioncode=$field['title'];
if(isset($field['aid']) && $field['aid']!="")
{
if(is_array($option['separator'])){ // Count ?
$questioncode.=$option['separator'][0].$field['aid'].$option['separator'][1];
}else{ // Test if is string ?
$questioncode.=$option['separator'].$field['aid'];
}
}
if(isset($field['scale']) && $field['scale'])
{
if($option['LEMcompat']){
$scalenum=intval($field['scale_id']);
}else{
$scalenum=intval($field['scale_id'])+1;
}
if(is_array($option['separator'])){ // Count ?
$questioncode.=$option['separator'][0].$scalenum.$option['separator'][1];
}else{ // Test if is string ?
$questioncode.=$option['separator'].$scalenum;
}
}
}
else
{
$questioncode=$field['fieldname'];
}
}
else
{
$questioncode="";
}
return $questioncode;
}
/**
* disableLogging deactivate default logging in HTML if we don't produce HTML
*
* Usage: disableLogging()
*
* @return void
* @author Menno Dekker
*/
public static function disableHtmlLogging(){
foreach (App()->log->routes as $route)
{
$route->enabled = $route->enabled && !($route instanceOf CWebLogRoute);
}
}
/**
* Deactivate script but show it for debuging
* This only filter script tag
* @todo : filter inline javascript (onclick etc ..., but don't filter EM javascript)
* Maybe doing it directly in LEM->GetLastPrettyPrintExpression();
* @param string : Html to filter
* @return string
* @author Denis Chenu
*/
public static function filterScript($sHtml){
return preg_replace('##is', '
<script>${2}</script>', $sHtml); } /** * Show purified html * @param string : Html to purify * @return string */ public static function purified($sHtml){ $oPurifier = new CHtmlPurifier(); return $oPurifier->purify($sHtml); } }