Yükleme ile Modx revo dosya kaynağı oluşturma. MODx Devrimi: kaynak oluşturma ve ön uçtan dosya yükleme

Evolution'da her şey oldukça basitti: Kullanıcı için haklar yaratırsınız ve işiniz biter! Ve burada oldukça fazla adım atmanız gerekiyor, ancak diğer yandan - belge ve dosya haklarına sahip Modx Revolution'da istediğiniz her şeyi yapabilirsiniz (tabii bunu anlamadığınız sürece). Pekala, başlayalım!

1. Yönetici panelinin üst menüsünde "Güvenlik" - "Erişim Kontrolü"ne gidin

2. "Erişim Politikası" sekmesine gidin

3. "Erişim politikası oluştur" düğmesine tıklayın

Alanları olan bir pencere açılacaktır. Ad alanına "manager" yazıyoruz, erişim ilkesi şablonu AdministratorTemplate'dir. Kaydet düğmesini tıklayın

4. "Yönetici" erişim politikasını kaydettikten sonra, erişim politikaları listemizde göründüğünü görüyoruz.

5. Düzenleme yöneticisi

6. Gereksiz parametrelerin onay kutularını kaldırın

Açılan bu sayfanın altında bir seçenekler (izinler) listesi vardır. Sitenin düzgün çalışması için gerekli belgeleri, dosyaları, öğeleri düzenlemekten veya silmekten kaçınmak için yönetici panelinde herhangi bir kaynağı görüntülemekten sorumlu olan parametrelerin işaretini kaldırmamız gerekiyor.

Aşağıdaki seçenekler için kutuların işaretini kaldırın:

  • access_permissions Kullanıcı erişim hakları ayarlarını içeren ekran sayfası
  • panolar Panoları görüntüleyin ve yönetin
  • element_tree Sol gezinmede öğe ağacını görüntüleme yeteneği
  • menu_reports Üst menüde "Raporları" göster
  • menu_security Üst menüde "Güvenlik" öğesini göster
  • menu_system Üst menüde "Sistem" öğesini göster
  • menu_tools Üst menüde "Araçlar"ı göster
  • new_static_resource Yeni statik kaynaklar oluşturun.
  • remove_locks Sitedeki tüm kilitleri kaldırın

7. "Güvenlik" - "Erişim Kontrolü" - "Roller" sekmesine gidin


8. Yönetici, Sıra - 9'da sürdüğümüz Ad alanında "Yeni oluştur" düğmesini tıklayın, "Kaydet" düğmesini tıklayın


9. Değişiklikleri kaydedin ve "Güvenlik" - "Erişim Kontrolü" - "Kullanıcı Grupları" menüsüne gidin


"Yönetici" üzerine sağ tıklayın ve "Kullanıcı Grubu Oluştur" üzerine tıklayın

10. Yeni bir grup oluşturun: Ad - Yönetici, Arka uç ilkesi - ilke yok, "Kaydet"i tıklayın

11. Kullanıcı Grupları listesinde buluyoruz ve "düzenle" ye tıklıyoruz.

12. "Bağlamlara erişim" menüsüne gidin ve "Bağlam ekle"yi tıklayın.

13. Bağlam - yönetici, Asgari rol - Yönetici - 9, Erişim politikası - Yönetici

14. Başka bir bağlam ekleme

Daha doğrusu mevcut web'i düzenleriz: Bağlam - web, Asgari rol - Yönetici - 9, Erişim politikası - Yönetici. "Kaydet" düğmesini tıklayın

15. Böyle bir resim göreceğiz! Her şeyi "Kullanıcı grubu: Yönetici" sekmesine kaydederiz

16. Sonraki: "Güvenlik" - "Kullanıcı Yönetimi"

17. Yeni bir kullanıcı oluşturun (bu bizim müşterimiz olacaktır) - "Yeni Kullanıcı" düğmesine tıklayın.

