OW Debug - Notice
Message: Trying to access array offset on value of type null
File: /home/romarekl/public_html/sosyallift.com/ow_plugins/forum/controllers/topic.php
Line: 136
Oxwall eklentisi nasıl yapılır Forum | Sosyallift©
Loading...
 
tr
Whordark
Whordark Nisan 16 '18

Forumdaki bir çok kullanıcı, kullanıcıları içeriğinin görüntülenmesi için oturum açmalarını sağlayacak özel bir sayfayı nasıl oluşturabileceğinizi soruyor. Ayrıca, sayfaların kendisinin değil, yalnızca menü öğesinin erişilebilirliğini sınırladığı için çalışmayan Sayfalar ve menüler işlevlerini kullanmaya çalıştınız: hem misafir hem de kayıtlı kullanıcılar özel sayfanıza doğrudan URL aracılığıyla erişebilir.

Bu forumda, çok basit bir eklentiyi nasıl oluşturabileceğinizi açıklayacağım. Bunun sonucunda, sadece oturum açmış kullanıcılar için erişilebilen özel bir sayfa olacak. Lütfen dikkatle dev kursumuza bel bağlayacağımı unutmayın, bu yüzden de okuduğunuzdan emin olun: http://www.sosyallift.com/awayto/aHR0cDovL2RvY3Mub3h3YWxsLm9yZy9kZXY6Y3Jhc2gtY291cnNl

Bunun sadece temel bir eklenti olduğunu unutmayın. İsterseniz ve nasıl yapacağınızı biliyorsanız daha fazla işlevsellik ekleyebilirsiniz.


-------------------------------- Nihai durum için çalışmayı başlatma

sonuç olarak neye sahip olacaksınız:
tüm ziyaretçiler tarafından görülebilen yeni ana menü öğesi ( üyeleri) misafirler +. Tıklamada, kullanıcı giriş yapmadıysa, oturum açma formu açılır. Kullanıcı giriş yaptıysa, sayfanın içeriği açılır. Site yöneticisi, sayfa içeriğini doğrudan ilgili .html dosyasında ekleyecek.

---------------------------------

1. Bilgisayarınızda, gelecekteki eklentinizin adıyla yeni bir klasör oluşturun. Örnek: "custompage".

2. bu katlanmış create plugin.xml dosyası içinde. Bu dosyaya eklemeniz gerekenler hakkında daha fazla bilgiyi şu adreste bulabilirsiniz: http://docs.oxwall.org/dev:crash-course
Örnek:

<? Xml version = "1.0" encoding = "UTF-8"?> <eklenti>

<name> Özel Sayfa </ name>

<key> custompage </ key>

<açıklama> özel sayfa açıklaması </ description>

<yazar> Alia </ author>

<authorEmail> [email protected] </ authorEmail>

<authorUrl> http://oxwall.org </ authorUrl> ;

<developerKey> your_key_here </ developerKey>

<build> 1 </ build> <copyright> (C) Tüm hakları saklıdır. </ copyright>

<lisans> BSD Lisansı </ lisans>

<licenseUrl> http: //www.opensource .org / ... hp </ licenseUrl> ;

</ plugin>


3. Klasörünüzde aşağıdaki dosyaları oluşturun: yükleyin.activate.php ve deactivate.php .

Şimdilik şimdilik install.php boş dışındaki tüm dosyaları bırakın.
Install.php bir kod parçası aşağıdaki ekleyin:

<? Php BOL_LanguageService :: getInstance () -> addPrefix ( ' custompage ', 'My Özel Sayfa');


4. Klasörünüzü .zip arşivine sıkıştırın.
5. Yönetici panelinize gidin >> eklentileri yönetin >> yeni eklentiyi ekleyin ve yüklediğiniz diğer eklentiler gibi özel eklentinizi ekleyin.
6. Bu aşamada, eklenti girilir ve gerekli tüm detaylar otomatik olarak veritabanına eklenir, ancak eklenti henüz bir şey yapmaz - sadece oradadır.
Şimdi bazı işlevler eklemenin zamanı geldi:
Eklentinizin klasörünü doğrudan FTP veya dosya yöneticisi kullanarak sunucuda açın.
Senin eklentileri klasörü içerisinde iki klasör oluşturun: kontrolörleri ve görüşlerini bir kez daha .Create kontrolörleri klasörü görünümleri klasöründe. 8. Şimdilik "Görünümler" klasörü hakkında şimşek atalım. "Denetleyiciler" klasörünü açın ve orada ilk contoller'ı oluşturun. " Custom.php " ismini verelim .

