Joomla 2.5 ― using administrator components controllers in frontent part of component

爱⌒轻易说出口 提交于 2019-12-10 15:28:25

问题


how can I use the controllers created at

/administrator/components/com_mycom/controllers/*

in

/components/com_mycom/mycom.php

In detail:

I have a »log« controller with an »add« method, and I would like to use this from the frontend. I one is not logged in in the backend the task is not executed and a 500 error rises. So just would like to include the backend controllerpath in the frontend, so that JController::getInstance( 'Mycom' ) still works.

Greetings…

EDIT:

After a long time of searching I could find a more or less undocumented Parameter of the: JController::getInstance() method, namely the second one: $config = array(). Going through the source code I found out that there is one key of the »config-array« that is of interest, which is: »base_path«.

The call of:

JController:getInstance( 'Mycom, array('base_path' =>JPATH_ADMINISTRATOR.DS.'components'.DS.'com_mycom')' );

always delivers the backend controller and one can use them safely in the frontend, BUT one must take care that then also the views are taken from the backend side of the component. In my case, I just use it to make ajax-calls so it does not matter, but one needs to be careful with using this method when planning to create »frontend views« with »backend controller«.

Greetings…


回答1:


I had recently a similar problem where I wanted to use the whole CRUD system form back-end also in front-end.

This is the method that worked for me (and I am not saying that this is recommended or best practice):

I've just modeled the folders / file structure from backend. PHP files contained something like:

require_once JPATH_ADMINISTRATOR . '/components/com_mycom/controllers/log.php';



来源:https://stackoverflow.com/questions/13442052/joomla-2-5-using-administrator-components-controllers-in-frontent-part-of-comp

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!