Routing

Perutean Dasar

Perutean pada WPFrame dibuat menjadi 2 jenis yaitu perutean Backend dan Perutean Frontend. Ini dikarenakan WordPress memiliki sistem yang berbeda untuk membuatkan sebuah jalur url pada halaman Backend dan Frontend.

Perutean Frontend di dasarkan pada fungsi dari WordPress untuk mendaftarkan url dinamis menggunakan add_rewrite_rule(). Sedangkan Perutean Backend di dasarkan pada fungsi WordPress untuk menambahkan sebuah menu add_menu_page() dan add_submenu_page() sehingga dalam perutean WPFrame dibuat secara terpisah.

Perutean Backend

Sistem perutean pada Backend terdapat dalam file App/Config/Routes.php. Anda dapat membuat rute baru dari file tersebut dengan menambahkan baris kode khusus yang mengarahkan ke Controller terkait dalam directory App/Controllers. Selain itu Anda juga dapat menggunakan perintah ‘wpfx’ untuk mendaftarkan Perutean Backend.

Terdapat dua variable Array yang perlu Anda perhatikan. Untuk variable $menu_list digunakan untuk mendaftarkan jalur url Backend pada menu WordPress menjadi parent menu. Sedangkan variable $menu_list_sub digunakan untuk mendaftarkan  jalur url backend pada menu WordPress menjadi sub menu yang telah dikaitkan dengan parent menu.

Untuk menambahkan rute backend sebagai parent menu baru secara manual, Anda dapat menggunakan baris kode seperti berikut:

$menu_list[] = [
    'menu_item' =>  [
        'page_title'            =>  'WPFrame', // Title of the Page Menu
        'page_menu_text'        =>  'WPFrame', // Text to show on the menu link
        'page_capability'       =>  'manage_options', // Capability Page Menu
        'page_slug'             =>  'wpf-dashboard', // Page link (slug)
        'page_render'           =>  array($this, 'default_page_render'), // render default view
        'page_menu_icon'        =>  $this->config['plugin_icon_url'], // icon menu (url)
        'page_menu_position'    =>   15 // Menu List Position
    ]
];

Untuk menambahkan rute backend sebagai sub menu baru secara manual, Anda dapat menggunakan baris kode seperti berikut:

$menu_list_sub[] = [
    'menu_item' =>  [
        'page_slug_current'     =>  'wpf-dashboard', // parent slug
        'page_title'            =>  'Sub Menu', // Title of the page
        'page_menu_text'        =>  'Sub Menu', // Text to show on the menu link
        'page_capability'       =>  'manage_options', // Capability
        'page_slug'             =>  'wpf-sub-menu', // Page Link (slug)
        'page_render'           =>  array($this, 'default_page_render'), // render default view
        'page_menu_position'    =>  16 // Sub Menu list position
    ]
];

cara lainnya untuk menambahkan perutean backend pada parent menu, Anda dapat menggunakan perintah wpfx seperti berikut :

php wpfx routing -add -parent '<slug name>' <int position>

dan juga Anda bisa menggunakan perintah berikut untuk menambahkan perutean sub menu:

php wpfx routing -add -sub '<sub slug name>' <int position> '<parent slug name>'

Perutean Frontend

Sistem perutean pada Frontend terdapat pada file App/Config/Froutes.php. Anda dapat membuat rute baru dari file tersebut dengan menambahkan baris kode khusus yang mengarahkan ke Controller terkait dalam directory App/Fcontrollers. Selain itu Anda juga dapat menggunakan perintah ‘wpfx’ untuk mendaftarkan rute frontend.

Berikut adalah contoh untuk menambahkan perutean pada Frontend secara manual sebagai berikut:

$frouting = [
    'page-name'    =>  [
        'page_set'        =>  'Controller_name',
        'controller_set'    =>  ['WPFP\App\Fcontrollers\Example_controller', 'index_method']
    ]
];

Untuk mengisi nilai dari page-name Anda harus menyesuaikannya berdasarkan slug dari page link yang telah di buat dari menu Page pada WordPress. Selanjutnya pada key page_set untuk menentukan nama Controller yang akan di load. Untuk key controller_set diisi menggunakan namespace sampai dengan nama Controller yang terdapat dalam folder Fcontroller dan juga dengan nama method akan di set sebagai default.

Cara lainnya Anda dapat menggunakan perintah wpfx untuk membuat perutean pada Frontend. berikut adalah contoh penggunaannya:

php wpfx routing -addf '<page name>' '<fcontroller name>' '<namespace>' '<method name>' '<first url regex name>' '<last url regex name>'

 

Open Github

Get the source from Initflex Github

Hexsecure

One Step for System Security