Rumah >Peranti teknologi >industri IT >Cara membuat CMS mudah yang memudahkan penyuntingan
Kami mencipta artikel ini dengan kerjasama Froala. Terima kasih kerana menyokong rakan kongsi yang membuat SitePoint mungkin.
Takeaways KeyJuga, mereka sering memerlukan sedikit pengalaman pengekodan. Ini menjadikan mereka pilihan yang baik untuk blogger, perniagaan, pemaju, atau sesiapa yang ingin membina laman web dengan usaha yang kurang.
CMSS digunakan untuk tujuan yang berbeza di seluruh bidang yang berbeza. Sebagai contoh, mereka boleh digunakan untuk menguasai blog, laman web syarikat atau bebas, laman web pendidikan, atau platform e -dagang. Oleh kerana itu, menggunakan CMS tetap menjadi pilihan yang popular dan relevan, memperoleh tempatnya dalam pembangunan web untuk tahun -tahun akan datang.
Terdapat banyak CMS yang ada di pasaran. Sesetengahnya adalah sumber terbuka, sementara yang lain boleh digunakan untuk harga. Kedua-dua sumber terbuka dan dibayar CMS adalah pilihan yang berdaya maju dan mempunyai kelebihan mereka. Mungkin ada juga contoh di mana anda ingin membuat CMS anda sendiri.
Anda boleh menjadi pemaju mencari cabaran, pelajar yang ditugaskan untuk mewujudkan CMS, atau perniagaan yang bercita -cita menjadi nama besar dalam industri CMS. Jika anda ingin membuat sistem pengurusan kandungan, maka artikel ini adalah untuk anda.
bersiap untuk membina cms anda sendiri
Walaupun CMS yang akan kita buat adalah asas, ia juga akan menjadi sangat kukuh. Ini kerana Froala, editor WYSIWYG yang akan kami gunakan, mempunyai kebanyakan ciri yang anda inginkan dalam editor CMS. Artikel ini harus meletakkan anda di landasan yang betul, apa pun matlamat akhir untuk CMS anda.
Juga, ambil perhatian bahawa DBMS (Sistem Pengurusan Pangkalan Data) yang saya akan gunakan adalah Microsoft SQL Server, kerana ia adalah yang paling saya kenal. Anda boleh menukarnya dengan mudah untuk DBMS pilihan anda, seperti MySQL atau MariaDB. Seperti yang kita tidak melakukan apa -apa yang sangat rumit dengan pangkalan data, pilihan DBMS tidak penting di sini .
Sebelum kita meneruskan, mari kita anggap anda sudah mempunyai PHP, DBMS pilihan anda, dan Froala dipasang pada komputer anda. Sekiranya anda belum melakukannya, anda boleh memasangnya dengan melawat laman web masing -masing dan mengikuti arahan.
Biasanya, dalam sistem pengurusan kandungan, terdapat pentadbir dan pengguna akhir. Admin menguruskan halaman, komponen, dan kandungan laman web. Mereka mengekalkan laman web ini, memastikan setiap ciri berfungsi, dan mewujudkan penambahbaikan di mana diperlukan.
Pengguna akhir, sebaliknya, berinteraksi dengan halaman dan komponen laman web berkuasa CMS untuk membuat, mengedit, dan menggunakan kandungan. Kedua -dua pengguna biasanya berinteraksi dengan editor WYSIWYG dalam CMS untuk penciptaan kandungan dan penyuntingan.
Untuk tujuan demonstrasi, dan untuk menjaga perkara yang mudah, kami akan melaksanakan CMS tunggal untuk pentadbir sahaja. Dalam CMS pengeluaran, kita perlu mempertimbangkan banyak faktor lain yang berada di luar skop tutorial ini. Ini termasuk pengurusan pengguna dan hak akses, keselamatan (sanitisasi input, pertanyaan parameter, dll), prestasi, dan banyak lagi.
Dalam CMS mudah kami, pentadbir harus dapat menjalankan tugas -tugas berikut:
Pentadbir juga biasanya boleh mengedit dan memadam komponen halaman, tetapi mari kita tetap membuat dan memadam komponen. Dengan fungsi ini, mari kita mulakan proses kami dengan membuat skema pangkalan data.
Oleh kerana kita mempunyai keperluan mudah, kita juga mempunyai struktur pangkalan data yang lebih mudah. Untuk CMS sampel kami, kami akan menggunakan hanya dua jadual yang tidak berkaitan:
Jadual pertama, pos, akan menyimpan kandungan dari komponen editor, manakala jadual komponen akan menyimpan elemen halaman yang dihasilkan menggunakan bar alat.
Perhatikan bahawa URL mempunyai panjang maksimum 2048 aksara dalam kebanyakan pelayar, tetapi dalam pangkalan data kami, kami akan menetapkannya kepada 255 aksara sahaja. Selain itu, anda juga mungkin mahu menukar lajur ID kedua -dua jadual ke rentetan rawak untuk aplikasi anda.
Membuat antara muka
<span><!--Include Bootstrap CSS--> </span><span><span><span><link</span> href<span>="https://cdn.jsdelivr.net/npm/bootstrap@5.2.0/dist/css/bootstrap.min.css"</span> rel<span>="stylesheet"</span> integrity<span>="sha384-gH2yIJqKdNHPEq0n4Mqa/HGKIhSkIHeL5AyhkYV8i59U5AR6csBvApHHNl/vI1Bx"</span> crossorigin<span>="anonymous"</span>></span> </span> <span><!--Include Bootstrap Icons--> </span><span><span><span><link</span> rel<span>="stylesheet"</span> href<span>="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.9.1/font/bootstrap-icons.css"</span>></span> </span> <span><!--Include Froala Editor CSS--> </span><span><span><span><link</span> href<span>="css/froala_editor.pkgd.min.css"</span> rel<span>="stylesheet"</span> type<span>="text/css"</span> /></span> </span> <span><!--Include Custom CSS--> </span><span><span><span><link</span> href<span>="css/index.css"</span> rel<span>="stylesheet"</span> type<span>="text/css"</span> /></span> </span> <span><!--Include Popper JS--> </span><span><span><span><script</span> src<span>="https://cdn.jsdelivr.net/npm/@popperjs/core@2.11.5/dist/umd/popper.min.js"</span> integrity<span>="sha384-Xe+8cL9oJa6tN/veChSP7q+mnSPaj5Bcu9mPX5F5xIGE0DVittaqT5lorf0EI7Vk"</span> crossorigin<span>="anonymous"</span>></span><span><span></script</span>></span> </span> <span><!--Include Bootstrap JS--> </span><span><span><span><script</span> src<span>="https://cdn.jsdelivr.net/npm/bootstrap@5.2.0/dist/js/bootstrap.min.js"</span> integrity<span>="sha384-ODmDIVzN+pFdexxHEHFBQH3/9/vQ9uori45z4JjnFsRydbmQbmL5t1tQ0culUzyK"</span> crossorigin<span>="anonymous"</span>></span><span><span></script</span>></span> </span> <span><!--Include jQuery--> </span><span><span><span><script</span> src<span>="https://code.jquery.com/jquery-3.6.1.js"</span> integrity<span>="sha256-3zlB5s2uwoUzrXK3BT7AX3FyvojsraNFxCc2vC/7pNI="</span> crossorigin<span>="anonymous"</span>></span><span><span></script</span>></span> </span> <span><!--Include Froala JS--> </span><span><span><span><script</span> type<span>="text/javascript"</span> src<span>="js/froala_editor.pkgd.min.js"</span>></span><span><span></script</span>></span> </span> <span><!--Include Custom JS--> </span><span><span><span><script</span> type<span>="text/javascript"</span> src<span>="js/index.js"</span>></span><span><span></script</span>></span> </span>Komponen berikut yang akan kami kerjakan ialah Navbar dan bar alat. NAVBAR mengandungi tajuk atau jenama laman web dan butang ikon untuk menukarkan penglihatan bar alat (fikirkannya sebagai butang "togol admin toggle").
Sebaliknya, bar alat mengandungi empat butang yang sepadan dengan empat komponen yang boleh ditambahkan secara programatik ke halaman:
<span><span><span><div</span> class<span>="row"</span>></span> </span> <span><span><span><nav</span> class<span>="navbar navbar-expand-xl"</span>></span> </span> <span><span><span><div</span> class<span>="container-fluid"</span>></span> </span> <span><span><span><a</span> class<span>="navbar-brand text-white"</span> href<span>="#"</span>></span>Froala CMS<span><span></a</span>></span> </span> <span><span><span><ul</span> class<span>="navbar-nav me-auto mb-2 mb-lg-0"</span>></span> </span> <span><span><span><li</span> class<span>="nav-item"</span>></span> </span> <span><span><span><a</span> class<span>="bi bi-eye text-white"</span> href<span>="#"</span> <span>onclick<span>="<span>toggleToolbar()</span>"</span></span>></span><span><span></a</span>></span> </span> <span><span><span></li</span>></span> </span> <span><span><span></ul</span>></span> </span> <span><span><span></div</span>></span> </span> <span><span><span></nav</span>></span> </span><span><span><span></div</span>></span> </span>Kod di atas mewujudkan navbar dan komponen. Warna latar belakang navbar adalah #0098F7, memberikan warna biru. Acara toggleToolBar () onClick bertanggungjawab untuk menyembunyikan elemen bar alat. Seterusnya, tulis kod untuk bar alat:
<span><span><span><div</span> class<span>="row mt-5 px-xl-5 mx-xl-5"</span> id<span>="toolbar"</span>></span> </span> <span><span><span><p</span> class<span>="lead ms-xl-5"</span>></span> </span> This is your CMS toolbar. You can add new components to your page by clicking any of the buttons below. To toggle the visibility of the toolbar, click the eye (<span><span><span><i</span> class<span>="bi bi-eye"</span>></span><span><span></i</span>></span>) icon on the navbar. </span> <span><span><span></p</span>></span> </span> <span><span><span><div</span> class<span>="col-xxl-3 col-md-4"</span>></span> </span> <span><span><span><div</span> class<span>="m-xl-5 shadow p-xl-5 rounded border border-0 toolbarBox"</span> data-bs-toggle<span>="modal"</span> data-bs-target<span>="#headingModal"</span>></span> </span> <span><span><span><div</span> class<span>="row text-center display-4"</span>></span> </span> <span><span><span><i</span> class<span>="bi bi-type-h1"</span>></span><span><span></i</span>></span> </span> <span><span><span></div</span>></span> </span> <span><span><span><div</span> class<span>="row text-center h3"</span>></span> </span> <span><span><span><label</span>></span>Heading<span><span></label</span>></span> </span> <span><span><span></div</span>></span> </span> <span><span><span></div</span>></span> </span> <span><span><span></div</span>></span> </span> <span><span><span><div</span> class<span>="col-xxl-3 col-md-4"</span>></span> </span> <span><span><span><div</span> class<span>="m-xl-5 shadow p-xl-5 rounded border border-0 toolbarBox"</span> data-bs-toggle<span>="modal"</span> data-bs-target<span>="#textModal"</span>></span> </span> <span><span><span><div</span> class<span>="row text-center display-4"</span>></span> </span> <span><span><span><i</span> class<span>="bi bi-fonts"</span>></span><span><span></i</span>></span> </span> <span><span><span></div</span>></span> </span> <span><span><span><div</span> class<span>="row text-center h3"</span>></span> </span> <span><span><span><label</span>></span>Text<span><span></label</span>></span> </span> <span><span><span></div</span>></span> </span> <span><span><span></div</span>></span> </span> <span><span><span></div</span>></span> </span> <span><span><span><div</span> class<span>="col-xxl-3 col-md-4"</span>></span> </span> <span><span><span><div</span> class<span>="m-xl-5 shadow p-xl-5 rounded border border-0 toolbarBox"</span> data-bs-toggle<span>="modal"</span> data-bs-target<span>="#linkModal"</span>></span> </span> <span><span><span><div</span> class<span>="row text-center display-4"</span>></span> </span> <span><span><span><i</span> class<span>="bi bi-link-45deg"</span>></span><span><span></i</span>></span> </span> <span><span><span></div</span>></span> </span> <span><span><span><div</span> class<span>="row text-center h3"</span>></span> </span> <span><span><span><label</span>></span>Link<span><span></label</span>></span> </span> <span><span><span></div</span>></span> </span> <span><span><span></div</span>></span> </span> <span><span><span></div</span>></span> </span> <span><span><span><div</span> class<span>="col-xxl-3 col-md-4"</span>></span> </span> <span><span><span><div</span> class<span>="m-xl-5 shadow p-xl-5 rounded border border-0 toolbarBox"</span> <span>onclick<span>="<span>createComponent('editor')</span>"</span></span>></span> </span> <span><span><span><div</span> class<span>="row text-center display-4"</span>></span> </span> <span><span><span><i</span> class<span>="bi bi-pencil-square"</span>></span><span><span></i</span>></span> </span> <span><span><span></div</span>></span> </span> <span><span><span><div</span> class<span>="row text-center h3"</span>></span> </span> <span><span><span><label</span>></span>Editor<span><span></label</span>></span> </span> <span><span><span></div</span>></span> </span> <span><span><span></div</span>></span> </span> <span><span><span></div</span>></span> </span> <span><span><span></div</span>></span> </span>Kami menggunakan paparan grid Bootstrap (klik di sini untuk mengetahui lebih lanjut) dan pilihan saiz untuk membuat komponen butangnya untuk bar alat kami. Kami juga menggunakan ikon bootstrap di samping label butang untuk dibaca yang lebih baik. Apabila membuat CMS anda sendiri, terdapat banyak cara anda boleh mewakili bar alat anda.
Pilihan biasa ialah
navbar , kad , atau offcanvas elemen. Dalam kes ini, kami mewakili mereka menggunakan segi empat tepat seperti kad, masing-masing mempunyai tingkah laku seperti butang.
Kami juga akan menambah beberapa acara untuk kotak bar alat kami. Perhatikan bahawa kami akan membuka modal yang kodnya ditunjukkan di bawah untuk setiap tiga kotak pertama (tajuk, teks, dan pautan).masing -masing mengandungi medan input (dua untuk pautan, satu untuk teks dan satu untuk URL). Akhirnya, kami akan memanggil fungsi CreateComponent untuk memulakan editor WYSIWYG HTML kami untuk CMS:
<span><span><span><div</span> class<span>="modal fade"</span> id<span>="headingModal"</span> tabindex<span>="-1"</span> aria-labelledby<span>="headingModalLabel"</span> aria-hidden<span>="true"</span>></span> </span> <span><span><span><div</span> class<span>="modal-dialog"</span>></span> </span> <span><span><span><div</span> class<span>="modal-content"</span>></span> </span> <span><span><span><div</span> class<span>="modal-header"</span>></span> </span> <span><span><span><h5</span> class<span>="modal-title"</span> id<span>="headingModalLabel"</span>></span>Add a heading:<span><span></h5</span>></span> </span> <span><span><span><button</span> type<span>="button"</span> class<span>="btn-close"</span> data-bs-dismiss<span>="modal"</span> aria-label<span>="Close"</span>></span><span><span></button</span>></span> </span> <span><span><span></div</span>></span> </span> <span><span><span><div</span> class<span>="modal-body"</span>></span> </span> <span><span><span><div</span> class<span>="mb-3"</span>></span> </span> <span><span><span><input</span> type<span>="text"</span> class<span>="form-control"</span> id<span>="headingContent"</span>></span> </span> <span><span><span></div</span>></span> </span> <span><span><span></div</span>></span> </span> <span><span><span><div</span> class<span>="modal-footer"</span>></span> </span> <span><span><span><button</span> type<span>="button"</span> class<span>="btn btn-light"</span> <span>onclick<span>="<span>resetValue('heading')</span>"</span></span> data-bs-dismiss<span>="modal"</span>></span>Cancel<span><span></button</span>></span> </span> <span><span><span><button</span> type<span>="button"</span> class<span>="btn btn-primary"</span> <span>onclick<span>="<span>createComponent('heading')</span>"</span></span> data-bs-dismiss<span>="modal"</span>></span>Save<span><span></button</span>></span> </span> <span><span><span></div</span>></span> </span> <span><span><span></div</span>></span> </span> <span><span><span></div</span>></span> </span><span><span><span></div</span>></span> </span>Kod di atas menunjukkan salah satu modal - khususnya, yang digunakan untuk menambah tajuk baru ke halaman. Modal ini ditunjukkan apabila pengguna mengklik butang "tajuk"/kad. Ia ditolak apabila butang keluar atau membatalkan diklik, atau tajuk ditambah.
modal lain berfungsi sama, tetapi perhatikan bahawa input pautan yang betul harus mempunyai dua medan input untuk teks dan URL (untuk sekarang, kami akan menggunakan hanya satu):
<span><!--Include Bootstrap CSS--> </span><span><span><span><link</span> href<span>="https://cdn.jsdelivr.net/npm/bootstrap@5.2.0/dist/css/bootstrap.min.css"</span> rel<span>="stylesheet"</span> integrity<span>="sha384-gH2yIJqKdNHPEq0n4Mqa/HGKIhSkIHeL5AyhkYV8i59U5AR6csBvApHHNl/vI1Bx"</span> crossorigin<span>="anonymous"</span>></span> </span> <span><!--Include Bootstrap Icons--> </span><span><span><span><link</span> rel<span>="stylesheet"</span> href<span>="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.9.1/font/bootstrap-icons.css"</span>></span> </span> <span><!--Include Froala Editor CSS--> </span><span><span><span><link</span> href<span>="css/froala_editor.pkgd.min.css"</span> rel<span>="stylesheet"</span> type<span>="text/css"</span> /></span> </span> <span><!--Include Custom CSS--> </span><span><span><span><link</span> href<span>="css/index.css"</span> rel<span>="stylesheet"</span> type<span>="text/css"</span> /></span> </span> <span><!--Include Popper JS--> </span><span><span><span><script</span> src<span>="https://cdn.jsdelivr.net/npm/@popperjs/core@2.11.5/dist/umd/popper.min.js"</span> integrity<span>="sha384-Xe+8cL9oJa6tN/veChSP7q+mnSPaj5Bcu9mPX5F5xIGE0DVittaqT5lorf0EI7Vk"</span> crossorigin<span>="anonymous"</span>></span><span><span></script</span>></span> </span> <span><!--Include Bootstrap JS--> </span><span><span><span><script</span> src<span>="https://cdn.jsdelivr.net/npm/bootstrap@5.2.0/dist/js/bootstrap.min.js"</span> integrity<span>="sha384-ODmDIVzN+pFdexxHEHFBQH3/9/vQ9uori45z4JjnFsRydbmQbmL5t1tQ0culUzyK"</span> crossorigin<span>="anonymous"</span>></span><span><span></script</span>></span> </span> <span><!--Include jQuery--> </span><span><span><span><script</span> src<span>="https://code.jquery.com/jquery-3.6.1.js"</span> integrity<span>="sha256-3zlB5s2uwoUzrXK3BT7AX3FyvojsraNFxCc2vC/7pNI="</span> crossorigin<span>="anonymous"</span>></span><span><span></script</span>></span> </span> <span><!--Include Froala JS--> </span><span><span><span><script</span> type<span>="text/javascript"</span> src<span>="js/froala_editor.pkgd.min.js"</span>></span><span><span></script</span>></span> </span> <span><!--Include Custom JS--> </span><span><span><span><script</span> type<span>="text/javascript"</span> src<span>="js/index.js"</span>></span><span><span></script</span>></span> </span>
Akhirnya, kami akan menambah coretan kod di atas ke fail index.css kami untuk menukar warna latar belakang kotak bar alat dan kursor tetikus pada hover. Setelah selesai, antara muka pengguna anda harus muncul seperti yang ditunjukkan di bawah.
Menghantar data
Kami akan menggunakan fungsi ini untuk menghantar komponen yang dibuat ke pangkalan data. Ia memerlukan ComponentType, yang menggambarkan jenis komponen (pautan, tajuk, teks, editor), sebagai parameternya. Pertama, kita mesti menentukan jenis komponen menggunakan pernyataan switch-case. Untuk tajuk, teks, dan pautan, kami hanya akan menghantar kandungan mereka bersama -sama dengan jenis komponen mereka kepada PHP/Add.php menggunakan permintaan AJAX. Sebaliknya, untuk editor, kita hanya perlu menghantar jenis komponen. Selepas kandungannya berjaya disimpan, kami akan memanggil fungsi GetComponents () untuk "menyegarkan" komponen yang dipaparkan.
Fungsi ini hanya menambah atau membuang kelas D-Flex dan D-tiada dari bar alat seperti yang diperlukan.
Fungsi yang mempunyai parameter ComponentType, ResetValue menghidupkan semula nilai medan input dengan mendapatkan setiap elemen dengan ID dan menetapkan nilainya kepada rentetan kosong.
Fungsi ini mula -mula membuat permintaan HTTP AJAX kepada PHP/LOAD.PHP untuk mendapatkan data komponen dari pangkalan data. Jika berjaya, ia secara dinamik menjana HTML mengikut komponen yang diambil dari pangkalan data (mis., Satu
Fungsi getPosts () terdiri daripada permintaan AJAX yang mengambil semua jawatan dari pangkalan data melalui php/loadposts.php. Sama seperti getComponents (), fungsi ini secara dinamik menjana HTML untuk memaparkan jawatan.
Seperti yang anda perhatikan sebelum ini, kami mempunyai empat fail PHP - dua untuk menambah komponen dan jawatan, dan dua untuk memuatkannya. Mereka terdiri daripada kod yang sama, bermula dari menyambung ke pangkalan data dengan sqlsrv_connect, mendapatkan pembolehubah $ _post (jika ada), dan menentukan dan menjalankan pertanyaan. Disenaraikan di bawah adalah pertanyaan yang terlibat dalam fail ini:
<span><!--Include Bootstrap CSS--> </span><span><span><span><link</span> href<span>="https://cdn.jsdelivr.net/npm/bootstrap@5.2.0/dist/css/bootstrap.min.css"</span> rel<span>="stylesheet"</span> integrity<span>="sha384-gH2yIJqKdNHPEq0n4Mqa/HGKIhSkIHeL5AyhkYV8i59U5AR6csBvApHHNl/vI1Bx"</span> crossorigin<span>="anonymous"</span>></span> </span> <span><!--Include Bootstrap Icons--> </span><span><span><span><link</span> rel<span>="stylesheet"</span> href<span>="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.9.1/font/bootstrap-icons.css"</span>></span> </span> <span><!--Include Froala Editor CSS--> </span><span><span><span><link</span> href<span>="css/froala_editor.pkgd.min.css"</span> rel<span>="stylesheet"</span> type<span>="text/css"</span> /></span> </span> <span><!--Include Custom CSS--> </span><span><span><span><link</span> href<span>="css/index.css"</span> rel<span>="stylesheet"</span> type<span>="text/css"</span> /></span> </span> <span><!--Include Popper JS--> </span><span><span><span><script</span> src<span>="https://cdn.jsdelivr.net/npm/@popperjs/core@2.11.5/dist/umd/popper.min.js"</span> integrity<span>="sha384-Xe+8cL9oJa6tN/veChSP7q+mnSPaj5Bcu9mPX5F5xIGE0DVittaqT5lorf0EI7Vk"</span> crossorigin<span>="anonymous"</span>></span><span><span></script</span>></span> </span> <span><!--Include Bootstrap JS--> </span><span><span><span><script</span> src<span>="https://cdn.jsdelivr.net/npm/bootstrap@5.2.0/dist/js/bootstrap.min.js"</span> integrity<span>="sha384-ODmDIVzN+pFdexxHEHFBQH3/9/vQ9uori45z4JjnFsRydbmQbmL5t1tQ0culUzyK"</span> crossorigin<span>="anonymous"</span>></span><span><span></script</span>></span> </span> <span><!--Include jQuery--> </span><span><span><span><script</span> src<span>="https://code.jquery.com/jquery-3.6.1.js"</span> integrity<span>="sha256-3zlB5s2uwoUzrXK3BT7AX3FyvojsraNFxCc2vC/7pNI="</span> crossorigin<span>="anonymous"</span>></span><span><span></script</span>></span> </span> <span><!--Include Froala JS--> </span><span><span><span><script</span> type<span>="text/javascript"</span> src<span>="js/froala_editor.pkgd.min.js"</span>></span><span><span></script</span>></span> </span> <span><!--Include Custom JS--> </span><span><span><span><script</span> type<span>="text/javascript"</span> src<span>="js/index.js"</span>></span><span><span></script</span>></span> </span>
<span><span><span><div</span> class<span>="row"</span>></span> </span> <span><span><span><nav</span> class<span>="navbar navbar-expand-xl"</span>></span> </span> <span><span><span><div</span> class<span>="container-fluid"</span>></span> </span> <span><span><span><a</span> class<span>="navbar-brand text-white"</span> href<span>="#"</span>></span>Froala CMS<span><span></a</span>></span> </span> <span><span><span><ul</span> class<span>="navbar-nav me-auto mb-2 mb-lg-0"</span>></span> </span> <span><span><span><li</span> class<span>="nav-item"</span>></span> </span> <span><span><span><a</span> class<span>="bi bi-eye text-white"</span> href<span>="#"</span> <span>onclick<span>="<span>toggleToolbar()</span>"</span></span>></span><span><span></a</span>></span> </span> <span><span><span></li</span>></span> </span> <span><span><span></ul</span>></span> </span> <span><span><span></div</span>></span> </span> <span><span><span></nav</span>></span> </span><span><span><span></div</span>></span> </span>
<span><span><span><div</span> class<span>="row mt-5 px-xl-5 mx-xl-5"</span> id<span>="toolbar"</span>></span> </span> <span><span><span><p</span> class<span>="lead ms-xl-5"</span>></span> </span> This is your CMS toolbar. You can add new components to your page by clicking any of the buttons below. To toggle the visibility of the toolbar, click the eye (<span><span><span><i</span> class<span>="bi bi-eye"</span>></span><span><span></i</span>></span>) icon on the navbar. </span> <span><span><span></p</span>></span> </span> <span><span><span><div</span> class<span>="col-xxl-3 col-md-4"</span>></span> </span> <span><span><span><div</span> class<span>="m-xl-5 shadow p-xl-5 rounded border border-0 toolbarBox"</span> data-bs-toggle<span>="modal"</span> data-bs-target<span>="#headingModal"</span>></span> </span> <span><span><span><div</span> class<span>="row text-center display-4"</span>></span> </span> <span><span><span><i</span> class<span>="bi bi-type-h1"</span>></span><span><span></i</span>></span> </span> <span><span><span></div</span>></span> </span> <span><span><span><div</span> class<span>="row text-center h3"</span>></span> </span> <span><span><span><label</span>></span>Heading<span><span></label</span>></span> </span> <span><span><span></div</span>></span> </span> <span><span><span></div</span>></span> </span> <span><span><span></div</span>></span> </span> <span><span><span><div</span> class<span>="col-xxl-3 col-md-4"</span>></span> </span> <span><span><span><div</span> class<span>="m-xl-5 shadow p-xl-5 rounded border border-0 toolbarBox"</span> data-bs-toggle<span>="modal"</span> data-bs-target<span>="#textModal"</span>></span> </span> <span><span><span><div</span> class<span>="row text-center display-4"</span>></span> </span> <span><span><span><i</span> class<span>="bi bi-fonts"</span>></span><span><span></i</span>></span> </span> <span><span><span></div</span>></span> </span> <span><span><span><div</span> class<span>="row text-center h3"</span>></span> </span> <span><span><span><label</span>></span>Text<span><span></label</span>></span> </span> <span><span><span></div</span>></span> </span> <span><span><span></div</span>></span> </span> <span><span><span></div</span>></span> </span> <span><span><span><div</span> class<span>="col-xxl-3 col-md-4"</span>></span> </span> <span><span><span><div</span> class<span>="m-xl-5 shadow p-xl-5 rounded border border-0 toolbarBox"</span> data-bs-toggle<span>="modal"</span> data-bs-target<span>="#linkModal"</span>></span> </span> <span><span><span><div</span> class<span>="row text-center display-4"</span>></span> </span> <span><span><span><i</span> class<span>="bi bi-link-45deg"</span>></span><span><span></i</span>></span> </span> <span><span><span></div</span>></span> </span> <span><span><span><div</span> class<span>="row text-center h3"</span>></span> </span> <span><span><span><label</span>></span>Link<span><span></label</span>></span> </span> <span><span><span></div</span>></span> </span> <span><span><span></div</span>></span> </span> <span><span><span></div</span>></span> </span> <span><span><span><div</span> class<span>="col-xxl-3 col-md-4"</span>></span> </span> <span><span><span><div</span> class<span>="m-xl-5 shadow p-xl-5 rounded border border-0 toolbarBox"</span> <span>onclick<span>="<span>createComponent('editor')</span>"</span></span>></span> </span> <span><span><span><div</span> class<span>="row text-center display-4"</span>></span> </span> <span><span><span><i</span> class<span>="bi bi-pencil-square"</span>></span><span><span></i</span>></span> </span> <span><span><span></div</span>></span> </span> <span><span><span><div</span> class<span>="row text-center h3"</span>></span> </span> <span><span><span><label</span>></span>Editor<span><span></label</span>></span> </span> <span><span><span></div</span>></span> </span> <span><span><span></div</span>></span> </span> <span><span><span></div</span>></span> </span> <span><span><span></div</span>></span> </span>
<span><span><span><div</span> class<span>="modal fade"</span> id<span>="headingModal"</span> tabindex<span>="-1"</span> aria-labelledby<span>="headingModalLabel"</span> aria-hidden<span>="true"</span>></span> </span> <span><span><span><div</span> class<span>="modal-dialog"</span>></span> </span> <span><span><span><div</span> class<span>="modal-content"</span>></span> </span> <span><span><span><div</span> class<span>="modal-header"</span>></span> </span> <span><span><span><h5</span> class<span>="modal-title"</span> id<span>="headingModalLabel"</span>></span>Add a heading:<span><span></h5</span>></span> </span> <span><span><span><button</span> type<span>="button"</span> class<span>="btn-close"</span> data-bs-dismiss<span>="modal"</span> aria-label<span>="Close"</span>></span><span><span></button</span>></span> </span> <span><span><span></div</span>></span> </span> <span><span><span><div</span> class<span>="modal-body"</span>></span> </span> <span><span><span><div</span> class<span>="mb-3"</span>></span> </span> <span><span><span><input</span> type<span>="text"</span> class<span>="form-control"</span> id<span>="headingContent"</span>></span> </span> <span><span><span></div</span>></span> </span> <span><span><span></div</span>></span> </span> <span><span><span><div</span> class<span>="modal-footer"</span>></span> </span> <span><span><span><button</span> type<span>="button"</span> class<span>="btn btn-light"</span> <span>onclick<span>="<span>resetValue('heading')</span>"</span></span> data-bs-dismiss<span>="modal"</span>></span>Cancel<span><span></button</span>></span> </span> <span><span><span><button</span> type<span>="button"</span> class<span>="btn btn-primary"</span> <span>onclick<span>="<span>createComponent('heading')</span>"</span></span> data-bs-dismiss<span>="modal"</span>></span>Save<span><span></button</span>></span> </span> <span><span><span></div</span>></span> </span> <span><span><span></div</span>></span> </span> <span><span><span></div</span>></span> </span><span><span><span></div</span>></span> </span>
ingin melihat CMS asas kita dalam tindakan? Mari kita uji!
Pertama, mari buat beberapa komponen halaman menggunakan bar alat yang kami bina.
Sekarang bahawa kami telah mencipta salah satu daripada setiap komponen, termasuk contoh editor, mari cuba menambah jawatan ke halaman kami.
Dalam video di atas, kita dapat melihat beberapa ciri yang boleh ditawarkan oleh editor WYSIWYG yang kuat. Ini termasuk pemformatan fon, salinan-padat semasa memelihara format, dan muat naik imej. Ia juga menunjukkan bilangan aksara di sudut kanan bawah untuk penulis kiraan yang sedar. Selepas menyimpan kandungan, kami melihatnya dipaparkan tepat di bawah editor. Anda mungkin mahu menambah lebih banyak padding dan merancang atau menukar paparan sepenuhnya untuk siaran anda, tetapi ini akan dilakukan buat masa ini.
Froala menyediakan lebih dari seratus ciri yang dapat memperkayakan pengeditan kandungan dan pengalaman pengguna. Mereka juga diletakkan dengan baik untuk menghalang pengguna yang luar biasa. Editor boleh disesuaikan, jadi anda hanya boleh memasukkan ciri -ciri yang anda mahu pengguna anda gunakan.
Setelah menyelamatkan kandungan jawatan kami, kami kini boleh menyemak jadual pangkalan data.
Untuk aplikasi CMS yang lebih besar, anda boleh menyimpan maklumat pos tambahan, termasuk butiran pengguna, komen, interaksi halaman, dan statistik, antara lain. Sudah tentu, anda perlu membuat jadual lain yang berkaitan untuk ini.
Akhirnya, mari kita lihat bagaimana pengguna akhir melihat halaman menggunakan butang togol bar alat kami.
dan di sana anda memilikinya - CMS yang boleh anda bina; Yayasan rock-pepejal untuk projek CMS rumit pada masa akan datang.
Apa yang akan datang?
Satu peningkatan adalah antara muka dan penambahan ciri -ciri baru. Ini termasuk hak akses pengguna, bahagian komen, enjin carian, alat tambahan, komponen halaman, dan tema, untuk menamakan beberapa.
Satu lagi peningkatan jelas yang boleh anda buat ialah keselamatan. Anda boleh melindungi CMS, pelayan, data, pengguna, dan perniagaan anda dengannya. Kami mengesyorkan menyemak pautan ini untuk panduan dari OWASP (Open Web Application Security Project) yang menerangkan amalan keselamatan terbaik.
Anda mungkin juga ingin mengetahui lebih lanjut mengenai editor WYSIWYG pilihan anda. Sebagai contoh, anda boleh menyemak sama ada ia mempunyai halaman dokumentasi yang komprehensif dan mudah difahami (klik di sini untuk melihat contoh).
Satu lagi cara untuk membiasakan diri dengan editor adalah menggunakan demo dan percubaan percuma. Dan apabila anda melihat manfaat yang boleh dibawa, anda boleh melakukan kemudahan anda. Editor ini menjimatkan masa, dan anda memerlukan bulan -bulan tambahan (atau bahkan tahun) untuk membuat dan menggilap ciri -ciri lain CMS anda.
Akhir sekali, anda perlu membaca lebih lanjut mengenai amalan terbaik CMS. Mereka berubah dari semasa ke semasa, jadi dikemas kini sentiasa lebih baik.
kami berharap anda menikmati membaca panduan ini dan matlamat anda untuk mewujudkan CMS sekarang kelihatan lebih mudah untuk dicapai.
Bagaimana saya boleh memastikan CMS saya mesra pengguna? Fokus pada mewujudkan antara muka intuitif yang mudah dinavigasi. Ini termasuk menu yang jelas, butang yang mudah dicari, dan struktur logik. Di samping itu, berikan dokumentasi dan sokongan yang komprehensif untuk membantu pengguna memahami cara menggunakan CMS dengan berkesan. Ciri -ciri yang membolehkan pengguna mengubah suai susun atur, reka bentuk, dan fungsi laman web mereka. Ini termasuk pilihan untuk menukar tema, menambah plugin, dan menyesuaikan kod. Di samping itu, pastikan CMS anda menyokong pelbagai jenis kandungan, seperti teks, imej, dan video. untuk melindungi kandungan anda. Ini termasuk ciri-ciri seperti keperluan kata laluan yang kuat, pengesahan dua faktor, dan kemas kini keselamatan biasa. Di samping itu, pertimbangkan untuk menggabungkan langkah-langkah untuk melindungi daripada ancaman keselamatan yang sama, seperti suntikan SQL dan skrip lintas tapak. Mesra, pertimbangkan untuk menggabungkan ciri -ciri yang membantu meningkatkan keterlihatan laman web anda pada enjin carian. Ini termasuk pilihan untuk menambah tag meta, mewujudkan URL mesra SEO, dan mengintegrasikan dengan alat SEO yang popular. Di samping itu, pastikan CMS anda menyokong masa pemuatan cepat dan reka bentuk mesra mudah alih, kerana faktor-faktor ini juga boleh memberi kesan kepada SEO. Alat -alat dengan CMS anda dapat meningkatkan fungsinya dan menjadikannya lebih efisien. Ini termasuk alat untuk SEO, analisis, integrasi media sosial, dan banyak lagi. Walau bagaimanapun, pastikan integrasi ini tidak berkompromi dengan keselamatan atau prestasi CMS anda. kandungan dan pengguna tanpa menjejaskan prestasi. Ini boleh melibatkan mengoptimumkan kod anda, menggunakan pangkalan data yang cekap, dan melaksanakan teknik caching. Di samping itu, pertimbangkan untuk menggunakan seni bina yang fleksibel yang boleh menyesuaikan diri dengan perubahan keperluan.
Atas ialah kandungan terperinci Cara membuat CMS mudah yang memudahkan penyuntingan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!