Table des matières
一、基本知识
Maison développement back-end tutoriel 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);    }
Copier après la connexion

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

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

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

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

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

L'arrêt de Windows 11 invite l'hôte de la tâche dans la fenêtre de la tâche à exécuter la solution de tâche d'arrêt L'arrêt de Windows 11 invite l'hôte de la tâche dans la fenêtre de la tâche à exécuter la solution de tâche d'arrêt Feb 12, 2024 pm 12:40 PM

Récemment, de nombreux utilisateurs de Win11 ont signalé que lors de l'arrêt, ils sont invités à indiquer que l'hôte de la tâche taskhostwindow exécute la tâche d'arrêt. Alors, que se passe-t-il ? Les utilisateurs peuvent accéder au dossier Bureau sous l'éditeur de registre local, puis sélectionner AutoEndTasks dans la fenêtre de droite pour le définir. Laissez ce site présenter soigneusement aux utilisateurs la solution à ce problème lors de la fermeture. L'arrêt de Windows 11 indique que l'hôte de la tâche taskhostwindow exécute la tâche d'arrêt. Solution 1. Utilisez la combinaison de touches win key + r key, entrez « regedit » et appuyez sur Entrée, comme indiqué dans la figure ci-dessous. 2. Recherchez [HKEY

Développement Laravel : Comment générer des vues avec Laravel View ? Développement Laravel : Comment générer des vues avec Laravel View ? Jun 14, 2023 pm 03:28 PM

Laravel est actuellement l'un des frameworks PHP les plus populaires et ses puissantes capacités de génération de vues sont impressionnantes. Une vue est une page ou un élément visuel affiché à l'utilisateur dans une application Web, qui contient du code tel que HTML, CSS et JavaScript. LaravelView permet aux développeurs d'utiliser un langage de modèle structuré pour créer des pages Web et générer les vues correspondantes via les contrôleurs et le routage. Dans cet article, nous explorerons comment générer des vues à l'aide de LaravelView. 1. Quoi

Golang learning Développement d'applications Web basées sur Joomla Golang learning Développement d'applications Web basées sur Joomla Jun 24, 2023 pm 12:15 PM

Golang est un langage de programmation à haute concurrence et haute fiabilité, qui a beaucoup attiré l'attention dans le développement Web ces dernières années. Joomla est un système de gestion de contenu open source doté d'une bonne modularité et d'une facilité d'utilisation. Cet article utilise Golang comme langage de développement principal et Joomla comme cadre de base pour introduire une méthode de développement d'applications Web basée sur Joomla. 1. Introduction à Joomla Joomla est un système CMS open source développé sur la base de PHP. Il présente de nombreux avantages, tels que la facilité d'utilisation et la flexibilité.

Explication détaillée de la tâche C# Explication détaillée de la tâche C# Mar 14, 2024 am 09:54 AM

La tâche est un objet utilisé pour représenter les opérations asynchrones en C#. Il se trouve dans l'espace de noms System.Threading.Tasks. Task fournit une API de haut niveau pour gérer les opérations asynchrones simultanées, ce qui facilite l'écriture de code asynchrone dans les applications .NET.

Pagoda Panel : Installation en un clic de WordPress, Joomla et autres CMS Pagoda Panel : Installation en un clic de WordPress, Joomla et autres CMS Jun 21, 2023 pm 04:18 PM

Pagoda Panel est un logiciel de gestion de serveur basé sur le Web qui peut aider les utilisateurs à déployer rapidement des sites Web, des applications et des bases de données sur des serveurs Linux. Parmi eux, une fonction clé du Pagoda Panel est l'installation en un clic de divers CMS open source, notamment WordPress, Joomla, Drupal, etc. Pour un administrateur de site Web qui n’est pas familier avec la gestion de serveurs, déployer manuellement un CMS peut s’avérer une tâche fastidieuse. Y compris le processus de téléchargement du logiciel, de décompression, de configuration de la base de données et de téléchargement des fichiers sur le serveur. Ces étapes sont

Certains des programmes de création de sites Web les plus populaires, combien en connaissez-vous ? Certains des programmes de création de sites Web les plus populaires, combien en connaissez-vous ? Feb 13, 2024 pm 11:30 PM

Nous savons tous que si vous souhaitez développer vous-même un nouveau programme pour créer un site Web, le coût est assez élevé et tous les particuliers, petites et micro-entreprises ne peuvent pas se le permettre. Heureusement, il existe aujourd'hui sur Internet de nombreux programmes de création de sites Web open source et gratuits, qui ne peuvent être utilisés qu'en les téléchargeant et en les installant directement. Ce programme open source réduit non seulement le seuil de création d'un site Web, mais permet également d'économiser directement de nombreux coûts de construction de sites Web. Pour permettre aux débutants de se lancer plus facilement dans la création de sites Web, Yiwuku présentera demain brièvement certains des programmes de création de sites Web les plus populaires. 1. WordPress [Télécharger] WordPress est un programme open source gratuit. WordPress peut créer une puissante plateforme de publication d'informations en ligne, mais il est plus couramment utilisé pour les blogs personnalisés. WordPress peut être utilisé non seulement comme blog personnel, mais également comme site Web d'entreprise, site portail et site Web d'entreprise.

Utiliser des tâches C# Utiliser des tâches C# Feb 19, 2024 pm 12:16 PM

L'utilisation de C#Task nécessite une présentation d'exemples de code spécifiques : Task est un type très couramment utilisé en C#. Il représente une opération exécutable qui peut être exécutée de manière asynchrone et renvoyer des résultats. Les tâches jouent un rôle important dans la gestion des opérations asynchrones, le traitement parallèle et l'amélioration des performances des applications. Cet article présentera l'utilisation de base de Task et fournira quelques exemples de code spécifiques. Créer et utiliser une tâche En C#, vous pouvez utiliser la classe Task pour créer et utiliser une tâche asynchrone. Voici une façon de créer et d'utiliser Ta

Obtenez une compréhension plus approfondie des tâches en C# Obtenez une compréhension plus approfondie des tâches en C# Feb 18, 2024 pm 12:03 PM

Explication détaillée de C#Task, des exemples de code spécifiques sont requis Introduction : Dans la programmation multithread C#, Task est un modèle de programmation couramment utilisé pour implémenter des opérations asynchrones. Task fournit un moyen simple de gérer des tâches simultanées, peut effectuer des opérations asynchrones en parallèle sur plusieurs threads et peut gérer facilement les exceptions et les valeurs de retour. Cet article présentera en détail l’utilisation de C#Task et fournira quelques exemples de code spécifiques. 1. Création et exécution de tâches Méthodes de création d'objets Task Il existe de nombreuses façons de créer des objets Task en C#.

See all articles