• This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn more.

Route - actionIndex

Pierce

Well-known member
#1
Code:
public function actionIndex()
    {
        // do stuff here to build $viewParams array and then...
     
        $viewParams = array();

        return $this->responseView(
            'MyAddOn_ViewPublic_Something_Index', // view name
            'onesignal_manifest', // content template name
            $viewParams, //  data to be passed to content template
            array('containerTemplate' =>
                'onesignal_manifest') // your own container template
        );
    }
Can somebody point me in the direction on where I should be reading for more information?

All I want to do is call a template called "onesignal_manifest" under containerTemplate.

Everything works but, working != right.

What is "MyAddOn_ViewPublic_Something_Index" ?
What is the content template name? is that the same as the containerTemplate?
 

Nudaii

Well-known member
#2
here is an xample of the return line for you

Code:
return $this->responseView('XenForo_ViewPublic_Index', 'nudaii_xendit_index', $viewParams);
XenForo_ViewPublic_Index - this is the view 9 outta 10 times you can just leave it the default xenforo one.
nudaii_xendit_index - This is your template, which must be created in the master style (avaibl only when in development mode)
$viewParams - these are your template parimeters.


also the formatting looks like you are using the old hook system vs the new template modifcation system? is this your goal?
 

Pierce

Well-known member
#3
https://xenforo.com/community/threads/using-an-alternative-page-container.11465/


The code is lifted right off that page.

The goal here is to have a custom page example: https://letsgo.tools/os_manifest (it works) which requires absolutely no formatting as you can see apart from whats in it and it is apart of a bigger add-on that has grown significantly in 2-3 weeks. So my knowledge of how XF1.5 is being pushed to the limit.

The params are from the template system like $xenOptions->boardUrl/Title etc so I don't need to use $viewParams in this case and thus an empty array to satisfy the requirements.

I have at the moment a route

library/OneSignal/Route/Manifest.php

which calls

library/OneSignal/Controller/Manifest.php (I cant think of a better name to connect the two) which contains the code above, which calls a template...

Which is all originally called by creating a Route prefix in dev mode, and adding it to my add-on...
 

Nudaii

Well-known member
#4
ah ok yes thats from 2011 the hook system has been largely depreciated since then and replaced bvy the template mod system, if your goal is to have a custom page it maybe easier for you to make it using a controller/route :)

example on my own site i made a custom page https://role-play-haven.com/Xendit using the above method.
 

Pierce

Well-known member
#5
ah ok yes thats from 2011 the hook system has been largely depreciated since then and replaced bvy the template mod system, if your goal is to have a custom page it maybe easier for you to make it using a controller/route :)

example on my own site i made a custom page https://role-play-haven.com/Xendit using the above method.
That is a nice looking mod.

I have been looking through other modifications and looking for suggestions on how I should approach this differently.

I cannot find any evidence of 2 types of addon's. Hooks (which I always thought of as template hooks for the template system) like this:

Code:
 public static function templateHook($hookName, &$contents, array $hookParams, XenForo_Template_Abstract $template)
        {

                        if($hookName === "page_container_head")
                        {
                                $contents .= $template->create('onesignal_js', $template->getParams());
                        }

        }
And a controller/route which is where you can code massive amounts of addon data. Which I though I was doing...

So I am missing some fundamental information about your response to allow me to understand better.