Ona herhangi bir isim verebilirsiniz, ona yönetici diyeceğim

18. Kullanıcı adı - yönetici, onay kutusunu tıklayın - Etkin, e-postada sür

19. Bir parola belirtin

20. Kaydetmeden önce "İzinler" sekmesine gidin

21. "Gruba kullanıcı ekle" düğmesini tıklayın, Kullanıcı grubu - "Yönetici", Rol - "Yönetici"

Kurtarırız. Bu, istemcinin yalnızca belge ağacında sayfa düzenleme ve oluşturma erişimine sahip olduğu yönetici panelinin oluşturulmasını tamamlar. Ancak bu kullanıcının hala tüm sistem dosyalarına erişimi var. Ve şimdi, Modx Revolution sitesinin kökünde oluşturacağımız tek bir klasöre erişimi olacak şekilde yapacağız.

22. "Araçlar" - "Dosya kaynakları" sekmesine gidin

23. Tüm dosya kaynaklarının bir listesi açılacaktır. Varsayılan olarak yalnızca bir tane oluşturulur - Dosya sistemi

Yeni bir dosya kaynağı oluşturmadan önce bunu değiştirmelisiniz. Farenin sağ tuşuyla "Dosya Sistemi"ne tıklayın ve "Düzenle"yi seçin

24. Bunun gibi bir pencere açılacaktır. "Kullanıcı Grubu Ekle" ye tıklayın

25. Kullanıcı grupları - Yönetici, Minimum rol - Süper Kullanıcı - 0, Politika - Medya Kaynağı Yönetici. "Kaydet" i tıklayın

26. Dosya Kaynaklarına dönün ve yeni bir dosya kaynağı oluşturun

Adına "Yönetici" diyelim, Dosya kaynağı Tim - Dosya sistemi

27. Yeni dosya kaynağına "Yönetici" sağ tıklayın ve "Düzenle"yi seçin

28. Böyle bir pencere açılacak! İlk 4 parametreyi değiştirmemiz gerekiyor

basePath'te, değer alanında /yönetici/, basePathRelative ve baseUrlRelative "Yes" değerleriyle olduğu gibi bırakın, baseUrl alanına yazıyoruz yönetici/

29. tv parametresine gidin

30. En son "Dosya Kaynakları" sekmesine tıklayın

ve dosya kaynağını "Dosya Sistemi"nden "Yönetici" olarak değiştirin. Kayıt etmek!

31. "Yönetici"ye bir kullanıcı grubu ekleyin

Şimdi, atılan tüm adımlardan sonra, "Dosya kaynağı" - "Yönetici" seçeneğine gidin ve bu dosya kaynağına bir grup kullanıcı ekleyin

32. Kullanıcı grupları - Yönetici, Minimum rol - Yönetici - 9, Politika - Medya Kaynağı Yönetici. "Kaydet" i tıklayın

Kaydettikten hemen sonra, yönetici için "Yönetici" dosya kaynağı kaybolacaktır. Bu dosya kaynağını düzenleyebilmek için "Güvenlik - Erişim Kontrolü" menüsüne gitmeniz gerekir. Düzenlemek için yönetici grubunu açın: Yönetici ve "Dosya kaynakları" sekmesinde yönetici kaynağını bulun ve silin. Ancak o zaman tekrar düzenleyebiliriz verilen kaynak yöneticinin altından.

33. Her ihtimale karşı önbelleği temizleyin

ve sınırlı haklara ve erişime sahip kullanıcımız dosya sistemi yaratıldı!

Yeterince kolay olduğunu söylemeyeceğim, ancak otomatik olarak yaparsanız, o zaman zor bir şey gibi görünmeyecektir. Umarım her şey senin için yolunda gitmiştir! Projelerinizde iyi şanslar!

Nasıl olduğunu gösteren bir makale MODX Devrimi bir erişim hakları sistemi ve ayrıca kullanıcılar için izinleri ayarlamak için bazı tipik talimatlar düzenlenmiştir.

