Masino Sinaga

Web Development and PHPMaker

Anda di sini: Beranda / PHPMaker / Membuat URL yang SEO-Friendly Tanpa Menggunakan Nama Table di PHPMaker 2021
Siap untuk Menggunakan Versi Baru Lagi? PHPMaker 2022 Sudah Dirilis, Gaes!
Mencegah Pengguna Akhir Mengubah Data Melalui Akses URL di PHPMaker 2021

Membuat URL yang SEO-Friendly Tanpa Menggunakan Nama Table di PHPMaker 2021

Ming, 15 Agustus 2021 oleh Masino Sinaga 7 Komentar

Lagi-lagi, ada pertanyaan bagus mengenai artikel Mengenal SEO-Friendly URL di Aplikasi Web yang Dihasilkan oleh PHPMaker 2021. Apakah kita bisa membuat URL yang SEO-Friendly tanpa menggunakan nama Tabelnya?

Pertanyaan yang bagus, karena jawabannya semakin membuktikan betapa powerful dan flexible-nya PHPMaker 2021. Tentu saja, jawabannya bisa. Bagaimana caranya? Hehe… sabar… sabar… Sebelum mengetahui caranya, ada baiknya kita bahas dulu URL yang digunakan oleh PHPMaker 2021.

Seperti yang sudah kita ketahui melalui artikel di atas tadi, ada dua bentuk URL yang sudah disediakan oleh PHPMaker 2021, yaitu:

app/modelslist
app/models/list

Dalam contoh di atas, diasumsikan kita menggunakan satu table di database yang bernama models.

Cara pertama dan yang secara standar dipakai oleh PHPMaker 2021 adalah:

app/modelslist

Artinya, di cara pertama ini, nama table dan jenis halamannya digabung.

Sedangkan cara kedua, adalah dengan memisahkan nama table dengan jenis halamannya, seperti contoh berikut:

app/models/list

Mungkin ada yang bertanya-tanya, bagaimana cara PHPMaker 2021 mendefinisikan kedua bentuk URL di atas? Jawabannya bisa kita lihat kode yang sudah di-generate oleh PHPMaker 2021 di dalam file src/routes.php.

Perhatikan kode yang ini pada file tersebut:

    // models
    $app->any('/modelslist[/{ID}]', ModelsController::class . ':list')->add(PermissionMiddleware::class)->setName('modelslist-models-list'); // list
    ...
    $app->group(
        '/models',
        function (RouteCollectorProxy $group) {
            $group->any('/' . Config("LIST_ACTION") . '[/{ID}]', ModelsController::class . ':list')->add(PermissionMiddleware::class)->setName('models/list-models-list-2'); // list
            ...
        }
    );

Karena routes untuk membuat URL yang digunakan table models tadi banyak, dan supaya tidak bingung dengan kode lainnya, sengaja saya potong kode di atas, dengan memberi tanda tiga titik (…).

Kode di atas menjelaskan bahwa ada dua cara untuk membuat dua bentuk URL seperti yang sudah kita contohkan sebelumnya. Perhatikan kode yang $app->any dan seterusnya, itu adalah kode untuk membuat URL cara pertama.

Sedangkan untuk URL yang cara kedua, menggunakan kode yang $app->group dan seterusnya. Sudah tahu perbedaannya kan?

Kalau sudah tahu, berarti itu artinya kita bisa membuat URL yang cara ketiga, sesuai keinginan kita. Di sinilah sekaligus menjawab pertanyaan di awal artikel ini tadi.

Katakanlah kita ingin membuat URL yang mirip cara kedua, tapi nama table-nya kita samarkan (dalam hal ini kita ganti dari kata models menjadi data-model), sehingga bentuknya menjadi seperti ini:

app/data-model/list

Cukup tambahkan kode berikut ke dalam server event Route_Action:

  $app->group(
      '/data-model',
      function (\Slim\Routing\RouteCollectorProxy $group) {
          $group->any('/' . Config("LIST_ACTION") . '[/{ID}]', ModelsController::class . ':list')->add(PermissionMiddleware::class)->setName('data-model/list-models-list-3'); // list
          ...
      }
  );

Tentu saja jika kita ingin menambahkan routes untuk halaman selain List, yaitu Add, Edit, View, dan Search, maka ganti kode tiga titik di atas dengan kode untuk halaman-halaman tersebut, dari dalam file src/routes.php tadi.

