Modx revo منبع فایل را با آپلود ایجاد کنید. MODx Revolution: ایجاد دارایی ها و بارگیری فایل ها از فرانت اند

در Evolution، همه چیز بسیار ساده بود: ایجاد حقوق کاربر و کار شما تمام شد! و در اینجا شما باید مراحل زیادی را انجام دهید، اما از طرف دیگر - در Modx Revolution، با حقوق اسناد و فایل ها، می توانید هر کاری که می خواهید انجام دهید (البته مگر اینکه این را بفهمید). خوب، بیایید شروع کنیم!

1. به "امنیت" - "کنترل دسترسی" در منوی بالای پنل مدیریت بروید

2. به تب "Access Policy" بروید

3. بر روی دکمه "ایجاد سیاست دسترسی" کلیک کنید

ما یک پنجره با فیلدها باز می کنیم. در قسمت Name بنویسید "manager"، الگوی سیاست دسترسی AdministratorTemplate است. روی دکمه ذخیره کلیک کنید

4. پس از ذخیره سیاست دسترسی "مدیر"، می بینیم که در لیست سیاست های دسترسی ما ظاهر شده است

5. مدیر ویرایش

6. تیک پارامترهای غیر ضروری را بردارید

در پایین این صفحه که باز می شود، لیستی از گزینه ها (مجوزها) وجود دارد. برای جلوگیری از ویرایش یا حذف اسناد، فایل ها، عناصر لازم برای کارکرد صحیح سایت، باید تیک آن پارامترهایی را که وظیفه نمایش هر منبعی در پنل مدیریت را بر عهده دارند، برداریم.

علامت های چک را از پارامترهای زیر حذف می کنیم:

  • access_permissions صفحه ای را با تنظیماتی برای حقوق دسترسی کاربر نمایش می دهد
  • داشبوردها داشبوردها را مشاهده و مدیریت کنید
  • element_tree امکان مشاهده درخت عنصر در پنجره ناوبری سمت چپ
  • menu_reports مورد "گزارش ها" را در منوی بالا نشان دهید
  • menu_security مورد "امنیت" را در منوی بالا نشان دهید
  • menu_system مورد "System" را در منوی بالا نشان دهید
  • menu_tools مورد "ابزار" را در منوی بالا نشان دهید
  • new_static_resource منابع استاتیک جدید ایجاد کنید.
  • remove_locks تمام قفل های سایت را حذف کنید

7. به برگه "امنیت" - "کنترل دسترسی" - "نقش" بروید


8. دکمه "ایجاد جدید" را فشار دهید، در فیلد نامی که در مدیریت رانندگی می کنیم، رتبه - 9، دکمه "ذخیره" را فشار دهید.


9. تغییرات را ذخیره کنید و به "Security" - "Access Control" - "User Groups" بروید.


روی "Administrator" راست کلیک کرده و روی "Create user group" کلیک کنید.

10. یک گروه جدید ایجاد کنید: نام - مدیر، خط مشی Backend - بدون خط مشی، روی "ذخیره" کلیک کنید.

11. آن را در لیست User Groups پیدا کنید و روی "ویرایش" کلیک کنید.

12. به منوی "Access to contexts" بروید و روی "Add context" کلیک کنید.

13. Context - mgr، Minimum role - Manager - 9، Access Policy - Manager

14. اضافه کردن زمینه بیشتر

به طور دقیق تر، ما وب موجود را ویرایش می کنیم: زمینه - وب، حداقل نقش - مدیر - 9، سیاست دسترسی - مدیر. روی دکمه "ذخیره" کلیک کنید

15. چنین تصویری را خواهیم دید! ما همه چیز را در برگه "گروه کاربر: مدیر" ذخیره می کنیم

16. بعدی: "امنیت" - "مدیریت کاربر"

17. یک کاربر جدید ایجاد کنید (این مشتری ما خواهد بود) - دکمه "کاربر جدید" را فشار دهید.

هر اسمی میخوای براش بذاری من بهش میگم مدیر

18. نام کاربری - مدیر، روی چک باکس - فعال، درایو در ایمیل کلیک کنید

19. رمز عبور را مشخص کنید

20. قبل از ذخیره، به تب «حقوق دسترسی» بروید