Bu dosyanın içeriği aşağıdaki gibi olmalıdır: sınıf

PLUGINKEY_CTRL_Nameofcontroller OW_ActionController'ı genişletir

{

}


Örnek:

<? php

sınıfı CUSTOMPAGE_CTRL_custom, OW_ActionController
{ öğesini genişletiyor

}

Plugin.xml dosyasından pluginkey'i burada büyük harflerle kullandığımızı görebilirsiniz. Ayrıca, " custom .php" adlı dosyamızın ve denetleyicinin adının (CUSTOMPAGE_CTRL_ custom ) da aynı olması gerektiğini unutmayın.

Adlandırma kuralları hakkında daha fazla bilgiyi şu adreste bulabilirsiniz: http://docs.oxwall.org/dev:crash-course

"Sayfa oluşturma" bölümü altında).

9. Sınıfın içindeki ilk eylemi oluşturalım:

<? php

class CUSTOMPAGE_CTRL_custom, OW_ActionController öğesini genişletir

{

public function index )
{
$ this-> setPageTitle ("Yeni Özel Sayfam");
$ this-> setPageHeading ("Özel Sayfa");
}

}

10. Sayfamızın doğru bir şekilde görüntülenmesi için eylem için bir görünüm atamalıyız. Bunun için boş bir dosya oluşturmak için gereken custom_index.html içinde görüntüleme / kontrolörleri / klasörünün. Gördüğünüz gibi, görünüm adı denetleyici dosya adı ("özel") ve
alt çizgi ile ayrılmış eylem adı ("dizin ) içerir.

11. Son olarak, sayfamıza bir göz atabiliriz. Sayfanın URL'si şöyle görünür: <domain> / custompage / custom / index

Temelde sayfa başlığı ile boş bir sayfa göreceksiniz. Özel içeriğinizi custom_index.html dosyasında eklemek size kalmıştır.

12. URL oldukça uzun görünüyor. Endişeye gerek yok - Oxwall güzel URL'leri destekliyor. Sayfamızın daha kısa bir URL'den erişilebilir olması için (örneğin, <domain> / custom ), aşağıdaki satırı daha önce oluşturulmuş init.php dosyasına eklemeliyiz :

<? php

OW :: getRouter () -> addRoute (yeni OW_Route ( ' custompage.index ', ' custompage ', " CUSTOMPAGE_CTRL_Custom ", ' indeks '));

Parametreler:

  1. rota adı, custompage.index
  2. yol
  3. denetleyici sınıfı adı
  4. rotanın işaret ettiği eylemin adı.

Şimdi sayfamız <domain> / custompage URL’nin altında açılıyor .

13. Sayfayı erişilebilir kılmak için, ana menüdeki sayfaya bir bağlantı ekleyelim. Bunun için öncelikle plug- inimizin önekini ve 'Cool Cool Title'umuzu kullanarak, main_menu_custom anahtarını Diller içinde oluşturmalıyız . Yeni anahtar eklemek için dev- tools'ları kullanarak yönetici panelinizi açın: www.sitename.com/admin/dev-tools/languages >> "Yeni Metin Ekle" ye tıklayın >> bölüm: açılan menüden eklentinizin ismini seçin >> : main_menu_custom >> metin: herhangi bir metin.

14. Anahtar eklendikten sonra, eklentinizin activ.php dosyasına aşağıdaki kodu ekleyin :

<? php

OW :: getNavigation () -> addMenuItem (OW_Navigation :: MAIN, ' custompage.index ', ' custompage ', ' main_menu_custom', OW_Navigation :: VISIBLE_FOR_ALL);

Ayrıca aşağıdaki kodu deactivate.php içine ekleyin:

<? php
OW :: getNavigation () -> deleteMenuItem ('custompage', ' main_menu_custom ');

15. Yönetici panelinden >> eklentiyi yönet >> eklentinizi devre dışı bırakın ve etkinleştirin. Şimdi sitenizin ana sayfasını açın. Özel sayfanız için yeni menü öğesinin eklendiğini göreceksiniz.

16. Ve neredeyse bitti. Bu aşamada, herhangi bir kullanıcı yeni sayfanızı açabilir ve görebilir. Şimdi, özel sayfamıza gösterilmeden önce kullanıcının giriş yapıp yapmadığını kontrol etmeyen kodu eklememiz gerekiyor.

Oluşturduğunuz kontrolörler / custom.php dosyasında aşağıdaki parça kodunu ekleyin:

if (! OW :: getUser () -> isAuthenticated ())
{
throw AuthenticateException ();
}

Genel olarak sahip olmalısınız:

<? php

class CUSTOMPAGE_CTRL_custom, OW_ActionController'ı genişletir
{
public function index ()
{
$ this-> setPageTitle ("Yeni Özel Sayfam");
$ this-> setPageHeading ("Özel Sayfa");

if (! OW :: getUser () -> isAuthenticated ())
{
throw AuthenticateException ();
}

}

}

17. Ve işimiz bitti. Artık misafir kullanıcı özel sayfanızı açmaya çalıştığında, formda bir günlük alacak. Kullanıcıların giriş yaptıkları, sayfanızın içeriğini hemen görebilecek.

Eh, 17 adım! Bu biraz karmaşık geliyor, ama bunu en az bir kez yaptığında - işler kolay olacak. Bu dokümanın her adımını yaparken http://www.sosyallift.com/awayto/aHR0cDovL2RvY3Mub3h3YWxsLm9yZy9kZXY6Y3Jhc2gtY291cnNl adresini kontrol ettiğinizden emin olun .


Bu konuda açıklanan eklentinin kaynak kodu referansınız için eklenmiştir.
Bir kez daha, özel içeriğinizi custom_index.html dosyasında eklemeniz yeterlidir. Forumdaki bir çok kullanıcı, kullanıcıları içeriğinin görüntülenmesi için oturum açmalarını sağlayacak özel bir sayfayı nasıl oluşturabileceğinizi soruyor. Ayrıca, sayfaların kendisinin değil, yalnızca menü öğesinin erişilebilirliğini sınırladığı için çalışmayan Sayfalar ve menüler işlevlerini kullanmaya çalıştınız: hem misafir hem de kayıtlı kullanıcılar özel sayfanıza doğrudan URL aracılığıyla erişebilir.

Bu forumda, çok basit bir eklentiyi nasıl oluşturabileceğinizi açıklayacağım. Bunun sonucunda, sadece oturum açmış kullanıcılar için erişilebilen özel bir sayfa olacak. Lütfen dikkatle dev çarpışma kursumuza bel bağlayacağımı unutmayın, bu yüzden de okuduğunuzdan emin olun: http://www.sosyallift.com/awayto/aHR0cDovL2RvY3Mub3h3YWxsLm9yZy9kZXY6Y3Jhc2gtY291cnNl

Bunun sadece temel bir eklenti olduğunu unutmayın. İsterseniz ve nasıl yapacağınızı biliyorsanız daha fazla işlevsellik ekleyebilirsiniz.
-------------------------------- Nihai

sonuç olarak neye sahip olacaksınız:

tüm ziyaretçiler tarafından görülebilen yeni ana menü öğesi ( üyeleri) misafirler +. Tıklamada, kullanıcı giriş yapmadıysa, oturum açma formu açılır. Kullanıcı giriş yaptıysa, sayfanın içeriği açılır. Site yöneticisi, sayfa içeriğini doğrudan ilgili .html dosyasında ekleyecek.

---------------------------------

1. Bilgisayarınızda, gelecekteki eklentinizin adıyla yeni bir klasör oluşturun. Örnek: "custompage".

2. bu katlanmış create plugin.xml dosyası içinde. Bu dosyaya eklemeniz gerekenler hakkında daha fazla bilgiyi şu adreste bulabilirsiniz: http://docs.oxwall.org/dev:crash-course
Örnek:

<? Xml version = "1.0" encoding = "UTF-8"?>

<eklenti> <name> Özel Sayfa </ name>

<key> custompage </ key>

<açıklama> özel sayfa açıklaması </ description>

<yazar> Alia </ author>

<authorEmail> [email protected] </ authorEmail>

<authorUrl> http://oxwall.org </ authorUrl> ;

<developerKey> your_key_here </ developerKey>

<build> 1 </ build> <copyright> (C) Tüm hakları saklıdır. </ copyright>

<lisans> BSD Lisansı </ lisans>

<licenseUrl> http: //www.opensource .org / ... hp </ licenseUrl> ;

</plugin>

3. Klasörünüzde aşağıdaki dosyaları oluşturun: yükleyin.activate.php ve deactivate.php .

Şimdilik şimdilik install.php boş dışındaki tüm dosyaları bırakın.
Install.php bir kod parçası aşağıdaki ekleyin:

<? Php BOL_LanguageService :: getInstance () -> addPrefix ( ' custompage ', 'My Özel Sayfa');

4. Klasörünüzü .zip arşivine sıkıştırın.
5. Yönetici panelinize gidin >> eklentileri yönetin >> yeni eklentiyi ekleyin ve yüklediğiniz diğer eklentiler gibi özel eklentinizi ekleyin.
6. Bu aşamada, eklenti girilir ve gerekli tüm detaylar otomatik olarak veritabanına eklenir, ancak eklenti henüz bir şey yapmaz - sadece oradadır.
Şimdi bazı işlevler eklemenin zamanı geldi:
Eklentinizin klasörünü doğrudan FTP veya dosya yöneticisi kullanarak sunucuda açın.
Senin eklentileri klasörü içerisinde iki klasör oluşturun: kontrolörleri ve görüşlerini bir kez daha .Create kontrolörleri klasörü görünümleri klasöründe. 8. Şimdilik "Görünümler" klasörü hakkında şimşek atalım. "Denetleyiciler" klasörünü açın ve orada ilk contoller'ı oluşturun. " Custom.php " ismini verelim .

Bu dosyanın içeriği aşağıdaki gibi olmalıdır: sınıf

PLUGINKEY_CTRL_Nameofcontroller OW_ActionController'ı genişletir

{

}

Örnek:

<? php

sınıfı CUSTOMPAGE_CTRL_custom, OW_ActionController
{ öğesini genişletiyor

}

Plugin.xml dosyasından pluginkey'i burada büyük harflerle kullandığımızı görebilirsiniz. Ayrıca, " custom .php" adlı dosyamızın ve denetleyicinin adının (CUSTOMPAGE_CTRL_ custom ) da aynı olması gerektiğini unutmayın.

Adlandırma kuralları hakkında daha fazla bilgiyi şu adreste bulabilirsiniz: http://docs.oxwall.org/dev:crash-course

"Sayfa oluşturma" bölümü altında).

