2012-08-20 3 views
0

Yii 위젯 클래스에서 파생 된 기본 사용자 프로필을 표시하는 확장 프로그램이 있습니다.Yii Framework App에 사용할 로테이터?

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

제 이미지 회전기로 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");