vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vB4 Programming Discussions (https://vborg.vbsupport.ru/forumdisplay.php?f=252)
-   -   Help with conditional (https://vborg.vbsupport.ru/showthread.php?t=320491)

Dragonsys 10-11-2015 07:33 PM

Help with conditional
 
I cannot seem to get the below conditional to work to save my life. I believe everything is correct, but I don't know what else to check.

Code:

<vb:if condition="$show['dso_slips_delete_own'] && $userinfo['userid'] == $bbuserinfo['userid']">
if I remove the userid part, it works as expected, but I want to make sure that the user viewing the page is the one who owns the data, so that only they ca edit it.

entire template:
Code:

<div id="view-dso_slips" class="<vb:if condition="$selected_tab == 'dso_slips'">selected_view_section<vb:else />view_section</vb:if><vb:if condition="$userinfo['userid'] != $bbuserinfo['userid']"> vm_other_prof</vb:if>">
<div class="blockbody">
        <table id="dso_slips_table" width="100%">
        <tr class="columnsort">
                <th class="blocksubhead">&nbsp;</th>
                <th class="blocksubhead">Date - Time</th>
                <th class="blocksubhead">Vehicle</th>
                <th class="blocksubhead">Track</th>
                <th class="blocksubhead">R/T</th>
                <th class="blocksubhead">60'</th>
                <th class="blocksubhead">330'</th>
                <th class="blocksubhead">1/8 Mile</th>
                <th class="blocksubhead">1000'</th>
                <th class="blocksubhead">1/4 Mile</th>
        </tr>
                <vb:each from="queue" value="queuelist"><tr>
                        <td><a href="./slips.php?do=viewslip&id={vb:raw queuelist.id}" title="View Details"><i class="fa fa-search"></i></a><vb:if condition="$show['dso_slips_edit']">&nbsp;&nbsp;&nbsp;<a href="./slips.php?do=editslip&id={vb:raw queuelist.id}" title="Edit Slip"><i class="fa fa-pencil-square-o"></i></a></vb:if><vb:if condition="$show['dso_slips_delete_own'] && $userinfo['userid'] == $bbuserinfo['userid']">&nbsp;&nbsp;&nbsp;<a href="./slips.php?do=delslip&id={vb:raw queuelist.id}" title="Delete Slip"><i class="fa fa-eraser"></i></a></vb:if></td>
                        <td>{vb:raw queuelist.date}</td>
                        <td><a href="./vbrides.php?do=viewride&rideid={vb:raw queuelist.car_id}" title="View Vehicle Page">{vb:raw queuelist.car_name}</a></td>
                        <td><a href="{vb:raw queuelist.track_www}" title="Visit the {vb:raw queuelist.track} Website">{vb:raw queuelist.track}</a></td>
                        <td>{vb:raw queuelist.rt}</td>
                        <td>{vb:raw queuelist.60ft}</td>
                        <td>{vb:raw queuelist.330ft}</td>
                        <td>{vb:raw queuelist.8et}</td>
                        <td>{vb:raw queuelist.1000ft}</td>
                        <td>{vb:raw queuelist.4et}</td>
                </tr></vb:each>
        </table>
</div>
</div>

plugin:
Code:

if ($show['dso_slips_view']) {
        if (isset($vbulletin->GPC['tab']))
        {
                $selected_tab = $vbulletin->GPC['tab'];
        }
        $blockinfo['title'] = "Timeslips";
        $blockid = "dso_slips";
        $taburl = $memberurl = fetch_seo_url('member', $prepared) . "&amp;tab=dso_slips#dso_slips";

        $templater = vB_Template::create('memberinfo_tab');
        $templater->register('selected_tab', $selected_tab);
        $templater->register('relpath', $relpath);
        $templater->register('blockinfo', $blockinfo);
        $templater->register('blockid', $blockid);
        $templater->register('taburl', $taburl);
        $template_hook['profile_tabs_last'] .= $templater->render(); 

        require_once('./includes/functions_dso_slips.php');
        $slipsqueue = $db->query_read("SELECT ID,Car_ID,Date,Track,RT,Sixty,ThreeThirty,Eighth_ET,Eighth_MPH,Thousand,Fourth_ET,Fourth_MPH FROM ".TABLE_PREFIX."dso_slips WHERE Owner = ".$userinfo['userid']." ORDER BY Date DESC");
                while ($row = $db->fetch_array($slipsqueue)) {
                        if (isset($row['Eighth_ET']) AND isset($row['Eighth_MPH'])) { $row['Eighth_ET'] = number_format($row['Eighth_ET'],3,'.',',')." @ ".number_format($row['Eighth_MPH'],2,'.',',')." mph"; }
                        if (isset($row['Fourth_ET']) AND isset($row['Fourth_MPH'])) { $row['Fourth_ET'] = number_format($row['Fourth_ET'],3,'.',',')." @ ".number_format($row['Fourth_MPH'],2,'.',',')." mph"; }
                        $queue[] = array (
                                'id'        => $row['ID'],
                                'car_id'        => $row['Car_ID'],
                                'car_name'        => getVehicleName($row['Car_ID']),
                                'date'                => date("M d, Y - g:i a ",strtotime($row['Date'])),
                                'track'                => getTrackName($row['Track']),
                                'track_www'        => getTrackWeb($row['Track']),
                                'rt'                => number_format($row['RT'],3,'.',','),
                                '60ft'                => number_format($row['Sixty'],3,'.',','),
                                '330ft'                => number_format($row['ThreeThirty'],3,'.',','),
                                '8et'                => $row['Eighth_ET'],
                                '1000ft'        => number_format($row['Thousand'],3,'.',','),
                                '4et'                => $row['Fourth_ET']
                                );
                        }

        $templater = vB_Template::create('dso_slips_profile_tab');

        $templater->register('selected_tab', $selected_tab);
        $templater->register('queue', $queue);
        $template_hook['profile_tabs'] .= $templater->render();
}


MarkFL 10-11-2015 09:16 PM

Try replacing $userinfo['userid'] with $vbulletin->userinfo['userid'] and see what happens.

Dragonsys 10-11-2015 09:18 PM

tried that to no affect

--------------- Added [DATE]1444605891[/DATE] at [TIME]1444605891[/TIME] ---------------

well not no affect, it actually makes the conditional always true. without the vbulletin-> the conditional is always false.

Dave 10-11-2015 09:26 PM

Instead of adding the authorization check in the template, I would just move it to the script itself and redirect the user if they are not the owner. I always handle all my logic in scripts, not in the template/view.

That way it's also ten times easier to debug your code and variables.

MarkFL 10-11-2015 09:27 PM

If your plugin hook is "member_complete" then try using $prepared['userid'] instead of $bbuserinfo['userid'].

--------------- Added [DATE]1444606104[/DATE] at [TIME]1444606104[/TIME] ---------------

Quote:

Originally Posted by Dave (Post 2556824)
Instead of adding the authorization check in the template, I would just move it to the script itself and redirect the user if they are not the owner. I always handle all my logic in scripts, not in the template/view.

That way it's also ten times easier to debug your code and variables.

Excellent advice...I do the same myself. :)

Dragonsys 10-11-2015 09:38 PM

I tried moving it to the php code, and I end up with the same result. It is either always true, or always false. I like ti better in the php, as you stated, so I will leave it this way, but still can't get it to work right.

I tried $prepared['userid'] and still the same.

--------------- Added [DATE]1444607425[/DATE] at [TIME]1444607425[/TIME] ---------------

here is the updated php code:
Code:

if ($show['dso_slips_view']) {
        if (isset($vbulletin->GPC['tab']))
        {
                $selected_tab = $vbulletin->GPC['tab'];
        }
        $blockinfo['title'] = "Timeslips";
        $blockid = "dso_slips";
        $taburl = $memberurl = fetch_seo_url('member', $prepared) . "&amp;tab=dso_slips#dso_slips";

        $templater = vB_Template::create('memberinfo_tab');
        $templater->register('selected_tab', $selected_tab);
        $templater->register('relpath', $relpath);
        $templater->register('blockinfo', $blockinfo);
        $templater->register('blockid', $blockid);
        $templater->register('taburl', $taburl);
        $template_hook['profile_tabs_last'] .= $templater->render(); 

        require_once('./includes/functions_dso_slips.php');
        $slipsqueue = $db->query_read("SELECT ID,Car_ID,Date,Track,RT,Sixty,ThreeThirty,Eighth_ET,Eighth_MPH,Thousand,Fourth_ET,Fourth_MPH FROM ".TABLE_PREFIX."dso_slips WHERE Owner = ".$userinfo['userid']." ORDER BY Date DESC");
                while ($row = $db->fetch_array($slipsqueue)) {
                        if (isset($row['Eighth_ET']) AND isset($row['Eighth_MPH'])) { $row['Eighth_ET'] = number_format($row['Eighth_ET'],3,'.',',')." @ ".number_format($row['Eighth_MPH'],2,'.',',')." mph"; }
                        if (isset($row['Fourth_ET']) AND isset($row['Fourth_MPH'])) { $row['Fourth_ET'] = number_format($row['Fourth_ET'],3,'.',',')." @ ".number_format($row['Fourth_MPH'],2,'.',',')." mph"; }
                        if ($show['dso_slips_edit_own'] && $userinfo['userid'] == $prepared['userid']) { $dso_slip_edit_own_link = 'true'; } else { $dso_slip_edit_own_link = 'false'; }
                        if ($show['dso_slips_delete_own'] && $userinfo['userid'] == $prepared['userid']) { $dso_slip_delete_own_link = 'true'; } else { $dso_slip_delete_own_link = 'false'; }
                        $queue[] = array (
                                'id'        => $row['ID'],
                                'car_id'        => $row['Car_ID'],
                                'car_name'        => getVehicleName($row['Car_ID']),
                                'date'                => date("M d, Y - g:i a ",strtotime($row['Date'])),
                                'track'                => getTrackName($row['Track']),
                                'track_www'        => getTrackWeb($row['Track']),
                                'rt'                => number_format($row['RT'],3,'.',','),
                                '60ft'                => number_format($row['Sixty'],3,'.',','),
                                '330ft'                => number_format($row['ThreeThirty'],3,'.',','),
                                '8et'                => $row['Eighth_ET'],
                                '1000ft'        => number_format($row['Thousand'],3,'.',','),
                                '4et'                => $row['Fourth_ET']
                                );
                }
       
        $templater = vB_Template::create('dso_slips_profile_tab');
        $templater->register('dso_slip_edit_own_link', $dso_slip_edit_own_link);
        $templater->register('dso_slip_delete_own_link', $dso_slip_delete_own_link);
        $templater->register('selected_tab', $selected_tab);
        $templater->register('queue', $queue);
        $template_hook['profile_tabs'] .= $templater->render();
}

this always equals true:
Code:

if ($show['dso_slips_delete_own'] && $userinfo['userid'] == $prepared['userid']) { $dso_slip_delete_own_link = 'true'; } else { $dso_slip_delete_own_link = 'false'; }
even when I view another user's profile (in which case I need it to be false).
If I change it to bbuserinfo (instead of prepared) then it is always false (but should be true when viewing my profile)




EDIT: Finally got it, thank you for the help. When I added vbulletin-> to userinfo and used prepared instead of bbuserinfo it works.

MarkFL 10-11-2015 11:41 PM

Sorry, I should have been more clear. I meant for you to try:

$vbulletin->userinfo['userid'] == $prepared['userid']

Dragonsys 10-12-2015 01:05 PM

Quote:

Originally Posted by MarkFL (Post 2556832)
Sorry, I should have been more clear. I meant for you to try:

$vbulletin->userinfo['userid'] == $prepared['userid']

I did in the template, and it didn't work for me, but in the php it did. Though I probably had something else wrong in there, I'm sure.

Thanks again


All times are GMT. The time now is 10:26 AM.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.

X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01129 seconds
  • Memory Usage 1,785KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (5)bbcode_code_printable
  • (2)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (8)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • printthread_start
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete