استفسار حول نسخة من موديول Users

تحية طيبة

أولا سررت جدا بوجود قسم عربي في منتديات Yii

هذه أول مشاركة لي ، ,وأتمنى ان استفيد منكم واستعيد الإفادة في الأيام القادمة


واجهتني مشكلة اود طرحها في هذا المنتدى

لدي Yii2 Advanced template

قمت بفصل المستخدمين في الواجهة عن الخلفية (front-end & back-end)

كمافي هذه التدوينة : http://www.yiiframework.com/wiki/814/guide-how-to-actually-separate-frontend-user-and-backend-admin-on-yii2-advanced/

ولكن احتاج للتحكم بحسابات المستخدمين في الواجهة

فقمت باضافة موديول المستخدمين dektrium Yii2 user

إلى backend كالتالي





    'modules' => [


            'player' => [

            'class' => 'dektrium\user\Module',

            'enableRegistration' => false,

            'enableUnconfirmedLogin' => false,

            'confirmWithin' => 21600,

            'cost' => 12,

 'admins' => ['beadmin'],


        ],

 

    ],

وطبعا عملت override لل view مع تغيير القيم المطلوبة

بس لما عم اطلب المسار

index.php/player/admin

من back-end

عم احصل على الخطأ التالي :

مع العلم انو لو انا لو عدلت player إلى user كلو بيشتغل تمام .

لما عم اطلب المسار

index.php/user/admin

من back-end

واستخدمت





    'modules' => [


            'user' => [

            'class' => 'dektrium\user\Module',

            'enableRegistration' => false,

            'enableUnconfirmedLogin' => false,

            'confirmWithin' => 21600,

            'cost' => 12,

 'admins' => ['beadmin'],


        ],

 

    ],

أتمنى كون شرحت المشكلة بشكل واضح

كل التحية

[rtl]

اهلين وحياك الله اخوي عدنان

اعتذر عن التأخير ويجب ان ابحث عن طريقة تنبيه في حال وجود مشاركات جديدة

ولاكن سوف اجيب لتعم الفائدة بإذن الله

راجعت التدوينة في الرابط الي وضعته ولاحظت ان الشرح يخص طريقة فصل المستخدمين بالطريقة الافتراضية لإطار العمل وليس باستخدام موديول المستخدمين dektrium Yii2 user

بخصوص فصل المستدخدمين لموديول dektrium Yii2 user فيجب فصل الكوكي او السيشن كما هو مذكور بتوثيق الموديول في هذا الرابط

Use independent sessions in one domain

فهمت من طرحك انك تريد استخدام الرابط

player/admin

بدلا من

user/admin

في هذه الحالة ان لاتحتاج ان تغير اسم الموديول ولاكنك بحاجة إلي وضع rule في urlManager في config الـ backend

[/rtl]




'components' => [

  'urlManager' => [

    ...

	'rules' => [

      	'player/admin' => 'user/admin',

	],

    ...

  ],

],



[rtl]

بهذه الطريقة انت تحول الرابط من player/admin إلي user/admin

ولاكن بهذه الطريقة راح يكون عندك رابط ثابت fixed ولن يكون دايناميك مع كل رابط داخل الموديول، وصعب تضيف كل رابط يدويا

الحل يكون ان توضح لإطار العمل محتوي الرابط كـ controller و action و حتي متغييرات

وهذا مثال يوضح الفكرة

[/rtl]




'rules' => [ 

  'player/<controller:\w+>' => 'user/<controller>', // يحول إلي الكنترولر مباشرة

  'player/<controller:\w+>/<action:\w+>' => 'user/<controller>/<action>', // وهنا يحول إلي الاكشن مباشرة

  ...

  // يجب ايضا اضافة الراوتنق هنا في حال وجود متغييرات في الرابط مثل حاله view او update لوجود متغير مع الرابط

  ...

],



[rtl]

يمكنك مراجعه توثيق URL Rules في صفحة Routing

اتمني ان اكون قد اضفت شي مفيد إلي طرحك والله ولي التوفيق

[/rtl]