PDA

View Full Version : نصب ماژول UserAdmin



Emir New
چهارشنبه 20 آذر 1392, 22:34 عصر
سلام
من ماژول UserAdmin رو از سایت http://www.yiiframework.com دانلود کردم و هر چقدر تلاش کردم نتونستم به سیستم بشناسونمش
میشه طریقه نصبش رو یه توضیح بدید و این که چکار باید بکنم ؟

MMSHFE
پنج شنبه 21 آذر 1392, 09:48 صبح
مراحل نصب:
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 توی این لینک (http://www.yiiframework.com/extension/useradmin/#hh1) مشکلی داشتین، بفرمایید تا اون رو هم توضیح بدم.

Emir New
پنج شنبه 21 آذر 1392, 19:53 عصر
دست شما درد نکنه استاد
اگر میشه Usageها رو هم توضیح بدید
و این که من در نصبش هم یکم گیر داشتم که با حذف این عبارت


'visible'=>!User::checkRole('isGuest')

از

array('label'=>"Login", 'url'=>array('/UserAdmin/auth/login'), 'visible'=>!User::checkRole('isGuest')),

خط زیر مشکل حل شد و ماژول شروع به کار کردن کرد
فقط یه سوال برام پیش اومده اون هم این هست که آیا قسمت هایی مثل users,.... از css استفاده نکرده و همین شکلی ایتم ها رو چیده یا این که من باید کاری رو انجام میدادم ؟

MMSHFE
جمعه 22 آذر 1392, 10:45 صبح
بهتره بجای حذف، این کد رو بگذارین:

array('label'=>"Login", 'url'=>array('/UserAdmin/auth/login'), 'visible'=>Yii::app()->user->isGuest),

MMSHFE
جمعه 22 آذر 1392, 10:46 صبح
راستش خودم هنوز فرصت نکردم این افزونه رو تست کنم چون این هفته و هفته بعد، درگیر کارهای نقل مکان به شیراز هستم و به محض مستقر شدن، افزونه رو نصب و توضیحات کامل رو براتون مینویسم. البته تو این مدت ترجمه بخش Usage رو براتون سعی میکنم بگذارم.

Emir New
شنبه 07 دی 1392, 20:49 عصر
سلام مجدد
استاد شهرکی
اگر بخواهیم یه پوشه جدا برای ADMIN ایجاد کنیم باید چکار کنیم ؟
یا بهتر بگم اگر بخواهیم مثل کاری که جوملا انجام داده ؟

MMSHFE
شنبه 07 دی 1392, 21:17 عصر
باید توسط Gii یک ماژول به اسم admin بسازین. توی جلسه 12 پکیج آموزشی، درموردش توضیح دادم.

Emir New
شنبه 07 دی 1392, 22:51 عصر
شرمنده بعلت این که الان ایام امتحانات هست و یکسری گرفتاری های کاری دیگه نتونستم هنوز نتونستم پکیج رو کامل ببینم
این سوال تو ذهنم اومد و اومدم اینجا مطرحش کردم

Emir New
یک شنبه 08 دی 1392, 12:49 عصر
استاد شهرکی یه مسئله دیگه
من دیشب یه صورت گذری قسمت 12 اموزش شما رو نگاه کردم
خیلی جامع و عالی
فقط این سوال برای من پیش امده که آیا برای ماژول ادمین هم می شود یه فولدر به نام ماژول ایجاد کرد و از آن استفاده کرد یا خیر ؟ اگر میشه به چه صورت باید اینکار رو کرد ؟

MMSHFE
یک شنبه 08 دی 1392, 13:21 عصر
بله میشه. اینجا رو ببینید: لینک (http://www.google.com/search?q=create+sub+module+in+yii&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a&channel=fflb)
لینکهای فرعی موجود در لینک اول خیلی خوب اشاره کردن. چون چند تا راه حل مطرح شده بود، جداگانه توضیح ندادم. اگه به مشکلی برخوردین بگین بیشتر توضیح بدم.