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

Other Help with forum.node_id event listener.

Discussion in 'Custom Service/Development Requests' started by Joykiller, Jun 2, 2014.

Thread Status:
Not open for further replies.
  1. Joykiller

    Joykiller Member

    Re-posted again, seems there is not many people capable of helping in these forums.

    Hi, I've tried posting in the developers addon area as well as PM'ed the creator, with no luck or response at all. As I said to the developer I will donate "lunch" aka enough money for a sandwich to the person who can help get this to work.
    I'm trying to add the above "forum.node_id" to the Xenporta RecentNews block, so I can then dump "{xen:helper dump, $forum.node_id}" the integer ID of which the forum node that the news post originated from.

    It requires an event listener added to the prams? I'm not entirely sure which or what to add.

    Below is code from the two locations i think possibly needs a modification any and all help would be much appreciated.

    library/EWRporta/ControllerPublic/Portal.php
    Code:
    <?php
    
    class EWRporta_ControllerPublic_Portal extends XenForo_ControllerPublic_Abstract
    {
        public $perms;
    
        public function actionIndex()
        {
     
     
            if ($this->_routeMatch->getResponseType() == 'rss')
            {
                $cache = $this->getModelFromCache('EWRporta_Model_Caches')->getCacheByBlockId('RecentNews');
                $threads = unserialize($cache['results']);
             
                $viewParams = array(
                    'threads' => $threads['RecentNews']
                );
             
                return $this->responseView('EWRporta_ViewPublic_Portal', '', $viewParams);
            }
         
         
            $this->canonicalizeRequestUrl(XenForo_Link::buildPublicLink('portal'));
    
            $options = XenForo_Application::get('options');
    
            if ($options->EWRporta_stylechoice['force'] && $options->EWRporta_stylechoice['style'])
            {
                $this->setViewStateChange('styleId', $options->EWRporta_stylechoice['style']);
            }
    
            $viewParams = array(
                'cookie' => $this->perms['custom'],
                'isPortal' => true,
                'layout1' => 'portal',
                'page' => max(1, $this->_input->filterSingle('page', XenForo_Input::UINT)),
            );
    
            return $this->responseView('EWRporta_ViewPublic_Portal', 'EWRporta_Portal', $viewParams);
        }
    
        public function actionRevert()
        {
            if ($cookies = XenForo_Helper_Cookie::getCookie('EWRporta'))
            {
                foreach ($cookies AS $key => $cookie)
                {
                    XenForo_Helper_Cookie::deleteCookie('EWRporta['.$key.'][order]');
                    XenForo_Helper_Cookie::deleteCookie('EWRporta['.$key.'][position]');
                }
            }
    
            return $this->responseRedirect(XenForo_ControllerResponse_Redirect::SUCCESS, XenForo_Link::buildPublicLink('portal/blocks'));
        }
    
        public function actionBlocks()
        {
            if (!$this->perms['custom']) { return $this->responseNoPermission(); }
    
            if ($this->_request->isPost())
            {
                $order = 1;
                $blocks = $this->_input->filterSingle('blocks', XenForo_Input::ARRAY_SIMPLE);
    
                foreach ($blocks AS $key => $block)
                {
                    XenForo_Helper_Cookie::setCookie('EWRporta['.$key.'][order]', $order++, 31536000);
                    XenForo_Helper_Cookie::setCookie('EWRporta['.$key.'][position]', $block, 31536000);
                }
    
                return $this->responseRedirect(XenForo_ControllerResponse_Redirect::SUCCESS, XenForo_Link::buildPublicLink('portal/blocks'));
            }
    
            $blocks = $this->getModelFromCache('EWRporta_Model_Blocks')->getBlocks(true, 'portal');
    
            $_blocks = array(
                'top-left' => array(),
                'top-right' => array(),
                'mid-left' => array(),
                'mid-right' => array(),
                'btm-left' => array(),
                'btm-right' => array(),
                'sidebar' => array()
            );
    
            foreach ($blocks AS $block)
            {
                switch ($block['position'])
                {
                    case 'top-left':    $_blocks['top-left'][] = $block;    break;
                    case 'top-right':    $_blocks['top-right'][] = $block;    break;
                    case 'mid-left':    $_blocks['mid-left'][] = $block;    break;
                    case 'mid-right':    $_blocks['mid-right'][] = $block;    break;
                    case 'btm-left':    $_blocks['btm-left'][] = $block;    break;
                    case 'btm-right':    $_blocks['btm-right'][] = $block;    break;
                    case 'sidebar':        $_blocks['sidebar'][] = $block;        break;
                    default:            $_blocks['disabled'][] = $block;
                }
            }
    
            $viewParams = array(
                'adminModules' => false,
                'blocks' => $_blocks,
            );
    
            return $this->responseView('EWRporta_ViewPublic_Blocks', 'EWRporta_Blocks', $viewParams);
        }
    
        public static function getSessionActivityDetailsForList(array $activities)
        {
            $output = array();
    
            foreach ($activities as $key => $activity)
            {
                $output[$key] = array(
                    new XenForo_Phrase('viewing_portal'),
                    new XenForo_Phrase('index'),
                    XenForo_Link::buildPublicLink('portal'),
                    false
                );
            }
    
            return $output;
        }
    
        protected function _preDispatch($action)
        {
            parent::_preDispatch($action);
    
            $this->perms = $this->getModelFromCache('EWRporta_Model_Perms')->getPermissions();
        }
    }
    
    Or somewhere in..
    library/EWRporta/Block/RecentNews.php
     
  2. Jeremy

    Jeremy XenForo Moderator Staff Member

    Please do not cross post support discussion.
     
    Adam Howard likes this.
Thread Status:
Not open for further replies.

Share This Page