PHPackages                             erenmustafaozdal/laravel-page-module - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. erenmustafaozdal/laravel-page-module

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

erenmustafaozdal/laravel-page-module
====================================

laravel 5.1 page management module package

v0.1.3(9y ago)1121MITPHPPHP &gt;=5.5.9

Since Aug 11Pushed 9y agoCompare

[ Source](https://github.com/erenmustafaozdal/laravel-page-module)[ Packagist](https://packagist.org/packages/erenmustafaozdal/laravel-page-module)[ RSS](/packages/erenmustafaozdal-laravel-page-module/feed)WikiDiscussions master Synced today

READMEChangelogDependencies (3)Versions (6)Used By (0)

Laravel Page Module
===================

[](#laravel-page-module)

[![Laravel 5.1](https://camo.githubusercontent.com/05076f1468adbd2ff88c746e1d499486fe3755747a047b2f42949a583c4884b2/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c61726176656c2d352e312d6f72616e67652e7376673f7374796c653d666c61742d737175617265)](https://laravel.com/docs/5.1/)[![Source](https://camo.githubusercontent.com/bd3c539d3045d98e6b0f7ff0bb77afa89ea8e14e10cf0584435d52fdffa50832/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f736f757263652d6572656e6d7573746166616f7a64616c2f6c61726176656c2d2d706167652d2d6d6f64756c652d626c75652e7376673f7374796c653d666c61742d737175617265)](https://github.com/erenmustafaozdal/laravel-page-module)[![License](https://camo.githubusercontent.com/30597ff9a350144f03bffdd9183e16468e0b3ca1193e1d08591d992622738d55/687474703a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d627269676874677265656e2e7376673f7374796c653d666c61742d737175617265)](https://tldrlegal.com/license/mit-license)

**Laravel Page Module**, Laravel 5.1 projelerinde *sayfa yönetimi* işlemlerini kapsayan bir modül paketidir. Bu paket kullanıcı arayüzü **(views)** hariç, arka plandaki bütün işlemleri barındırmaktadır. İstersen görünümleri kapsayan [Laravel Modules Core](https://github.com/erenmustafaozdal/laravel-modules-core) paketini kullanarak, modüle tam kapsamıyla sahip olabilirsin.

1. [Kurulum](#kurulum)
    1. [Dosyaların Yayınlanması](#kurulum-dosyalarinYayinlanmasi)
    2. [Migration](#kurulum-migration)
2. [Kullanım](#kullanim)
    1. [Ayar Dosyası](#kullanim-ayarDosyasi)
        1. [Genel Ayarlar](#kullanim-ayarDosyasi-genelAyarlar)
        2. [URL Ayarları](#kullanim-ayarDosyasi-urlAyarlari)
        3. [Controller Ayarları](#kullanim-ayarDosyasi-controllerAyarlari)
        4. [Rota Açıp/Kapatma Ayarları](#kullanim-ayarDosyasi-routeOnOffAyarlari)
        5. [Görünüm Ayarları](#kullanim-ayarDosyasi-gorunumAyarlari)
    2. [Görünüm Tasarlama](#kullanim-gorunumTasarlama)
        1. [Model Kullanımı](#kullanim-gorunumTasarlama-modelKullanimi)
            1. [Page Category](#kullanim-gorunumTasarlama-modelKullanimi-page_category)
            2. [Page](#kullanim-gorunumTasarlama-modelKullanimi-page)
        2. [Rotalar](#kullanim-gorunumTasarlama-rotalar)
            1. [Sayfa Kategori Rotaları](#kullanim-gorunumTasarlama-rotalar-page_category)
            2. [Kategoriye Ait Sayfa Rotaları](#kullanim-gorunumTasarlama-rotalar-category_pages)
            3. [Sayfa Rotaları](#kullanim-gorunumTasarlama-rotalar-page)
        3. [Form Alanları](#kullanim-gorunumTasarlama-formAlanlari)
            1. [Sayfa Kategori Formları](#kullanim-gorunumTasarlama-formAlanlari-page_category)
            2. [Kategoriye Ait Sayfa Formları](#kullanim-gorunumTasarlama-formAlanlari-category_pages)
            3. [Sayfa Formları](#kullanim-gorunumTasarlama-formAlanlari-page)
    3. [Onaylamalar](#kullanim-onaylamalar)
    4. [Olaylar](#kullanim-olaylar)
        1. [Sayfa Kategori Olayları](#kullanim-olaylar-page_category)
        2. [Sayfa Olayları](#kullanim-olaylar-page)
3. [Lisans](#lisans)

Kurulum
------------------------------------------

[](#kurulum)

Composer ile yüklemek için aşağıdaki kodu kullanabilirsin.

```
composer require erenmustafaozdal/laravel-page-module
```

Ya da `composer.json` dosyana, aşağıdaki gibi ekleme yapıp, paketleri güncelleyebilirsin.

```
{
    "require": {
        "erenmustafaozdal/laravel-page-module": "~0.1"
    }
}
```

```
$ composer update
```

Bu işlem bittikten sonra, service provider'i projenin `config/app.php` dosyasına eklemelisin.

```
ErenMustafaOzdal\LaravelPageModule\LaravelPageModuleServiceProvider::class,
```

> ❗ Eğer **Laravel Modules Core** paketini kullanacaksan, o paketin service provider dosyasını üstte tanımlamalısın.

##### Dosyaların Yayınlanması

[](#dosyaların-yayınlanması)

**Laravel Page Module** paketinin dosyalarını aşağıdaki kodla yayınlamalısın.

```
php artisan vendor:publish --provider="ErenMustafaOzdal\LaravelPageModule\LaravelPageModuleServiceProvider"
```

##### Migration

[](#migration)

Dosyaları yayınladıktan sonra migration işlemi yapmalısın.

```
php artisan migrate
```

> ❗ Paket editör aracılığıyla veri tabanına kayıt yapmaktadır. Tahmin edebileceğin gibi Laravel Blade şablonunda `{{ }}` ile html etiketler ekranda metin olarak işlenecektir. Laravel'in `{!! !!}` şeklindeki kullanımı ise; güvenilir olmayan bir kişinin veri kaydetmesi sonucu **XSS** açığı oluşturabilir. Bunun önüne geçmek için **Laravel Page Module** [mewebstudio/Purifier](https://github.com/mewebstudio/Purifier) paketini kullanıyor. Sıradaki işlem olarak **Purifier** paketine yazma izni vermen gerekiyor.

Önce bu paketin dosyalarını yayınlayalım

```
php artisan vendor:publish --provider="Mews\Purifier\PurifierServiceProvider"
```

Daha sonra da izni verelim.

```
sudo chmod 777 vendor/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache/Serializer
```

Son olarak `App\PageCategory` ve `App\Page` modellerini uygun bir şekilde tanımlamalısın. Bunun için `App\PageCategory` modelini `ErenMustafaOzdal\LaravelPageModule\PageCategory` modelinden, `App\Page` modelini `ErenMustafaOzdal\LaravelPageModule\Page` modelinden genişletmelisin.

```
namespace App;

use ErenMustafaOzdal\LaravelPageModule\PageCategory as EMOPageCategory;

class PageCategory extends EMOPageCategory
{
    //
}
```

```
namespace App;

use ErenMustafaOzdal\LaravelPageModule\Page as EMOPage;

class Page extends EMOPage
{
    //
}
```

Kullanım
--------------------------------------------

[](#kullanım)

Kurulum tamamlandığında; [Laravel Modules Core](https://github.com/erenmustafaozdal/laravel-modules-core) paketini de dahil ettiysen, tasarım dahil olarak kullanıma hazır olacaktır.

> ❗ metinler yanlış görünüyorsa, [Laravel Modules Core](https://github.com/erenmustafaozdal/laravel-modules-core) paketinin İngilizce dil dosyaları hazır olmadığı içindir. Bu sebeple projenin `config/app.php` dosyasında `'locale' => 'tr'` tanımlaması yapmalısın.

### Ayar Dosyası

[](#ayar-dosyası)

##### Genel Ayarlar

[](#genel-ayarlar)

Paketin içinde kullanılan genel ayarlar. Ayar dosyası içinde kök alanda bulunan ayarlar.

AyarAçıklamaVarsayılan Değerdate\_formatKullanılacak tarih formatıd.m.Y H:i:s

##### URL Ayarları

[](#url-ayarları)

Tarayıcının adres çubuğunda görünecek adreslerin tanımlandığı ayarlar. Ayar dosyasının `url` alanında bulunan ayarlardır.

> Örneğin: `activate_route` ayarı ile aktivasyon sayfası adresi `account-activate` şeklinde tanımlanmıştır. Bu şekilde adres çubuğunda şuna benzer bir görünüm olacaktır: `www.siteadi.com/account-activate/{id}/{code}`

AyarAçıklamaVarsayılan Değerpage\_categorySayfa Kategorileri sayfa adresipage-categoriespageSayfaların sayfa adresipagesadmin\_url\_prefixYönetim panelinin adres çubuğundaki ön adı. Örneğin: `www.siteadi.com/admin/pages`adminmiddlewareRotalarda kullanılacak katman filtre sınıfları\['auth', 'permission'\]

##### Controller Ayarları

[](#controller-ayarları)

Bazı metotlarda değişiklik yapmak isteyebilirsin. Burada yapacağın tanımlamalarda kendi `Controller` sınıfını tanımlayıp, **Laravel Page Module**'ün ilgili controller'ından genişletirsen, istediğin metotların üzerine yazabilirsin. Ayar dosyasının `controller` alanında bulunan ayarlardır.

AyarAçıklamaVarsayılan Değerpage\_category\_admin\_namespaceSayfa Kategorisi yönetim paneli isim uzayıErenMustafaOzdal\\LaravelPageModule\\Http\\Controllerspage\_admin\_namespaceSayfaların yönetim paneli isim uzayıErenMustafaOzdal\\LaravelPageModule\\Http\\Controllerspage\_category\_api\_namespaceSayfa Kategorisi api isim uzayıErenMustafaOzdal\\LaravelPageModule\\Http\\Controllerspage\_api\_namespaceSayfaların api isim uzayıErenMustafaOzdal\\LaravelPageModule\\Http\\Controllerspage\_categorySayfa Kategori ControllerPageCategoryControllerpageSayfa ControllerPageControllerpage\_category\_apiSayfa Kategori Api ControllerPageCategoryApiControllerpage\_apiSayfa Api ControllerPageApiController

##### Rota Açıp/Kapatma Ayarları

[](#rota-açıpkapatma-ayarları)

Projeye göre bazı rotalar işe yaramayabilir. Bunların açık olmasını istemeyebilirsin. Aşağıdaki ayarları kullanarak istediğin rotaları açıp kapatabilirsin. Ayar dosyasının `routes` alanında bulunan ayarlardır. Bütün rotaların başlangıçta `true` değerine sahiptir ve açıktır.

| Ayar | Açıklama | |---|---|---| | admin.page\_category | Sayfa Kategorisi yönetim paneli `resource` rotaları | | admin.page | Sayfa yönetim paneli `resource` rotaları | | admin.page\_publish | Sayfa yayınlama yönetim paneli `get` rotası | | admin.page\_notPublish | Sayfa yayından kaldırma yönetim paneli `get` rotası | | admin.category\_pages | Kategoriye ait sayfaların yönetim paneli `resource` rotaları | | admin.category\_pages\_publish | Kategoriye ait sayfaların yayınlama yönetim paneli `get` rotası | | admin.category\_pages\_notPublish | Kategoriye ait sayfaların yayından kaldırma yönetim paneli `get` rotası | | api.page\_category | Sayfa Kategorisi api `resource` rotaları | | api.page\_category\_models | Sayfa Kategorilerinin çekildiği api `post` rotası (Örneğin **Laravel Modules Core** paketinde *Select2* içine kategoriler çekilirken kullanılıyor) | | api.page\_category\_group | Sayfa Kategorilerinin grup olarak işlem yapıldığı api `post` rotası | | api.page\_category\_detail | Sayfa Kategorilerinin detay bilgisinin *Datatables* formatında çekildiği api `get` rotası | | api.page\_category\_fastEdit | Sayfa Kategorisinin hızlı düzenleme amacıyla çekildiği api `post` rotası | | api.page | Sayfa api `resource` rotaları | | api.page\_group | Sayfaların grup olarak işlem yapıldığı api `post` rotası | | api.page\_detail | Sayfaların detay bilgisinin *Datatables* formatında çekildiği api `get` rotası | | api.page\_fastEdit | Sayfanın hızlı düzenleme amacıyla çekildiği api `post` rotası | | api.page\_publish | Sayfa yayınlama api `get` rotası | | api.page\_notPublish | Sayfa yayından kaldırma api `get` rotası | | api.page\_contentUpdate | Sayfa içeriğini güncelleme api `post` rotası | | api.category\_pages\_index | Kategoriye ait sayfaların çekildiği api `get` rotası |

##### Görünüm Ayarları

[](#görünüm-ayarları)

Paketin kullanacağı görünümlerin tanımlandığı ayarlardır. Ayar dosyasının `views` alanı altında bulunan ayarlardır. Buradaki değerler varsayılan olarak [Laravel Modules Core](https://github.com/erenmustafaozdal/laravel-modules-core) paketinin görünümlerine tanımlıdır.

AyarAçıklamaVarsayılan Değerpage\_category.layoutSayfa Kategori sayfaları şablon görünümülaravel-modules-core::layouts.adminpage\_category.indexSayfa Kategorilerinin listelendiği sayfanın görünümülaravel-modules-core::page\_category.indexpage\_category.createSayfa Kategorisi ekleme sayfasının görünümülaravel-modules-core::page\_category.createpage\_category.showSayfa Kategorisi bilgilerinin olduğu sayfanın görünümülaravel-modules-core::page\_category.showpage\_category.editSayfa Kategorisi bilgilerinin düzenlendiği sayfanın görünümülaravel-modules-core::page\_category.editpage.layoutSayfa sayfaları şablon görünümülaravel-modules-core::layouts.adminpage.indexSayfaların listelendiği sayfanın görünümülaravel-modules-core::page.indexpage.createSayfa ekleme sayfasının görünümülaravel-modules-core::page.createpage.showSayfa bilgilerinin olduğu sayfanın görünümülaravel-modules-core::page.showpage.editSayfa bilgilerinin düzenlendiği sayfanın görünümülaravel-modules-core::page.edit

### Görünüm Tasarlama

[](#görünüm-tasarlama)

Paket [Laravel Modules Core](https://github.com/erenmustafaozdal/laravel-modules-core) paketiyle beraber direkt kullanıma hazırdır. Ancak istersen kendine özel görünümlerde tasarlayabilirsin. Bu bölüm özel tasarımlar için bir rehberdir.

##### Model Kullanımı

[](#model-kullanımı)

Görünümler içinde `PageCategory` ve `Page` modellerinin özellik ve metot kullanımı hakkında bilgileri kapsamaktadır. Bu metotlar ve özellikler `App\PageCategory` ve `App\Page` içinde üzerine yazılarak değiştirilebilir.

###### Page Category

[](#page-category)

\####### Genel Özellikler

1. **protected $table =** 'page\_categories'
2. **protected $fillable =** \['name'\]

\####### $page\_category-&gt;pages `Collection``hasMany()` metoduyla `App\Page` modeliyle ilişkiyi sağlar

\####### $page\_category-&gt;name\_uc\_first `string`Baş harfleri büyük formatta sayfa kategorisinin adını döndürür

\####### $page\_category-&gt;created\_at `string`Sayfa kategorisinin kayıt tarihini ayar dosyasındaki tanıma göre döndürür

\####### $page\_category-&gt;created\_at\_for\_humans `string`Sayfa kategorisinin kayıt tarihini okunaklı veri şeklinde döndürür. Örneğin: *1 hafta önce*

\####### $page\_category-&gt;created\_at\_table `array`Sayfa kategorisinin kayıt tarihini `display`(last\_login\_for\_humans) ve `timestamp` şeklinde tutulan bir dizi şeklinde döndürür. Datatable'da kullanılması amacıyla oluşturulmuştur

\####### $page\_category-&gt;updated\_at `string`Sayfa kategorisinin güncellenme tarihini ayar dosyasındaki tanıma göre döndürür

\####### $page\_category-&gt;updated\_at\_for\_humans `string`Sayfa kategorisinin güncellenme tarihini okunaklı veri şeklinde döndürür. Örneğin: *1 hafta önce*

\####### $page\_category-&gt;updated\_at\_table `array`Sayfa kategorisinin güncellenme tarihini `display`(last\_login\_for\_humans) ve `timestamp` şeklinde tutulan bir dizi şeklinde döndürür. Datatable'da kullanılması amacıyla oluşturulmuştur

###### Page

[](#page)

\####### Genel Özellikler

1. **protected $table =** 'pages'
2. **protected $fillable =** \['category\_id','title','slug','content','description','meta\_title','meta\_description','meta\_keywords','is\_publish'\]

\####### $page-&gt;category `App\PageCategory``belongsTo()` metoduyla `App\PageCategory` modeliyle ilişkiyi sağlar

\####### $page-&gt;title\_uc\_first `string`Baş harfleri büyük formatta sayfa başlığı

\####### $page-&gt;slug `string`Sayfa url formatındaki hali

\####### $page-&gt;content `string`XSS saldırılarından temizlenmiş sayfa içeriği

\####### $page-&gt;description `string`Sayfa açıklaması

\####### $page-&gt;meta\_title `string`Sayfa meta başlığı

\####### $page-&gt;meta\_description `string`Sayfa meta açıklaması

\####### $page-&gt;meta\_keywords `string`Sayfa meta anahtar kelimeleri

\####### $page-&gt;read `boolean`Sayfa okunma sayısı *(Geliştirilecek ön yüzde bu değer arttırılıp, gösterilebilir)*

\####### $page-&gt;is\_publish `boolean`Sayfa yayında mı

\####### $page-&gt;created\_at `string`Sayfanın kayıt tarihini ayar dosyasındaki tanıma göre döndürür

\####### $page-&gt;created\_at\_for\_humans `string`Sayfanın kayıt tarihini okunaklı veri şeklinde döndürür. Örneğin: *1 hafta önce*

\####### $page-&gt;created\_at\_table `array`Sayfanın kayıt tarihini `display`(last\_login\_for\_humans) ve `timestamp` şeklinde tutulan bir dizi şeklinde döndürür. Datatable'da kullanılması amacıyla oluşturulmuştur

\####### $page-&gt;updated\_at `string`Sayfanın güncellenme tarihini ayar dosyasındaki tanıma göre döndürür

\####### $page-&gt;updated\_at\_for\_humans `string`Sayfanın güncellenme tarihini okunaklı veri şeklinde döndürür. Örneğin: *1 hafta önce*

\####### $page-&gt;updated\_at\_table `array`Sayfanın güncellenme tarihini `display`(last\_login\_for\_humans) ve `timestamp` şeklinde tutulan bir dizi şeklinde döndürür. Datatable'da kullanılması amacıyla oluşturulmuştur

##### Rotalar

[](#rotalar)

**Laravel Page Module** paketi *CRUD* işlemleri için sahip olduğu rotaların dışında, `ajax` ile işlem yapabileceğin birçok rotaya da sahiptir. Görünümlerini tasarlarken bunları kullanabilirsin.

> Rotalarda kullanılabilecek form elemanları bir sonraki bölümde anlatılacaktır.

###### Sayfa Kategori Rotaları

[](#sayfa-kategori-rotaları)

Başta sayfa kategorisi CRUD işlemleri olmak üzere, bir kısım *ajax* işlemini de kapsayan rotalar.

Rota AdıAçıklamaTüradmin.page\_category.indexSayfa kategorilerinin listelendiği sayfaGETadmin.page\_category.createYeni sayfa kategorilerisi eklendiği sayfaGETadmin.page\_category.storeYeni sayfa kategorilerisi eklendiği sayfadan form verilerinin gönderildiği sayfaPOSTadmin.page\_category.showSayfa kategorisi bilgilerinin gösterildiği sayfa. Bu sayfayı oluşturulacak görünümlere `$page_category` değişkeni aktarılır.GETadmin.page\_category.editSayfa kategorisi bilgilerinin düzenlendiği sayfa. Bu sayfayı oluşturulacak görünümlere `$page_category` değişkeni aktarılır.GETadmin.page\_category.updateSayfa kategorisi bilgilerinin düzenlendiği sayfadan form verilerinin gönderildiği sayfaPUT-PATCHadmin.page\_category.destroySayfa kategorisinin silindiği sayfaDELETEapi.page\_category.indexBu rotada ajax ile Datatable türü veriler çekilir. Gelen sütunlar şunlardır: `id`, `name`, `created_at`, `urls` *(tablonun eylemler sütununda kullanılmak üzere oluşturulmuş bazı adreslerdir.)*. Bütün bunlar dışında `action=filter` verisi ile birlikte; *id*, *name*, *created\_at\_from* ve *created\_at\_to* verileri gönderilerek; filtrelenmiş veriler elde edebilirsinGETapi.page\_category.storeYeni sayfa kategorilerisi eklenmesi için verilerin gönderildiği sayfa.POSTapi.page\_category.updateSayfa kategorisi bilgilerinin düzenlenmesi için verilerin gönderildiği sayfa.PUT-PATCHapi.page\_category.destroySayfa kategorisinin silinmesi için verilerin gönderildiği sayfaDELETEapi.page\_category.modelsSayfa kategorisi rollerinin isme veya url tanımlamasına göre filtrelenip döndürüldüğü rotaPOSTapi.page\_category.groupSayfa kategorileri üzerinde grup işlemleri yapmak için kullanılan bir rota. Silme işlemini destekliyor. `action=destroy` gibi bir veri ile birlikte, dizi içinde işlem yapılacak kullanıcı id'leri gönderilir. Aşağıda veri detayları açıklanmıştır.POSTapi.page\_category.detailSayfa kategorisi id'si iliştirilmiş rota ile kullanıcı *id*, *name*, *updated\_at*, *created\_at* bilgileri Datatable formatında gönderilirGETapi.page\_category.fastEditHızlı bir şekilde sayfa kategorisi bilgisini düzenlemek için; bilgilerin çekildiği rotadır. Rotaya sayfa kategorisi id'si iliştirilir ve sayfa kategorisi bilgilerinin tamamı çekilirPOST

###### Kategoriye Ait Sayfa Rotaları

[](#kategoriye-ait-sayfa-rotaları)

Belirli kategoriye ait sayfaların CRUD işlemleri olmak üzere, bir kısım *ajax* işlemini de kapsayan rotalar.

Rota AdıAçıklamaTüradmin.page\_category.page.indexBelirli kategoriye ait sayfaların listelendiği sayfaGETadmin.page\_category.page.createBelirli kategoriye ait yeni sayfa eklendiği sayfaGETadmin.page\_category.page.storeBelirli kategoriye ait yeni sayfa eklendiği sayfadan form verilerinin gönderildiği sayfaPOSTadmin.page\_category.page.showBelirli kategoriye ait sayfa bilgilerinin gösterildiği sayfa. Bu sayfayı oluşturulacak görünümlere `$page_category` ve `$page` değişkeni aktarılır.GETadmin.page\_category.page.editBelirli kategoriye ait sayfa bilgilerinin düzenlendiği sayfa. Bu sayfayı oluşturulacak görünümlere `$page_category` ve `$page` değişkeni aktarılır.GETadmin.page\_category.page.updateBelirli kategoriye ait sayfa bilgilerinin düzenlendiği sayfadan form verilerinin gönderildiği sayfaPUT-PATCHadmin.page\_category.page.destroyBelirli kategoriye ait sayfanın silindiği sayfaDELETEadmin.page\_category.page.publishBelirli kategoriye ait sayfanın yayınlandığı rotaGETadmin.page\_category.page.notPublishBelirli kategoriye ait sayfanın yayından kaldırıldığı rotaGETapi.page\_category.page.indexBu rotada ajax ile Datatable türü veriler çekilir. Gelen sütunlar şunlardır: `id`, `category_id`, `slug`, 'title', `is_publish`, `created_at`, `urls` *(tablonun eylemler sütununda kullanılmak üzere oluşturulmuş bazı adreslerdir.)*. Bütün bunlar dışında `action=filter` verisi ile birlikte; *id*, *title*, *slug*, *status*, *created\_at\_from* ve *created\_at\_to* verileri gönderilerek; filtrelenmiş veriler elde edebilirsinGET

###### Sayfa Rotaları

[](#sayfa-rotaları)

Sayfaların CRUD işlemleri olmak üzere, bir kısım *ajax* işlemini de kapsayan rotalar.

Rota AdıAçıklamaTüradmin.page.indexSayfaların listelendiği sayfaGETadmin.page.createYeni sayfa eklendiği sayfaGETadmin.page.storeYeni sayfa eklendiği sayfadan form verilerinin gönderildiği sayfaPOSTadmin.page.showSayfa bilgilerinin gösterildiği sayfa. Bu sayfayı oluşturulacak görünümlere `$page` değişkeni aktarılır.GETadmin.page.editSayfa bilgilerinin düzenlendiği sayfa. Bu sayfayı oluşturulacak görünümlere `$page` değişkeni aktarılır.GETadmin.page.updateSayfa bilgilerinin düzenlendiği sayfadan form verilerinin gönderildiği sayfaPUT-PATCHadmin.page.destroySayfanın silindiği sayfaDELETEadmin.page.publishSayfanın yayınlandığı rotaGETadmin.page.notPublishSayfanın yayından kaldırıldığı rotaGETapi.page.indexBu rotada ajax ile Datatable türü veriler çekilir. Gelen sütunlar şunlardır: `id`, `category_id`, `slug`, `title`, `is_publish`, `created_at`, `category` (kategorinin adı, id'si vb), `urls` *(tablonun eylemler sütununda kullanılmak üzere oluşturulmuş bazı adreslerdir.)*. Bütün bunlar dışında `action=filter` verisi ile birlikte; *id*, *title*, *slug*, *category*, *status*, *created\_at\_from* ve *created\_at\_to* verileri gönderilerek; filtrelenmiş veriler elde edebilirsinGETapi.page.storeYeni sayfa eklenmesi için verilerin gönderildiği sayfa.POSTapi.page.updateSayfa bilgilerinin düzenlenmesi için verilerin gönderildiği sayfa.PUT-PATCHapi.page.destroySayfanın silinmesi için verilerin gönderildiği sayfaDELETEapi.page.groupSayfaların üzerinde grup işlemleri yapmak için kullanılan bir rota. Yayınlama, yayından kaldırma ve silme işlemini destekliyor. `action=publish` gibi bir veri ile birlikte, dizi içinde işlem yapılacak kullanıcı id'leri gönderilir. Aşağıda veri detayları açıklanmıştır.POSTapi.page.detailSayfa id'si iliştirilmiş rota ile kullanıcı *id*, *category\_id*, *title*, *slug*, *description*, *content*, *updated\_at*, *created\_at* bilgileri Datatable formatında gönderilirGETapi.page.fastEditHızlı bir şekilde sayfa bilgisini düzenlemek için; bilgilerin çekildiği rotadır. Rotaya sayfa id'si iliştirilir ve sayfa bilgilerinin tamamı çekilirPOSTapi.page.publishSayfanın yayınlandığı rotaPOSTapi.page.notPublishSayfanın yayından kaldırıldığı rotaPOSTapi.page.contentUpdateSayfanın içeriğinin güncellendği rotaPOST

##### Form Alanları

[](#form-alanları)

İşlemler sırasında görünümlerinde kullanacağın form elemanları veri tabanı tablolarındaki sütun isimleriyle aynı olmalıdır. Aşağıda her işlem için gereken eleman listesi verilmiştir.

❗ Aşağıda belirtilen form isimleri kullanılması zorunlu olup, sırası değişebilir.

> `lang/.../validation.php` dosyanda bu form isimlerinin metin değerlerini belirtmeyi unutma! Ayrıca her dil için validation dosyası oluşturmalısın.

###### Sayfa Kategori Formları

[](#sayfa-kategori-formları)

- `store` işlemi form elemanları
    - name

**StoreRequest**

```
public function rules()
{
    return [
      'name'          => 'required|max:255'
    ];
}
```

- `update` işlemi form elemanları
    - name

**UpdateRequest**

```
public function rules()
{
    return [
      'name'          => 'required|max:255'
    ];
}
```

- Api `index` filtreleme işlemi verileri

    - action=filter
    - id
    - name
    - created\_at\_from
    - created\_at\_to
- Api `store` işlemi verileri, yukarıdaki *store* işlemi ile aynıdır.
- Api `update` işlemi verileri, yukarıdaki *update* işlemi ile aynıdır.
- Api `group` işlemi verileri

    - action=destroy
    - id (array şeklinde model id'leri)

###### Kategoriye Ait Sayfa Formları

[](#kategoriye-ait-sayfa-formları)

- `store` işlemi form elemanları
    - category\_id (Belirli bir kategoriye ait sayfa olduğu için; görünüm içinde hidden elementte değer tutulur)
    - title
    - slug
    - description
    - is\_publish
    - content
    - meta\_title
    - meta\_description
    - meta\_keywords

**StoreRequest**

```
public function rules()
{
    return [
      'category_id'       => 'required|integer',
      'title'             => 'required|max:255',
      'slug'              => 'alpha_dash|max:255|unique:pages',
      'description'       => 'max:255',
      'meta_title'        => 'max:255',
      'meta_description'  => 'max:255',
      'meta_keywords'     => 'max:255',
    ];
}
```

- `update` işlemi form elemanları
    - category\_id (Belirli bir kategoriye ait sayfa olduğu için; görünüm içinde hidden elementte değer tutulur)
    - title
    - slug
    - description
    - is\_publish
    - content
    - meta\_title
    - meta\_description
    - meta\_keywords

**UpdateRequest**

```
public function rules()
{
    $id = is_null($this->segment(5)) ? $this->segment(3) : $this->segment(5);
    return [
      'category_id'       => 'required|integer',
      'title'             => 'required|max:255',
      'slug'              => 'alpha_dash|max:255|unique:pages,slug,'.$id,
      'description'       => 'max:255',
      'meta_title'        => 'max:255',
      'meta_description'  => 'max:255',
      'meta_keywords'     => 'max:255',
    ];
}
```

- Api `index` filtreleme işlemi verileri

    - action=filter
    - id
    - slug
    - title
    - status
    - created\_at\_from
    - created\_at\_to
- Api `store` işlemi verileri, yukarıdaki *store* işlemi ile aynıdır.
- Api `update` işlemi verileri, yukarıdaki *update* işlemi ile aynıdır.
- Api `group` işlemi verileri

    - action=publish|not\_publish|destroy
    - id (array şeklinde model id'leri)

###### Sayfa Formları

[](#sayfa-formları)

Bütün alanlar yukarıdaki [Kategoriye Ait Sayfa Formları](#kullanim-gorunumTasarlama-formAlanlari-category_pages) bölümüyle aynıdır. Farklı olan yer sadece Api `index` filtreleme işlemidir.

- Api `index` filtreleme işlemi verileri
    - action=filter
    - id
    - slug
    - title
    - `category`
    - status
    - created\_at\_from
    - created\_at\_to

### Onaylamalar

[](#onaylamalar)

**Laravel Page Module** paketi yapılan her form isteği için onaylama kurallarını belirlemiştir. Bu tür form istek onaylama kuralları için yapman gereken bir şey yoktur. Yukarıda `Request` sınıflarının `rules` metotlarında açıklamaları yapılmıştır.

### Olaylar

[](#olaylar)

Paket içindeki hemen hemen tüm işlemler belli bir olayı tetikler. Sen kendi listener dosyanda bu olayları dinleyebilir ve tetiklendiğinde istediğin işlemleri kolay bir şekilde yapabilirsin.

##### Sayfa Kategori Olayları

[](#sayfa-kategori-olayları)

Olayİsim UzayıOlay VerisiAçıklamaStoreSuccess`ErenMustafaOzdal\LaravelPageModule\Events\PageCategory`PageCategory ModelEkleme işlemi başarılı olduğunda tetiklenirStoreFail`ErenMustafaOzdal\LaravelPageModule\Events\PageCategory`Form verileri *(Array)*Ekleme işlemi başarısız olduğunda tetiklenirUpdateSuccess`ErenMustafaOzdal\LaravelPageModule\Events\PageCategory`PageCategory ModelDüzenleme işlemi başarılı olduğunda tetiklenirUpdateFail`ErenMustafaOzdal\LaravelPageModule\Events\PageCategory`PageCategory ModelDüzenleme işlemi başarısız olduğunda tetiklenirDestroySuccess`ErenMustafaOzdal\LaravelPageModule\Events\PageCategory`PageCategory ModelSilme işlemi başarılı olduğunda tetiklenirDestroyFail`ErenMustafaOzdal\LaravelPageModule\Events\PageCategory`PageCategory ModelSilme işlemi başarısız olduğunda tetiklenir

##### Sayfa Olayları

[](#sayfa-olayları)

Olayİsim UzayıOlay VerisiAçıklamaStoreSuccess`ErenMustafaOzdal\LaravelPageModule\Events\Page`Page ModelEkleme işlemi başarılı olduğunda tetiklenirStoreFail`ErenMustafaOzdal\LaravelPageModule\Events\Page`Form verileri *(Array)*Ekleme işlemi başarısız olduğunda tetiklenirUpdateSuccess`ErenMustafaOzdal\LaravelPageModule\Events\Page`Page ModelDüzenleme işlemi başarılı olduğunda tetiklenirUpdateFail`ErenMustafaOzdal\LaravelPageModule\Events\Page`Page ModelDüzenleme işlemi başarısız olduğunda tetiklenirDestroySuccess`ErenMustafaOzdal\LaravelPageModule\Events\Page`Page ModelSilme işlemi başarılı olduğunda tetiklenirDestroyFail`ErenMustafaOzdal\LaravelPageModule\Events\Page`Page ModelSilme işlemi başarısız olduğunda tetiklenirPublishSuccess`ErenMustafaOzdal\LaravelPageModule\Events\Page`Page ModelYayınlama işlemi başarılı olduğunda tetiklenirPublishFail`ErenMustafaOzdal\LaravelPageModule\Events\Page`Page ModelYayınlama işlemi başarısız olduğunda tetiklenirNotPublishSuccess`ErenMustafaOzdal\LaravelPageModule\Events\Page`Page ModelYayından kaldırma işlemi başarılı olduğunda tetiklenirNotPublishFail`ErenMustafaOzdal\LaravelPageModule\Events\Page`Page ModelYayından kaldırma işlemi başarısız olduğunda tetiklenirLisans
----------------------------------------

[](#lisans)

MIT

###  Health Score

25

—

LowBetter than 35% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity11

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity52

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~4 days

Total

4

Last Release

3597d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/4313376?v=4)[Eren Mustafa ÖZDAL](/maintainers/erenmustafaozdal)[@erenmustafaozdal](https://github.com/erenmustafaozdal)

---

Top Contributors

[![erenmustafaozdal](https://avatars.githubusercontent.com/u/4313376?v=4)](https://github.com/erenmustafaozdal "erenmustafaozdal (64 commits)")

### Embed Badge

![Health badge](/badges/erenmustafaozdal-laravel-page-module/health.svg)

```
[![Health](https://phpackages.com/badges/erenmustafaozdal-laravel-page-module/health.svg)](https://phpackages.com/packages/erenmustafaozdal-laravel-page-module)
```

###  Alternatives

[psalm/plugin-laravel

Psalm plugin for Laravel

3345.1M337](/packages/psalm-plugin-laravel)[illuminate/pipeline

The Illuminate Pipeline package.

9348.3M268](/packages/illuminate-pipeline)[illuminate/pagination

The Illuminate Pagination package.

10533.5M996](/packages/illuminate-pagination)[illuminate/process

The Illuminate Process package.

44869.2k97](/packages/illuminate-process)[illuminate/cookie

The Illuminate Cookie package.

224.5M132](/packages/illuminate-cookie)[aedart/athenaeum

Athenaeum is a mono repository; a collection of various PHP packages

245.2k](/packages/aedart-athenaeum)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