Sampai di sini, pertanyaan di awal artikel ini sudah terjawab sekaligus tersolusikan. Sekarang kita sudah bisa membuat URL yang SEO-Friendly, tanpa selalu menggunakan nama table aslinya.

Betapa menyenangkannya menggunakan PHPMaker 2021, bukan?

Ditempatkan di bawah: PHPMaker Ditag dengan:Belajar PHPMaker, PHPMaker 2021, PHPMaker Indonesia, Route_Action, SEO Friendly, Server Events, Tutorial PHPMaker, URL

Masino Sinaga

Web Developer pengguna PHPMaker untuk membangun Aplikasi Web sejak tahun 2004. Sampai sekarang masih aktif dan rajin membagikan pengalamannya menggunakan PHPMaker melalui situs masinosinaga.com, ilovephpmaker.com, dan phpmakerprojects.com.

Siap untuk Menggunakan Versi Baru Lagi? PHPMaker 2022 Sudah Dirilis, Gaes!
Mencegah Pengguna Akhir Mengubah Data Melalui Akses URL di PHPMaker 2021

Komentar

  1. Dendi mengatakan

    Ming, 15 Agustus 2021 pada 10:08 pm

    Terimakasih bang, sudah dibuatkan artikel khusus atas pertanyaan saya.

    Sudah saya coba bang, tapi masih ada kendala , Link halaman List masih ngikut seperti di contoh artikel sebelumnya.

    Apa harus ada yang diubah di MenuItem_Adding nya juga ya ?

    Balas
    • Masino Sinaga mengatakan

      Ming, 15 Agustus 2021 pada 10:26 pm

      Iya betul, harus tetap menambahkan kode di server event MenuItem_Adding, karena standar URL nya menggunakan cara pertama yang modelslist untuk mengganti link di bagian Item Menu pada Sidebar atau Navbar.

      Sedangkan link yang terdapat di halaman List, bisa menggunakan server event Row_Rendered, seperti yang sudah dibahas di artikel yang satunya tadi.

      Balas
      • Nanda mengatakan

        Sel, 6 Desember 2022 pada 4:55 pm

        maaf bang Masino, ternyata untuk perlakuan Route untuk Custom File beda lagi ya ?
        untuk mengambil ID dari sebuah Custom File.

        misalnya kita akan menampilkan Output dari sebuah Custm File yang mengambil Nilai ID dari sebuah tabel/ List.

        untuk ambil nilainya, bisa memanfaatkan Row_Rendered/ ListOptions_Rendered dari Halaman List untuk diarahkan ke Halaman Custom File tadi.
        sampai disini engga ada masalah.

        misalnya saya buat Custom File dengan nama detail_siswa.php (nis, nama, alamat)
        secara Standar (yang saya tahu) untuk menampilkan Halaman tersebut dengan ambil nilai “nis” bisa memanfaatkan Page_Load dari Custom File terkait, sehingga URL menjadi :
        detailsiswa.php?nis=005 secara fungsi sudah bisa berjalan.

        tapi, apakah kita bisa merubah URL tersebut menjadi detail-siswa/nis/005 ?
        dengan memanfaatkan Route_Action seperti artikel diatas ?

        Balas
        • Masino Sinaga mengatakan

          Sel, 6 Desember 2022 pada 5:31 pm

          Iya, jelas beda.

          Custom File sama sekali kosong dan tidak menggunakan Table Class seperti bawaan asli yang di-generate oleh PHPMaker dari object Tables/Views di database.

          Saya belum pernah coba untuk mengubah route-nya menggunakan Route_Action. Tapi kalau melihat dari fungsi server event tersebut, harusnya bisa. Silahkan dicoba saja dulu, kabarkan hasilnya ya.

          Balas
          • Nanda mengatakan

            Rab, 7 Desember 2022 pada 10:43 am

            masih saya coba nih Bang Masino

            Step 1 buat Route baru :

            $app->get('/siswa/{nis}', function ($request, $response, array $args) {
            $name = ExecuteScalar("SELECT * FROM siswa WHERE nis = " . AdjustSql($args['nis']));  
            $response->getBody()->write($name);  
            return $response; // Return the response
            });
            

            Step 2 :
            Row Rendered Tabel Siswa :
            $this->nis->ViewValue =”nis->CurrentValue.”‘>NIS“;

            Nama File asli : detailsiswa.php

            Step 3 (di halaman detailsiswa.php )
            // saya coba ambil nilai GET “nis” dari Step 2
            $nis = $_GET[“nis”];
            $sql = “SELECT * from siswa WHERE nis=’$nis’ “;
            // bla bla bla….

            sampai disini berhasil menampilkan data.
            Hasil URL di browser :
            …./siswa?nis=005

            namun jika saya ubah URL menjadi :
            $this->nis->ViewValue =”nis->CurrentValue.”‘>NIS“;
            hasil yang diharapkan :
            …./siswa/nis/005

            nilai ID/ “nis” menjadi tidak terbaca “Undefined index” saat ambil nilai $_GET[“nis”] di halaman Custom File tersebut.

            namun jika dicoba diberi nilai Manual, misalnya $nis = ‘005’; hasilnya bisa.

            intinya sementara masalah ada di pengambilan nilai $_GET (baik saat ditulis di PageLoad maupun ketika ditulis langsung di Server Event Content dari Custom File tersebut)

            Balas
            • Masino Sinaga mengatakan

              Rab, 7 Desember 2022 pada 1:08 pm

              Coba trik berikut:
              How to Get Route Values from URL (v2021).

              Balas

Trackbacks

  1. Mari Berkenalan dengan Server Event Route_Action di PHPMaker 2021 – Masino Sinaga berkata:
    Sen, 16 Agustus 2021 pukul 11:23 am

    […] Selain itu, kita juga bisa membuat routes sendiri menggunakan server event tersebut. Solusi selengkapnya, silahkan simak artikel Membuat URL yang SEO-Friendly Tanpa Menggunakan Nama Table di PHPMaker 2021. […]

    Balas

Tinggalkan Balasan ke Dendi Batalkan balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

Situs ini menggunakan Akismet untuk mengurangi spam. Pelajari bagaimana data komentar Anda diproses

Pos-pos Terbaru

  • Alasan 20 Harus Pakai Masino Extensions: Maximum Record per Page
  • Alasan 19 Harus Pakai Masino Extensions: Custom Breadcrumb Links
  • Alasan 18 Harus Pakai Masino Extensions: Improvement User Level Permissions
  • Alasan 17 Harus Pakai Masino Extensions: Dynamic Permission for Export Data
  • Alasan 16 Harus Pakai Masino Extensions: Confirm Before Save

Menu

  • Siapa Saya?
  • Web Development
  • PHPMaker
  • Umum
  • Syarat dan Ketentuan
  • Sitemap (Peta Situs)
  • Komentar

Komentar Terbaru

  • Demo Masino Extensions for PHPMaker 2026 – Masino Sinaga pada Fitur-Fitur Masino Extensions untuk PHPMaker 2024
  • Masino Sinaga pada Kode Javascript yang Berubah di PHPMaker 2026 dari PHPMaker 2025
  • Angg* pada Kode Javascript yang Berubah di PHPMaker 2026 dari PHPMaker 2025
  • Masino Sinaga pada Cara Menampilkan Tombol Close di Footer Modal buat Custom File yang SkipHeaderFooter-nya Bernilai True
  • Masino Sinaga pada Cara Menampilkan Tombol Close di Footer Modal buat Custom File yang SkipHeaderFooter-nya Bernilai True

Situs Terkait

  1. I Love PHPMaker
  2. Situs Resmi PHPMaker
  3. Forum Diskusi PHPMaker
  4. PHPMaker di IlmuKomputer.com
  5. PHPMaker Projects
  6. PHPMaker Learning

Baru di PHPMaker?

Baca ini terlebih dulu ...

  1. Ayo Menjadi Web Developer yang Cerdas!
  2. PHPMaker: PHP Code Generator + PHP Framework
  3. Pertanyaan-Pertanyaan yang Paling Sering Diajukan Seputar PHPMaker
  4. Tips buat Anda Pemula yang Baru Mengenal dan Menggunakan PHPMaker
  5. Bacalah Help, Bacalah Help, dan Bacalah Help di PHPMaker!

(c) Masino Sinaga 2009 - 2026 | WordPress | Catat masuk | Kembali ke atas