21. دکمه "افزودن کاربر به گروه"، گروه کاربر - "مدیر"، نقش - "مدیر" را فشار دهید.

پس انداز می کنیم. این کار ایجاد پنل مدیریت را تکمیل می کند، جایی که مشتری فقط به ویرایش و ایجاد صفحات در درخت سند دسترسی دارد. اما این کاربر همچنان به تمامی فایل های سیستم دسترسی دارد. و بنابراین، اکنون آن را طوری می کنیم که او فقط به یک پوشه دسترسی داشته باشد که آن را در ریشه سایت Modx Revolution ایجاد می کنیم.

22. به تب "ابزارها" - "منابع فایل" بروید

23. لیستی از تمام منابع فایل باز می شود. به طور پیش فرض، فقط یک سیستم ایجاد می شود - Filesystem

قبل از ایجاد یک منبع فایل جدید، ابتدا باید آن را تغییر دهید. با دکمه سمت راست ماوس روی "Filesystem" کلیک کرده و "Edit" را انتخاب کنید.

24. این پنجره باز می شود. روی "افزودن گروه کاربری" کلیک کنید

25. گروه های کاربری - مدیر، حداقل نقش - فوق کاربر - 0، سیاست - مدیر منبع رسانه. روی "ذخیره" کلیک کنید

26. به File Sources برگردید و یک منبع فایل جدید ایجاد کنید

بیایید آن را "مدیر"، منبع فایل Tim - File System بنامیم

27. روی منبع فایل جدید "Manager" کلیک راست کرده و "Edit" را انتخاب کنید.

28. چنین پنجره ای باز خواهد شد! ما باید 4 پارامتر اول را تغییر دهیم

در basePath در فیلد، تایپ می کنیم / مدیر /، basePathRelative و baseUrlRelative با مقادیر "Yes" باقی می مانند، در قسمت baseUrl می نویسیم مدیر /

29. وارد پارامتر tv می شویم

30. آخرین برگه "منابع فایل" را کلیک کنید

و منبع فایل ها را از "Filesystem" به "Manager" تغییر دهید. ما صرفه جویی می کنیم!

31. یک گروه کاربری به "مدیر" اضافه کنید

اکنون پس از انجام تمام مراحل، به «منبع فایل» - «مدیر» بروید و یک گروه کاربری به این منبع فایل اضافه کنید.

32. گروه های کاربری - مدیر، حداقل نقش - مدیر - 9، سیاست - مدیر منبع رسانه. روی "ذخیره" کلیک کنید

پس از ذخیره، منبع فایل "Manager" برای مدیر ناپدید می شود. برای اینکه بتوانید این منبع فایل ها را ویرایش کنید، باید به منوی "Security - Access Control" بروید. برای ویرایش گروه مدیر باز کنید: مدیر و در برگه "منابع فایل" منبع مدیر را پیدا و حذف کنید. فقط پس از آن می توانیم دوباره ویرایش کنیم منبع داده شدهاز زیر مدیر

33. کش را برای هر موردی پاک کنید

و کاربر ما با حقوق و دسترسی محدود به سیستم فایلایجاد شده!

من نمی گویم که به اندازه کافی آسان است، اما اگر شما آن را به طور خودکار انجام دهید، به نظر چیز سختی نمی رسد. امیدوارم موفق بشی با پروژه هات موفق باشی!

مقاله ای که در آن به چگونگی در نظر خواهیم گرفت انقلاب MODXیک سیستم از حقوق دسترسی سازماندهی شده است، و همچنین برخی دستورالعمل های معمولی برای تنظیم مجوزها برای کاربران.

سیستم حقوق دسترسی در MODX

MODX Revolution به شما اجازه نمی دهد که به طور مستقیم حقوقی را به یک کاربر اختصاص دهید. در این سیستم این اقداماز طریق انجام شد گروهی از کاربران.

به عبارت دیگر، برای اعطای برخی حقوق به کاربر، لازم است:

  • یک گروه ایجاد کنید و امتیازات لازم را به آن اختصاص دهید.
  • یک یا چند کاربر را در این گروه قرار دهید.