MODX'te izin sistemi

MODX Revolution, bir kullanıcıya doğrudan izin atamanıza izin vermez. bu sistemde bu hareket vasıtasıyla kullanıcı grupları.

Başka bir deyişle, kullanıcıya bazı hakların verilebilmesi için şunlar gereklidir:

  • bir grup oluşturun ve ona gerekli ayrıcalıkları atayın;
  • bu gruba bir veya daha fazla kullanıcı yerleştirin.

Ancak bir grupta kullanıcı olmak, grubun tüm ayrıcalıklarını alacağı anlamına gelmez. Kullanıcının alacağı haklar bu grupta kendisine atanan role göre belirlenecektir. Kullanıcının gruptaki rolü (rütbesi) 0 ile 9999 arasında bir sayı kullanılarak tanımlanır. Bu değer, hangi kullanıcının grup ayrıcalıkları alacağını ve hangilerinin almayacağını belirler.

Başka bir deyişle rol- bu, aynı grup içindeki farklı kullanıcılara farklı haklar atamanıza izin veren bir tür mekanizmadır.

Küçük bir örnek verelim.


Bu örnekte:

  • kullanıcı kullanıcı1 gruba ait Grup 1. Rolü daha fazla olan grup ayrıcalıklarına sahiptir. 2000 .
  • kullanıcı kullanıcı2 2 grup halindedir. 2 grup ayrıcalığı vardır. İlk gruptan Grup 1) rolü daha büyük veya eşit olan ayrıcalıklara sahiptir. 1000 . Ve ikinciden ( grup2) - rolü daha büyük veya eşit olan ayrıcalıklar 9999 .
  • kullanıcı kullanıcı3 bir grupta grup2. Bu grup, rolü ona eşit veya daha büyük olan hakları verir. 5000 .

MODX'te erişim politikası

MODX Revolution'da bir grup için ayrıcalıkların ayarlanması şu şekilde yapılır: erişim politikaları. Bu (erişim ilkesi), belirli MODX varlıklarıyla, yani bağlam, kaynak grubu, öğe kategorisi, dosya kaynağı ve ad alanı ile ilgili bir gruba atanır. Ek olarak, şunu da belirtir asgari rol, bu grubun kullanıcısının bu ayrıcalıklara sahip olması gerekir.

Bir görüntü düşünün.

Bir grubun kullanıcılarının, her birinin o grupta oynadığı role bağlı olarak aldığı ayrıcalıklar

Bu örnekte:

  • kullanıcı kullanıcı1(Grup1'deki rol - 2000 ) tüm grup ayrıcalıklarına sahiptir Grup 1, rolü 2000'den büyük veya ona eşit olan. Yani, Bugün nasılsın K1, K2 Ve G2.
  • kullanıcı kullanıcı2(0) grubunda en yüksek role ve dolayısıyla tüm ayrıcalıklarına sahiptir ( K1, K2, G1 Ve G2).
  • kullanıcı kullanıcı3 grupta var Grup 1 en düşük rol 9999 ). Buna uygun olarak, tanımlanan sistemde eylemler gerçekleştirebilir. K2 Ve G2.

Erişim ilkesi, bir kullanıcıya CMS MODX Revolution çalıştıran bir sitede eylemler gerçekleştirmesi için verilen bir dizi haktır.

Neden bu şekilde uygulanmaktadır? Bunun nedeni, MODX'te birçok hakkın olması ve bunları birer birer yerine gruplar halinde (başka bir deyişle bir erişim politikası kullanarak) atamanın daha uygun olmasıdır.

Örneğin, erişim politikası Yükle, Listele ve Görüntüle aşağıdaki izinlere sahiptir:

  • yükle (nesneleri yükle);
  • liste (nesnelerin bir koleksiyonunu alın);
  • görüntüle (nesneleri görüntüle).

