Modx revo ფაილის წყაროს შექმნა ატვირთვით. MODx Revolution: რესურსების შექმნა და ფაილების ჩატვირთვა ფრონტენტიდან

ევოლუციაში ყველაფერი საკმაოდ მარტივი იყო: თქვენ უქმნით უფლებებს მომხმარებლისთვის და დაასრულეთ! და აქ თქვენ უნდა გააკეთოთ ბევრი ნაბიჯი, მაგრამ მეორეს მხრივ - Modx Revolution-ში დოკუმენტებისა და ფაილების უფლებებით, შეგიძლიათ გააკეთოთ ის, რაც გსურთ (თუ, რა თქმა უნდა, არ გესმით ეს). აბა, დავიწყოთ!

1. გადადით "უსაფრთხოება" - "Access Control" ადმინისტრაციული პანელის ზედა მენიუში

2. გადადით "წვდომის პოლიტიკის" ჩანართზე

3. დააწკაპუნეთ ღილაკზე „დაშვების პოლიტიკის შექმნა“.

გაიხსნება ფანჯარა ველებით. სახელის ველში ვწერთ "მენეჯერი", წვდომის პოლიტიკის შაბლონი არის AdministratorTemplate. დააჭირეთ შენახვის ღილაკს

4. „მენეჯერის“ წვდომის პოლიტიკის შენახვის შემდეგ ვხედავთ, რომ ის გამოჩნდა ჩვენს წვდომის პოლიტიკის სიაში

5. რედაქტირების მენეჯერი

6. ამოიღეთ არასაჭირო პარამეტრების ველები

ამ გვერდის ბოლოში, რომელიც იხსნება, არის ოფციების (ნებართვების) სია. ჩვენ უნდა მოვხსნათ ის პარამეტრები, რომლებიც პასუხისმგებელნი არიან ადმინისტრაციულ პანელში ნებისმიერი რესურსის ჩვენებაზე, რათა თავიდან ავიცილოთ საიტის გამართულად მუშაობისთვის საჭირო დოკუმენტების, ფაილების, ელემენტების რედაქტირება ან წაშლა.

მოხსენით ყუთები შემდეგი პარამეტრებისთვის:

  • access_permissions გვერდის ჩვენება მომხმარებლის წვდომის უფლებების პარამეტრებით
  • დაფები დაფების ნახვა და მართვა
  • element_tree ელემენტის ხის ნახვის შესაძლებლობა მარცხენა ნავიგაციაში
  • menu_reports აჩვენეთ "ანგარიშები" ზედა მენიუში
  • menu_security აჩვენეთ "უსაფრთხოების" ელემენტი ზედა მენიუში
  • menu_system აჩვენეთ "სისტემის" ელემენტი ზედა მენიუში
  • menu_tools აჩვენეთ "ინსტრუმენტები" ზედა მენიუში
  • new_static_resource შექმენით ახალი სტატიკური რესურსები.
  • remove_locks ამოიღეთ ყველა საკეტი საიტზე

7. გადადით ჩანართზე "უსაფრთხოება" - "წვდომის კონტროლი" - "როლები"


8. დააწკაპუნეთ ღილაკზე „ახლის შექმნა“, Name ველში, რომელსაც ვატარებთ მენეჯერში, რანგი - 9, დააჭირეთ ღილაკს „შენახვა“.


9. შეინახეთ ცვლილებები და გადადით მენიუში "Security" - "Access Control" - "User Groups"


დააწკაპუნეთ მარჯვენა ღილაკით "ადმინისტრატორზე" და დააჭირეთ "მომხმარებელთა ჯგუფის შექმნა"

10. შექმენით ახალი ჯგუფი: სახელი - მენეჯერი, Backend პოლიტიკა - პოლიტიკა არ არის, დააწკაპუნეთ "შენახვა"

11. ჩვენ ვპოულობთ მას მომხმარებელთა ჯგუფების სიაში და დააჭირეთ "რედაქტირებას"

12. გადადით მენიუში "წვდომა კონტექსტებზე" და დააწკაპუნეთ "კონტექსტის დამატება"

13. კონტექსტი - mgr, მინიმალური როლი - მენეჯერი - 9, წვდომის პოლიტიკა - მენეჯერი

14. სხვა კონტექსტის დამატება

უფრო სწორად, ვასწორებთ არსებულ ვებს: კონტექსტი - ვებ, მინიმალური როლი - მენეჯერი - 9, წვდომის პოლიტიკა - ადმინისტრატორი. დააჭირეთ ღილაკს "შენახვა".

