vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vBulletin 3.8 Add-ons (https://vborg.vbsupport.ru/forumdisplay.php?f=235)
-   -   End-User Options - Selective Forum Filter (https://vborg.vbsupport.ru/showthread.php?t=215001)

SledgeHead 12-21-2009 10:58 PM

Will this be available for 4.0?

al_rhar 01-08-2010 11:03 AM

Excellent thanks. My users have been moaning about having this option for ages. works fine on 3.8.4

CyberRanger 01-12-2010 03:25 PM

Quote:

Originally Posted by SledgeHead (Post 1934977)
Will this be available for 4.0?

I would be ever so grateful! I stupidly updated my forum to vb4 without realizing I'd break this product.

Fiel 01-25-2010 06:47 AM

I was able to get this to work with vB4. The plugin "SFF: User Options" has to be changed to work with the new template engine used with vB4. Learning a little PHP never hurt, right?

Fiel 01-28-2010 04:32 PM

Since I've been getting a steady stream of questions regarding the update to vB4, here's how you update to vB4:

The only problem with this hack in vB4 is that it doesn't appear correctly in the UserCP. This is due to vB4 using a new template creation engine (which is much, much easier to use - makes it obvious which variables are available to templates and which are not). As of right now, the templates are using variables that they don't have access to, so it doesn't work. These modifications fixes it to work with vB4:

AdminCP --> Products & Plugins --> Plugin Manager --> "SFF: User Options"

Replace this:

PHP Code:

    else 
    { 
        
$optionselected ''
    } 
    eval(
'$optoutforumbits .= "' fetch_template('option') . '";'); 
}

$find_string '$customfields[other]'
$add_string fetch_template('modifyoptions_excludeforums'); 
$vbulletin->templatecache['modifyoptions'] = str_replace($find_string$find_string $add_string$vbulletin->templatecache['modifyoptions']); 


With this:

PHP Code:

    else 
    { 
        
$optionselected ''
    } 
    
$templater vB_Template::create('option');  
    
$templater->register('optionvalue'$optionvalue);  
    
$templater->register('optiontitle'$optiontitle);  
    
$templater->register('optionclass'$optionclass); 
    
$templater->register('optionselected'$optionselected); 
    
$optoutforumbits .= $templater->render(); 


$templater vB_Template::create('modifyoptions_excludeforums');
$templater->register('optoutforumbits'$optoutforumbits);
$template_hook['usercp_options_other'] .= $templater->render(); 

Make sure you save it.

Then go back into the plugin manager and edit "SFF: Cache Templates". This plugin is trying to access a variable which doesn't exist in vB4.

Change this:

PHP Code:

if (THIS_SCRIPT == 'profile'

    
$globaltemplates array_merge($globaltemplates, array( 
        
'modifyoptions_excludeforums'
    )); 


To this:

PHP Code:

if (THIS_SCRIPT == 'profile')
{
    
$cache array_merge($cache, array(
        
'modifyoptions_excludeforums',
    ));


Now you need to change user options to allow the user to select it. For this hack, the creator included his own template (modifyoptions_excludeforums), but that works with vB3 and needs updating for vB4.

So, go to Styles & Templates --> Style Manager --> YOUR_STYLE_HERE --> "Modify User Template Options" --> "modifyoptions_excludeforums"

Replace the entire template contents with this:

Code:

<div class="blockrow">
        <legend>{vb:rawphrase exclude_forums_title}</legend>
        <p class="description">{vb:rawphrase exclude_forums_desc_1} <br /> <br />{vb:rawphrase exclude_forums_desc_2}</p>
        <div class="group">
        <select style="width: 50%" size="13" name="excludeforumids[]" id="sel_excludeforumids" multiple="multiple">
                <option value="">{vb:rawphrase exclude_none}</option>
                {vb:raw optoutforumbits}
        </select>
        </div>
</div>

And you're done. It should work fine and dandy now.

CyberRanger 01-28-2010 05:14 PM

Thanks!

But I'm still getting

PHP Code:

Warningarray_merge() [function.array-merge]: Argument #1 is not an array in [path]/includes/class_bootstrap.php(1146) : eval()'d code on line 5 

at the top of the user profile pages.

In SFF: Cache Templates, do you still have -

PHP Code:

if (THIS_SCRIPT == 'profile')
{
    
$globaltemplates array_merge($globaltemplates, array(
        
'modifyoptions_excludeforums',
    ));



Fiel 01-28-2010 06:20 PM

Ah, my bad. Forgot to say that I did correct that error too.

At that point in the script, $globaltemplates is not defined (nor is it ever). Change it to this:

PHP Code:

if (THIS_SCRIPT == 'profile')
{
    
$cache array_merge($cache, array(
        
'modifyoptions_excludeforums',
    ));



CyberRanger 01-28-2010 06:34 PM

Quote:

Originally Posted by Fiel (Post 1969193)
At that point in the script, $globaltemplates is not defined ...

Awesome! That made the error go away but (always a but!) the template modifyoptions_excludeforums isn't showing up anywhere in the user profile.

Should it still display on the profile.php?do=editoptions page?

Fiel 01-28-2010 06:39 PM

Yes, that's where it displays for me. I know that we've been PMing each other. Make sure you're using the version of the script I posted, not the one I PMed (they are different versions).

CyberRanger 01-28-2010 07:03 PM

Quote:

Originally Posted by Fiel (Post 1969204)
.. not the one I PMed (they are different versions).

duh! I didn't notice that. Now I have the forum listing under profile.php?do=editoptions. I've successfully tested modifying the forums selected and seeing that the changes are saved ...

but ...

when I do "New Posts", new posts from the exclude forums are still showing. :eek:


All times are GMT. The time now is 07:43 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.01142 seconds
  • Memory Usage 1,766KB
  • 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
  • (1)bbcode_code_printable
  • (7)bbcode_php_printable
  • (3)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (4)pagenav_pagelink
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (10)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
  • pagenav_page
  • pagenav_complete
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete