Jadual Kandungan
一、基本知识
Rumah pembangunan bahagian belakang tutorial php Joomla中的Task 跟view 深入学习

Joomla中的Task 跟view 深入学习

Jun 13, 2016 pm 12:20 PM
joomla task view

Joomla中的Task 和view 深入学习

 

 

[本文转自:梦溪笔记]

622762d0f703918f057e8039503d269758eec492

Joomla 是一个优秀的CMS系统,她可以让你快速的完成一个网站的建设,她提供组件,模块,模板能够满足你大部分的网站需求。而组件在其中举足轻重。

一、基本知识

组件(component ) 用于显示页面的主要数据。Joomla的组件采用的是MVC架构设计。 在一个页面请求产生时,其URL中可能包括task, view, layout等信息。我在这里就是要讨论这个task和view. 一般URL中如果含有task就不会含有view, 这里因为joomla认为task就完成一个特定的任务,比如说数据库操作,有效性验证等, 而view是负责显示数据。通常的设计是task里完成任务处理后,会调用setRedirect方法引导向一个view来显示数据。其实在joomla里,如果URL中没有指定task的话,会默认task为display。

二、问题

在项目中,需要在页面的meta数据里包含Open graphic protocol 数据。Open graphic protocol 用于给社交网络提供要分享的数据描述。 如果你的页面是通过task来完成的,然后 在task里通过setRedirect根据数据跳转到不同的view进行授权验证, 然后验证通过后显示数据页面的话,你可能会遇到这种问题:你需要分享这个页面,你在这个页面的meta数据里添加了Open graphic protocol 数据,你希望分享到facebook, google+等社交网站时,你会发现在分享页面显示的数据和图片并不是你想要显示页面的数据。

三、解决方案

上面的问题是因为Open graphic protocol 数据获取并不支持跳转,如果遇到跳转,一般都会去网站首页拾取数据,而这并不是我们想要的。引起这个问题就是setRedirect。 setRedirect的原理是发送给浏览里的HTML头中包含了跳转指令。而解决上面的问题的方法是不使用setRedirect, 而是使用display. 每一个JControllerLegacy都有一个display方法,你只要设置input里的view, layout, 以及其他你要传递过去的数据,然后调用display方法就可。

下面是示例代码:

    /**     * 内部跳转,用于代替setRedirect. 为什么要这样子做呢?     * 因为 setRedirect他会发送一个http头到浏览器,让浏览     * 进行跳转,这样一来就多了一个网络请问, 这是其一。最     * 为主要的是setRedirect在某些不支持浏览器redirect的情况     * 下达不到效果,例如:open graphic protocal     *      * @param type $view 要显示的view     * @param type $layout 要显示的layout, 默认为NULL     */    protected function internalRedirect($view, $layout=null){        $this->input->set("view", $view);        $this->input->set("layout", $layout);        return $this->display();    }        public function checkAvailable(){        //其他的业务代码        $this->input->set('tmpl', 'doexam');        return $this->internalRedirect("doexam", $layout);    }
Salin selepas log masuk

上面的代码是写在你的Controller里的。函数internalRedirect通过设置$input(这个input是指url的输入参数) 中的view, layout,然后直接调用JControllerLegecy的display方法来显示页面。

在checkAvailable方法中,在调用internalRedirect之前,还设置了其他 view需要的参数。

梦溪的一个朋友说他在做他的一个网站 时遇到了这样的问题,我们讨论并分析了Joomla的实现代码,发现其实这个解决挺容易, 只要你熟悉Joomla组件开发。如果你有问题,可以找我一起交流

希望本文能够解决你所遇到的问题。

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Penutupan Windows 11 menggesa hos tugas hos tugas tetingkap sedang melaksanakan penyelesaian tugas penutupan Penutupan Windows 11 menggesa hos tugas hos tugas tetingkap sedang melaksanakan penyelesaian tugas penutupan Feb 12, 2024 pm 12:40 PM

Baru-baru ini, ramai pengguna Win11 telah melaporkan bahawa apabila menutup, mereka digesa bahawa hos tugas taskhostwindow sedang melaksanakan tugas penutupan. Jadi apa yang sedang berlaku? Pengguna boleh memasukkan folder Desktop di bawah editor pendaftaran tempatan, dan kemudian pilih AutoEndTasks dalam tetingkap kanan untuk menetapkannya. Biarkan tapak web ini dengan teliti memperkenalkan kepada pengguna penyelesaian kepada masalah ini apabila ditutup. Penutupan Windows 11 menggesa bahawa hos tugas taskhostwindow sedang melaksanakan tugas penutupan 1. Gunakan kekunci kombinasi kekunci win + r, masukkan "regedit" dan tekan Enter, seperti yang ditunjukkan dalam rajah di bawah. 2. Cari [HKEY

Pembangunan Laravel: Bagaimana untuk menjana pandangan menggunakan Laravel View? Pembangunan Laravel: Bagaimana untuk menjana pandangan menggunakan Laravel View? Jun 14, 2023 pm 03:28 PM

Laravel ialah salah satu rangka kerja PHP yang paling popular pada masa ini, dan keupayaan penjanaan paparan yang berkuasa sangat mengagumkan. Paparan ialah halaman atau elemen visual yang dipaparkan kepada pengguna dalam aplikasi web, yang mengandungi kod seperti HTML, CSS dan JavaScript. LaravelView membenarkan pembangun menggunakan bahasa templat berstruktur untuk membina halaman web dan menjana paparan yang sepadan melalui pengawal dan penghalaan. Dalam artikel ini, kami akan meneroka cara menjana paparan menggunakan LaravelView. 1. Apa

Pembelajaran Golang pembangunan aplikasi web berasaskan Joomla Pembelajaran Golang pembangunan aplikasi web berasaskan Joomla Jun 24, 2023 pm 12:15 PM

Golang ialah bahasa pengaturcaraan dengan konkurensi yang tinggi dan kebolehpercayaan yang tinggi, yang telah menarik banyak perhatian dalam pembangunan web sejak beberapa tahun kebelakangan ini. Joomla ialah sistem pengurusan kandungan sumber terbuka dengan modulariti yang baik dan kemudahan penggunaan. Artikel ini menggunakan Golang sebagai bahasa pembangunan utama dan Joomla sebagai rangka kerja asas untuk memperkenalkan kaedah pembangunan aplikasi Web berasaskan Joomla. 1. Pengenalan kepada Joomla Joomla ialah sistem CMS sumber terbuka yang dibangunkan berdasarkan PHP Ia mempunyai banyak kelebihan, seperti kemudahan penggunaan, fleksibiliti

Panel Pagoda: Pemasangan satu klik WordPress, Joomla dan CMS lain Panel Pagoda: Pemasangan satu klik WordPress, Joomla dan CMS lain Jun 21, 2023 pm 04:18 PM

Pagoda Panel ialah perisian pengurusan pelayan berasaskan web yang boleh membantu pengguna menggunakan tapak web, aplikasi dan pangkalan data dengan cepat pada pelayan Linux. Antaranya, fungsi utama Panel Pagoda ialah pemasangan satu klik pelbagai CMS sumber terbuka, termasuk WordPress, Joomla, Drupal, dll. Bagi pentadbir laman web yang tidak biasa dengan pengurusan pelayan, menggunakan CMS secara manual boleh menjadi tugas yang membosankan. Termasuk proses memuat turun perisian, menyahmampat, mengkonfigurasi pangkalan data, dan memuat naik fail ke pelayan. Langkah-langkah ini ialah

Penjelasan terperinci tentang C#Task Penjelasan terperinci tentang C#Task Mar 14, 2024 am 09:54 AM

Tugas ialah objek yang digunakan untuk mewakili operasi tak segerak dalam C# Ia terletak dalam ruang nama System.Threading.Tasks. Task menyediakan API peringkat tinggi untuk mengendalikan operasi serentak, tak segerak, menjadikannya lebih mudah untuk menulis kod tak segerak dalam aplikasi .NET.

Menggunakan tugasan C# Menggunakan tugasan C# Feb 19, 2024 pm 12:16 PM

Penggunaan C#Task memerlukan gambaran keseluruhan contoh kod khusus: Task ialah jenis yang sangat biasa digunakan dalam C# Ia mewakili operasi boleh laku yang boleh dilaksanakan secara tak segerak dan mengembalikan hasil. Tugas memainkan peranan penting dalam mengendalikan operasi tak segerak, pemprosesan selari dan meningkatkan prestasi aplikasi. Artikel ini akan memperkenalkan penggunaan asas Tugas dan menyediakan beberapa contoh kod khusus. Cipta dan gunakan Tugasan Dalam C#, anda boleh menggunakan kelas Tugasan untuk mencipta dan menggunakan tugas tak segerak. Berikut ialah cara untuk mencipta dan menggunakan Ta

Cara menggunakan refleksi dan proksi dinamik untuk melaksanakan perpustakaan mengikat anotasi Lihat di Java Cara menggunakan refleksi dan proksi dinamik untuk melaksanakan perpustakaan mengikat anotasi Lihat di Java Apr 30, 2023 pm 05:34 PM

Gunakan pantulan digabungkan dengan proksi dinamik untuk melaksanakan perpustakaan mengikat anotasi Lihat yang menyokong Lihat dan mengikat peristiwa Kod ini ringkas, mudah digunakan dan mempunyai kebolehskalaan yang kuat. Fungsi yang disokong @ContentView mengikat reka letak dan bukannya setContentView() @BindView mengikat Lihat bukannya findViewById() @OnClick mengikat acara klik dan bukannya setOnClickListener() @OnLongClick mengikat acara tekan lama dan bukannya setOnLongClickListener() Kelas anotasi kod @Target(ElementPEType. )@Pengekalan(Rete

Beberapa program pembinaan laman web yang paling popular, berapa ramai yang anda tahu? Beberapa program pembinaan laman web yang paling popular, berapa ramai yang anda tahu? Feb 13, 2024 pm 11:30 PM

Kita semua tahu bahawa jika anda ingin membangunkan sendiri program baharu untuk membina laman web, kosnya agak tinggi, dan tidak semua individu dan perniagaan kecil dan mikro mampu membelinya. Nasib baik, terdapat banyak program pembinaan laman web sumber terbuka dan percuma di Internet hari ini, yang hanya boleh digunakan dengan memuat turun dan memasangnya secara terus. Program sumber terbuka ini bukan sahaja mengurangkan ambang untuk membina laman web, tetapi juga secara langsung menjimatkan sejumlah besar kos pembinaan laman web. Untuk memudahkan pemula memulakan pembinaan tapak web, esok Yiwuku akan memperkenalkan secara ringkas beberapa program pembinaan laman web yang paling popular. 1. WordPress [Muat Turun] WordPress ialah program sumber terbuka percuma WordPress boleh membina platform penerbitan maklumat dalam talian yang berkuasa, tetapi ia lebih biasa digunakan untuk blog yang diperibadikan. WordPress boleh digunakan bukan sahaja sebagai blog peribadi, tetapi juga sebagai laman web korporat, laman web portal, dan laman web perniagaan.

See all articles