vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vB3 General Discussions (https://vborg.vbsupport.ru/forumdisplay.php?f=111)
-   -   Conditionals in phrases alternative? (https://vborg.vbsupport.ru/showthread.php?t=275012)

kpmedia 12-04-2011 02:34 AM

Conditionals in phrases alternative?
 
I have some pay access sub-forums.
I want to replace the vbphrase "private" with something else.
But not just a single something else, but multiple messages depending on sub-forum.

Phrases cannot use conditionals, leaving template mods.
However, the vbphrase['private'] is not in the templates, but only in the functions_forumlist.php file.
So I'll have to edit the core files (and I'm fine with that).
In the PHP, what sort of conditional statement could be written to allow for multi messages?

Something like this:
if forum = 55 then display vbphrase private_1 on forumhome
if forum = 75 then display vbphrase private_2 on forumhome
if anything else then display default private vbphrase

I've tried a few PHP edits on my own, but nothing has worked so far.

Original:
PHP Code:

else if (!($forumperms $vbulletin->bf_ugp_forumpermissions['canview']))
{
 
$forum['lastpostinfo'] = $vbphrase['private']; 



Failed attempt:
PHP Code:

else if (!($forumperms $vbulletin->bf_ugp_forumpermissions['canview']))
{
 if (
$post[forumid] == 55
 { 
 
$forum['lastpostinfo'] = $vbphrase['private_1']; 
 } 
else 
 {  
 
$forum['lastpostinfo'] = $vbphrase['private']; 
 } 



Help? :)

Lynne 12-04-2011 02:40 AM

Since the variable being used in that part of the code is $forum, try using $forum[forumid] instead of $post[forumid]

kpmedia 12-04-2011 03:14 AM

Thanks for replying, Lynne.

I've tried both of these:
PHP Code:

if ($forumid == 55

PHP Code:

if ($forum[forumid] == 55

Those both have the same result.

What I end up with is a blank thread title and date, but the "by user" is still there, along with the post icon and the arrow to see the latest post. (Of course, being private, it takes you to the vB error screen when clicked and not logged in.)

The "private_1" message is not shown.
If I change it back to "private", however, the private default vbphrase shows up fine.


--------- UPDATE:

Actually, I found another workaround.

PHP Code:

<td class="alt2" width="%">

<if 
condition="is_member_of($vbulletin->userinfo, 5, 6, 7)">
$forum[lastpostinfo]
</if>

<if 
condition="is_member_of($vbulletin->userinfo, 1, 2, 3, 4)">

<if 
condition="$forum[forumid] == 55"
$vbphrase[private_1]
</
td
<else />
$forum[lastpostinfo]
</if>

</if>

</
td

This completely bypasses the membership login check, and hard codes a display predetermined by user group.
4,5,6 are admin/mod users.
1,2,3,4 are members

To show the forum content to a user group, move them to the first conditional.

(My own code is actually more complicated, more usergroups and workarounds, but no need to make this complex by over-sharing.)

If anybody finds this useful, click the heart. :)


All times are GMT. The time now is 02:28 PM.

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.01093 seconds
  • Memory Usage 1,725KB
  • 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_php_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (3)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