Kendi erişim politikanızı nasıl oluşturabilirsiniz?

Bir grup kullanıcı için izinleri ayarlarken, MODX sistemindeki mevcut (önceden yüklenmiş) politikalarla sınırlı değilsiniz. Gerekirse yenilerini oluşturabilirsiniz. MODX'te politika oluşturma aşağıdakilere dayanmaktadır: erişim ilkesi şablonu. Erişim ilkesi şablonu, bir erişim ilkesi oluşturulduğunda kullanılabilen izinlerin maksimum listesini tanımlayan bir MODX Devrimi varlığıdır.

Böylece, gerekli izinlere sahip bir erişim politikası oluşturun gerekli:

  1. Uygun bir erişim ilkesi şablonu bulun (gerekirse mevcut olanı düzenleyin veya yeni bir tane oluşturun).
  2. Uygun şablonu seçerek bir erişim ilkesi oluşturun.
  3. Şablon tarafından sunulan tüm izinler listesinden yalnızca kullanıcılara vermek istediklerinizi (bu politikaya sahip olacaklarsa) dahil edin.
Kullanılabilir erişim ilkesi izinleri kümesi nasıl belirlenir?

Bir erişim ilkesi oluştururken, her zaman bir kullanıcının sistemde belirli eylemleri gerçekleştirmesi için ihtiyaç duyduğu minimum sayıda hakkı atayarak başlayın. Gerekirse, kullanıcıya verilen izinleri her zaman genişletebilirsiniz.

Anonim kullanıcı

MODX Revolution'da, yetkisiz site ziyaretçisi anonimdir ve gruba aittir. (anonim). Aşağıdaki parçacığı oluşturursanız, çağrısını kaynak şablonuna yerleştirir ve ardından sayfayı açarsanız, bunu kolayca doğrulayabilirsiniz.

Php snippet kodu GetUser:

user->get("kullanıcı adı");

Bir sayfada snippet çağırma:

[[!GetUser]]

İşin sonucu:

(anonim)

MODX'te anonim kullanıcıların sitedeki eylemleri, grup izinleri ayarlanarak düzenlenir. (anonim). Gerekirse, bu gruba ek ayrıcalıklar verebilir veya bunları kısıtlayabilirsiniz.

İzinleri Ayarlamak için Tipik Talimatlar

Bu bölümde, ihtiyacınız olduğunda kullanabileceğiniz talimatlara bakacağız:

  • anonim kullanıcılar için belirli kaynaklara erişimi kısıtlamak;
  • yönetici panelindeki kaynaklarla çalışma ve resim yükleme yeteneği verilmesi gereken bir içerik yöneticisi oluşturun.

Belirli kaynaklara erişimi kısıtlamak

Anonim kullanıcıların belirli kaynaklara erişimini kısıtlayacağımız bir örneği ele alalım (örneğin, kişisel bir hesaba, "Şifreyi değiştir" sayfasına vb.). Bu kaynaklara erişim yalnızca kayıtlı kullanıcılara sağlanacaktır.

Bunu yapmak için ihtiyacınız olan:

  1. Yaratmak kaynak grubu Kullanıcılar(İçerik -> Kaynak Grupları -> "Kaynak Grubu Oluştur" düğmesi). Görünen formda "Ad" alanına girin - Kullanıcılar ve "Kaydet" düğmesine tıklayın. Gerekli kaynakları içine koyun (anonim ziyaretçiler için kısıtlamak istediğiniz erişim).
  2. Yaratmak kullanıcı grubu Kullanıcılar(Dişli çark simgesi -> Erişim Kontrolü -> Yeni Kullanıcı Grubu düğmesi). Açılan iletişim kutusunda "Ad" alanına girin - Kullanıcılar, "Bağlamlar" - , "Arka Uç Politikaları" - (politika yok).
  3. Grup düzenleme moduna geçin (Kullanıcılar bağlam menüsünde "Kullanıcı grubunu düzenle" öğesini seçin).
  4. "İzinler" sekmesini açın ve içinde "Kaynak gruplarına erişim". "Kaynak grubu ekle" düğmesini tıklayın ve açılan formu doldurun ("Kaynak grubu" - grup, "Bağlam" - (ağ), Asgari rol Üye (9999), "Erişim Politikası" - Yükle, Listele ve Görüntüle).

Bundan sonra, herhangi bir isimsiz veya başka bir kullanıcı (hakları olmayan) 404 kaynak(çünkü hakkı bile yok) yük) bu gruptan bir sayfa açmaya çalışırsa.

Anonim kullanıcıların, korumalı sayfaları açarken başkalarına (örneğin, yetkilendirme) gönderilmesini istiyorsanız, ayrıca aşağıdakileri yapmanız gerekir (yani, hakkı verin). yük bu kaynak grubu için):

  1. Açık sistem ayarları(Dişli simgesi -> Sistem ayarları). "Çekirdek" ad alanını, "Site" bölümünü seçin. parametre bul yetkisiz_sayfa(Hata sayfası 403 "Erişim Engellendi") ve bir değer olarak belirtin - kaynak kimliği, "Yetkilendirme" formunu içeren.
  2. Grup düzenleme moduna geç (anonim). "Kaynak gruplarına erişim" bölümünde ("İzinler" sekmesi) ekleyin kaynak grubu Kullanıcılar ve bunun için gerekli hakları ayarlayın (bu durumda, "Bağlam" - (ağ), Asgari rol Üye (9999), "Erişim Politikası" - Yalnızca Yükle).
Anonim kullanıcılar için Kullanıcılar kaynak grubuna erişimi yapılandırma

İçerik yöneticisi için izinleri ayarlama

Bu örnekte, kullanıcıları yönetici panelindeki bir dizine resim yükleyebilecek ve belirli kaynaklarla çalışabilecek bir "Yönetici" grubu oluşturacağız.

Bunu yapmak için, örneğin aşağıdaki talimatı kullanabilirsiniz:

1. Yeni bir tane oluşturun erişim politikası Yöneticisi gerekli haklara sahip:

  • "Erişim Kontrolü" sayfasını açın ("Dişli" simgesi -> Erişim Kontrolü) ve "Erişim Politikası" sekmesine gidin.
  • "İçerik Düzenleyici" ilkesinin bir kopyasını oluşturun.
  • Oluşturulan kopyayı düzenleyin, yani ad alanını Yönetici olarak değiştirin ve directory_list, file_list, file_manager, file_remove, file_tree, file_upload haklarının yanındaki kutuları işaretleyin. Sonuç olarak, Yönetici erişim ilkesi 30 izne sahip olacaktır. Bu, kullanıcıya dosyalarla çalışma haklarını vermek için yapılmalıdır.
  • "Kaydet" düğmesine tıklayın.
Yönetici erişim ilkesi ayar formu

2. Yönetici panelinde yöneticilerin erişmemesi gereken kaynakları gizleyin:

  • Kaynak Grupları sayfasını açın ve Kaynak Grubu Oluştur düğmesini tıklayın.
  • Açılan forma "Ad" yazın - Yöneticiler İçin Kapalı, "Bağlamlar" - yönetici Ve işaret"Yönetici grubuna otomatik olarak erişim ver" seçeneği.
  • "Kaydet" düğmesine tıklayın.
  • Yönetici panelinde yöneticiler için gizlenmesi gereken kaynakları oluşturulan gruba sürükleyin.

3. Kullanıcının resimleri yükleyeceği dizine erişim sağlayın.

  • "Dosya Kaynakları" sayfasını açın, "Oluştur"a tıklayın. yeni kaynak Dosyalar".
  • Açılan formda "Ad" alanına metni girin Görüntüler, "Açıklama" bölümünde - Görüntüler, "Dosya kaynağı türü" içinde - Dosya sistemi.
  • "Kaydet" düğmesine tıklayın.
  • Yeni oluşturulan dosya kaynağını düzenleyin (sağ fare tuşu -> Eylemi düzenle).
  • Parametrelerin değerini değiştirin: basePath - varlıklar/görüntüler/, baseUrl - varlıklar/görüntüler/, izin verilenFileTypes - jpg, jpeg, png, gif.
  • "Kaydet" düğmesine tıklayın.
Görüntüler dosya kaynağını ayarlama

Kendisiyle ilişkilendirilmiş bir kullanıcı grubuna sahip olmayan bir dosya kaynağı, tüm arka uç kullanıcıları tarafından kullanılabilir. Bu nedenle, Yöneticiler grubunun kullanıcılarının birden fazla grupla ilişkili olmayan diğer dosya kaynaklarını göstermesini önlemek için, örneğin Yönetici kullanıcı grubuna atanabilirler.

MODX - Bir Dosya Sistemi Dosya Kaynağını Yönetici Grubu ile İlişkilendirme

MODX erişim kontrol sistemi, dosyaların kaynağını kullanarak, farklı kullanıcıların erişebilecekleri belirli dizinleri belirlemelerine ve ayrıca bu dizinlerdeki ayrıcalıklarını belirlemelerine olanak tanır. Başka bir deyişle, örneğin bazı kullanıcılara bazı dizinler ve diğerlerine - diğerlerine vermek için kullanılabilen bir sistemdir.

4. Oluştur yeni Grup kullanıcılar ve ona gerekli hakları atayın.

  • "Erişim Kontrolü" sayfasını açın, "Kullanıcı Grupları ve Kullanıcılar" sekmesine gidin, "Yeni Kullanıcı Grubu" düğmesine tıklayın.
  • Açılan iletişim kutusunda aşağıdaki alanları doldurun: "Ad" - yöneticiler; "Tanım" - Yöneticiler; "Bağlamlar" - ağ, yönetici; "Arka Uç Politikası" - yönetici.
  • "Kaydet" düğmesine tıklayın.
  • Yeni oluşturulan “Yöneticiler” kullanıcı grubunun düzenleme moduna geçin (“Düzenle” bağlam menüsünde gruba -> öğeye sağ tıklayın).
  • "İzinler" sekmesine gidin.
  • "Bağlamlara erişim" bölümünü açın. Bağlam Erişimi : "Asgari rol" - Üye (9999); Erişim Politikası - Yükle, Listele ve Görüntüle. Bağlam Erişimi yönetici: "Asgari rol" - Üye (9999), Erişim Politikası - yönetici.
  • "Dosya kaynağı erişimi" bölümünde, aşağıdaki değerlere sahip yeni bir giriş ekleyin: "Kaynak" - Görüntüler; "Asgari rol" - Üye (9999), "Erişim Politikası" - Medya Kaynağı Yöneticisi.
  • "Kaydet" düğmesine tıklayın

5. Oluştur kullanıcı ve "Yönetici" grubuna ekleyin. Rolün değerini 9999 (Üye) olarak ayarlayın. Bu rol onun bu grubun tüm izinlerini alması için yeterli olacaktır. Bunun nedeni, bu grup için 9999'dan büyük bir rol gerektiren erişim ilkeleri atamamış olmamızdır.

Yönetici grubuna kullanıcı ekleme (Üye rolü)

WebHow blogunun tüm okuyucularına iyi günler! Sonunda eklentiyi vurgulayan harika bir makale kodu buldum ve şimdi ciddi işlere başlayabilirim. Şaka bir yana, bugün MODx sitesinde bir bülten tahtası, katalog veya başka bir hizmet düzenlemeyi hayal edenler için, ziyaretçilerin içeriklerini kendilerinin yayınlayacağı sert bir yazı olacak.