15. ასეთ სურათს ვიხილავთ! ჩვენ ყველაფერს ვინახავთ ჩანართში "მომხმარებლების ჯგუფი: მენეჯერი"

16. შემდეგი: "უსაფრთხოება" - "მომხმარებლის მენეჯმენტი"

17. შექმენით ახალი მომხმარებელი (ეს იქნება ჩვენი კლიენტი) - დააჭირეთ ღილაკს "ახალი მომხმარებელი".

შეგიძლიათ ნებისმიერი სახელი დაარქვათ, მე მენეჯერს დავარქმევ

18. მომხმარებლის სახელი - მენეჯერი, დააწკაპუნეთ ველზე - Active, drive in email

19. მიუთითეთ პაროლი

20. შენახვამდე გადადით „ნებართვების“ ჩანართზე

21. დააწკაპუნეთ ღილაკზე "მომხმარებლის დამატება ჯგუფში", მომხმარებელთა ჯგუფი - "მენეჯერი", როლი - "მენეჯერი"

ჩვენ ვზოგავთ. ეს ასრულებს ადმინისტრაციული პანელის შექმნას, სადაც კლიენტს აქვს წვდომა მხოლოდ დოკუმენტის ხეში გვერდების რედაქტირებასა და შექმნაზე. მაგრამ ამ მომხმარებელს ჯერ კიდევ აქვს წვდომა სისტემის ყველა ფაილზე. ასე რომ, ჩვენ ახლა გავაკეთებთ ისე, რომ მას ჰქონდეს წვდომა მხოლოდ ერთ საქაღალდეზე, რომელსაც ჩვენ შევქმნით Modx Revolution საიტის ძირში.

22. გადადით ჩანართზე "ინსტრუმენტები" - "ფაილის წყაროები"

23. გაიხსნება ყველა ფაილის წყაროს სია. ნაგულისხმევად იქმნება მხოლოდ ერთი - ფაილური სისტემა

ფაილის ახალი წყაროს შექმნამდე, ჯერ უნდა შეცვალოთ ეს. დააწკაპუნეთ "ფაილ სისტემაზე" მაუსის მარჯვენა ღილაკით და აირჩიეთ "რედაქტირება"

24. გაიხსნება ასეთი ფანჯარა. დააჭირეთ "მომხმარებელთა ჯგუფის დამატება"

25. მომხმარებელთა ჯგუფები - ადმინისტრატორი, მინიმალური როლი - სუპერ მომხმარებელი - 0, პოლიტიკა - მედია წყარო ადმინისტრატორი. დააწკაპუნეთ "შენახვა"

26. დაუბრუნდით ფაილის წყაროებს და შექმენით ფაილის ახალი წყარო

მოდით ვუწოდოთ მას "მენეჯერი", ფაილის წყარო Tim - ფაილური სისტემა

27. დააწკაპუნეთ მარჯვენა ღილაკით ფაილის ახალ წყაროზე „მენეჯერი“ და აირჩიეთ „რედაქტირება“

28. ასეთი ფანჯარა გაიხსნება! ჩვენ უნდა შევცვალოთ პირველი 4 პარამეტრი

basePath-ში, მნიშვნელობის ველში, ჩვენ შევდივართ /მენეჯერი/, basePathRelative და baseUrlRelative დატოვეთ როგორც არის მნიშვნელობები "დიახ", baseUrl ველში ვწერთ მენეჯერი/

29. გადადით tv პარამეტრზე

30. დააწკაპუნეთ ბოლო ჩანართზე „ფაილის წყაროები“

და შეცვალეთ ფაილის წყარო "ფაილური სისტემა" "მენეჯერზე". Გადარჩენა!

31. დაამატეთ მომხმარებლის ჯგუფი "მენეჯერს"

ახლა, გადადგმული ყველა ნაბიჯის შემდეგ, გადადით "ფაილის წყაროზე" - "მენეჯერი" და დაამატეთ მომხმარებლების ჯგუფი ამ ფაილის წყაროს.

32. მომხმარებელთა ჯგუფები - მენეჯერი, მინიმალური როლი - მენეჯერი - 9, პოლიტიკა - მედია წყარო ადმინ. დააწკაპუნეთ "შენახვა"

შენახვის შემდეგ დაუყოვნებლივ, "მენეჯერის" ფაილის წყარო გაქრება ადმინისტრატორისთვის. იმისათვის, რომ შეძლოთ ამ ფაილის წყაროს რედაქტირება, თქვენ უნდა გადახვიდეთ მენიუში "უსაფრთხოება - წვდომის კონტროლი". გახსენით მენეჯერის ჯგუფი რედაქტირებისთვის: მენეჯერი და "ფაილის წყაროების" ჩანართში იპოვეთ და წაშალეთ წყარო მენეჯერი. მხოლოდ ამის შემდეგ შეგვიძლია ხელახლა რედაქტირება მოცემული წყაროადმინისტრატორის ქვეშიდან.

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, G1და G2).
  • მომხმარებელი მომხმარებელი 3აქვს ჯგუფში ჯგუფი 1ყველაზე დაბალი როლი 9999 ). მის შესაბამისად, მას შეუძლია განახორციელოს მოქმედებები განსაზღვრულ სისტემაში K2და G2.

წვდომის პოლიტიკა არის უფლებების ერთობლიობა, რომელიც ენიჭება მომხმარებელს მოქმედებების შესასრულებლად საიტზე, რომელიც მუშაობს CMS MODX Revolution.

რატომ ხორციელდება ეს ასე? ეს გამოწვეულია იმით, რომ MODX-ში ბევრი უფლებაა და უფრო მოსახერხებელია მათი მინიჭება ჯგუფებად (სხვა სიტყვებით რომ ვთქვათ, წვდომის პოლიტიკის გამოყენებით), ვიდრე ერთჯერადი.

მაგალითად, წვდომის პოლიტიკა ჩატვირთვა, სია და ნახვააქვს შემდეგი ნებართვების ნაკრები:

  • დატვირთვა (ობიექტების დატვირთვა);
  • სია (მიიღეთ ობიექტების კოლექცია);
  • ხედი (ობიექტების ნახვა).

როგორ შევქმნათ საკუთარი წვდომის პოლიტიკა

მომხმარებელთა ჯგუფისთვის ნებართვების დაყენებისას, თქვენ არ შემოიფარგლებით MODX სისტემაში არსებული (წინასწარ დაინსტალირებული) პოლიტიკით. საჭიროების შემთხვევაში შეგიძლიათ შექმნათ ახლები. პოლიტიკის შექმნა MODX-ში ეფუძნება წვდომა პოლიტიკის შაბლონზე. წვდომის პოლიტიკის შაბლონი არის MODX Revolution ერთეული, რომელიც განსაზღვრავს ნებართვების მაქსიმალურ სიას, რომელიც ხელმისაწვდომია წვდომის პოლიტიკის შექმნისას.

ამრიგად, იმისათვის, რომ შექმენით წვდომის პოლიტიკა საჭირო ნებართვებითსაჭირო:

  1. იპოვეთ წვდომის პოლიტიკის შესაფერისი შაბლონი (საჭიროების შემთხვევაში, შეცვალეთ არსებული ან შექმენით ახალი).
  2. შექმენით წვდომის პოლიტიკა შესაბამისი შაბლონის არჩევით.
  3. შაბლონის მიერ შემოთავაზებული ნებართვების მთელი სიიდან ჩართეთ მხოლოდ ის, რაც გსურთ მისცეთ მომხმარებლებს (თუ მათ ექნებათ ეს პოლიტიკა).
როგორ განისაზღვრება ხელმისაწვდომი წვდომის პოლიტიკის ნებართვების ნაკრები

წვდომის პოლიტიკის შექმნისას ყოველთვის დაიწყეთ უფლებების მინიმალური რაოდენობის მინიჭებით, რაც მომხმარებელს სჭირდება სისტემაში გარკვეული მოქმედებების შესასრულებლად. საჭიროების შემთხვევაში, ყოველთვის შეგიძლიათ გააფართოვოთ მომხმარებლისთვის მინიჭებული ნებართვები.

ანონიმური მომხმარებელი

MODX Revolution-ში საიტის ნებისმიერი არაავტორიზებული ვიზიტორი ანონიმურია და ეკუთვნის ჯგუფს (ანონიმური). ამის გადამოწმება მარტივად შეგიძლიათ, თუ შექმნით შემდეგ ფრაგმენტს, განათავსებთ მის ზარს რესურსის შაბლონში და შემდეგ გახსნით გვერდს.

Php სნიპეტის კოდი GetUser:

user->get("username");

ფრაგმენტის გამოძახება გვერდზე:

[[!GetUser]]

მუშაობის შედეგი:

(ანონიმური)

ანონიმური მომხმარებლების ქმედებები საიტზე MODX-ში რეგულირდება ჯგუფის ნებართვების დაყენებით (ანონიმური). საჭიროების შემთხვევაში, შეგიძლიათ ამ ჯგუფს მიანიჭოთ დამატებითი პრივილეგიები ან შეზღუდოთ ისინი.

ტიპიური ინსტრუქციები ნებართვების დაყენებისთვის

ამ განყოფილებაში ჩვენ განვიხილავთ ინსტრუქციებს, რომლებიც შეგიძლიათ გამოიყენოთ, როდესაც გჭირდებათ:

  • შეზღუდოს წვდომა გარკვეულ რესურსებზე ანონიმური მომხმარებლებისთვის;
  • შექმენით კონტენტის მენეჯერი, რომელსაც უნდა მიეცეს წვდომა რესურსებთან მუშაობისთვის ადმინისტრაციულ პანელში, ისევე როგორც სურათების ატვირთვის შესაძლებლობა.

გარკვეულ რესურსებზე წვდომის შეზღუდვა

განვიხილოთ მაგალითი, რომელშიც ჩვენ ვუზღუდავთ ანონიმურ მომხმარებლებს წვდომას გარკვეულ რესურსებზე (მაგალითად, პირად ანგარიშზე, „პაროლის შეცვლა“ გვერდზე და ა.შ.). ამ რესურსებზე წვდომა მხოლოდ დარეგისტრირებულ მომხმარებლებს ექნებათ.

ამისათვის საჭიროა:

  1. Შექმნა რესურსების ჯგუფის მომხმარებლები(კონტენტი -> რესურსების ჯგუფები -> ღილაკი "რესურსების ჯგუფის შექმნა"). ფორმაში, რომელიც გამოჩნდება, შეიყვანეთ "სახელი" ველში - მომხმარებლებიდა დააჭირეთ ღილაკს "შენახვა". ჩადეთ მასში საჭირო რესურსები (წვდომა, რომელზეც გსურთ შეზღუდოთ ანონიმური ვიზიტორებისთვის).
  2. Შექმნა მომხმარებელთა ჯგუფი მომხმარებლები(გადაცემათა კოლოფის ხატულა -> წვდომის კონტროლი -> ახალი მომხმარებლის ჯგუფის ღილაკი). დიალოგურ ფანჯარაში, რომელიც იხსნება, შეიყვანეთ "სახელი" ველში - მომხმარებლები, "კონტექსტები" - ვებ, "Backend Policy" - (პოლიტიკის გარეშე).
  3. გადაერთეთ ჯგუფური რედაქტირების რეჟიმზე (მომხმარებლების კონტექსტური მენიუში აირჩიეთ პუნქტი "მომხმარებელთა ჯგუფის რედაქტირება").
  4. გახსენით ჩანართი "ნებართვები" და მასში "წვდომა რესურსების ჯგუფებზე". დააჭირეთ ღილაკს "რესურსების ჯგუფის დამატება" და შეავსეთ ფორმა, რომელიც იხსნება ("რესურსების ჯგუფი" - ჯგუფი, "კონტექსტი" - (ვებ), მინიმალური როლი არის წევრი (9999), "წვდომის პოლიტიკა" - ჩატვირთვა, სია და ნახვა).

ამის შემდეგ ნებისმიერი ანონიმური ან სხვა მომხმარებელი (რომელსაც არ აქვს უფლებები) მიიღებს 404 რესურსი(რადგან მას უფლებაც კი არ აქვს დატვირთვა) თუ ის ცდილობს ამ ჯგუფის რომელიმე გვერდის გახსნას.

თუ გსურთ, რომ ანონიმური მომხმარებლები, დაცული გვერდების გახსნისას, სხვას გაუგზავნონ (მაგალითად, ავტორიზაცია), მაშინ დამატებით უნდა შეასრულოთ შემდეგი (კერძოდ, მისცეთ უფლება დატვირთვაამ რესურსების ჯგუფისთვის):

  1. გახსენით სისტემის პარამეტრები(გადაცემათა კოლოფის ხატულა -> სისტემის პარამეტრები). აირჩიეთ "ძირითადი" სახელთა სივრცე, "საიტი" განყოფილება. პარამეტრის პოვნა არაავტორიზებული_გვერდი(შეცდომა გვერდი 403 "Access Denied") და მიუთითეთ როგორც მნიშვნელობა - რესურსის ID, რომელიც შეიცავს "ავტორიზაციის" ფორმას.
  2. ჯგუფური რედაქტირების რეჟიმზე გადართვა (ანონიმური). "რესურსების ჯგუფებზე წვდომა" განყოფილებაში (ჩანართი "ნებართვები") დაამატეთ რესურსების ჯგუფის მომხმარებლებიდა დააყენეთ მისთვის აუცილებელი უფლებები (ამ შემთხვევაში, "კონტექსტი" - (ვებ), მინიმალური როლი არის წევრი (9999), "წვდომის პოლიტიკა" - მხოლოდ ჩატვირთვა).
ანონიმური მომხმარებლებისთვის მომხმარებელთა რესურს ჯგუფზე წვდომის კონფიგურაცია

კონტენტის მენეჯერისთვის ნებართვების დაყენება

ამ მაგალითში ჩვენ შევქმნით „მენეჯერების“ ჯგუფს, რომლის მომხმარებლები შეძლებენ ატვირთონ სურათები ადმინისტრაციულ პანელში არსებულ დირექტორიაში და იმუშაონ გარკვეულ რესურსებთან.

ამისათვის შეგიძლიათ, მაგალითად, გამოიყენოთ შემდეგი ინსტრუქცია:

1. შექმენით ახალი წვდომის პოლიტიკის მენეჯერისაჭირო უფლებებით:

  • გახსენით "Access Control" გვერდი ("Gear" ხატულა -> Access Control) და გადადით "Access Policy" ჩანართზე.
  • გააკეთეთ „კონტენტის რედაქტორის“ პოლიტიკის ასლი.
  • შეცვალეთ შექმნილი ასლი, კერძოდ, შეცვალეთ სახელის ველი მენეჯერად და მონიშნეთ ველები უფლებების დირექტორია_list, file_list, file_manager, file_remove, file_tree, file_upload. შედეგად, მენეჯერის წვდომის პოლიტიკას ექნება 30 ნებართვა. ეს უნდა გაკეთდეს იმისათვის, რომ მომხმარებელს მიენიჭოს ფაილებთან მუშაობის უფლება.
  • დააჭირეთ ღილაკს "შენახვა".
მენეჯერის წვდომის პოლიტიკის დაყენების ფორმა

2. დამალეთ რესურსები, რომლებზეც მენეჯერებს არ უნდა ჰქონდეთ წვდომა ადმინისტრაციულ პანელში:

  • გახსენით რესურსების ჯგუფების გვერდი და დააჭირეთ ღილაკს რესურსების ჯგუფის შექმნა.
  • ფორმაში, რომელიც იხსნება, შეიყვანეთ "სახელი" - დახურულია მენეჯერებისთვის, "კონტექსტები" - მგრდა მარკოოფცია "ავტომატურად მიეცით წვდომა ადმინისტრატორის ჯგუფზე".
  • დააჭირეთ ღილაკს "შენახვა".
  • გადაიტანეთ შექმნილ ჯგუფში რესურსები, რომლებიც უნდა იყოს დამალული მენეჯერებისთვის ადმინისტრაციულ პანელში.

3. უზრუნველყოს წვდომა დირექტორიაზე, სადაც მომხმარებელი ატვირთავს სურათებს.

  • გახსენით "ფაილის წყაროების" გვერდი, დააჭირეთ "შექმნა". ახალი წყაროფაილები".
  • ფორმაში, რომელიც იხსნება, შეიყვანეთ ტექსტი "სახელი" ველში სურათები, "აღწერილობაში" - სურათები, "ფაილის წყაროს ტიპი" - Ფაილების სისტემა.
  • დააჭირეთ ღილაკს "შენახვა".
  • შეცვალეთ ახლად შექმნილი ფაილის წყარო (მაუსის მარჯვენა ღილაკი -> მოქმედება რედაქტირება).
  • შეცვალეთ პარამეტრების მნიშვნელობა: basePath - აქტივები/გამოსახულებები/, baseUrl - აქტივები/გამოსახულებები/, დაშვებულიFileTypes - jpg, jpeg, png, gif.
  • დააჭირეთ ღილაკს "შენახვა".
სურათების ფაილის წყაროს დაყენება

