Kami sedang menulis modul kernel Linux yang ringkas. Mengalih keluar modul kernel

]

Modul digunakan untuk memanjangkan dan mengubah suai cara ZNC berfungsi. Pengguna berinteraksi dengan modul yang paling biasa dengan menghantar mesej kepada pengguna khas di IRC. Contohnya, untuk melihat kata kunci sorotan dalam senarai tontonan anda, anda akan hantar /msg *senarai tontonan. Apabila ZNC melihat bahawa nama panggilan yang anda mesej bermula dengan asterisk, ia tidak memajukan mesej ke IRCd/pelayan sebaliknya menghantarnya ke modul yang betul untuk diproses. Dalam kes ini, modul jam tangan akan mendapat mesej dan membalas awak dengan senarai kata kunci anda. Ini menjadikan cara yang sangat mudah dan standard untuk mengkonfigurasi atau berkomunikasi dengan modul anda yang dimuatkan, serta cara biasa dan standard untuk modul dimuatkan anda memaparkan status atau maklumat lain. Notis bahawa ini adalah untuk modul yang dimuatkan. Anda mesti memuatkan modul yang diberikan, sebagai contoh / jam tangan znc loadmod, sebelum anda boleh antara muka dengan modul jam tangan. Kebanyakan modul akan membalas /msg *modul bantuan dengan senarai arahan yang tersedia.

Modul ZNC dimuatkan sama ada secara global, setiap rangkaian, atau pada a setiap pengguna asas. Setiap modul mentakrifkan sendiri sama ada ia tersedia untuk dimuatkan sebagai global, khusus rangkaian dan/atau khusus pengguna. Tahap pengguna dan modul rangkaian boleh melakukan pelbagai perkara daripada memanipulasi mesej masuk/keluar kepada melaksanakan pelanggan Twitter yang hebat. Mereka juga boleh melakukan lebih banyak tugas IRC tradisional seperti auto-op berasaskan cabaran , menjauhkan kamu, atau log masuk ke cakera. Setiap pengguna boleh memuatkan dan mengkonfigurasi set modul mereka sendiri untuk menyesuaikan pengalaman mereka agar sesuai dengan pilihan mereka.

Modul global boleh dimuatkan oleh pentadbir dan menyediakan kefungsian atau mengubah tingkah laku untuk semua pengguna. Sebagai contoh, yang barisan parti modul mestilah global kerana ia menyediakan fungsi untuk semua pengguna pada contoh ZNC tertentu untuk dapat berkomunikasi antara satu sama lain dari dalam ZNC sendiri. Modul global boleh melakukan semua yang boleh dilakukan oleh modul peringkat pengguna, serta beberapa tambahan. Mereka boleh menggantikan ZNC sistem pengesahan, ubah suai proses penulisan konfigurasi, berurusan dengan CAP, dsb.

Jangan ragu untuk membuat halaman wiki tentang modul yang telah anda buat, tetapi jangan lupa untuk menambah pautan muat turun, maklumat hubungan dan menggunakan reka letak yang sama seperti modul yang lain. Sumbangan sentiasa dihargai.

Senarai Modul [ edit ]

Modul Global [ edit ]

adminlog Log pengguna menyambung, memutuskan sambungan dan log masuk gagal ke fail dan/atau ke syslog. penyekat Menyekat pengguna tertentu daripada menggunakan ZNC, mengatakan akaun mereka dilumpuhkan. pasti Modul ini membolehkan pengguna log masuk melalui kunci klien SSL. cyrusauth Modul ini bertujuan untuk pentadbir yang menjalankan pelayan shell/web/e-mel/dll dan ingin memberikan akses ZNC kepada pengguna sedia ada mereka. fail2ban Sekat IP untuk beberapa lama selepas log masuk gagal. identfile Siarkan identiti pengguna ke fail apabila mereka cuba menyambung. imapauth Benarkan pengguna membuat pengesahan melalui IMAP. terakhir dilihat Log apabila pengguna terakhir log masuk ke ZNC. modperl Memuatkan skrip Perl sebagai modul ZNC. modpython Membolehkan anda menggunakan modul yang ditulis pada Python. notify_connect Menghantar notis kepada semua pentadbir apabila pengguna log masuk atau keluar dari ZNC. barisan parti Membenarkan pengguna ZNC menyertai saluran dalaman dan menanyakan pengguna ZNC lain pada ZNC yang sama. webadmin Membolehkan anda menambah/mengalih keluar/mengedit pengguna dan tetapan dengan cepat melalui pelayar web.

Modul Pengguna [ edit ]

admin(Sekarang panel kawalan) Membolehkan anda menambah/mengalih keluar/mengedit pengguna dan tetapan dengan segera melalui mesej IRC. autoattach Menonton anda terpisah saluran dan melampirkan semula anda secara automatik apabila terdapat aktiviti tertentu dalam saluran yang anda tambahkan pada senarai autoattach anda. autobalas Memberi balasan automatik jika seseorang menghantar mesej kepada anda semasa awak adalah jauh. block_motd Menyekat Mesej Hari Ini pelayan. melantuncc Melantun pemindahan DCC melalui pelayan znc dan bukannya menghantarnya terus kepada pengguna. buffextras Tambah perubahan nama panggilan, cantuman, bahagian, perubahan topik dll. kepada penimbal main balik anda. chansaver Menyimpan saluran untuk dikonfigurasikan apabila pengguna bergabung dan berpisah. set aksara Menormalkan (iaitu menukar) pengekodan aksara. clearbufferonmsg Modul ini cuba merapatkan jurang antara dibanjiri dengan penimbal lama jika anda mempunyai KeepBuffer=true; dan mungkin kehilangan mesej apabila anda ping keluar, jika anda mempunyai KeepBuffer=false. maklumkan pelanggan Maklumkan tentang sambungan masuk baharu kepada pengguna anda. panel kawalan Membolehkan anda menambah/mengalih keluar/mengedit pengguna dan tetapan dengan segera melalui mesej IRC. ctcpflood Modul ini cuba menyekat banjir CTCP. dcc Modul ini membolehkan anda memindahkan fail ke dan dari ZNC berputus asa Modul ini akan menendang pelanggan anda dari semua saluran jika ZNC memutuskan sambungan dari pelayan. banjir Modul ini memisahkan anda daripada saluran yang dibanjiri. listsockets Modul ini memaparkan senarai semua soket terbuka dalam ZNC. log Log aktiviti sembang ke fail. missingmotd Modul pengguna ini akan menghantar 422 kepada pelanggan apabila mereka log masuk. nota Simpan dan main semula nota. Ini adalah contoh WebMods. sampel Ini adalah contoh modul untuk membantu menulis modul untuk melakukan apa sahaja yang anda mahu. hantar_mentah Membolehkan anda menghantar trafik mentah ke IRC daripada pengguna lain. cangkerang Akses shell Unix anda melalui pertanyaan betul-betul di dalam klien IRC anda.

Modul Rangkaian [ edit ]

autocycle Sertai semula saluran apabila anda seorang sahaja di sana (untuk mendapatkan status pengendali). autoop Beri status pengendali secara automatik kepada orang baik. modtcl Membolehkan anda menjalankan skrip Tcl dalam ZNC. autovoice Berikan status suara secara automatik kepada semua orang yang menyertai beberapa saluran. awaynick Tukar nama samaran anda semasa anda tiada. awaystore Apabila anda diketepikan atau dipisahkan, modul ini akan menyimpan semua mesej peribadi untuk anda. Mesej boleh dibaca sehingga anda memadamkannya. Modul ini juga akan menjauhkan anda apabila anda melahu seketika. sijil Modul ini membolehkan pengguna menggunakan sijil SSL mereka sendiri untuk menyambung ke pelayan. crypt Penyulitan untuk saluran/mesej peribadi. keepnick Cuba dapatkan dan simpan nama samaran utama anda jika ia diambil. kickrejoin Melaksanakan auto-gabung-semula-pada-tendangan. modul_dalam talian Status dalam talian palsu modul ZNC untuk membetulkan sesetengah pelanggan. nickserv Mengesahkan anda dengan NickServ. melaksanakan Melaksanakan arahan pada sambungan. mentah mentah Balasan laluan route_replies Sasl sasl Savebuff savebuff Schat schat Sembang DCC SSL (disulitkan). mudah_jauh Stickychan stickychan menonton Pantau aktiviti untuk corak teks tertentu daripada pengguna tertentu dan minta teks dihantar ke tetingkap pertanyaan khas.

Lebih banyak Modul [ edit ]

Menguruskan Modul [ edit ]

Modul boleh ditambah atau dikeluarkan dengan mudah. Modul boleh disimpan dalam ~/.znc/modules dan /usr/local/lib/znc secara lalai. ZNC memasang modulnya ke direktori kedua itu, yang sebenarnya ialah $(prefix)/lib/znc , tetapi ini boleh ditukar dengan ./configure --module-prefix=DIR sebelum menyusun.

ZNC akan mula-mula melihat dalam modul sub-direktori tempatan apabila mencari modul. Hanya fail yang berakhir dengan ".so" akan dilihat sebagai modul. Untuk mengalih keluar modul anda hanya boleh memadamkannya daripada folder. Tiada perubahan konfigurasi lain atau dimulakan semula diperlukan. Untuk mengalih keluar, tetapi juga menyimpan modul untuk kegunaan kemudian anda juga boleh menukar nama, seperti: mv sample.so sample.so_ .

Untuk menyusun modul baharu anda mesti menyimpan sumber sebagai fail ".cpp" dahulu. Menyusun modul menerangkan proses secara terperinci.

Modul global, pengguna dan rangkaian boleh (tidak) dimuatkan daripada webadmin atau melalui *tetingkap pertanyaan status, seperti:

/msg *status LoadMod [--type=global|user|network] /msg *status UnloadMod [--type=global|user|network]

  • konfigurasi
  • [--type=global|user|network] secara pilihan menentukan sama ada untuk (menyah) memuatkan modul sebagai modul global, pengguna atau rangkaian. Tidak semua modul boleh dimuatkan pada semua peringkat; lihat individu Dokumentasi modul untuk mengetahui di mana ia boleh dimuatkan.
  • adalah berdasarkan nama fail modul, tidak termasuk sambungan ".so".
  • Adalah khusus untuk setiap modul dan tidak diperlukan: Anda boleh menyediakan parameter semasa memuatkan modul, atau anda boleh menyediakan modul selepas memuatkannya.

Jadi, untuk memuatkan log modul di global level (berbanding dengan pengguna atau rangkaian) dan alih keluar semua kod kawalan warna/pemformatan dengan -membersihkan parameter, anda akan menaip:

/msg *status LoadMod --type=global log -sanitize

Untuk versi ZNC yang lebih lama, anda tidak akan mempunyai pilihan untuk menentukan [--type=global|user|network]. Dalam kes itu, hanya gunakan:

/msg *status LoadMod /msg *status UnloadMod

Sila ingat bahawa pengguna tidak dapat memuatkan modul jika arahan "DenyLoadMod" ditetapkan kepada benar. Cuba memuatkan modul akan gagal dengan "Tidak dapat memuatkan [ ] Akses Ditolak."

Jika modul menghalang ZNC daripada dimulakan dan oleh itu anda tidak boleh memunggah modul menggunakan webadmin, anda boleh mengedit znc.conf dan keluarkan baris LoadModule yang sepadan.

Menggunakan modul [ edit ]

Adalah disyorkan untuk membaca halaman wiki modul jika anda ingin mengetahui cara modul berfungsi. Sebagai alternatif, arahan berikut boleh digunakan untuk mendapatkan senarai arahan:

/msg * membantu

  • * ialah StatusPrefix yang ditetapkan dalam anda konfigurasi. Biasanya ia hanyalah asterisk ("*").

Selepas mengemas kini versi Drupal di salah satu tapak yang terdapat banyak modul tulisan tangan, saya terkejut saya mendapati beberapa mesej ralat berturut-turut dengan kandungan berikut:

Amaran pengguna: Modul berikut tiada daripada sistem fail:...

Seterusnya muncul nama-nama modul yang tidak dapat dikesan oleh sistem. Saya pernah menulis modul ini sendiri, tetapi semasa proses penciptaan mereka entah bagaimana bergabung dengan yang lain, dinamakan semula atau sesuatu yang lain... secara umum, mereka hilang dalam sejarah. Pada mulanya saya memutuskan untuk menyerah pada semua ini, tetapi dengan cepat inskripsi itu mula menjengkelkan saya, dan saya pergi untuk melihatnya menggunakan pautan yang disenaraikan di sebelah mesej tentang masalah itu. Selepas membaca maklumat itu, saya menyedari bahawa saya salah apabila saya memadam modul serta-merta terus dari pelayan, dan tidak menggunakan pilihan panel pentadbir untuk ini. Sekarang saya tidak akan menerangkan secara terperinci mengapa ini buruk, tetapi ia tidak berbaloi untuk dilakukan, tetapi Drupal sendiri tidak menghentikan tindakan pemaju yang tidak wajar itu. Dan dalam versi 7.50 dan lebih tinggi, pencipta CMS yang mulia ini memutuskan untuk memanggil semua orang untuk memesan.

Apakah yang perlu anda lakukan jika anda juga bosan dengan inskripsi yang menjengkelkan ini dan ingin menghapuskan kecacatan dalam konfigurasi tapak web? Segala-galanya sangat mudah dan untuk menyelesaikan masalah, anda tidak perlu mencari lagi di Internet untuk modul yang anda alih keluar dan memasangnya di tapak semula (seperti yang disyorkan oleh pembangun Drupal). Malah hakikat bahawa ia adalah produk separuh siap anda sendiri dan anda benar-benar melupakannya tidak bermakna anda perlu menjalani sesi hipnosis dan memulihkan kod dari kedalaman alam bawah sedar. Masalahnya boleh diselesaikan dalam tiga langkah mudah:

Itu sahaja. Saya berjanji tiga langkah, tetapi ternyata enam. Tetapi ini tidak bermakna semuanya sukar, saya hanya menghulurkan kesenangan :) Semoga berjaya!

Selepas repositori diklon dari GitHub, saya memasukkan pemasangan npm untuk memasang kebergantungan dan gagal. Berikut ialah senarai proses:
bimbatron:bem bimba$ npm pasang > [e-mel dilindungi] postinstall /Users/bimba/BEM > npm run deps > [e-mel dilindungi] deps /Users/bimba/BEM > bower i --allow-root bower EACCES EACCES: kebenaran ditolak, mkdir "/Users/bimba/.cache/bower/registry/bower.herokuapp.com" Surih tindanan: Ralat: EACCES: kebenaran dinafikan, mkdir "/Users/bimba/.cache/bower/registry/bower.herokuapp.com" pada Ralat (asli) di Object.fs.mkdirSync (fs.js:922:18) pada penyegerakan (/Users/bimba/ BEM/node_modules/bower/lib/node_modules/bower-registry-client/node_modules/mkdirp/index.js:55:12) di Function.sync (/Users/bimba/BEM/node_modules/bower/lib/node_modules/bower- registry-client/node_modules/mkdirp/index.js:61:24) pada Cache baharu (/Users/bimba/BEM/node_modules/bower/lib/node_modules/bower-registry-client/lib/util/Cache.js:21 :16) di RegistryClient. (/Users/bimba/BEM/node_modules/bower/lib/node_modules/bower-registry-client/lib/lookup.js:162:35) di Array.forEach (native) di RegistryClient.initCache (/Users/bimba/BEM /node_modules/bower/lib/node_modules/bower-registry-client/lib/lookup.js:149:34) di RegistryClient._initCache (/Users/bimba/BEM/node_modules/bower/lib/node_modules/bower-registry-client /Client.js:65:27) di RegistryClient baharu (/Users/bimba/BEM/node_modules/bower/lib/node_modules/bower-registry-client/Client.js:19:10) Surih konsol: Ralat pada StandardRenderer.error (/Users/bimba/BEM/node_modules/bower/lib/renderers/StandardRenderer.js:81:37) di Logger. (/Users/bimba/BEM/node_modules/bower/lib/bin/bower.js:110:26) di emitOne (events.js:96:13) di Logger.emit (events.js:188:7) di Logger .emit (/Users/bimba/BEM/node_modules/bower/lib/node_modules/bower-logger/lib/Logger.js:29:39) di /Users/bimba/BEM/node_modules/bower/lib/commands/index. js:48:20 pada _rejected (/Users/bimba/BEM/node_modules/bower/lib/node_modules/q/q.js:844:24) di /Users/bimba/BEM/node_modules/bower/lib/node_modules/q /q.js:870:30 di Promise.when (/Users/bimba/BEM/node_modules/bower/lib/node_modules/q/q.js:1122:31) di Promise.promise.promiseDispatch (/Users/bimba/ BEM/node_modules/bower/lib/node_modules/q/q.js:788:41) Maklumat sistem: Versi Bower: 1.7.9 Versi nod: 6.9.1 OS: Darwin 15.6.0 x64 npm ERR! Darwin 15.6.0 npm ERR! argv "/Users/bimba/.nvm/versions/node/v6.9.1/bin/node" "/Users/bimba/.nvm/versions/node/v6.9.1/bin/npm" "run" "deps" npm ERR! nod v6.9.1 npm ERR! npm v3.10.8 npm ERR! kod ELIFECYCLE npm ERR! [e-mel dilindungi] deps: `bower i --allow-root` npm ERR! Keluar dari status 1 npm ERR! npm ERR! Gagal di [e-mel dilindungi] skrip deps "bower i --allow-root". npm ERR! Pastikan anda memasang versi terkini node.js dan npm. npm ERR! Jika anda berbuat demikian, kemungkinan besar ini adalah masalah dengan pakej bem-project-stub, npm ERR! bukan dengan npm itu sendiri. npm ERR! Beritahu pengarang bahawa ini gagal pada sistem anda: npm ERR! bower i --allow-root npm ERR! Anda boleh mendapatkan maklumat tentang cara membuka isu untuk projek ini dengan: npm ERR! npm bugs bem-project-stub npm ERR! Atau jika itu tidak tersedia, anda boleh mendapatkan maklumat mereka melalui: npm ERR! npm owner ls bem-project-stub npm ERR! npm ERR! /Users/bimba/BEM/npm-debug.log npm ERR "/Users/bimba/.nvm/versions/node/v6.9.1/bin/node" "/Users /bimba/.nvm/ versi/nod/v6.9.1/bin/npm" "pasang" npm ERR! nod v6.9.1 npm ERR! npm v3.10.8 npm ERR! kod ELIFECYCLE npm ERR! [e-mel dilindungi] pascapasang: `npm run deps` npm ERR! Keluar dari status 1 npm ERR! npm ERR! Gagal di [e-mel dilindungi] skrip pascapasang "npm run deps". npm ERR! Pastikan anda memasang versi terkini node.js dan npm. npm ERR! Jika anda berbuat demikian, kemungkinan besar ini adalah masalah dengan pakej bem-project-stub, npm ERR! bukan dengan npm itu sendiri. npm ERR! Beritahu pengarang bahawa ini gagal pada sistem anda: npm ERR! npm run deps npm ERR! Anda boleh mendapatkan maklumat tentang cara membuka isu untuk projek ini dengan: npm ERR! pepijat npm bem-project-stub npm ERR! Atau jika itu tidak tersedia, anda boleh mendapatkan maklumat mereka melalui: npm ERR! npm owner ls bem-project-stub npm ERR! npm ERR /Users/bimba/BEM/npm-debug.log

Ralat pertama yang menarik perhatian anda ialah beberapa laluan yang mengandungi sebutan apl heroku. Saya cuba mengosongkan cache bower, ia tidak membantu, ralat muncul lagi (dengan cara itu, bagaimana untuk membuang Heroku sepenuhnya dari sistem?).

Kami telah menyentuh secara ringkas mengenai topik kaedah untuk memaparkan kandungan dalam badan templat. Sekarang mari kita lihat dengan lebih dekat apa itu dan dengan apa ia dimakan. Jadi, pengisytiharan kaedah jdoc terdapat dalam setiap templat Joomla dan paparkan maklumat ini atau itu dalam badan templat (iaitu, pada halaman tapak). Secara umum, pengisytiharan kaedah kelihatan seperti ini:

Baris ini memaparkan maklumat daripada komponen di tapak, contohnya artikel daripada com_content. Jenis elemen keluaran dinyatakan dalam atribut.

1. jenis – jenis elemen keluaran.

  • komponen- seperti yang saya tulis di atas, memaparkan kandungan utama halaman. Hanya boleh dipanggil sekali setiap templat.
  • kepala- juga diumumkan sekali selepas tag pembukaan . Berfungsi untuk memaparkan gaya, skrip, dan metadata halaman semasa.</li><li><i>mesej</i><i>- </i> memaparkan mesej sistem. Diisytiharkan sekali dalam badan dokumen.</li><li><i>pemasangan</i>- tidak memaparkan apa-apa dan merupakan "arahan" untuk pemasangan.</li><li><i>modul -</i> memaparkan satu modul pada halaman. Bilangan iklan adalah tidak terhad.</li><li><i>modul</i>- tidak seperti jenis sebelumnya, ia membolehkan anda memaparkan lebih daripada satu bilangan modul dalam kedudukannya.</li> </ul><p>Untuk empat jenis pertama yang disenaraikan, anda hanya perlu menunjukkannya pada halaman. Dalam kes jenis modul, tugas menjadi sedikit lebih rumit. Untuk memaparkan modul pada halaman, kita perlu mencipta modul untuknya terlebih dahulu <b>kedudukan modular</b> dengan pengecam unik (nama kedudukan modul). Ini dilakukan menggunakan atribut name="position name" dan penambahan wajib baris:</p><p> <position>nama jawatan</position> ke fail templateDetails.xml. Dengan menerangkan nama kedudukan dalam templateDetails.xml, kami menetapkannya dalam sistem dan melihatnya dalam pengurus modul. Nama jawatan boleh sewenang-wenangnya, walaupun nama = "pengguna3" kedudukan digunakan secara lalai untuk memaparkan menu teratas.</p><p><b>2. gaya - penerangan tentang gaya keluaran (mod chrome).</b></p> <p>Penampilan dan struktur cangkerang modul bergantung pada gaya yang ditentukan. nampak macam</p><p> :<jdoc:include type="modules" name="user1" style="xhtml" />Secara lalai, terdapat beberapa gaya output modul:</p><ul><li><i>xhtml -</i> memaparkan modul dalam blok dengan fungsi tajuk modChrome_xhtml($module, &$params, &$attribs) <br>{<br>jika (!kosong ($module->kandungan)): ?> <br> <div class="moduletable<?php echo htmlspecialchars($params->get("moduleclass_sfx")); ?>"> <br> <?php if ($module->tajuk tayangan != 0) : ?> <br> <h3><?php echo $module->tajuk; ?></h3><br> <?php endif; ?><br> <?php echo $module->kandungan; ?> <br> </div><br> <?php endif;<br>}</li><li><i>meja -</i> memaparkan modul dalam susun atur struktur jadual <br>fungsi modChrome_table($module, &$params, &$attribs) <br>{ ?><br> <table cellpadding="0" cellspacing="0" class="moduletable<?php echo htmlspecialchars($params->get("moduleclass_sfx")); ?>"> <br> <?php if ($module->tajuk tayangan != 0) : ?> <br> <tr><br> <th><br> <?php echo $module->tajuk; ?> <br> </th><br> </tr><br> <?php endif; ?><br> <tr><br> <td><br> <?php echo $module->kandungan; ?> <br> </td><br> </tr><br> </table><br> <?php<br>}</li><li><i>horz -</i> memaparkan kandungan modul dalam sel jadual, berfungsi secara mendatar modChrome_horz($module, &$params, &$attribs) <br>{ ?><br> <table cellspacing="1" cellpadding="0" width="100%"><br> <tr><br> <td><br> <?php modChrome_table($module, $params, $attribs); ?><br> </td><br> </tr><br> </table><br> <?php<br>}</li><li><i>bulat</i>- memaparkan modul dalam beberapa blok bersarang untuk penggayaan kompleks dalam bentuk sempadan grafik (cth. bucu bulat) fungsi modChrome_rounded($module, &$params, &$attribs) <br>{ ?><br> <div class="module<?php echo htmlspecialchars($params->get("moduleclass_sfx")); ?>"> <br> <div><br> <div><br> <div><br> <?php if ($module->tajuk tayangan != 0) : ?> <br> <h3><?php echo $module->tajuk; ?></h3><br> <?php endif; ?><br> <?php echo $module->kandungan; ?> <br> </div><br> </div><br> </div><br> </div><br> <?php<br>}</li><li><i>garis besar</i>- menambah gaya css pratetap pada fungsi blok modul modChrome_outline($module, &$params, &$attribs) <br>{<br>statik $css=false; <br>jika (!$css) <br> {<br>$css=benar; <br>jimport("joomla.environment.browser"); <br>$doc = JFactory::getDocument(); <br>$browser = JBrowser::getInstance(); <br>$doc->addStyleDeclaration(".mod-preview-info ( padding: 2px 4px 2px 4px; border: 1px solid black; position: absolute; background-color: white; color: red;)"); <br>$doc->addStyleDeclaration(".mod-preview-wrapper (warna latar belakang:#eee; sempadan: 1px bertitik hitam; warna:#700;)"); <br>if ($browser->getBrowser()=="msie") <br> {<br>jika ($pelayar->getMajor()<= 7) {<br>$doc->addStyleDeclaration(".mod-preview-info (filter: alpha(opacity=80);)"); <br>$doc->addStyleDeclaration(".mod-preview-wrapper (penapis: alpha(opacity=50);)"); <br> } <br>lain ( <br>$doc->addStyleDeclaration(".mod-preview-info (-ms-filter: alpha(opacity=80);)"); <br>$doc->addStyleDeclaration(".mod-preview-wrapper (-ms-filter: alpha(opacity=50);)"); <br> } <br> } <br>lain <br> {<br>$doc->addStyleDeclaration(".mod-preview-info (opacity: 0.8;)"); <br>$doc->addStyleDeclaration(".mod-preview-wrapper (opacity: 0.5;)"); <br> } <br> } <br> ?><br> <div class="mod-preview"><br> <div class="mod-preview-info"><?php echo $module->kedudukan."[".$module->style."]"; ?></div><br> <div class="mod-preview-wrapper"><br> <?php echo $module->kandungan; ?> <br> </div><br> </div><br> <?php<br>}</li><li><i>tiada</i>- serupa dengan gaya yang tidak dinyatakan sama sekali. Memaparkan modul tanpa reka bentuk dan fungsi tajuk modChrome_none($module, &$params, &$attribs) <br>{<br>echo $modul->kandungan; <br>}</li> </ul><p>Semua gaya pratetap terletak dalam templat fail/system/html/modules.php. Tetapi kami tidak terhad kepada hanya menggunakan pilihan yang disediakan, tetapi cukup mampu mencipta pilihan kami sendiri.</p> <p><b>3. Cipta mod krom tersuai.</b></p> <p><b><br></b> Jadi, jenis perwakilan modul lalai yang disediakan tidak memenuhi keperluan semasa. Anda perlu menambah gaya reka bentuk anda sendiri. Sebagai contoh, mari kita pilih situasi yang agak kerap berulang. Mengikut tugasan, bukannya <h3>letak tajuk modul dalam tag <span>, yang neutral dari segi semantik. Anda juga perlu meletakkan blok kandungan modul di tempat yang berasingan <div>. Untuk mencipta gaya output modul anda sendiri, kami akan menggunakan alat standard. Kebanyakan templat Joomla mempunyai html/ folder (templat/nama templat/html/), yang digunakan untuk apa yang dipanggil templat. Iaitu, jika anda menyalin templat modul ke folder ini, bukannya templat dari direktori modul/my_module/tmpl/default, fail daripada templat/nama templat/html/my_modules/default akan dikeluarkan. Komponen templat dengan cara yang sama. Mudah dan praktikal. Dalam folder html/ templat anda, buat fail modules.php. Jika tiada folder sedemikian dalam templat, kami akan menciptanya. Mari kita tulis pada fail</p><p> <?php<br>function modChrome_modbox($module, &$params, &$attribs) // Panggil fungsi <br>{<br>if (!empty ($module->content)): /* Semak sama ada kedudukan mengandungi modul yang didayakan */?> <br> <div class="moduletable<?php echo htmlspecialchars($params->get("moduleclass_sfx")); /* paparkan akhiran css kelas modul */ ?>"> <br> <?php if ($module->showtitle != 0) : /* semak sama ada tajuk modul disertakan */ ?> <br> <span class="title"><?php echo $module->tajuk; /* Cetak tajuk */ ?></span><br> <?php endif; ?><br> <div class="modcontent"><br> <?php echo $module->kandungan; /* Keluarkan kandungan modul */ ?> <br> </div><br> </div><br> <?php endif;<br>} <br>?> Selesai. Sekarang anda hanya perlu menentukannya sebagai gaya keluaran. <jdoc:include type="modules" name="user1" style="modbox"/>Kami menetapkan modul untuk kedudukan kami dan melihat hasilnya.</p> <script type="text/javascript"> <!-- var _acic={dataProvider:10};(function(){var e=document.createElement("script");e.type="text/javascript";e.async=true;e.src="https://www.acint.net/aci.js";var t=document.getElementsByTagName("script")[0];t.parentNode.insertBefore(e,t)})() //--> </script><br> <br> <script>document.write("<img style='display:none;' src='//counter.yadro.ru/hit;artfast_after?t44.1;r"+ escape(document.referrer)+((typeof(screen)=="undefined")?"": ";s"+screen.width+"*"+screen.height+"*"+(screen.colorDepth? screen.colorDepth:screen.pixelDepth))+";u"+escape(document.URL)+";h"+escape(document.title.substring(0,150))+ ";"+Math.random()+ "border='0' width='1' height='1' loading=lazy loading=lazy>");</script> </div> </article> </div> </main> <noindex> <aside class="sidebar sidebar_midle"> <div class="section-posts-box section"> <div class="title">Artikel popular</div> <div class="section-posts"> <div class="section-posts__item"> <img src="/uploads/4be64ff6d222da4105692245d96c0c1c.jpg" width="300" height="180" class="section-posts__item-img" alt="Vasily III. Biografi. Papan. Keluarga. Fakta menarik tentang Vasily III Mesej tentang Vasily 3 secara ringkas" / loading=lazy loading=lazy> <div class="section-posts__item-title"> <a href="https://netdenegnakino.ru/ms/vasilii-iii-biografiya-pravlenie-semya-interesnye-fakty-o-vasilii.html">Vasily III. Biografi. Papan. Keluarga. Fakta menarik tentang Vasily III Mesej tentang Vasily 3 secara ringkas</a> </div> <div class="section-posts__item-text">Vasily 3 (pemerintahan 1505-1533) ditandai dengan koleksi terakhir tanah Rusia...</div> <div class="post-info section-posts__item-info"> <time class="post-info__time post-info__time_popular" datetime="">2024-04-15 01:49:22</time> </div> </div> <div class="section-posts__item"> <img src="/uploads/888d10e708a1a32369d88c15e49bf7ab.jpg" width="300" height="180" class="section-posts__item-img" alt="Peralihan daripada akar kepada kuasa dan belakang, contoh, penyelesaian Bagaimana untuk menyelesaikan contoh dengan kuasa dan akar" / loading=lazy loading=lazy> <div class="section-posts__item-title"> <a href="https://netdenegnakino.ru/ms/izvlechenie-kornei-sposoby-primery-resheniya-perehod-ot-kornei-k.html">Peralihan daripada akar kepada kuasa dan belakang, contoh, penyelesaian Bagaimana untuk menyelesaikan contoh dengan kuasa dan akar</a> </div> <div class="section-posts__item-text">Sudah tiba masanya untuk melihat cara untuk mengeluarkan akar. Ia berdasarkan sifat akar, dalam...</div> <div class="post-info section-posts__item-info"> <time class="post-info__time post-info__time_popular" datetime="">2024-04-12 01:52:34</time> </div> </div> <div class="section-posts__item"> <img src="/uploads/c6b834710dd0f89e1c2f6accaac858c2.jpg" width="300" height="180" class="section-posts__item-img" alt="Tanda Bintang Halimunan (OS) Langit kawasan peralihan antara pinggir bandar dan bandar" / loading=lazy loading=lazy> <div class="section-posts__item-title"> <a href="https://netdenegnakino.ru/ms/pochemu-ne-vidno-zvezd-znamenie-nevidimoi-zvezdy-lp-nebo.html">Tanda Bintang Halimunan (OS) Langit kawasan peralihan antara pinggir bandar dan bandar</a> </div> <div class="section-posts__item-text">Ekologi pengetahuan. Sains dan penemuan: Alam Semesta tidak terhingga, dan tidak ada bilangan bintang di dalamnya. DALAM...</div> <div class="post-info section-posts__item-info"> <time class="post-info__time post-info__time_popular" datetime="">2024-04-11 01:52:27</time> </div> </div> </div> </div> <div class="section section_widget widget_text" id="text-7"> <div class="textwidget"> </div> </div> </aside> </noindex> </div> </div> <footer class="footer"> <link href="https://fonts.googleapis.com/css?family=Roboto:400,400i,500,700,700i&subset=cyrillic" rel="stylesheet"> <nav class="footer-nav"> <ul> <li class="menu-item type-post_type object-page "><a href="https://netdenegnakino.ru/ms/feedback.html">Kenalan</a></li> <li class="menu-item type-post_type object-page "><a href="https://netdenegnakino.ru/ms/sitemap.xml">Peta tapak</a></li> </ul> </nav> <div class="footer-bottom"> <div class="copy">© 2024 netdenegnakino.ru - Tidak untuk berdua. Kimia. Fizik. Ejaan. Geografi</div> </div> </footer> </div> <script type='text/javascript'> /* <![CDATA[ */ var tocplus = { "smooth_scroll": "1", "visibility_show": "\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c", "visibility_hide": "\u0421\u043a\u0440\u044b\u0442\u044c", "width": "Auto" }; /* ]]> */ </script> <script type='text/javascript' src='https://netdenegnakino.ru/wp-content/plugins/table-of-contents-plus/front.min.js?ver=1509'></script> <script type='text/javascript' src='https://netdenegnakino.ru/wp-content/plugins/wp-postratings/js/postratings-js.js?ver=1.85'></script> <script type='text/javascript'> var q2w3_sidebar_options = new Array(); q2w3_sidebar_options[0] = { "sidebar": "sidebar-2", "margin_top": 10, "margin_bottom": 0, "stop_id": "", "screen_max_width": 0, "screen_max_height": 0, "width_inherit": false, "refresh_interval": 1500, "window_load_hook": false, "disable_mo_api": false, "widgets": ['text-7', 'text-6'] }; </script> <script type='text/javascript' src='https://netdenegnakino.ru/wp-content/plugins/q2w3-fixed-widget/js/q2w3-fixed-widget.min.js?ver=5.0.4'></script> <script type='text/javascript' src='/wp-includes/js/wp-embed.min.js?ver=4.9.2'></script> </div> <script type="text/javascript"> <!-- var _acic={dataProvider:10};(function(){var e=document.createElement("script");e.type="text/javascript";e.async=true;e.src="https://www.acint.net/aci.js";var t=document.getElementsByTagName("script")[0];t.parentNode.insertBefore(e,t)})() //--> </script><br> <br> </body> </html> <script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script>