MODx'e en azından biraz aşina olan herkes, içerik göndermek için kullanıcının admin paneline erişimi olması gerektiğini bilir. Elbette sağa sola dağıtmak istemezsiniz. Bu nedenle, kullanıcıların doğrudan site sayfalarından kaynak oluşturabilmelerini ve onlara dosya yükleyebilmelerini sağlamak gerekir.

Ben bir programcı değilim ve MODx'te ilk kez bir mesaj panosu oluşturmam gerektiğinde, tek yapabildiğim hazır bir çözüm aramaktı. MODx Revolution için ön uçtan bir kaynak yayınlamaya izin verecek bir snippet için epeyce farklı seçenek vardı.

Prensip herkes için yaklaşık olarak aynıdır: FormIt'in yardımıyla, çağrısında snippet'in adının yazıldığı formlu bir sayfa oluşturulur. Her reklam türünün kendi TV alanları vardır, örneğin şehir, telefon numarası veya resim yüklemek için bir alan. Kullanıcı formu gönderdiğinde kaynak oluşturulur.

Ancak bulabildiğim hemen hemen tüm snippet'ler çok hantaldı: her TV parametresinin snippet koduna yazılması gerekiyordu ve bu bana uymuyordu. Çünkü her reklam türü için en az 3 ek alan tasarladım ve hepsini bir snippet'te yazdım ... hayır, daha iyi ve daha kolay bir yol var. Resmi MODx.com forumunun İngilizce kısmında benim tarafımdan bulundu Ve eğer çok iyi İngilizce konuşamıyor ve okuyamıyorsanız veya konuyla ilgili birkaç seçenek arasından uygun bir seçenek arayamayacak kadar tembelseniz, size nasıl yapılacağını anlatacağım. onu kullanmak için.

Bu konuda adım adım bir video talimatı kaydettim. Bunun için tüm malzemeleri oynatıcının hemen altında bulacaksınız.

kod parçacığı formit2resource

getObject("modResource",array("id"=>$hook->getValue("resource_id"))); if (empty($doc))( $doc = $modx->newObject("modResource"); $doc->set("createdby", $modx->user->get("id")); ) başka ( $doc->set("editedby", $modx->user->get("id")); ) $allFormFields = $hook->getValues(); foreach ($allFormFields as $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, dizi) (" alias"=>$newAlias))!= 0) ( $newAlias ​​​​= $alias; $newAlias ​​​​.= "-" . $count; $count++; ) $alias = $yeniAlias; ) $doc- >set("takma ad",$takma ad); $doc->set("şablon", $şablon); $doc->save(); foreach ($allFormFields as $field=>$value) ( ​​if (!empty($value) && $tv = $modx->getObject("modTemplateVar", dizi ("name"=>$field))) ( /* onay kutularını ve çoklu seçim öğelerini işler */ if (is_array($value)) ( $featureInsert = dizi(); while (list($featureValue, $featureItem) = her($value)) ( $featureInsert = $featureItem; ) $ değer = implode("||",$featureInsert); ) $tv->setValue($doc->get("id"), $değer); $tv->save(); ) ) $modx- >cacheManager ->refresh(); true döndür;

snippet kodu formit2file

