在Yii Framework App中使用的推荐图像旋转器?

时间:2012-08-20 03:58:33

标签: php yii yii-extensions

我有一个扩展,显示从Yii窗口小部件类派生的基本用户配置文件。我的扩展定义如下:

class BasicProfile extends CWidget
{
public $user_id;
private $userinfo = array();
private $userdetail = array();
private $availibility = array();
private $availabletime = array();
private $usereducation = array();
private $userlanguages = array();
private $userlivingplace = array();

public function init()
{
    $this->userinfo = $users =  Users::model()->findByPk($this->user_id);
    $this->userdetail = $users->profile;
    $this->availibility = $users->user_availibility;
    $this->availabletime = $users->user_availabletime;
    $this->usereducation = $users->user_education;
    $this->userlanguages = $users->user_languagues;
    $this->userlivingplace = $users->user_livingplaces;
}
public function run() {
    $this->getUserDetail();
}
public function getUserDetail(){
    $basic = $this->userinfo;
    $detail = $this->userdetail;
    $availibility = $this->availibility;
    $availabletime = $this->availabletime;
    $usereducation = $this->usereducation;
    $userlanguages = $this->userlanguages;
    $userlivingplaces = $this->userlivingplace;

    $age = getAge(strtotime($detail['date_of_birth']));
    $is_smoker = isSmoker($detail['is_smoker']);

    $education = '';
    foreach ($usereducation as $ue)
    {
        $e = $ue->educ;
        $education .= $e['edu_name']. ', ';
    }
    $education = substr($education, 0, -2);
    $languages = '';
    foreach ($userlanguages as $ul)
    {
        $l = $ul->lang;
        $languages .= $l['language_title']. ', ';
    }
    $languages = substr($languages, 0, -2);

    $condition = array('where_condition'=>'up.user_id=:id AND up.is_currently_own=:own', 'where_data'=>array(':id'=>(int)$this->user_id, ':own'=>'Yes'));
    $user_pets = Users::model()->getUserPets($condition);
    $profile_images = UserProfileImages::model()->getProfileImages( array('select'=>'all'), $this->user_id );

    foreach( $profile_images as $profile_img ) {
        $images[] = $profile_img->profile_image;
    }
    $image = '';
    if( $images ){
        $main_image = HTTP_HOST . PROFILE_IMAGES_THUMB . $images[0];
        $image = '<img src="'. $main_image .'" />';
    }

    $address1 = $basic['address1'];
    if($basic['address2'] != "")
        $address1 .= ", ".$basic['address2'];
    $address2 = $basic['city']." ".$basic['state'].", ". $basic['zip'];

    $editprofile = url('/users/account');
    $editimglink = url('/images/icons/Modify.png');
}
}

我的目标是在我的视图中简单地将此扩展名称为follwos:

 $this->widget('ext.UserProfile.BasicProfile',array('user_id'=>$user_id));

但是,我想知道我的扩展是否适合封装图像旋转器?旋转器是否应包含在扩展中,还是作为视图的一部分?是应该使用通用的JQuery图像旋转器,还是可以使用Yii Framework?

1 个答案:

答案 0 :(得分:1)

我喜欢使用JQuery.Cycle作为我的图像旋转器。我建议您使用资产构建扩展,以将代码保存在一个位置。但是你可以将你的css放在你的主题文件夹中,并在你的扩展中构建一个基本的css,以保持它像yii的基本寻呼机一样干净。

您可以像这样调用您的小部件:

$this->widget("application.extensions.rotator", array("images" => array("/path/to/image/1", "/path/to/image/2"), "prevBtn" => "/path/to/prev/button");