ფაილის წყარო, რომელსაც არ აქვს მასთან დაკავშირებული მომხმარებელთა ჯგუფი, ხელმისაწვდომი იქნება ყველა დამხმარე მომხმარებლისთვის. ამიტომ, მენეჯერების ჯგუფის მომხმარებლებმა არ აჩვენონ ფაილების სხვა წყაროები, რომლებიც არ არის დაკავშირებული ერთზე მეტ ჯგუფთან, ისინი შეიძლება, მაგალითად, მიენიჭონ ადმინისტრატორის მომხმარებელთა ჯგუფს.

MODX - ფაილური სისტემის ფაილის წყაროს ასოცირება ადმინისტრატორის ჯგუფთან

MODX წვდომის კონტროლის სისტემა, ფაილების წყაროს გამოყენებით, საშუალებას აძლევს სხვადასხვა მომხმარებლებს მიუთითონ გარკვეული დირექტორიები, რომლებზეც მათ ექნებათ წვდომა, ასევე განსაზღვრონ მათში პრივილეგიების ნაკრები. სხვა სიტყვებით რომ ვთქვათ, ეს არის სისტემა, რომელიც, მაგალითად, შეიძლება გამოვიყენოთ, რომ ზოგიერთ მომხმარებელს მიეცეს ზოგიერთი დირექტორია, ზოგს კი - სხვებს.

4. შექმენით ახალი ჯგუფიმომხმარებლებიდა მიანიჭოს მას საჭირო უფლებები.

  • გახსენით "წვდომის კონტროლი" გვერდი, გადადით "მომხმარებელთა ჯგუფები და მომხმარებლები" ჩანართზე, დააჭირეთ ღილაკს "ახალი მომხმარებელთა ჯგუფი".
  • დიალოგურ ფანჯარაში, რომელიც იხსნება, შეავსეთ შემდეგი ველები: "სახელი" - მენეჯერები; "აღწერა" - მენეჯერები; "კონტექსტები" - ვებ, მგრ; "Backend Policy" - მენეჯერი.
  • დააჭირეთ ღილაკს "შენახვა".
  • გადაერთეთ ახლად შექმნილი მომხმარებელთა ჯგუფის "მენეჯერები" რედაქტირების რეჟიმში (დააწკაპუნეთ მაუსის მარჯვენა ღილაკით ჯგუფზე -> პუნქტზე კონტექსტური მენიუდან "რედაქტირება").
  • გადადით "ნებართვების" ჩანართზე.
  • გახსენით განყოფილება "წვდომა კონტექსტებზე". კონტექსტის წვდომა ვებ: "მინიმალური როლი" - წევრი (9999); წვდომის პოლიტიკა - ჩატვირთვა, სია და ნახვა. კონტექსტის წვდომა მგრ: "მინიმალური როლი" - წევრი (9999), წვდომის პოლიტიკა - მენეჯერი.
  • "ფაილის წყაროს წვდომის" განყოფილებაში დაამატეთ ახალი ჩანაწერი შემდეგი მნიშვნელობებით: "წყარო" - სურათები; "მინიმალური როლი" - წევრი (9999), "წვდომის პოლიტიკა" - მედია წყაროს ადმინისტრატორი.
  • დააჭირეთ ღილაკს "შენახვა".

5. შექმენით მომხმარებელიდა დაამატეთ იგი "მენეჯერის" ჯგუფში. დააყენეთ როლის მნიშვნელობა 9999 (წევრი). ეს როლი მისთვის საკმარისი იქნება ამ ჯგუფის ყველა ნებართვის მისაღებად. ეს გამოწვეულია იმით, რომ ამ ჯგუფისთვის ჩვენ არ მივანიჭეთ წვდომის პოლიტიკა, რომელიც მოითხოვდა 9999-ზე მეტ როლს.

მომხმარებლის დამატება მენეჯერის ჯგუფში (წევრის როლი)

შუადღე მშვიდობისა WebHow ბლოგის ყველა მკითხველს! ბოლოს ვიპოვე შესანიშნავი სტატიის კოდის მოდული, რომელიც ხაზს უსვამს და ახლა შემიძლია სერიოზულ საქმეს მივუდგე. ასე რომ, ხუმრობების გარდა, დღეს იქნება მკაცრი პოსტი მათთვის, ვინც ოცნებობს, მოაწყოს ბიულეტენი, კატალოგი ან რაიმე სხვა სერვისი მათ MODx საიტზე, სადაც ვიზიტორები თავად განათავსებენ თავიანთ კონტენტს.