اما حضور کاربر در یک گروه به معنای دریافت تمام امتیازات آن نیست. حقوقی که کاربر دریافت می کند با استفاده از نقشی که در این گروه به او اختصاص داده شده است، مشخص می شود.نقش (رتبه) یک کاربر در یک گروه با استفاده از یک عدد از 0 تا 9999 تعیین می شود. این مقدار تعیین می کند که کدام کاربر امتیازات گروه را دریافت می کند و کدام نه.

به عبارت دیگر نقش- این نوعی مکانیسم است که به کاربران مختلف اجازه می دهد تا حقوق متفاوتی را در یک گروه اختصاص دهند.

بیایید به یک مثال کوچک نگاه کنیم.


در این مثال:

  • کاربر کاربر 1متعلق به گروه است گروه 1... او از آن امتیازات گروهی برخوردار است که نقش آنها بیشتر است. 2000 .
  • کاربر کاربر 2شامل 2 گروه دارای 2 امتیاز گروهی است. از گروه اول ( گروه 1) دارای امتیازاتی است که نقش آنها بیشتر یا مساوی است 1000 ... و از دومی ( گروه 2) - آن دسته از امتیازاتی که نقش آنها بیشتر یا مساوی است 9999 .
  • کاربر کاربر3در گروه است گروه 2... این گروه آن حقوقی را به او می دهند که نقش آن بیشتر یا مساوی است 5000 .

سیاست دسترسی MODX

ایجاد امتیازات گروهی در MODX Revolution با استفاده از آن انجام می شود سیاست های دسترسی... آن (خط مشی دسترسی) به یک گروه در رابطه با موجودیت های MODX خاص، یعنی زمینه، گروه منبع، دسته بندی آیتم، منبع فایل و فضای نام اختصاص داده می شود. علاوه بر این، همچنین نشان داده شده است حداقل نقشکه کاربر این گروه نیاز به داشتن این امتیازات دارد.

یک تصویر را در نظر بگیرید.

امتیازاتی که کاربران یک گروه بسته به نقشی که هر یک در آن ایفا می کنند، دریافت می کنند

در این مثال:

  • کاربر کاربر 1(نقش در گروه گروه 1 - 2000 ) تمامی امتیازات گروه را دارد گروه 1که نقش آن بزرگتر یا مساوی 2000 است. آی تی K1, K2و G2.
  • کاربر کاربر 2دارای بالاترین نقش در گروه (0) و در نتیجه تمام امتیازات آن ( K1, K2, D1و G2).
  • کاربر کاربر3در گروه دارد گروه 1پایین ترین نقش ( 9999 ). مطابق با آن، او می تواند اقداماتی را در سیستم انجام دهد که در آن تعریف شده است K2و G2.

خط مشی دسترسی مجموعه ای از حقوقی است که به کاربر برای انجام اقداماتی در سایتی که توسط CMS MODX Revolution ارائه می شود، اعطا می شود.

چرا به این صورت اجرا می شود؟ این به این دلیل است که در MODX حقوق زیادی وجود دارد و راحت تر است که آنها را به صورت گروهی (به عبارت دیگر با استفاده از یک خط مشی دسترسی) اختصاص دهید و نه یک به یک.

به عنوان مثال، سیاست دسترسی بارگذاری، فهرست و مشاهدهدارای مجموعه ای از مجوزهای زیر است:

  • بار (بارگذاری اشیاء)؛
  • لیست (دریافت مجموعه ای از اشیاء)؛
  • مشاهده (مشاهده اشیاء).

چگونه خط مشی دسترسی خود را ایجاد کنید

هنگام تنظیم مجوزها برای یک گروه کاربری، شما به سیاست های موجود (از پیش نصب شده) در سیستم MODX محدود نمی شوید. در صورت لزوم می توانید موارد جدید ایجاد کنید. ایجاد خط مشی در MODX بر اساس آن است دسترسی به الگوی خط مشی... یک الگوی خط مشی دسترسی موجودیتی از MODX Revolution است که حداکثر لیست مجوزهای موجود را هنگام ایجاد یک خط مشی دسترسی تعریف می کند.

بنابراین، به منظور یک خط مشی دسترسی با مجوزهای مورد نیاز ایجاد کنیدلازم:

  1. یک الگوی خط مشی دسترسی مناسب پیدا کنید (در صورت لزوم، یکی موجود را ویرایش کنید یا یک الگوی جدید ایجاد کنید).
  2. با انتخاب یک الگوی مناسب یک خط مشی دسترسی ایجاد کنید.
  3. از کل لیست مجوزهای ارائه شده توسط الگو، فقط مجوزهایی را که می خواهید به کاربران اعطا کنید (در صورتی که این خط مشی را داشته باشند) بگنجانید.
چگونه مجموعه مجوزهای موجود یک خط مشی دسترسی تعیین می شود

هنگام ایجاد یک خط مشی دسترسی، همیشه با اختصاص حداقل حقوق کافی برای کاربر برای انجام برخی اقدامات در سیستم شروع کنید. در صورت لزوم، همیشه می توانید مجوزهای داده شده به کاربر را گسترش دهید.

کاربر ناشناس

در MODX Revolution، هر بازدیدکننده غیرمجاز سایت ناشناس است و متعلق به گروه است (ناشناس)... اگر قطعه زیر را ایجاد کنید، با آن در قالب منبع تماس بگیرید و سپس صفحه را باز کنید، می توانید به راحتی این موضوع را تأیید کنید.

کد پی اچ پی برای قطعه GetUser:

user-> get ("نام کاربری")؛

فراخوانی یک قطعه در یک صفحه:

[[! GetUser]]

نتیجه کار:

(ناشناس)

اقدامات کاربران ناشناس در سایت در MODX با تنظیم مجوزهای گروه تنظیم می شود (ناشناس)... در صورت لزوم، می توانید به این گروه امتیازات اضافی بدهید یا آنها را محدود کنید.

دستورالعمل های معمولی برای تنظیم مجوزها

در این بخش، دستورالعمل‌هایی را بررسی می‌کنیم که در صورت نیاز می‌توانید از آنها استفاده کنید:

  • محدود کردن دسترسی به منابع خاص برای کاربران ناشناس؛
  • یک مدیر محتوا ایجاد کنید که نیاز به دسترسی به کار با منابع در پنل مدیریت و همچنین امکان آپلود تصاویر داشته باشد.

محدود کردن دسترسی به برخی منابع

مثالی را در نظر بگیرید که در آن دسترسی کاربران ناشناس را به منابع خاصی محدود می کنیم (مثلاً به یک حساب شخصی، صفحه "تغییر رمز عبور" و غیره). ما دسترسی به این منابع را فقط برای کاربران ثبت نام شده فراهم خواهیم کرد.

برای این کار باید:

  1. ايجاد كردن گروه منابع کاربران(محتوا -> گروه های منابع -> دکمه ایجاد گروه منابع). در فرم ظاهر شده، در قسمت "Name" وارد کنید - کاربرانو بر روی دکمه "ذخیره" کلیک کنید. منابع لازم را در آن قرار دهید (دسترسی به آن برای بازدیدکنندگان ناشناس باید محدود شود).
  2. ايجاد كردن گروه کاربران(آیکون "Gear" -> کنترل دسترسی -> دکمه "گروه کاربری جدید"). در کادر محاوره ای که باز می شود، فیلد "Name" را وارد کنید - کاربران، "زمینه ها" - وب، "سیاست های پشتیبان" - (بدون سیاست).
  3. به حالت ویرایش گروهی بروید (مورد «ویرایش گروه کاربر» را در منوی زمینه کاربران انتخاب کنید).
  4. تب "حقوق دسترسی" و در آن "دسترسی به گروه های منابع" را باز کنید. بر روی دکمه "افزودن گروه منبع" کلیک کنید و فرم باز شده را پر کنید ("گروه منابع" - گروه، "متن نوشته" - (وب)، حداقل نقش است عضو (9999)، "خط مشی دسترسی" - بارگذاری، فهرست و مشاهده).

پس از آن، هر کاربر ناشناس یا دیگر (که هیچ حقی ندارد) دریافت خواهد کرد منبع 404(چون او حتی حق ندارد بار) اگر بخواهد صفحه ای از این گروه را باز کند.

