سلام
من ماژول UserAdmin رو از سایت http://www.yiiframework.com دانلود کردم و هر چقدر تلاش کردم نتونستم به سیستم بشناسونمش
میشه طریقه نصبش رو یه توضیح بدید و این که چکار باید بکنم ؟
Printable View
سلام
من ماژول UserAdmin رو از سایت http://www.yiiframework.com دانلود کردم و هر چقدر تلاش کردم نتونستم به سیستم بشناسونمش
میشه طریقه نصبش رو یه توضیح بدید و این که چکار باید بکنم ؟
مراحل نصب:
1- فایل رو Extract و در پوشه modules قرار بدین و اگه اسم پوشه با حروف کوچک هست، اون رو به UserAdmin تغییر بدین (U و A بزرگ).
2- فایل دیتابیس user_admin.sql رو از پوشه UserAdmin/data توی دیتابیس خودتون Import کنید.
3- توی فایل protected/config/main.php تنظیمات زیر رو اضافه کنید:
...
'import'=>array(
...
'application.modules.UserAdmin.components.*',
'application.modules.UserAdmin.models.*',
...
),
...
'modules'=>array(
...
'UserAdmin',
...
),
'components'=>array(
...
'user'=>array(
'class'=>'UWebUser',
'allowAutoLogin'=>true,
'loginUrl'=>array('/UserAdmin/auth/login'),
),
...
)
...
اگه میخواین مدت زمان نگهداری اطلاعات در Cache رو تنظیم کنید، اینطوری ماژول رو تنظیم کنید:
...
'modules'=>array(
...
'UserAdmin' => array(
'cache_time' => 3600,
),
...
),
...
4- کلاس Controller خودتون رو که توی پوشه protected/components هست، بجای اینکه از CController مشتق بشه، از کلاس UAccessController مشتق کنید:
<?php
class Controller extends UAccessController
{
...
}
اگه توی کنترلرهاتون متد ()filters دارین، داخلش فیلترهای تعریف شده با رو با array_merge با ()parent::filters ادغام کنید:
public function filters()
{
return array_merge(parent::filters(), array(
'accessControl', // perform access control for CRUD operations
'projectContext + create index admin', //check to ensure valid project context
);
}
5- توی فایل AdminDefaultController از پوشه protected/modules/components متغیر layout$ رو با آدرس layout پروژه خودتون مقداردهی کنید.
6- لینکهای منوهای مدیریت (اگه خواستین توی نوار کناری ظاهر بشن) :
//=========== Main controllers ===========
array('label'=>"Users", 'url'=>array('/UserAdmin/user/admin'), 'visible'=>User::checkTask('userAdmin')),
array('label'=>"Roles", 'url'=>array('/UserAdmin/userRole/admin'), 'visible'=>User::checkTask('userRoleAdmin')),
array('label'=>"Tasks", 'url'=>array('/UserAdmin/userTask/admin'), 'visible'=>User::checkRole('isSuperAdmin')),
//=========== Login, logout, registration, profile ===========
array('label'=>"Login", 'url'=>array('/UserAdmin/auth/login'), 'visible'=>!User::checkRole('isGuest')),
array('label'=>"Logout", 'url'=>array('/UserAdmin/auth/logout')),
array('label'=>"Registration", 'url'=>array('/UserAdmin/auth/registration'), 'visible'=>!User::checkRole('isGuest')),
array('label'=>"Profile", 'url'=>array('/UserAdmin/profile/personal'), 'visible'=>(!User::checkRole('isGuest') AND User::checkTask('personalProfileAccess'))),
7- اگه میخواین ثبت نام هم فعال بشه، توی فایل AuthController.php از پوشه protected/modules/UserAdmin/controllers خطی که توش نوشته ;return false رو کامنت یا حذف کنید.
بعد از این کارها، کامپوننت نصب و تنظیم شده و آماده استفاده است. اگه توی بخش Usage توی این لینک مشکلی داشتین، بفرمایید تا اون رو هم توضیح بدم.
دست شما درد نکنه استاد
اگر میشه Usageها رو هم توضیح بدید
و این که من در نصبش هم یکم گیر داشتم که با حذف این عبارت
'visible'=>!User::checkRole('isGuest')
از
array('label'=>"Login", 'url'=>array('/UserAdmin/auth/login'), 'visible'=>!User::checkRole('isGuest')),
خط زیر مشکل حل شد و ماژول شروع به کار کردن کرد
فقط یه سوال برام پیش اومده اون هم این هست که آیا قسمت هایی مثل users,.... از css استفاده نکرده و همین شکلی ایتم ها رو چیده یا این که من باید کاری رو انجام میدادم ؟
بهتره بجای حذف، این کد رو بگذارین:
array('label'=>"Login", 'url'=>array('/UserAdmin/auth/login'), 'visible'=>Yii::app()->user->isGuest),
راستش خودم هنوز فرصت نکردم این افزونه رو تست کنم چون این هفته و هفته بعد، درگیر کارهای نقل مکان به شیراز هستم و به محض مستقر شدن، افزونه رو نصب و توضیحات کامل رو براتون مینویسم. البته تو این مدت ترجمه بخش Usage رو براتون سعی میکنم بگذارم.
سلام مجدد
استاد شهرکی
اگر بخواهیم یه پوشه جدا برای ADMIN ایجاد کنیم باید چکار کنیم ؟
یا بهتر بگم اگر بخواهیم مثل کاری که جوملا انجام داده ؟
باید توسط Gii یک ماژول به اسم admin بسازین. توی جلسه 12 پکیج آموزشی، درموردش توضیح دادم.
شرمنده بعلت این که الان ایام امتحانات هست و یکسری گرفتاری های کاری دیگه نتونستم هنوز نتونستم پکیج رو کامل ببینم
این سوال تو ذهنم اومد و اومدم اینجا مطرحش کردم
استاد شهرکی یه مسئله دیگه
من دیشب یه صورت گذری قسمت 12 اموزش شما رو نگاه کردم
خیلی جامع و عالی
فقط این سوال برای من پیش امده که آیا برای ماژول ادمین هم می شود یه فولدر به نام ماژول ایجاد کرد و از آن استفاده کرد یا خیر ؟ اگر میشه به چه صورت باید اینکار رو کرد ؟
بله میشه. اینجا رو ببینید: لینک
لینکهای فرعی موجود در لینک اول خیلی خوب اشاره کردن. چون چند تا راه حل مطرح شده بود، جداگانه توضیح ندادم. اگه به مشکلی برخوردین بگین بیشتر توضیح بدم.