Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk melaksanakan fungsi mesej peribadi dalam tapak dalam php
Cara melaksanakan fungsi mesej peribadi dalam laman web dalam PHP: 1. Baca badan permintaan permintaan POST 2. Panggil sub-modul untuk memasukkan mesej tapak yang dihantar ke seluruh tapak atau pengguna kumpulan yang dimiliki; 3. Dapatkan mesej tapak yang belum dibaca Kuantiti 4. Semak sama ada messageId milik pengguna semasa
Persekitaran pengendalian artikel ini: sistem Windows 7, PHP versi 7.1, komputer DELL G3
Bagaimanakah php melaksanakan fungsi mesej peribadi dalam tapak?
Pelaksanaan PHP Idea dan Pelan Reka Bentuk Pemesejan Tapak
1 platform penyelenggaraan Apabila pengguna berkomunikasi, mereka lebih bergantung pada WeChat dan pemberitahuan e-mel Sebagai keseluruhan produk, platform operasi dan penyelenggaraan juga memerlukan perkhidmatan yang boleh menjalankan komunikasi dalaman - pemesejan dalam tapak.
Nada reka bentuk mesej di tapak
Nada reka bentuk mesej di tapak bergantung pada cara pengguna menggunakan mesej di tapak:
Pengguna tidak akan melekat pada halaman platform operasi dan penyelenggaraan, menunggu pemberitahuan mesej, menyemak kandungan mesej dan kemudian melompat ke halaman yang mereka mahu beroperasi.
2 Perihalan keperluan
Mesej dalam tapak biasanya perlu menyelesaikan dua keperluan:
Pentadbir kepada berbilang pengguna, pengguna Mesej dalam tapak untuk kumpulan dan seluruh tapak: iaitu, menghantar satu-ke-banyak
(terdapat juga mesej dalam tapak daripada pengguna tentang produk , seperti maklum balas dan soalan tentang modul tertentu)
Keperluan semasa kami ialah:
1 Pentadbir menghantar mesej intra-tapak kepada berbilang pengguna
Tiada pengesahan ketulenan pengguna
Hadkan panjang tajuk dan panjang kandungan (masing-masing 45 bait dan 150 bait, sepadan dengan 15 dan 50 aksara Cina)
Hadkan panjang pinyin penerima (maks . 50 bait panjang)
[Pembelajaran yang disyorkan: "
Tutorial Video PHP"]
2 Pengguna boleh melihat maklumat tapak mereka sendiri Klik " Semua penapis , baca, belum dibaca"
Dikelaskan mengikut sumber mesej: platform pesanan kerja, pengurusan sumber, pemasangan automatik, platform kerentanan, platform kerosakan. . .
3 Pengguna boleh memadam atau memadam secara berkumpulan mesej tapak
4 Pengguna boleh membaca, membaca kelompok dan menandakan semua mesej tapak sebagai dibaca
5 ikon mesej di bahagian atas halaman platform operasi dan penyelenggaraan
memaparkan bilangan mesej yang belum dibaca Jika melebihi 99, ia akan memaparkan 99
4 >Hantar mesej seluruh tapak
Baca kandungan permintaan permintaan POST
Panjang semak
Dapatkan senarai mesej tapak
Panggil sub-modul dan masukkan mesej tapak yang dihantar ke seluruh tapak atau kumpulan pengguna yang saya miliki
Kembalikan data pangkalan data mengikut syarat pertanyaan
Dapatkan bilangan mesej tapak yang belum dibaca
Panggil sub-modul dan masukkan mesej dalam tapak yang dihantar ke seluruh tapak atau kumpulan pengguna yang saya miliki
Kembalikan kuantiti
Baca dalam kelompok
Semak sama ada messageId milik pengguna semasa
Tetapkan bacaan kepada 1 dalam jadual inbox_message dan ubah suai masa_kemas kini
Semua dibaca
update inbox_message set “read”=1, “update_time”=now where “receiver_name”=currentUser() and “read” = 0
Semak sama ada messageId milik pengguna semasa
Tetapkan dipadamkan kepada 1 dalam jadual inbox_message, ubah suai kemas kini_masa
update inbox_message set “deleted”=1, “update_time”=now where “receiver_name”=currentUser() and “deleted” = 0
CREATE TABLE `inbox_message_text` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `title` varchar(128) NOT NULL DEFAULT '', `content` longtext NOT NULL, `create_time` datetime NOT NULL, `update_time` datetime NOT NULL, `send_type` tinyint(4) NOT NULL DEFAULT '0', `creator_name` varchar(255) NOT NULL DEFAULT '', `deleted` tinyint(4) NOT NULL DEFAULT '0', `module_id` bigint(20) NOT NULL, `link` varchar(255) NOT NULL DEFAULT '', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
Selain sumber mesej (nama_modul), mesej dalam tapak itu sendiri Terdapat juga perihalan dimensi yang dipanggil jenis mesej (jenis_mesej), seperti mesej keselamatan, mesej aktiviti, mesej perkhidmatan, dll. Dalam setiap kategori utama , ia boleh dibahagikan kepada subkategori, seperti aktiviti mesej-promosi
Sumber mesej dan jenis mesej boleh mempunyai hubungan ortogon, iaitu, platform pesanan kerja juga boleh mempunyai mesej aktif; sumber mesej juga boleh menjadi jenis jenis mesej, dipanggil "mesej produk"
CREATE TABLE `inbox_message` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `message_text_id` bigint(20) NOT NULL, `receiver_name` varchar(255) NOT NULL DEFAULT '', `read` tinyint(4) NOT NULL DEFAULT '0', `deleted` tinyint(4) NOT NULL DEFAULT '0', `create_time` datetime NOT NULL, `update_time` datetime NOT NULL, PRIMARY KEY (`id`), KEY `inbox_message_receiver_name_deleted_read_id` (`receiver_name`,`deleted`,`read`,`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE `inbox_module` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `code` varchar(128) NOT NULL DEFAULT '', `name` varchar(128) NOT NULL DEFAULT '', `create_time` datetime NOT NULL, `update_time` datetime NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `code` (`code`), UNIQUE KEY `name` (`name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
badan permintaan Jenis Kandungan: application/json
{ "title": "工单审批", "content": "XXX提交了变更申请,请审批", "to": "sunzhongyuan,shenli,wangya", "module_name": "工单平台", "link": "xxx" }
respon
{ "code": 200, "data": 32, "msg": "OK" }
http://127.0.0.1:10085/v1/message?query=message_text_id.module_id.name:xxx&limit=1
{ "code": 200, "data": { "data": [ { "id": 1, "message_text": { "id": 1, "title": "title 2", "content": "content 2", "create_time": "2018-01-12 11:13:48", "update_time": "2018-01-12 11:13:48", "send_type": 1, "creator_name": "sysadmin", "deleted": 0, "link": "xxx", "Messages": null, "module": { "id": 4, "code": "secure", "name": "xxx", "create_time": "2018-01-11 15:38:01", "update_time": "2018-01-11 15:38:01", "MessageTexts": null } }, "receiver_name": "xxx", "read": 0, "deleted": 0, "create_time": "2018-01-12 11:13:48", "update_time": "2018-01-12 11:13:48" } ], "total": 2 }, "msg": "OK" }
respon
{ "code": 200, "data": "OK", "msg": "OK" }
Semua baca PUT: / v1/read_all_messages
respons Sama seperti di atas
Padam dan padam secara kelompok mesej tapak: PUT /v1/delete_messages/:messageIds
balas Sama seperti di atas
Padam semua tapak mesej: PUT /v1/delete_all_messages
respons Sama seperti di atas
Dapatkan senarai sumber mesej: GET /v1/modul
balas
{ "code": 200, "data": [ { "id": 1, "code": "worksheet", "name": "工单平台", "create_time": "2018-01-11 15:21:38", "update_time": "2018-01-11 15:21:38", "MessageTexts": null }, { "id": 2, "code": "cmdb", "name": "资源管理", "create_time": "2018-01-11 15:22:28", "update_time": "2018-01-11 15:22:28", "MessageTexts": null }, ... ], "msg": "OK" }
7. Nota Ujian
1 Menghantar mesej tapak
Antara muka tulen
Pengguna penerima dipisahkan dengan koma , keaslian tidak disahkan
Pengguna penerima telah pengesahan panjang, 50 bait
kandungan tajuk mempunyai pengesahan panjang, masing-masing adalah 45 dan 150 bait
nama_modul ialah senarai, anda mesti memilih satu dari sini
2 Antara muka lain boleh diakses melalui halaman hadapan Pengujian
8. Pengoptimuman
Senarai yang belum dibaca boleh dipaparkan dalam huruf tebal, manakala senarai yang dibaca boleh dipaparkan dalam fon biasa
Kategori mesej dan label dalam tapak. mereka dengan latitud berbeza untuk memudahkan penapisan, carian dan penyekatan
Pengguna boleh menetapkan mesej dalam tapak yang mereka dibenarkan untuk menerima sumber Mesej
Pentadbir boleh menambah, memadam, mengubah suai dan menyemak mesej seluruh tapak, kakitangan seluruh tapak dan atribut mesej seluruh tapak, seperti membatalkan mesej tapak supaya tiada sesiapa pun dapat melihatnya
Pentadbir boleh mengira bilangan mesej yang dihantar dalam tapak, penggunaan setiap produk, bahagian mesej dibaca, masa mesej dibaca dan cara mesej dibaca (klik atau kelompok) Operasi), dsb.9 Reka bentuk titik fungsi utama
Tingkah laku ikon di sudut kanan atas<.>
1 Klik ikon untuk memaparkan N mesej terbaharu yang belum dibaca
Tunjukkan kotak lungsur
Dapatkan N terkini dalam masa nyata Mesej belum dibaca
N boleh menjadi 5 hingga 10, nilai khusus bergantung pada had ketinggian kotak lungsur
Apabila mesej yang belum dibaca kurang daripada N , kotak lungsur turun boleh menyesuaikan diri dengan ketinggian
Jika tiada mesej yang belum dibaca, paparkan "Belum ada mesej baharu"
Hentikan pengambilan setiap 10 saat Antara muka kiraan mesej yang belum dibaca
Gelongsor ke bawah kotak lungsur untuk memaparkan lebih banyak mesej yang belum dibaca (hanya dapatkan id yang lebih kecil daripada id minimum dalam paparan senarai mesej, iaitu, jangan terima mesej baharu selepas mengklik ikon)
Kotak lungsur turun tidak hilang
Masih Hentikan antara muka untuk mendapatkan bilangan mesej yang belum dibaca setiap 10 saat
Kurangkan bilangan mesej yang belum dibaca sebanyak 1
Padamkan mesej semasa daripada senarai mesej yang belum dibaca (sepotong )
Paparan pop timbul kotak
5 Tutup kotak timbul atau klik di luar:
Kotak pop timbul hilang
Kotak lungsur turun tidak hilang
Anda boleh terus mengklik pada mesej yang belum dibaca
Kotak lungsur turun hilang
Kosongkan senarai mesej yang belum dibaca sedia ada
Pulihkan bilangan mesej yang belum dibaca yang diperolehi setiap 10 saat Antara Muka
Gelagat ikon Alibaba Cloud ialah:
Bilangan mesej yang belum dibaca hanya akan diminta sekali apabila halaman dimuat semula dan tidak akan dimuat semula kerap selepas itu (sudah tentu ia juga mungkin Ini kerana selang masa penyegaran adalah agak panjang, tetapi saya tidak menemuinya; atau mungkin kaedah soket digunakan untuk mewujudkan pautan yang panjang)
ikon tuding, iaitu kotak lungsur yang memaparkan mesej yang belum dibaca
Klik ikon untuk memasuki halaman pengurusan mesej tapak Secara lalai ialah "Mesej Belum Dibaca"
4 Klik pada mesej yang belum dibaca dan buka Tab baharu untuk memaparkan butiran mesej (halaman butiran kekal). tidak berubah, iaitu, tiada mesej yang belum dibaca tolak satu, dan mesej yang diklik sahaja tidak dipadamkan daripada kotak lungsur
5 Maksimum 5 mesej boleh dipaparkan sebagai selagi halaman tidak dimuat semula, ia akan sentiasa menjadi 5 mesej ini
6 Tiada tatal untuk lebih banyak fungsi, hanya untuk melihat lebih banyak, klik untuk memasuki halaman pengurusan mesej tapak "
. Perbezaan antara mengklik ikon dan mengklik ikon ialah: mengklik ikon terus melompat ke halaman semasa ke halaman pengurusan mesej tapak. Mengklik "Lihat Lagi" akan mencipta Tab baharu
7 Terdapat butang "Pengurusan Penerimaan Mesej" tambahan Halaman semasa melompat ke halaman pengurusan mesej tapak, tetapi lalai ialah "Pengurusan Penerimaan Asas"
<.>
Sembunyikan bar kemajuan penyemak imbas
Antara muka untuk mendapatkan bilangan mesej yang belum dibaca setiap 10 saat akan mencetuskan penyemak imbas untuk memaparkan bar kemajuan, mengganggu perhatian pengguna, untuk menyembunyikan bar kemajuan ini. Gelagat lain untuk menyegarkan halaman tidak akan terjejas.Atas ialah kandungan terperinci Bagaimana untuk melaksanakan fungsi mesej peribadi dalam tapak dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!