9. Sınıfın içindeki ilk eylemi oluşturalım:

<? php

class CUSTOMPAGE_CTRL_custom, OW_ActionController öğesini genişletir

{

public function index )
{
$ this-> setPageTitle ("Yeni Özel Sayfam");
$ this-> setPageHeading ("Özel Sayfa");
}

}

10. Sayfamızın doğru bir şekilde görüntülenmesi için eylem için bir görünüm atamalıyız. Bunun için boş bir dosya oluşturmak için gereken custom_index.html içinde görüntüleme / kontrolörleri / klasörünün. Gördüğünüz gibi, görünüm adı denetleyici dosya adı ("özel") ve
alt çizgi ile ayrılmış eylem adı ("dizin ) içerir.

11. Son olarak, sayfamıza bir göz atabiliriz. Sayfanın URL'si şöyle görünür: <domain> / custompage / custom / index

Temelde sayfa başlığı ile boş bir sayfa göreceksiniz. Özel içeriğinizi custom_index.html dosyasında eklemek size kalmıştır.

12. URL oldukça uzun görünüyor. Endişeye gerek yok - Oxwall güzel URL'leri destekliyor. Sayfamızın daha kısa bir URL'den erişilebilir olması için (örneğin, <domain> / custom ), aşağıdaki satırı daha önce oluşturulmuş init.php dosyasına eklemeliyiz :

<? php

OW :: getRouter () -> addRoute (yeni OW_Route ( ' custompage.index ', ' custompage ', " CUSTOMPAGE_CTRL_Custom ", ' indeks '));

Parametreler:

  1. rota adı, custompage.index
  2. yol
  3. denetleyici sınıfı adı
  4. rotanın işaret ettiği eylemin adı.

Şimdi sayfamız <domain> / custompage URL’nin altında açılıyor .

13. Sayfayı erişilebilir kılmak için, ana menüdeki sayfaya bir bağlantı ekleyelim. Bunun için öncelikle plug- inimizin önekini ve 'Cool Cool Title'umuzu kullanarak, main_menu_custom anahtarını Diller içinde oluşturmalıyız . Yeni anahtar eklemek için dev- tools'ları kullanarak yönetici panelinizi açın: www.sitename.com/admin/dev-tools/languages >> "Yeni Metin Ekle" ye tıklayın >> bölüm: açılan menüden eklentinizin ismini seçin >> : main_menu_custom >> metin: herhangi bir metin.

14. Anahtar eklendikten sonra, eklentinizin activ.php dosyasına aşağıdaki kodu ekleyin :

<? php

OW :: getNavigation () -> addMenuItem (OW_Navigation :: MAIN, ' custompage.index ', ' custompage ', ' main_menu_custom', OW_Navigation :: VISIBLE_FOR_ALL);

Ayrıca aşağıdaki kodu deactivate.php içine ekleyin:

<? php
OW :: getNavigation () -> deleteMenuItem ('custompage', ' main_menu_custom ');

15. Yönetici panelinden >> eklentiyi yönet >> eklentinizi devre dışı bırakın ve etkinleştirin. Şimdi sitenizin ana sayfasını açın. Özel sayfanız için yeni menü öğesinin eklendiğini göreceksiniz.

16. Ve neredeyse bitti. Bu aşamada, herhangi bir kullanıcı yeni sayfanızı açabilir ve görebilir. Şimdi, özel sayfamıza gösterilmeden önce kullanıcının giriş yapıp yapmadığını kontrol etmeyen kodu eklememiz gerekiyor.

Oluşturduğunuz kontrolörler / custom.php dosyasında aşağıdaki parça kodunu ekleyin:

if (! OW :: getUser () -> isAuthenticated ())
{
throw AuthenticateException ();
}

Genel olarak sahip olmalısınız:

<? php

class CUSTOMPAGE_CTRL_custom, OW_ActionController'ı genişletir
{
public function index ()
{
$ this-> setPageTitle ("Yeni Özel Sayfam");
$ this-> setPageHeading ("Özel Sayfa");

if (! OW :: getUser () -> isAuthenticated ())
{
throw AuthenticateException ();
}

}

}

17. Ve işimiz bitti. Artık misafir kullanıcı özel sayfanızı açmaya çalıştığında, formda bir günlük alacak. Kullanıcıların giriş yaptıkları, sayfanızın içeriğini hemen görebilecek.

Eh, 17 adım! Bu biraz karmaşık geliyor, ama bunu en az bir kez yaptığında - işler kolay olacak. Bu dokümanın her adımını yaparken http://docs.oxwall.org/dev:crash-course adresini kontrol ettiğinizden emin olun .


Bu konuda açıklanan eklentinin kaynak kodu referansınız için eklenmiştir.
Bir kez daha, özel içeriğinizi custom_index.html dosyasında eklemeniz yeterlidir.

DİKKAT: Sosyallift tamamen oxwall yapısı ile farklı çalışmaktadır kaynak erişimleri sisteminizde büyük hasarlara neden olabilir. Bu yanılgı yüzünden sorun yaşayan kişiler için bir yardım sağlanmamaktadır. Sorun çözümlenmesi zor sorunlara neden olması sebebi ile yardım sağlamıyoruz.

Oxwall hakkında yardım ve sorunlarınız için yardım forumundan ve PM yollayarak yardım alabilirsiniz.

Düzenlendi... Whordark (Nisan 16 '18)
Paylaş: