زمان جاری: 2012/05/23, 04:12 AM خوش آمدید مهمان گرامی! (ورودعضویت)



چطوری یه admin بسازیم؟


ارسال موضوع  ارسال پاسخ 
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
رتبه موضوع:
 
چطوری یه admin بسازیم؟
نویسنده پیام
fiendish آفلاین
عضو جدید
*

ارسال‌ها: 13
تاریخ عضویت: Aug 2011
رتبه: 0
تشکر: 3
1 بار تشکر شده در 1 پست
ارسال: #1
چطوری یه admin بسازیم؟
با تشکر از زحمات بی پایان تمامی کاربران عزیز

مطالب سایت عالیه (کمه ولی زیاد میشه)

من تازه به جمع دوستان کیک پز پیوستم Big Grin

یه چیزهایی یاد گرفتم، ولی الان مشکلم تو درک و پیاده سازی بخش مدیریت سایت هست.

اگه دوستان یه راهنمایی کنن که چطوری پنل مدیریت رو بسازم، خیلی لطف می کنن.
2011/08/08 10:55 PM
یافتن تمامی ارسال‌های این کاربر نقل قول این ارسال در پاسخ
saleh آفلاین
Administrator
*******

ارسال‌ها: 989
تاریخ عضویت: Dec 2009
رتبه: 12
تشکر: 399
870 بار تشکر شده در 560 پست
ارسال: #2
RE: چطوری یه admin بسازیم؟
درود بر شما . به جمع آشپزان کیک خوش آمدید.

ساده ترین کار فکر میکنم همین باشه، یعنی جدا کردن منطق کدها به کمک prefix ها


مراحل زیر را انجام بدید.

1- در فایل /config/core.php به دنبال گزینه زیر بگردید و از حالت کامنت خارجش کنید.
کد PHP:
    Configure::write('Routing.prefixes', array('admin')); 

2- در روتر باید باید یک مسیر به شکل زیر تعریف کنید.
کد PHP:
    Router::connect('/', array('controller' => 'pages''action' => 'display''home'));
    
Router::connect('/admin', array('admin' => true ,'prefix'=>'admin,'controller' => 'pages', 'action' => 'index')); 

3- حالا در کنترل های خودتون برای اکشن های ادمین کافیه پسوند admin_ بزارید

کد PHP:
class PagesController extends AppController {

/**
 * Controller name
 *
 * @var string
 * @access public
 */
    
public $name 'Pages';

/**
 * Default helper
 *
 * @var array
 * @access public
 */
    
public $helpers = array('Html');

/**
 * This controller does not use a model
 *
 * @var array
 * @access public
 */
    
public $uses = array();

/**
 * Displays a view
 *
 * @param mixed What page to display
 * @access public
 */
    
public function display() {
        
$path func_get_args();

        
$count count($path);
        if (!
$count) {
            
$this->redirect('/');
        }
        
$page $subpage $title_for_layout null;

        if (!empty(
$path[0])) {
            
$page $path[0];
        }
        if (!empty(
$path[1])) {
            
$subpage $path[1];
        }
        if (!empty(
$path[$count 1])) {
            
$title_for_layout Inflector::humanize($path[$count 1]);
        }
        
$this->set(compact('page''subpage''title_for_layout'));
        
$this->render(implode('/'$path));
    }

  function 
index(){
        
       .....
...
..
    }
}
    
    function 
admin_index(){
        
       .....
...
..
    }


تموم شد
2011/08/09 02:13 AM
مشاهده سایت کاربر یافتن تمامی ارسال‌های این کاربر نقل قول این ارسال در پاسخ
fiendish آفلاین
عضو جدید
*

ارسال‌ها: 13
تاریخ عضویت: Aug 2011
رتبه: 0
تشکر: 3
1 بار تشکر شده در 1 پست
ارسال: #3
RE: چطوری یه admin بسازیم؟
کاربر های admin با کاربران سایت تو یه جدول هستن؟

میشه در مورد ورود و خروج admin هم یه توضیح بدین.Huh
2011/08/09 02:40 PM
یافتن تمامی ارسال‌های این کاربر نقل قول این ارسال در پاسخ
saleh آفلاین
Administrator
*******

ارسال‌ها: 989
تاریخ عضویت: Dec 2009
رتبه: 12
تشکر: 399
870 بار تشکر شده در 560 پست
ارسال: #4
RE: چطوری یه admin بسازیم؟
کمی داکیومنت نگاه کنید. دوست عزیز . یا حداقل تو فروم سرچ کنید.
2011/08/09 03:27 PM
مشاهده سایت کاربر یافتن تمامی ارسال‌های این کاربر نقل قول این ارسال در پاسخ
fiendish آفلاین
عضو جدید
*

ارسال‌ها: 13
تاریخ عضویت: Aug 2011
رتبه: 0
تشکر: 3
1 بار تشکر شده در 1 پست
ارسال: #5
RE: چطوری یه admin بسازیم؟
بالاخره گرفتم چی شد.

یه پروژه کامل می نویسم و می گذارم همینجا که دوستان دیگه مثل من تو سردرگمی نمونند، و وقتی سوال کردن بهشون نگن "کمی داکیومنت نگاه کنید. دوست عزیز . یا حداقل تو فروم سرچ کنید." Wink

به زودی...
(آخرین تغییر در این ارسال: 2011/08/11 12:13 PM توسط fiendish.)
2011/08/11 12:11 PM
یافتن تمامی ارسال‌های این کاربر نقل قول این ارسال در پاسخ
 تشکر شده توسط : saleh
saleh آفلاین
Administrator
*******

ارسال‌ها: 989
تاریخ عضویت: Dec 2009
رتبه: 12
تشکر: 399
870 بار تشکر شده در 560 پست
ارسال: #6
RE: چطوری یه admin بسازیم؟
مرسی حرکت خوبیه. اما وقتی همین موضوع رو تو داکیومنت با مثال کامل توضیح داده پس مشکل کجاست!
کد PHP:
http://book.cakephp.org/view/1528/Blog 
(آخرین تغییر در این ارسال: 2011/08/11 03:22 PM توسط saleh.)
2011/08/11 03:20 PM
مشاهده سایت کاربر یافتن تمامی ارسال‌های این کاربر نقل قول این ارسال در پاسخ
fiendish آفلاین
عضو جدید
*

ارسال‌ها: 13
تاریخ عضویت: Aug 2011
رتبه: 0
تشکر: 3
1 بار تشکر شده در 1 پست
ارسال: #7
RE: چطوری یه admin بسازیم؟
الان سوال من اینه که چطور تفاوت کاربر رجیستر شده و ادمین رو تو یه اکشن تشخیص بدم؟
مثلا اینجا چه شرطی بزارم که کاربر نتونه این آدرس رو ببینه و فقط ادمین این اکشن رو ببینه

کد:
http://localhost/myProject/admin/post/index

من یه تابع نوشتم که ادمین رو تشخیص میده، ولی فکر نکنم کار درستی باشه که این تابع رو تو هر اکشن ادمین استفاده کنیم.

کد PHP:
class PostsController extends AppController 
    
    var 
$name 'Posts';

    var 
$helpers = array('Html''Form');
    
    public function 
beforeFilter() {

        
parent::beforeFilter();

        
$this->Auth->allow();
        
$this->Auth->deny('*');
    }
    
    function 
isAdmin() {
        
        if (
$this->Auth->user('role') == 'admin') {
            
            return 
true;
        } 
        else {
            return 
false;
        }
    }
    
    function 
index() {
        
    }
    
    function 
admin_index() {
        
        if ( 
isAdmin() != true ) {
            return;
        }
    }


راه درستش چیه؟
2011/08/11 05:19 PM
یافتن تمامی ارسال‌های این کاربر نقل قول این ارسال در پاسخ
saleh آفلاین
Administrator
*******

ارسال‌ها: 989
تاریخ عضویت: Dec 2009
رتبه: 12
تشکر: 399
870 بار تشکر شده در 560 پست
ارسال: #8
RE: چطوری یه admin بسازیم؟
راه صحیح این به صورت زیر هست.

کد PHP:
///app controller
class AppController extends Controller
{
    public 
$components = array(
        
'Auth',
        
'Session'
        
'RequestHandler',
        );
        
    public 
$helpers = array( 
            
'Session'
            
'Layer',         
            
'Irsa.Persiandate',
            
            );


    public function 
beforeFilter()
    {
        
Security::setHash('md5');
        
$this->Auth->allow('index','view','login','intro','logout');
        
$this->Auth->authorize 'controller';
        
$this->Auth->fields = array('username' => 'username' ,'password' => 'password' );
        
$this->Auth->loginAction = array( 'admin' => true'plugin'=>false,  'controller' => 'users''action' => 'login' );
        
$this->Auth->logoutRedirect '/'
        
$this->Auth->loginRedirect = array('admin' => true'plugin'=>false'controller' => 'dashboards');
        
$this->Auth->autoRedirect false;
        
$this->Auth->loginError "خطا در ورود به سایت";
        
$this->Auth->authError "دستریسی برای شما مقدور نیست";


        if (
$this->IsAdmin())
            
$this->layout 'backend';
        else
            
$this->layout 'front';
    }



    function 
isAuthorized()
    {
        if ( !
$this->Auth->user() )
            return 
false
            
        
if ( ( $this->IsAdmin ) and ( $this->Auth->user('group_id') == ) )    
            return 
true;
            
        return 
false;
        
       
    }

    function 
IsAdmin()
    {
        if ( isset ( 
$this->params['prefix'] ) && ( $this->params['prefix'] =='admin') )
            return 
true;
            
        return 
false;
        
       
    }


 
}
/// Post Conytroller
class PostsController extends AppController 
    
    var 
$name 'Posts';
    
    
    
    function 
isAdmin() {
        
        if (
$this->Auth->user('role') == 'admin') {
            
            return 
true;
        } 
        else {
            return 
false;
        }
    }
    
    function 
index() {
        
    }
    
    function 
admin_index() {
        
        
    }


2011/08/12 01:27 AM
مشاهده سایت کاربر یافتن تمامی ارسال‌های این کاربر نقل قول این ارسال در پاسخ
 تشکر شده توسط : mohsen_bu iraitc sibetorsh payamsp
fiendish آفلاین
عضو جدید
*

ارسال‌ها: 13
تاریخ عضویت: Aug 2011
رتبه: 0
تشکر: 3
1 بار تشکر شده در 1 پست
ارسال: #9
RE: چطوری یه admin بسازیم؟
جواب گرفتم، واقعا ممنون، فقط یه چندتا چیز رو خوب نمیشناسم، اگه توضیح بدین لطف می کنید.
1 - 'admin' => true برای چیه؟ و login action روی لاگین یوزر تاثیر نداره ؟ کجاها میشه استفاده کرد؟
کد PHP:
$this->Auth->loginAction = array( 'admin' => true

2- این کجا صدا زده میشه؟
کد PHP:
isAuthorized() 

3- $this->layout = 'front'; برای تمپلیته؟
کد PHP:
$this->layout 'front'

4 - Layer , Irsa.Persiandate چیه؟
(آخرین تغییر در این ارسال: 2011/08/12 04:03 PM توسط fiendish.)
2011/08/12 02:18 PM
یافتن تمامی ارسال‌های این کاربر نقل قول این ارسال در پاسخ
saleh آفلاین
Administrator
*******

ارسال‌ها: 989
تاریخ عضویت: Dec 2009
رتبه: 12
تشکر: 399
870 بار تشکر شده در 560 پست
ارسال: #10
RE: چطوری یه admin بسازیم؟
login action در اصل اکشن آدرس صفحه لاکین ماست. که میتونه شامل action,controller,prefix,plugin باشه. خوب ما الان پری فیکس داریم. به اسم admin . حالا تو این مورد چون این پارمتر ها توسط روتر آخرش به آدرس تبدیل میشه . با true/false کردن به روتر داریم میگیم که آیا admin رو در آدرس در نظر بگیره یا خیر.


isAuthorized() که مرببوط به یکی از حالات پشتیبانی autu هست توسط همین کانمپوننت صدا زده میشه.

کد PHP:
3$this->layout 'front'برای تمپلیته؟ 

خیر برای لایوت هست.
کد PHP:
Layer Irsa.Persiandate چیه؟ 
کامپوننت ها و هلپر های خودم هست. مورد خواصی نیست.
2011/08/12 07:03 PM
مشاهده سایت کاربر یافتن تمامی ارسال‌های این کاربر نقل قول این ارسال در پاسخ
Reran آفلاین
تازه کار
*

ارسال‌ها: 49
تاریخ عضویت: Feb 2012
رتبه: 0
تشکر: 68
16 بار تشکر شده در 8 پست
ارسال: #11
RE: چطوری یه admin بسازیم؟
سلام به همگی
اقا من این کد رو استفاده می کنم ولی کار نمیده میشه کمک کنید

کد:
Router::connect('/admincp/users/login/', array('admin' => true ,'prefix'=>'admincp','controller' => 'users', 'action' => 'login'));
2012/03/11 01:27 PM
یافتن تمامی ارسال‌های این کاربر نقل قول این ارسال در پاسخ
parsig آفلاین
Super Moderator
******

ارسال‌ها: 323
تاریخ عضویت: Jan 2010
رتبه: 6
تشکر: 131
357 بار تشکر شده در 179 پست
ارسال: #12
RE: چطوری یه admin بسازیم؟
توی کانفیگ روتینگ پرفیکس رو تعریف کردی ؟
اگر admin تعریف کردی پس admincp چیه ؟
اگر admincp تعریف کردی پس admin = true چیه ؟
بررسی کن جوابشو اعلام کن

[تصویر: ubuntu2_userbar.gif]
یک برنامه نویس
آنکه مست آمد و دستی به دل ما زد رفت ... در این خانه ندانم به چه سودا زد و رفت
2012/03/11 01:48 PM
مشاهده سایت کاربر یافتن تمامی ارسال‌های این کاربر نقل قول این ارسال در پاسخ
Reran آفلاین
تازه کار
*

ارسال‌ها: 49
تاریخ عضویت: Feb 2012
رتبه: 0
تشکر: 68
16 بار تشکر شده در 8 پست
ارسال: #13
RE: چطوری یه admin بسازیم؟
والا من این رو طبق چیزایی که خوندم نوشتم

کد:
    Configure::write('Routing.admin', array('admincp'));

ولی ادرس های admincp/** کاملا کار میده ولی میخوام از از /admin روت کنم روی /
2012/03/11 01:53 PM
یافتن تمامی ارسال‌های این کاربر نقل قول این ارسال در پاسخ
parsig آفلاین
Super Moderator
******

ارسال‌ها: 323
تاریخ عضویت: Jan 2010
رتبه: 6
تشکر: 131
357 بار تشکر شده در 179 پست
ارسال: #14
RE: چطوری یه admin بسازیم؟
دقیقا می خوای یو آر ال رو از چی به چی تبدیل کنی ؟

[تصویر: ubuntu2_userbar.gif]
یک برنامه نویس
آنکه مست آمد و دستی به دل ما زد رفت ... در این خانه ندانم به چه سودا زد و رفت
2012/03/11 01:58 PM
مشاهده سایت کاربر یافتن تمامی ارسال‌های این کاربر نقل قول این ارسال در پاسخ
saleh آفلاین
Administrator
*******

ارسال‌ها: 989
تاریخ عضویت: Dec 2009
رتبه: 12
تشکر: 399
870 بار تشکر شده در 560 پست
ارسال: #15
RE: چطوری یه admin بسازیم؟
می خواهید ریدایرکت کنید؟
2012/03/11 01:59 PM
مشاهده سایت کاربر یافتن تمامی ارسال‌های این کاربر نقل قول این ارسال در پاسخ
Reran آفلاین
تازه کار
*

ارسال‌ها: 49
تاریخ عضویت: Feb 2012
رتبه: 0
تشکر: 68
16 بار تشکر شده در 8 پست
ارسال: #16
RE: چطوری یه admin بسازیم؟
شرمنده بد میرسونم مفهوممو

admincp/users/login

بشه

users/login
2012/03/11 02:00 PM
یافتن تمامی ارسال‌های این کاربر نقل قول این ارسال در پاسخ
parsig آفلاین
Super Moderator
******

ارسال‌ها: 323
تاریخ عضویت: Jan 2010
رتبه: 6
تشکر: 131
357 بار تشکر شده در 179 پست
ارسال: #17
RE: چطوری یه admin بسازیم؟
کد PHP:
Router::connect('/admin', array('admincp' => false,'controller' => 'users''action' => 'login')); 

[تصویر: ubuntu2_userbar.gif]
یک برنامه نویس
آنکه مست آمد و دستی به دل ما زد رفت ... در این خانه ندانم به چه سودا زد و رفت
2012/03/11 02:04 PM
مشاهده سایت کاربر یافتن تمامی ارسال‌های این کاربر نقل قول این ارسال در پاسخ
 تشکر شده توسط : Reran
Reran آفلاین
تازه کار
*

ارسال‌ها: 49
تاریخ عضویت: Feb 2012
رتبه: 0
تشکر: 68
16 بار تشکر شده در 8 پست
ارسال: #18
RE: چطوری یه admin بسازیم؟
اقا خیلی خیلی شرمندم من اصلا قاطی کردم ببخشید من کاری که میخوام بکنم این هست که صفحه admincp/users/login ریدایرکت بشه روی users/login
واقعا ببخشید من اشتباه کردم
2012/03/11 02:14 PM
یافتن تمامی ارسال‌های این کاربر نقل قول این ارسال در پاسخ
saleh آفلاین
Administrator
*******

ارسال‌ها: 989
تاریخ عضویت: Dec 2009
رتبه: 12
تشکر: 399
870 بار تشکر شده در 560 پست
ارسال: #19
RE: چطوری یه admin بسازیم؟
شما باید تنظیمات لاگین رو در کامپوننت Auth رو تعریف کنید.
2012/03/11 02:16 PM
مشاهده سایت کاربر یافتن تمامی ارسال‌های این کاربر نقل قول این ارسال در پاسخ
Reran آفلاین
تازه کار
*

ارسال‌ها: 49
تاریخ عضویت: Feb 2012
رتبه: 0
تشکر: 68
16 بار تشکر شده در 8 پست
ارسال: #20
RE: چطوری یه admin بسازیم؟
این رو الان اضافه کردم مشکلم حل شد ولی ایا این صحیحه ؟

کد:
<?php
class UsersController extends AppController {

    public $name = 'Users';
    
    public function beforeFilter() {
        parent::beforeFilter();
        $this->Auth->allow('add');    

       $this->Auth->loginAction = array('admincp' => false,'controller' => 'users', 'action' => 'login');
}


کد:
$this->Auth->loginAction = array('admincp' => false,'controller' => 'users', 'action' => 'login');
(آخرین تغییر در این ارسال: 2012/03/11 02:58 PM توسط Reran.)
2012/03/11 02:55 PM
یافتن تمامی ارسال‌های این کاربر نقل قول این ارسال در پاسخ
ارسال موضوع  ارسال پاسخ 


پرش در انجمن: