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

StyleId returns 0

Discussion in 'XenForo Development Discussions' started by LPH, Apr 17, 2014.

  1. LPH

    LPH Well-Known Member

    I have code that functions if styleId is set to 1. But if the user changes to a different style then the code fails.

    This works if default is id 1.
    PHP:
    XenForo_Template_Public::setStyleId) ;
    If I try to pull the style_id based on the $visitor the print_r is returning 0. Only the default (style_id = 1) is installed.

    PHP:
    //Get visitor style ID
    $visitor XenForo_Visitor::getInstance();
    $styleId $visitor['style_id'];
    echo 
    '<pre>';
    print_r($styleId);
    echo 
    '</pre>';
    XenForo_Template_Public::setStyleId$styleId ) ;
     
  2. LPH

    LPH Well-Known Member

    Just to update this thread.

    I returned to this code today and it is working right. I have no idea why it was not returning the correct style ID but it is working right in XF 1.4.2.
     
  3. LPH

    LPH Well-Known Member

    Now to the reason for trying to pull the style ID is to have the online users widget created on the WordPress side. This code renders only if I force the style ID to 1. If the ID is rendered to 4 then the widget is blank.

    Works and widget shows:

    PHP:
    XenForo_Template_Public::setStyleId1);
    Fails with a blank widget and no error message in logs:

    PHP:
    XenForo_Template_Public::setStyleId$styleId );
    The print_r($styleId) will return the correct style ID.


    Is there an obvious mistake in the code? Is there an obvious reason this returns blank when using a variable?

    PHP:
            $dependencies = new XenForo_Dependencies_Public();

            
    $dependencies->preLoadData();

            
    $visitor XenForo_Visitor::getInstance();
            
    $styleId $visitor['style_id'];
            
    // print_r($styleId);

            
    XenForo_Template_Public::setStyleId$styleId );

            
    XenForo_Template_Public::setLanguageId$styleId );

            
    /** Start session */
            
    $sessionModel $XF->getModelFromCache'XenForo_Model_Session' );

            
    $visitor XenForo_Visitor::getInstance();

            
    /** Pull onlineUsers */
            
    $onlineUsers $sessionModel->getSessionActivityQuickList$visitor->toArray(), array(
                
    'cutOff' => array(
                    
    '>',
                    
    $sessionModel->getOnlineStatusTimeout()
                )
            ), ( 
    $visitor['user_id'] ? $visitor->toArray() : null ) );

            
    $userLimit '';
            
    $page '';
            
    $userPerPage '';
            
    $onlineTotals '';

            
    $params = array(
                
    'onlineUsers'  => $onlineUsers,
                
    'visitor'      => $visitor,
                
    'userLimit'    => $userLimit,
                
    'page'         => $page,
                
    'usersPerPage' => $userPerPage,
                
    'onlineTotals' => $onlineTotals
            
    );

            
    $template $dependencies->createTemplateObject'sidebar_online_users'$params );

            echo 
    $template->render();
     
  4. LPH

    LPH Well-Known Member

    :oops: :whistle:

    It's 'funny' how I spend time looking at code and cannot figure it out. Only to post here - then see the obvious mistake !

    The $styleId cannot be used in setting the language !!

    Forcing to 1 in language works. Now, I have to figure out how to grab the correct language variable ...

    PHP:
    XenForo_Template_Public::setLanguageId);
    Update: Here is the full working code.

    PHP:
            /** Start session */
            
    $sessionModel $XF->getModelFromCache'XenForo_Model_Session' );

            
    $visitor XenForo_Visitor::getInstance();

            
    $styleId $visitor['style_id'];

            
    XenForo_Template_Public::setStyleId$styleId );

            
    $languageId $visitor['language_id'];

            
    XenForo_Template_Abstract::setLanguageId$languageId );
    Maybe this will help someone else.
     
    Last edited: Nov 15, 2014

Share This Page