[font="Tahoma"][right]سلام
من میخوام از این ویجت به عنوان یک
helper
در برنامم استفاده کنم که هر جا خواستم بتونم ازش به راحتی استفاده کنم ، بدون زدن کدهای تکراری
در فولدر کامپوننت یک فایل ساختم به ساختار زیر :[/right][/font]
class Helpers
{
public function dataList($tbl_name)
{
$dataProvider=new CActiveDataProvider($tbl_name);
$this->widget('zii.widgets.grid.CGridView', array(
'dataProvider'=>$dataProvider,
'columns'=>array(
'id',
'name',
'ordering',
'position',
'published',
array(
'class'=>'CButtonColumn',
'template'=>'{update}',
'buttons'=>array(
'update'=>array(
'url'=>'$this->grid->controller->createUrl("default/editForm", array("id"=>$data->id))',
'click'=>'function(){$("#cru-frame").attr("src",$(this).attr("href")); $("#cru-dialog").dialog("open"); return false;}',
'visible'=>'($data->id===null)?false:true;'
),
),
),
)
)
);
}
}
[font="Tahoma"][right]بعد اگر بخوام تو هر ویو از این استفاده کنم به این شکل استفاده میکنم :[/right][/font]
Helpers::dataList('Users'); // مدل یوزرمو با تمام دیتا ها و .. نمایش میده
[font="Tahoma"][right]
مشکل اینجاس که در کلاس
Helpers
و اون تابعی که نوشتم یک آرایه وجود داره که نام فیلد اون مدلی که قرار نمایش داده بشه رو باید بنویسیم
که مشکل اینجاست که احتمال یکی نبودن نام فیلد های یک جدول خیلی خیلی زیاد است.
راه حلی برای این کار میخواستم
ممنون یشم راهنمایی کنید.[/right][/font]