ყველამ, ვინც ცოტათი მაინც იცნობს MODx-ს, იცის, რომ კონტენტის განთავსებისთვის მომხმარებელს უნდა ჰქონდეს წვდომა ადმინისტრაციულ პანელზე. რა თქმა უნდა, თქვენ არ გსურთ მისი გადანაწილება მარცხნივ და მარჯვნივ. ამიტომ, აუცილებელია დარწმუნდეთ, რომ მომხმარებლებს შეუძლიათ შექმნან რესურსები და ატვირთონ ფაილები მათ პირდაპირ საიტის გვერდებიდან.

მე არ ვარ პროგრამისტი და როდესაც პირველად მომიწია შეტყობინებების დაფის შექმნა MODx-ზე, ყველაფერი რაც შემეძლო გამეკეთებინა იყო მზა გამოსავლის ძიება. არსებობდა რამდენიმე განსხვავებული ვარიანტი ფრაგმენტისთვის, რომელიც საშუალებას მისცემს გამოექვეყნებინა რესურსი წინა ნაწილიდან MODx Revolution-ისთვის.

პრინციპი დაახლოებით ერთნაირია ყველასთვის: FormIt-ის დახმარებით იქმნება ფორმის მქონე გვერდი, რომლის გამოძახებაშიც წერია სნიპეტის სახელი. რეკლამის თითოეულ ტიპს აქვს საკუთარი სატელევიზიო ველი, მაგალითად, ქალაქი, ტელეფონის ნომერი ან სურათების ატვირთვის ველი. როდესაც მომხმარებელი წარადგენს ფორმას, იქმნება რესურსი.

თუმცა, თითქმის ყველა ფრაგმენტი, რომელიც მე ვიპოვე, ძალიან შრომატევადი იყო: ტელევიზორის თითოეული პარამეტრი ჩაწერილი უნდა ყოფილიყო სნიპეტის კოდში და ეს არ მაწყობდა. რადგან თითო ტიპის რეკლამაზე მოვიფიქრე მინიმუმ 3 დამატებითი ველი და ყველა ფრაგმენტულად დავწერე... არა, უკეთესი და მარტივი გზა არსებობს. ის ვიპოვე ჩემ მიერ MODx.com-ის ოფიციალური ფორუმის ინგლისურ ნაწილზე და თუ კარგად არ ლაპარაკობთ და კითხულობთ ინგლისურს ან უბრალოდ ძალიან ეზარებათ თემის რამდენიმედან შესაფერისი ვარიანტის ძებნა, გეტყვით როგორ გამოიყენოს იგი.

ამ თემაზე მე ჩავწერე ნაბიჯ-ნაბიჯ ვიდეო ინსტრუქცია. ამისთვის ყველა მასალას ნახავთ მოთამაშის ქვემოთ.

კოდის ნაწყვეტი formit2resource

getObject("modResource", array("id"=>$hook->getValue("resource_id"))); if (ცარიელი($doc))($doc = $modx->newObject("modResource"); $doc->set ("შექმნილია", $modx->user->get("id")); ) სხვა ( $doc->set("editedby", $modx->user->get("id")); ) $allFormFields = $hook->getValues(); foreach ($allFormFields როგორც $field=>$value) (if ($field !== "spam" && $field !== "resource_id") ($doc->set ($field, $value); ) ) $ alias = $doc->cleanAlias($fields["pagetitle"]); if($modx->getCount(modResource, array("alias"=>$alias))!= 0) ($count = 1; $newAlias ​​= $alias; while($modx->getCount(modResource, მასივი (" alias"=>$newAlias))!= 0) ( $newAlias ​​= $alias; $newAlias ​​.= "-" . $count; $count++; ) $alias = $newAlias; ) $doc- >set("alias" ,$alias); $doc->set("template", $template); $doc->save(); foreach ($allFormFields როგორც $field=>$value) (if (!empty($value) && $tv = $modx->getObject("modTemplateVar", მასივი ("name"=>$field))) ( /* ამუშავებს საკონტროლო ველებს და მრავალჯერ ირჩევს ელემენტებს */ if (is_array($value)) ($featureInsert = array(); while (list($featureValue, $featureItem) = თითოეული ($value)) ( $featureInsert = $featureItem; ) $ value = implode("||",$featureInsert); ) $tv->setValue($doc->get("id"), $value); $tv->save(); ) ) $modx- >cacheManager ->refresh(); დაბრუნება true;

ფრაგმენტის კოდი formit2file

