XF 2.2 check if user is not null

lucien_lies

Active member
How can i check if a user is null or not? I try to use this code but i have no idea :(


Code:
<xf:if is=“$user != null”>
</xf:if>

This is the error i want to fix:
Code:
ErrorException: Template error: [E_WARNING] Attempt to read property "dbtech_shop_purchase" on null internal_data/code_cache/templates/l2/s4/public/5minutos_message_banners.php:10
Generated by: Unknown account Mar 12, 2023 at 12:54 PM
Stack trace
#0 internal_data/code_cache/templates/l2/s4/public/5minutos_message_banners.php(10): XF\Template\Templater->handleTemplateError(2, '[E_WARNING] Att...', '/www/wwwroot/fo...', 10)
#1 src/XF/Template/Templater.php(1652): XF\Template\Templater->{closure}(Object(XenGenTr\XGTForumistatistik\XF\Template\Templater), Array, NULL)
#2 src/XF/Template/Templater.php(1681): XF\Template\Templater->renderTemplate('5minutos_messag...', Array)
#3 internal_data/code_cache/templates/l2/s4/public/message_macros.php(13): XF\Template\Templater->includeTemplate('public:5minutos...', Array)
#4 src/XF/Template/Templater.php(825): XF\Template\Templater->{closure}(Object(XenGenTr\XGTForumistatistik\XF\Template\Templater), Array, NULL)
#5 internal_data/code_cache/templates/l2/s4/public/post_macros.php(25): XF\Template\Templater->callMacro('message_macros', 'user_info', Array, Array)
#6 src/XF/Template/Templater.php(988): XF\Template\Templater->{closure}(Object(XenGenTr\XGTForumistatistik\XF\Template\Templater), Array, Object(XF\Template\ExtensionSet))
#7 src/XF/Template/Templater.php(924): XF\Template\Templater->renderExtensionInternal('user_cell', Array, Array, Object(XF\Template\ExtensionSet))
#8 internal_data/code_cache/templates/l2/s4/public/post_macros.php(146): XF\Template\Templater->renderExtension('user_cell', Array, Object(XF\Template\ExtensionSet))
#9 src/XF/Template/Templater.php(988): XF\Template\Templater->{closure}(Object(XenGenTr\XGTForumistatistik\XF\Template\Templater), Array, Object(XF\Template\ExtensionSet))
#10 src/XF/Template/Templater.php(924): XF\Template\Templater->renderExtensionInternal('full_body', Array, Array, Object(XF\Template\ExtensionSet))
#11 internal_data/code_cache/templates/l2/s4/public/post_macros.php(178): XF\Template\Templater->renderExtension('full_body', Array, Object(XF\Template\ExtensionSet))
#12 src/XF/Template/Templater.php(825): XF\Template\Templater->{closure}(Object(XenGenTr\XGTForumistatistik\XF\Template\Templater), Array, Object(XF\Template\ExtensionSet))
#13 internal_data/code_cache/templates/l2/s4/public/thread_view.php(871): XF\Template\Templater->callMacro('post_macros', 'post', Array, Array)
#14 src/XF/Template/Templater.php(1652): XF\Template\Templater->{closure}(Object(XenGenTr\XGTForumistatistik\XF\Template\Templater), Array, Object(XF\Template\ExtensionSet))
#15 src/XF/Template/Template.php(24): XF\Template\Templater->renderTemplate('thread_view', Array)
#16 src/XF/Mvc/Renderer/Html.php(50): XF\Template\Template->render()
#17 src/XF/Mvc/Dispatcher.php(460): XF\Mvc\Renderer\Html->renderView('XF:Thread\\View', 'public:thread_v...', Array)
#18 src/XF/Mvc/Dispatcher.php(442): XF\Mvc\Dispatcher->renderView(Object(XF\Mvc\Renderer\Html), Object(XF\Mvc\Reply\View))
#19 src/XF/Mvc/Dispatcher.php(402): XF\Mvc\Dispatcher->renderReply(Object(XF\Mvc\Renderer\Html), Object(XF\Mvc\Reply\View))
#20 src/XF/Mvc/Dispatcher.php(60): XF\Mvc\Dispatcher->render(Object(XF\Mvc\Reply\View), 'html')
#21 src/XF/App.php(2483): XF\Mvc\Dispatcher->run()
#22 src/XF.php(524): XF\App->run()
#23 index.php(20): XF::runApp('XF\\Pub\\App')
#24 {main}


I want the guests to be able to see the frames, but do not run the check whether or not they have purchases in the dbtech_shop store.

Code:

Code:
<xf:if is="!$xf.visitor.Profile.custom_fields.removeframes">
<xf:if is="$user AND $user.user_id">
<xf:foreach loop="$user->dbtech_shop_purchase" key="$key" value="$purchase" i="$i">
<xf:if is="$purchase.Item.category_id == 3 AND ($xf.visitor.user_id OR !$xf.visitor) AND $purchase.active == true">

 // Insert Special code

</xf:if>
</xf:foreach>
</xf:if>
</xf:if>


I am not sure but I think this error did not happen to me when I had PHP 7.4, maybe I am wrong but I could have sworn it did.
 
(1) Are you sure $user is an object of XF:User entity? What you get when you dump the variable?

(2) Try with <xf:if is="{{$user && $user.user_id}}"> - notice the double curly braces
 
Top Bottom