Added new (clean) yii boilerplate
This commit is contained in:
111
framework/zii/widgets/grid/CLinkColumn.php
Normal file
111
framework/zii/widgets/grid/CLinkColumn.php
Normal file
@@ -0,0 +1,111 @@
|
||||
<?php
|
||||
/**
|
||||
* CLinkColumn class file.
|
||||
*
|
||||
* @author Qiang Xue <qiang.xue@gmail.com>
|
||||
* @link http://www.yiiframework.com/
|
||||
* @copyright 2008-2013 Yii Software LLC
|
||||
* @license http://www.yiiframework.com/license/
|
||||
*/
|
||||
|
||||
Yii::import('zii.widgets.grid.CGridColumn');
|
||||
|
||||
/**
|
||||
* CLinkColumn represents a grid view column that renders a hyperlink in each of its data cells.
|
||||
*
|
||||
* The {@link label} and {@link url} properties determine how each hyperlink will be rendered.
|
||||
* The {@link labelExpression}, {@link urlExpression} properties may be used instead if they are available.
|
||||
* In addition, if {@link imageUrl} is set, an image link will be rendered.
|
||||
*
|
||||
* @author Qiang Xue <qiang.xue@gmail.com>
|
||||
* @package zii.widgets.grid
|
||||
* @since 1.1
|
||||
*/
|
||||
class CLinkColumn extends CGridColumn
|
||||
{
|
||||
/**
|
||||
* @var string the label to the hyperlinks in the data cells. Note that the label will not
|
||||
* be HTML-encoded when rendering. This property is ignored if {@link labelExpression} is set.
|
||||
* @see labelExpression
|
||||
*/
|
||||
public $label='Link';
|
||||
/**
|
||||
* @var string a PHP expression that will be evaluated for every data cell and whose result will be rendered
|
||||
* as the label of the hyperlink of the data cell.
|
||||
* In this expression, you can use the following variables:
|
||||
* <ul>
|
||||
* <li><code>$row</code> the row number (zero-based).</li>
|
||||
* <li><code>$data</code> the data model for the row.</li>
|
||||
* <li><code>$this</code> the column object.</li>
|
||||
* </ul>
|
||||
* The PHP expression will be evaluated using {@link evaluateExpression}.
|
||||
*
|
||||
* A PHP expression can be any PHP code that has a value. To learn more about what an expression is,
|
||||
* please refer to the {@link http://www.php.net/manual/en/language.expressions.php php manual}.
|
||||
*/
|
||||
public $labelExpression;
|
||||
/**
|
||||
* @var string the URL to the image. If this is set, an image link will be rendered.
|
||||
*/
|
||||
public $imageUrl;
|
||||
/**
|
||||
* @var string the URL of the hyperlinks in the data cells.
|
||||
* This property is ignored if {@link urlExpression} is set.
|
||||
* @see urlExpression
|
||||
*/
|
||||
public $url='javascript:void(0)';
|
||||
/**
|
||||
* @var string a PHP expression that will be evaluated for every data cell and whose result will be rendered
|
||||
* as the URL of the hyperlink of the data cells.
|
||||
* In this expression, you can use the following variables:
|
||||
* <ul>
|
||||
* <li><code>$row</code> the row number (zero-based).</li>
|
||||
* <li><code>$data</code> the data model for the row.</li>
|
||||
* <li><code>$this</code> the column object.</li>
|
||||
* </ul>
|
||||
* The PHP expression will be evaluated using {@link evaluateExpression}.
|
||||
*
|
||||
* A PHP expression can be any PHP code that has a value. To learn more about what an expression is,
|
||||
* please refer to the {@link http://www.php.net/manual/en/language.expressions.php php manual}.
|
||||
*/
|
||||
public $urlExpression;
|
||||
/**
|
||||
* @var array the HTML options for the data cell tags.
|
||||
*/
|
||||
public $htmlOptions=array('class'=>'link-column');
|
||||
/**
|
||||
* @var array the HTML options for the header cell tag.
|
||||
*/
|
||||
public $headerHtmlOptions=array('class'=>'link-column');
|
||||
/**
|
||||
* @var array the HTML options for the footer cell tag.
|
||||
*/
|
||||
public $footerHtmlOptions=array('class'=>'link-column');
|
||||
/**
|
||||
* @var array the HTML options for the hyperlinks
|
||||
*/
|
||||
public $linkHtmlOptions=array();
|
||||
|
||||
/**
|
||||
* Renders the data cell content.
|
||||
* This method renders a hyperlink in the data cell.
|
||||
* @param integer $row the row number (zero-based)
|
||||
* @param mixed $data the data associated with the row
|
||||
*/
|
||||
protected function renderDataCellContent($row,$data)
|
||||
{
|
||||
if($this->urlExpression!==null)
|
||||
$url=$this->evaluateExpression($this->urlExpression,array('data'=>$data,'row'=>$row));
|
||||
else
|
||||
$url=$this->url;
|
||||
if($this->labelExpression!==null)
|
||||
$label=$this->evaluateExpression($this->labelExpression,array('data'=>$data,'row'=>$row));
|
||||
else
|
||||
$label=$this->label;
|
||||
$options=$this->linkHtmlOptions;
|
||||
if(is_string($this->imageUrl))
|
||||
echo CHtml::link(CHtml::image($this->imageUrl,$label),$url,$options);
|
||||
else
|
||||
echo CHtml::link($label,$url,$options);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user