Joomla中的Task 跟view 深入学习
Joomla中的Task 和view 深入学习
[本文转自:梦溪笔记]
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); }
上面的代码是写在你的Controller里的。函数internalRedirect通过设置$input(这个input是指url的输入参数) 中的view, layout,然后直接调用JControllerLegecy的display方法来显示页面。
在checkAvailable方法中,在调用internalRedirect之前,还设置了其他 view需要的参数。
梦溪的一个朋友说他在做他的一个网站 时遇到了这样的问题,我们讨论并分析了Joomla的实现代码,发现其实这个解决挺容易, 只要你熟悉Joomla组件开发。如果你有问题,可以找我一起交流
希望本文能够解决你所遇到的问题。

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



In letzter Zeit haben viele Win11-Benutzer berichtet, dass sie beim Herunterfahren die Meldung erhalten, dass der Task-Host taskhostwindow die Aufgabe zum Herunterfahren ausführt. Was ist also los? Benutzer können den Desktop-Ordner im lokalen Registrierungseditor aufrufen und dann im rechten Fenster AutoEndTasks auswählen, um ihn festzulegen. Lassen Sie diese Website den Benutzern die Lösung für dieses Problem beim Herunterfahren sorgfältig vorstellen. Das Herunterfahren von Windows 11 zeigt an, dass der Task-Host „taskhostwindow“ die Shutdown-Aufgabe ausführt. Lösung: 1. Verwenden Sie die Tastenkombination Win-Taste + R-Taste, geben Sie „regedit“ ein und drücken Sie die Eingabetaste, wie in der Abbildung unten gezeigt. 2. Suchen Sie nach [HKEY

Laravel ist derzeit eines der beliebtesten PHP-Frameworks und seine leistungsstarken Funktionen zur Ansichtsgenerierung sind beeindruckend. Eine Ansicht ist eine Seite oder ein visuelles Element, das dem Benutzer in einer Webanwendung angezeigt wird und Code wie HTML, CSS und JavaScript enthält. Mit LaravelView können Entwickler eine strukturierte Vorlagensprache verwenden, um Webseiten zu erstellen und entsprechende Ansichten über Controller und Routing zu generieren. In diesem Artikel erfahren Sie, wie Sie mit LaravelView Ansichten generieren. 1. Was

Golang ist eine Programmiersprache mit hoher Parallelität und hoher Zuverlässigkeit, die in den letzten Jahren in der Webentwicklung große Aufmerksamkeit erregt hat. Joomla ist ein Open-Source-Content-Management-System mit guter Modularität und Benutzerfreundlichkeit. In diesem Artikel werden Golang als Hauptentwicklungssprache und Joomla als Grundgerüst verwendet, um eine Joomla-basierte Methode zur Entwicklung von Webanwendungen vorzustellen. 1. Einführung in Joomla Joomla ist ein auf PHP basierendes Open-Source-CMS-System. Es bietet viele Vorteile, wie z. B. Benutzerfreundlichkeit und Flexibilität

Pagoda Panel ist eine webbasierte Serververwaltungssoftware, mit der Benutzer Websites, Anwendungen und Datenbanken schnell auf Linux-Servern bereitstellen können. Eine Schlüsselfunktion des Pagoda-Panels ist unter anderem die Ein-Klick-Installation verschiedener Open-Source-CMS, darunter WordPress, Joomla, Drupal usw. Für einen Website-Administrator, der mit der Serververwaltung nicht vertraut ist, kann die manuelle Bereitstellung eines CMS eine mühsame Aufgabe sein. Einschließlich des Prozesses zum Herunterladen der Software, Dekomprimieren, Konfigurieren der Datenbank und Hochladen der Dateien auf den Server. Diese Schritte sind

Task ist ein Objekt, das zur Darstellung asynchroner Vorgänge in C# verwendet wird. Es befindet sich im Namespace System.Threading.Tasks. Task bietet eine High-Level-API für die Verarbeitung gleichzeitiger, asynchroner Vorgänge und erleichtert so das Schreiben von asynchronem Code in .NET-Anwendungen.

Verwenden Sie Reflection in Kombination mit dynamischem Proxy, um eine View-Annotationsbindungsbibliothek zu implementieren, die View- und Event-Bindung unterstützt. Der Code ist prägnant, einfach zu verwenden und weist eine starke Skalierbarkeit auf. Unterstützte Funktionen @ContentView bindet Layout anstelle von setContentView() @BindView bindet View anstelle von findViewById() @OnClick bindet Click-Ereignis anstelle von setOnClickListener() @OnLongClick bindet Long-Press-Ereignis anstelle von setOnLongClickListener() Codeanmerkungsklasse @Target(ElementType. TYPE )@Retention(Rete

Die Verwendung von C#-Tasks erfordert einen Überblick über spezifische Codebeispiele: Task ist ein sehr häufig verwendeter Typ in C#. Er stellt einen ausführbaren Vorgang dar, der asynchron ausgeführt werden kann und Ergebnisse zurückgibt. Aufgaben spielen eine wichtige Rolle bei der Abwicklung asynchroner Vorgänge, der Parallelverarbeitung und der Verbesserung der Anwendungsleistung. In diesem Artikel wird die grundlegende Verwendung von Task vorgestellt und einige spezifische Codebeispiele bereitgestellt. Erstellen und Verwenden einer Aufgabe In C# können Sie die Task-Klasse verwenden, um eine asynchrone Aufgabe zu erstellen und zu verwenden. Hier ist eine Möglichkeit, Ta zu erstellen und zu verwenden

Wir alle wissen, dass die Kosten recht hoch sind, wenn Sie selbst ein neues Programm zum Erstellen einer Website entwickeln möchten und nicht alle Einzelpersonen sowie Klein- und Kleinstunternehmen es sich leisten können. Glücklicherweise gibt es heute im Internet viele Open-Source- und kostenlose Website-Erstellungsprogramme, die nur durch direktes Herunterladen und Installieren verwendet werden können. Dieses Open-Source-Programm reduziert nicht nur die Hürden für die Erstellung einer Website, sondern spart auch direkt eine Menge Kosten für die Website-Erstellung. Um Anfängern den Einstieg in die Website-Erstellung zu erleichtern, stellt Yiwuku morgen kurz einige der beliebtesten Website-Erstellungsprogramme vor. 1. WordPress [Download] WordPress ist ein kostenloses Open-Source-Programm. WordPress kann eine leistungsstarke Plattform zur Online-Veröffentlichung von Informationen erstellen, wird jedoch häufiger für personalisierte Blogs verwendet. WordPress kann nicht nur als persönlicher Blog, sondern auch als Unternehmenswebsite, Portalwebsite und Unternehmenswebsite verwendet werden.