kullanıcı->get("id"); // Kullanıcının belirttiği kökten gelen yol // bu form gönderimi için benzersiz bir yol oluştur $uploadpath = "assets/uploads/".$mydir."/"; // benzersiz klasörün tam yolunu al $target_path = $modx->config["base_path"] . $yükleme yolu; // yüklenen dosya adlarını al: $submittedfiles = array_keys($_FILES); // foreach dosyaları arasında döngü ($submittedfiles as $sf) ( // Dosya adını alın ve iyi olduğundan emin olun. $filename = basename($_FILES[$sf]["name"]); // Dosyanın uzantısını alın $ ext = pathinfo($filename, PATHINFO_EXTENSION); $ext = mb_strtolower($ext); // büyük/küçük harfe duyarlı değil // \ dosya adı boş mu (dosya yüklenmemiş) if($dosyaadı != "") ( // is if(in_array($ext, $ext_array)) ( // dosya adını temizle ve benzersiz yap $filename = $counter . "." . $ext; $filename = str_replace(" ", " _" , $filename); // alt çizgiler için boşluklar $filename = date("Ym-d_G-i-s_") . $filename; // tarih ve saat ekleyin // yeni dosyanın tam yolu $myTarget = $target_path . $dosyaadı ; // yoksa dosyanın taşınacağı dizin oluştur mkdir($target_path, 0755, true); // dosya uygun klasöre başarıyla taşındı mı? if(move_uploaded_file($_FILES[$sf][ "tmp_name "], $myTarget)) ( // yeni tam yol ile yeni bir yer tutucu ayarlayın (sonraki kancalarda ihtiyacınız varsa) $myFile = $upload yol. $dosya adı; $hook->setValue($sf,$myFile); // dosyadaki izinleri ayarlayın if (!chmod($myTarget, 0644)) ( /*bazı hata ayıklama işlevleri*/ ) ) else ( // Dosya yüklenmedi $errorMsg = "Dosya yüklenirken bir sorun oluştu."; $hook->addError($sf, $errorMsg); $output = false; // gönderim hatası oluşturur ) ) else ( // Dosya türüne izin verilmez $errorMsg = "Dosya türüne izin verilmez."; $hook->addError ($sf, $errorMsg); $output = false; // gönderim hatası oluştur ) // dosya yoksa hata yapma, boş dön ) başka ( $hook->setValue($sf, ""); ) $sayaç = $sayaç + 1; ) dönüş $çıktı;

Arkadaşlar! TV alanlarınızı ve kaynaklarınızın kimliklerini form koduna değiştirmeyi unutmayın. Dikkatli ol ve başaracaksın.

Çağrı Formu

[[!FormIt? &hooks=`formit2file,formit2resource,redirect` &redirectTo=`Mesajı içeren sayfanın kimliği` &template=`Reklam şablonunun kimliği` ]]

Bir form ile bir yığın çağırma koşulu

[[!+modx.user.id:is=`0`:then=`Reklam yayınlamak için yetkilendirme gerekiyor [[!Loginza? &groups=`3` &profileFields=`kullanıcı adı,e-posta,tam ad,fotoğraf`]]`:else=`[[$form_add]]`]]

Form kodu örneği

[[+fi.error.error_message]]

İsim
[[+fi.error.pagetitle]]
*
Şehir
[[+fi.error.city]]
*

Detaylı Açıklama

[[+fi.error.content]]

Fotoğraf ekle:

Kataloğa en fazla beş fotoğraf yerleştirebilirsiniz. Kabul edilen biçimler: .jpg, .png, .gif
Ana fotoğraf veya logo * [[+fi.error.img]]
Ek fotoğraf (1) [[+fi.error.foto1]]
Ek fotoğraf (2) [[+fi.error.foto2]]
Ek fotoğraf (3) [[+fi.error.foto3]]
Ek fotoğraf (4) [[+fi.error.foto4]]

Bir resmi gösterme koşulu

[[*img:notempty=``]]
Artık sitenizin kullanıcıları yalnızca reklam yerleştirmekle kalmaz, aynı zamanda herhangi bir ilan tahtasında olduğu gibi bunları fotoğraflarla tamamlayabilir. Peki ya formu doldururken bir hata yapılırsa? Örneğin, bir kişi yanlış yazmış ve yanlış telefon numarası girmiş ya da sadece bir reklam eklemek veya ürününün fiyatını değiştirmek istemiş olabilir.

Bir dahaki sefere söyleyeceğim. Ve bugünlük bu kadar, umarım bu makale sizin için yararlı olmuştur.