user->get("id"); // გზა root-დან, რომელსაც მომხმარებელი აზუსტებს // შექმენით უნიკალური ბილიკი ამ ფორმისთვის $uploadpath = "assets/uploads/".$mydir."/"; // მიიღეთ სრული გზა უნიკალური საქაღალდეში $target_path = $modx->config["base_path"] . $uploadpath; // მიიღეთ ატვირთული ფაილის სახელები: $submittedfiles = array_keys($_FILES); // გადაატრიალეთ ფაილები foreach ($submittedfiles როგორც $sf) ( // მიიღეთ ფაილის სახელი და დარწმუნდით, რომ ის კარგია. $filename = basename($_FILES[$sf]["name"]); // მიიღეთ ფაილის გაფართოება $ ext = გზამკვლევი ($filename, PATHINFO_EXTENSION); $ext = mb_strtolower($ext); // შეუცვლელია // არის ფაილის სახელი ცარიელი (ფაილი არ არის ატვირთული) if($filename != "") ( // არის ეს არის ფაილის სწორი ტიპი? if(in_array($ext, $ext_array)) (// გაასუფთავეთ ფაილის სახელი და შექმენით უნიკალური $filename = $counter . "." . $ext; $filename = str_replace(" ", " _" , $filename); // შორისები $filename = date("Ym-d_G-i-s_") . $filename; // დაამატეთ თარიღი და დრო // სრული გზა ახალ ფაილში $myTarget = $target_path. $filename ; // შექმენით დირექტორია ფაილის გადასატანად, თუ ის არ არსებობს mkdir($target_path, 0755, true); // არის თუ არა ფაილი წარმატებით გადატანილი შესაბამის საქაღალდეში? if(move_uploaded_file($_FILES[$sf][ "tmp_name"], $myTarget)) ( // დააყენეთ ახალი ჩანაცვლების ველი ახალი სრული ბილიკით (თუ დაგჭირდებათ შემდეგ კაუჭებში) $myFile = $upload გზა. $filename; $hook->setValue($sf,$myFile); // დააყენეთ ნებართვები ფაილზე if (!chmod($myTarget, 0644)) ( /*ზოგიერთი გამართვის ფუნქცია*/ ) ) else ( // ფაილი არ აიტვირთა $errorMsg = "ფაილის ატვირთვისას იყო პრობლემა."; $hook->addError($sf, $errorMsg); $output = false; // წარდგენის შეცდომის გენერირება ) ) else ( // ფაილის ტიპი დაუშვებელია $errorMsg = "ფაილის ტიპი დაუშვებელია."; $hook->addError ($sf, $errorMsg); $output = false; // წარდგენის შეცდომის გენერირება ) // თუ ფაილი არ არის, არ შეცდეთ, მაგრამ დააბრუნეთ ცარიელი) სხვა ($hook->setValue($sf, ""); ) $counter = $counter + 1; ) დააბრუნოს $output;

Მეგობრები! არ დაგავიწყდეთ ჩაანაცვლოთ თქვენი სატელევიზიო ველები და თქვენი რესურსების ID-ები ფორმის კოდით. ფრთხილად იყავით და წარმატებას მიაღწევთ.

დარეკეთ FormIt

[[!FormIt? &hooks=`formit2file,formit2resource,გადამისამართება` &redirectTo=`გვერდის ID, რომელიც შეიცავს შეტყობინებას` &template=`რეკლამის შაბლონის ID` ]]

ბლანკის ფორმის გამოძახების პირობა

[[!+modx.user.id:is=`0`:then=`რეკლამის განთავსებისთვის საჭიროა ავტორიზაცია [[!Loginza? &groups=`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=``]]
ახლა თქვენი საიტის მომხმარებლებს შეუძლიათ არა მხოლოდ განათავსონ რეკლამები, არამედ შეავსონ ისინი ფოტოებით, ისევე როგორც ნებისმიერ ბიულეტენზე. მაგრამ რა მოხდება, თუ დაშვებული იყო შეცდომა ფორმის შევსებისას? მაგალითად, ადამიანმა არასწორად აკრიფა და შეიყვანა არასწორი ტელეფონის ნომერი, ან შეიძლება უბრალოდ სურდა რეკლამის დამატება ან თავისი პროდუქტის ფასის შეცვლა.

შემდეგ ჯერზე გეტყვი. და ეს ყველაფერი დღეისთვის, იმედი მაქვს ეს სტატია თქვენთვის სასარგებლო იყო.