Hi Friends, This tutorial may be help us create the custom drop-down menu using CHtml::dropDownList
1) first create/copy the drop-down menu in your _form.php file
<div class="control-group">
<label class="control-label"><?php echo $form->labelEx($model,'dob'); ?></label>
<div class="controls">
<?php  echo CHtml::dropDownList('VkUsers[month]', '', UtilityHtml::getMonthsArray());?>
<?php  echo CHtml::dropDownList('VkUsers[day]', '', UtilityHtml::getDaysArray());?>
<?php  echo CHtml::dropDownList('VkUsers[year]', '', UtilityHtml::getYearsArray());?>
</div>
</div>
2) Create the UtilityHtml.php file on componets folder which is include a all html file function
/**
	 * @Method		  : Dynemic Month
	 * @Params		  :
	 * @author        : Ankit Modi
	 * @created		  :	JULY 11 2014
	 * @Modified by	  :
	 * @modified	  :
	 * @Comment		  : Dynemic Month
	 */
	public static function getMonthsArray()
	{
		for($monthNum = 1; $monthNum <= 12; $monthNum++){
			$months[$monthNum] = date('F', mktime(0, 0, 0, $monthNum, 1));
		}
		return array(0 => 'Month:') + $months;
	}
	/**
	 * @Method		  : Dynemic Days
	 * @Params		  :
	 * @author        : Ankit Modi
	 * @created		  :	JULY 11 2014
	 * @Modified by	  :
	 * @modified	  :
	 * @Comment		  : Dynemic Days
	 */
	public static function getDaysArray()
	{
		for($dayNum = 1; $dayNum <= 31; $dayNum++){
			$days[$dayNum] = $dayNum;
		}
		return array(0 => 'Day:') + $days;
	}
	/**
	 * @Method		  : Dynemic Years
	 * @Params		  :
	 * @author        : Ankit Modi
	 * @created		  :	JULY 11 2014
	 * @Modified by	  :
	 * @modified	  :
	 * @Comment		  : Dynemic Years
	 */
	public static function getYearsArray()
	{
		$thisYear = date('Y', time());
		for($yearNum = $thisYear; $yearNum >= 1920; $yearNum--){
			$years[$yearNum] = $yearNum;
		}
		return array(0 => 'Year:') + $years;
	}
Better to use component
Better to use component -
e.g.
class UtilityHtml extends CApplicationComponent { public function getMonthsArray() { //your code here //your code here return value; } public function getDaysArray() { //your code here //your code here return value; } }Need to set it up in config/main.php:
'components' => array( 'myUtils' => array( 'class' => 'ext.components.UtilityHtml', ),So now you can use like this:
<?php echo CHtml::dropDownList('VkUsers[month]', '', Yii::app()->UtilityHtml->getMonthsArray());?>According to this - http://www.yiiframework.com/wiki/727/updated-how-to-create-call-custom-global-function-in-whole-application/#c17607
If you have any questions, please ask in the forum instead.
Signup or Login in order to comment.