اگر می خواهید کاربران ناشناس هنگام باز کردن صفحات محافظت شده، به برخی دیگر (مثلاً مجوز) فوروارد کنند، باید موارد زیر را نیز انجام دهید (یعنی حق را بدهید باربرای این گروه منبع):

  1. باز کن تنظیمات سیستم(نماد "چرخ دنده -> تنظیمات سیستم). فضای نام "core"، بخش "Site" را انتخاب کنید. پارامتر را پیدا کنید unauthorized_page(خطای صفحه 403 "Access Denied") و آن را به عنوان یک مقدار مشخص کنید - شناسه منبعحاوی فرم "Authorization".
  2. به حالت ویرایش گروهی بروید (ناشناس)... در بخش "دسترسی به گروه های منابع" (برگه "حقوق دسترسی") اضافه کنید گروه منابع کاربرانو حقوق لازم را برای آن تنظیم کنید (در این مورد، "Context" - (وب)، حداقل نقش است عضو (9999)، "خط مشی دسترسی" - فقط بارگذاری).
پیکربندی دسترسی به گروه منابع کاربران برای کاربران ناشناس

تنظیم حقوق برای مدیر محتوا

در این مثال، ما یک گروه "مدیران" ایجاد خواهیم کرد که کاربران آن می توانند تصاویر را در دایرکتوری موجود در پنل مدیریت آپلود کنند و با منابع خاصی کار کنند.

برای این کار می توانید به عنوان مثال از دستورالعمل زیر استفاده کنید:

1. جدید ایجاد کنید خط مشی دسترسی مدیربا حقوق لازم:

  • صفحه "Access Control" را باز کنید (نماد "Gear" -> Access Control) و به تب "Access Policy" بروید.
  • از خط مشی «ویرایشگر محتوا» کپی کنید.
  • کپی ایجاد شده را ویرایش کنید، یعنی فیلد نام را به Manager تغییر دهید و کادرهای مقابل فهرست_list، file_list، file_manager، file_remove، file_tree، file_upload را علامت بزنید. در نتیجه، خط مشی دسترسی مدیر 30 مجوز خواهد داشت. این باید به منظور اعطای حقوق کاربر برای کار با فایل ها انجام شود.
  • بر روی دکمه "ذخیره" کلیک کنید.
فرم پیکربندی خط مشی دسترسی مدیر

2. منابعی را که مدیران نباید به آنها دسترسی داشته باشند در پنل مدیریت مخفی کنید:

  • صفحه Resource Groups را باز کرده و روی دکمه Create Resource Group کلیک کنید.
  • در فرمی که باز می شود، "Name" را وارد کنید - بسته برای مدیران، "زمینه ها" - mgrو علامت گذاریگزینه "اعطای خودکار دسترسی به گروه مدیر".
  • بر روی دکمه "ذخیره" کلیک کنید.
  • منابع را به گروه ایجاد شده بکشید و رها کنید که باید برای مدیران در پنل مدیریت پنهان شوند.

3. دسترسی به دایرکتوری که کاربر تصاویر را در آن آپلود می کند، فراهم کنید.

  • صفحه «منابع فایل» را باز کنید، روی «ایجاد» کلیک کنید منبع جدیدفایل ها ".
  • در فرم باز شده، متن را در قسمت "Name" وارد کنید تصاویر، در "توضیحات" - تصاویر، در "نوع منبع فایل" - سیستم فایل.
  • بر روی دکمه "ذخیره" کلیک کنید.
  • منبع فایل های تازه ایجاد شده را ویرایش کنید (دکمه سمت راست ماوس -> اقدام "ویرایش").
  • مقدار پارامترها را تغییر دهید: basePath - دارایی / تصاویر /، baseUrl - دارایی / تصاویر /، مجاز FileTypes - jpg، jpeg، png، gif.
  • بر روی دکمه "ذخیره" کلیک کنید.
پیکربندی منبع فایل های Images

منبع فایلی که گروه کاربری مرتبطی ندارد برای همه کاربران باطن در دسترس خواهد بود. بنابراین، برای جلوگیری از نمایش منابع فایل دیگری که به عنوان مثال با بیش از یک گروه مرتبط نیستند، کاربران گروه مدیران، می توانید آنها را به گروه کاربری Administrator اختصاص دهید.

MODX - یک منبع فایل سیستم را به گروه Administrator پیوند دهید

سیستم کنترل دسترسی MODX با استفاده از منبع فایل به کاربران مختلف این امکان را می دهد که دایرکتوری های خاصی را که به آنها دسترسی خواهند داشت تنظیم کنند و همچنین مجموعه ای از امتیازات خود را در آنها تعریف کنند. به عبارت دیگر، این سیستمی است که به عنوان مثال، می توان به برخی از کاربران برخی از کاتالوگ ها و برخی دیگر - برخی دیگر را ارائه داد.

4. ایجاد کنید گروه جدیدکاربرانو حقوق لازم را به آن اختصاص دهند.

  • صفحه «کنترل دسترسی» را باز کنید، به تب «گروه‌های کاربری و کاربران» بروید، روی دکمه «گروه کاربری جدید» کلیک کنید.
  • در کادر محاوره ای که باز می شود، فیلدهای زیر را پر کنید: "Name" - مدیران; "شرح" - مدیران; "زمینه ها" - وب، mgr; "سیاست پشتیبان" - مدیر.
  • بر روی دکمه "ذخیره" کلیک کنید.
  • به حالت ویرایش گروه کاربری تازه ایجاد شده "مدیران" بروید (روی گروه -> مورد در منوی زمینه "ویرایش" راست کلیک کنید).
  • به تب "حقوق دسترسی" بروید.
  • بخش "دسترسی به زمینه ها" را باز کنید. دسترسی به متن وب: "حداقل نقش" - عضو (9999); خط مشی دسترسی - بارگذاری، فهرست و مشاهده... دسترسی به زمینه mgr: "حداقل نقش" - عضو (9999)، خط مشی دسترسی - مدیر.
  • در بخش "دسترسی به منبع فایل"، یک ورودی جدید با مقادیر زیر اضافه کنید: "منبع" - تصاویر; "حداقل نقش" - عضو (9999)، "خط مشی دسترسی" - مدیر منبع رسانه.
  • بر روی دکمه "ذخیره" کلیک کنید

5. ایجاد کنید کاربرو به گروه "مدیر" اضافه کنید. مقدار نقش را 9999 (Member) قرار دهید. این نقش برای او کافی خواهد بود تا تمام مجوزهای این گروه را بگیرد. این به دلیل این واقعیت است که برای این گروه، ما خط مشی های دسترسی را که برای آنها نقشی بیش از 9999 لازم است تعیین نکرده ایم.

افزودن کاربر به گروه مدیر (نقش عضو)

سلام به همه خوانندگان وبلاگ WebHow! در نهایت، من یک افزونه عالی برای برجسته کردن کد در مقالات پیدا کردم، و اکنون می توانید به تجارت جدی بپردازید. بنابراین، به کنار شوخی، امروز یک پست سخت برای کسانی که رویای سازماندهی یک تابلوی اعلانات، کاتالوگ یا هر سرویس دیگری را در سایت MODx خود دارند، وجود خواهد داشت، جایی که بازدیدکنندگان مطالب خود را خودشان ارسال می کنند.

هر کسی که حداقل کمی با MODx آشنایی داشته باشد می داند که برای ارسال محتوای خود، کاربر باید به پنل مدیریت دسترسی داشته باشد. البته، من نمی خواهم آن را از راست به چپ توزیع کنم. بنابراین، شما باید مطمئن شوید که کاربران می توانند منابع ایجاد کنند و فایل ها را مستقیماً از صفحات سایت برای آنها آپلود کنند.

من یک برنامه نویس نیستم و زمانی که برای اولین بار مجبور به ایجاد یک تابلوی پیام در MODx شدم، تنها کاری که می توانستم انجام دهم این بود که به دنبال یک راه حل آماده باشم. چند گزینه مختلف قطعه وجود داشت که امکان انتشار یک منبع از frontend را برای MODx Revolution فراهم می کرد.

اصل تقریباً برای همه یکسان است: با استفاده از FormIt صفحه ای با فرم ایجاد می شود که در فراخوانی آن نام قطعه نوشته می شود. برای هر نوع تبلیغ، فیلدهای تلویزیونی مخصوص به خود ایجاد می شود، به عنوان مثال، شهر، تلفن یا فیلدی برای آپلود تصاویر. هنگامی که کاربر فرم را ارسال می کند، یک منبع ایجاد می شود.

با این حال، تقریباً تمام قطعاتی که من موفق به پیدا کردن آنها شدم بسیار دست و پا گیر بودند: هر پارامتر تلویزیون باید در کد قطعه نوشته می شد و این برای من مناسب نبود. چون برای هر نوع تبلیغ حداقل 3 فیلد اضافی در نظر گرفتم و همه آنها باید در قطعه نوشته شود ... نه راه بهتر و راحت تری وجود دارد. این توسط من در بخش انگلیسی زبان انجمن رسمی MODx.com پیدا شد. و اگر انگلیسی را خیلی خوب صحبت نمی کنید و نمی خوانید، یا خیلی تنبل هستید که به دنبال یک گزینه مناسب از چندین مورد در موضوع باشید، من نحوه استفاده از آن را به شما خواهد گفت.

من یک آموزش تصویری گام به گام در این زمینه ضبط کرده ام. تمام مواد لازم برای آن را درست زیر پخش کننده پیدا خواهید کرد.

کد قطعه Formit2resource

getObject ("modResource"، آرایه ("id" => $ hook-> getValue ("resource_id"))); if (خالی ($ doc)) ($ doc = $ modx-> newObject ("modResource")؛ $ doc-> set ("createdby", $ modx-> user-> get ("id"))؛) دیگری ($ doc-> set ("editedby"، $ modx-> user-> get ("id"));) $ allFormFields = $ hook-> getValues ​​(); foreach ($ allFormFields به عنوان فیلد $ => مقدار $) (اگر (فیلد $! == "هرزنامه" && $ فیلد! == "resource_id") ($ doc-> مجموعه ($ فیلد، $ value);)) $ نام مستعار = $ doc-> cleanAlias‎ ($ فیلدها ["pagetitle"]); if ($ modx-> getCount (modResource، آرایه ("نام مستعار" => $ مستعار))! = 0) ($ count = 1؛ $ newAlias ​​= نام مستعار $؛ در حالی که ($ modx-> getCount (modResource، آرایه (" مستعار "=> $ newAlias))! = 0) ($ newAlias ​​= $ مستعار; $ newAlias. =" - ". $ count; $ count ++;) $ alias = $ newAlias;) $ doc- > set (" مستعار " , $ مستعار); $ doc-> set ("الگو"، $ الگو); $ doc-> save (); foreach ($ allFormFields به عنوان فیلد $ => مقدار $) (اگر (! خالی ($ value) && $ tv = $ modx-> getObject ("modTemplateVar"، آرایه ("name" => فیلد $))) (/ * چک باکس ها را کنترل می کند و چندین عنصر را انتخاب می کند * / if (is_array ($ value)) ($ featureInsert = array ()؛ در حالی که (list ($ featureValue, $ featureItem) = هر ($ value)) ($ featureInsert = $ featureItem;) $ value = implode ("||"، $ featureInsert);) $ tv-> setValue ($ doc-> get ("id")، $ value)؛ $ tv-> save ();)) $ modx-> cacheManager -> تازه کردن (); بازگشت درست؛

کد قطعه Formit2file

user-> get ("id"); // مسیری از ریشه که کاربر مشخص می کند // ایجاد مسیر منحصر به فرد برای این فرم ارسال $ uploadpath = "assets / uploads /".$ mydir." / "; // مسیر کامل را به پوشه منحصربفرد دریافت کنید $ target_path = $ modx-> config ["base_path"]. $ مسیر ارسال؛ // نام فایل های آپلود شده را دریافت کنید: $ submitfiles = array_keys ($ _ FILES); // در میان فایل‌ها حلقه بزنید ($ فایل‌های ارسال شده به‌عنوان $ sf) (// نام فایل را دریافت کنید و مطمئن شوید که خوب است. $ filename = نام پایه ($ _ FILES [$ sf] ["name"]؛ // دریافت پسوند فایل "s $ ext = اطلاعات مسیر ($ filename, PATHINFO_EXTENSION)؛ $ ext = mb_strtolower ($ ext)؛ // حساس به حروف بزرگ نیست // نام فایل خالی است (فایل آپلود نشده است) اگر ($ filename! = "") (// آیا این نوع فایل مناسب است؟ if (in_array ($ ext، $ ext_array)) (// نام فایل را پاک کنید و نام فایل $ را منحصر به فرد کنید = $ counter. ".". $ ext؛ $ filename = str_replace (""، "_" , $ filename)؛ // فاصله برای زیرخط نام فایل $ = تاریخ ("Ym-d_G-i-s_"). $ نام فایل؛ // افزودن تاریخ و زمان // مسیر کامل به فایل جدید $ myTarget = $ target_path $ filename ; // ایجاد دایرکتوری برای انتقال فایل در صورت عدم وجود mkdir ($ target_path, 0755, true)؛ // آیا فایل با موفقیت به پوشه مناسب منتقل شده است؟ if (move_uploaded_file ($ _ FILES [$ sf ] [" tmp_name "]، $ myTarget)) (// یک مکان نگهدار جدید با مسیر کامل جدید تنظیم کنید (اگر در قلاب های بعدی به آن نیاز دارید) $ myFile = $ آپلود مسیر. نام فایل $; $ hook-> setValue ($ sf، $ myFile)؛ // مجوزهای فایل را تنظیم کنید if (! chmod ($ myTarget, 0644)) (/ * برخی از عملکردهای اشکال زدایی * /)) other (// فایل آپلود نشد $ errorMsg = "مشکلی در آپلود فایل وجود داشت."; $ hook-> addError ($ sf, $ errorMsg)؛ $ output = نادرست؛ // ایجاد خطای ارسال)) else (// نوع فایل مجاز نیست $ errorMsg = "نوع فایل مجاز نیست."؛ $ hook-> addError ($ sf، $ errorMsg)؛ خروجی $ = نادرست؛ // ایجاد خطای ارسال) // اگر فایلی وجود ندارد، خطا نکنید، اما خالی را برگردانید) در غیر این صورت ($ hook-> setValue ($ sf، ")؛) $ شمارنده = $ شمارنده + 1;) خروجی $;

دوستان! فراموش نکنید که فیلدهای تلویزیون و شناسه منابع خود را در کد فرم جایگزین کنید. مراقب باشید و موفق خواهید شد.

فراخوانی FormI

[[! FormIt؟ & hooks = `formit2file, formit2resource, redirect` & redirectTo =` ID صفحه پیام` & template = `شناسه الگوی آگهی`]]

شرط فراخوانی یک قطعه با فرم

[[! + modx.user.id: is = `0`: سپس =` برای درج آگهی، مجوز لازم است [[! Loginza? & group = `3` & profileFields =` نام کاربری، ایمیل، نام کامل، عکس`]] `: else =` [[$ form_add]] `]]

نمونه کد فرم

[[+ fi.error.error_message]]

نام
[[+ fi.error.pagetitle]]
*
شهر
[[+ fi.error.city]]
*

توصیف همراه با جزئیات

[[+ fi.error.content]]

پیوست عکس ها:

می توانید حداکثر پنج عکس را در کاتالوگ قرار دهید. فرمت های پذیرفته شده: jpg، .png، .gif
عکس یا لوگوی اصلی * [[+ fi.error.img]]
عکس اضافی (1) [[+ fi.error.foto1]]
عکس اضافی (2) [[+ fi.error.foto2]]
عکس اضافی (3) [[+ fi.error.foto3]]
عکس اضافی (4) [[+ fi.error.foto4]]

شرایط نمایش تصویر

[[* img: notempty = '']]
اکنون کاربران سایت شما نه تنها می توانند تبلیغات ارسال کنند، بلکه آنها را با عکس تکمیل کنند، درست مانند هر تابلوی اعلانات. اما اگر هنگام پر کردن فرم اشتباه کردید چه؟ به عنوان مثال، شخصی مهر و موم کرده و شماره تلفن اشتباهی را نشان داده است، یا شاید فقط می‌خواسته آگهی را تکمیل کند یا قیمت محصول خود را تغییر دهد.

دفعه بعد بهت میگم و این همه برای امروز است، امیدوارم این مقاله برای شما مفید بوده باشد.