Go Back   vb.org Archive > Community Discussions > Modification Requests/Questions (Unpaid)
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools Display Modes
  #1  
Old 10-19-2009, 10:59 AM
Netz Netz is offline
 
Join Date: Mar 2009
Posts: 18
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Notice: Criteria Custom Profil Field

Hi!

I need an Addon for 3.8.x and need help or anyboady to just solve my problem. :-)

What?
I want to show a Notice by the criteria of a custom field.

Why?
My users have to choese between 8 given regions in their profil, wich I created as custom fiels. Each region should get thier own Notice.

Based on this Addon it should be easy.

Something like this?
Code:
notices_check_criteria "$bbuserinfo[field7] == 'Junkyard'"
--------------- Added [DATE]1255965685[/DATE] at [TIME]1255965685[/TIME] ---------------

I did a short work around by pasting
PHP Code:
<!-- WERBUNG -->
<if 
condition="$bbuserinfo[field7] == 'XYZ'">
        <
table class="tborder" cellpadding="$stylevar[cellpadding]cellspacing="$stylevar[cellspacing]border="0" width="100%" align="center">
        <
tr>
        <
td class="alt1" width="100%"  align="center"><a href="XYZ">
    <
img src="XYZ" border="0" width="95%" /></a></td>
    </
tr>
    </
table>
    <
br />
</if>

<!-- / 
WERBUNG --> 
into my navbar template.:

This is my work till now. Any ideas?
PHP Code:
<?xml version="1.0" encoding="ISO-8859-1"?>

<product productid="notices_custom_field" active="1">
    <title>Notices: Custom Field</title>
    <description>Adds a new criteria to notices (custom field)</description>
    <dependencies>
    </dependencies>
    <codes>
    </codes>
    <templates>
    </templates>
    <version>1.0.0</version>
    <plugins>
        <plugin active="1" executionorder="5">
            <title>Custom Field Criteria</title>
            <hookname>notices_list_criteria</hookname>
            <phpcode><![CDATA[
$criteria_options = array_merge($criteria_options, array(            
        'custom_field_is' => array(
            '<input type="text" name="criteria[custom_field_is][condition1]" size="50" class="bginput" tabindex="1" value=""' .
                (empty($criteria_cache['custom_field_is']) ? $_bbuserinfo[field7] : htmlspecialchars_uni($criteria_cache['custom_field_is']['condition1'])) .
            '" />'
        ),
));
]]></phpcode>
        </plugin>
    <plugin active="1" executionorder="5">
            <title>Notices: Custom Field Criteria</title>
            <hookname>notices_check_criteria</hookname>
            <phpcode><![CDATA[
if ($criteriaid=='custom_field_is')
{
    if (strtolower($conditions[0]) != strtolower("$_bbuserinfo[field7]))
    {
        $abort=true;
    }
}
]]></phpcode>
        </plugin>
    </plugins>
    <phrases>
        <phrasetype name="Notices" fieldname="notice">
            <phrase name="custom_field_is_criteria" date="0" username="" version=""><![CDATA[User has chosen {1}]]></phrase>
    </phrasetype>
    </phrases>
<options>
        <settinggroup name="custom_field_is_notice" displayorder="1000">
            <setting varname="custom_field_is_message" displayorder="10">
                <datatype>free</datatype>
                <optioncode>textarea</optioncode>
                <defaultvalue></defaultvalue>
            </setting>
        </settinggroup>
    </options>
    <helptopics>
    </helptopics>
    <cronentries>
    </cronentries>
    <faqentries>
    </faqentries>
</product>
Reply With Quote
  #2  
Old 10-20-2009, 12:04 AM
Wired1's Avatar
Wired1 Wired1 is offline
 
Join Date: Nov 2003
Location: Orlando, FL, USA
Posts: 1,361
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Shouldn't need the options at all.

Here's what I came up with (untested):
PHP Code:
<?xml version="1.0" encoding="ISO-8859-1"?>

<product productid="tsk tsk" active="1">
    <title>Profile Field Contains Specified Text</title>
    <description>Allows Notices to show up if profile field ID contains specified text</description>
    <version>1.0.0</version>
    <url></url>
    <versioncheckurl></versioncheckurl>
    <dependencies>
    </dependencies>
    <codes>
    </codes>
    <templates>
    </templates>
    <plugins>
        <plugin active="1" executionorder="5">
            <title>Checks to see if profile field has specified text</title>
            <hookname>notices_check_criteria</hookname>
            <phpcode><![CDATA[if ($criteriaid=='is_profile_field')
{
if ($bbuserinfo[field$conditions[0]] != $conditions[1])
{
        $abort=true;
}
    }]]></phpcode>
        </plugin>
        <plugin active="1" executionorder="5">
            <title>Adds Profile Field ID Criteria</title>
            <hookname>notices_profile_field_criteria</hookname>
            <phpcode><![CDATA[$criteria_options2 = array(
    'is_profile_field' => array(
        '<input type="integer" name="criteria[is_profile_field][condition1]" size="2" class="bginput" tabindex="1" value="' .
            $criteria_cache['is_profile_field']['condition1'] .
        '" />',
        '<input type="text" name="criteria[is_profile_field][condition2]" size="20" class="bginput" tabindex="1" value="' .
            $criteria_cache['is_profile_field']['condition2'] .
        '" />'
    ),
);

$criteria_options = array_merge($criteria_options, $criteria_options2);]]></phpcode>
        </plugin>
    </plugins>
    <phrases>
        <phrasetype name="Notices" fieldname="notice">
            <phrase name="is_profile_field_criteria" date="1210125248" username="Wired1" version="1.0.0"><![CDATA[Profile Field ID {1} contains the following text: {2}]]></phrase>
        </phrasetype>
    </phrases>
    <options>
    </options>
    <helptopics>
    </helptopics>
    <cronentries>
    </cronentries>
    <faqentries>
    </faqentries>
</product>
Reply With Quote
  #3  
Old 10-20-2009, 12:12 PM
Netz Netz is offline
 
Join Date: Mar 2009
Posts: 18
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Thanks.
Why shouldn't need the options at all?


After 6 hours I still can't get it running.

As I found out:
hooknames should be notices_list_criteria and notices_check_criteria

Everyone gets following error and the notice, when Option is chosen.
Quote:
Parse error: parse error, expecting `']'' in D:\htdocs\forum\includes\functions_notice.php(296) : eval()'d code on line 3
I'm now at this point (again)
PHP Code:
<?xml version="1.0" encoding="ISO-8859-1"?>

<product productid="profile_field" active="1">
    <title>Profile Field Contains Specified Text</title>
    <description>Allows Notices to show up if profile field ID contains specified text</description>
    <version>1.0.0</version>
    <url></url>
    <versioncheckurl></versioncheckurl>
    <dependencies>
    </dependencies>
    <codes>
    </codes>
    <templates>
    </templates>
    <plugins>
        <plugin active="1" executionorder="5">
            <title>Checks to see if profile field has specified text</title>
            <hookname>notices_check_criteria</hookname>
            <phpcode><![CDATA[if ($criteriaid=='is_profile_field')
{
if ($bbuserinfo[field$conditions[0]] != $conditions[1])
{
        $abort=true;
}
    }]]></phpcode>
        </plugin>
        <plugin active="1" executionorder="5">
            <title>Adds Profile Field ID Criteria</title>
            <hookname>notices_list_criteria</hookname>
            <phpcode><![CDATA[$criteria_options2 = array(
    'is_profile_field' => array(
        '<input type="integer" name="criteria[is_profile_field][condition1]" size="2" class="bginput" tabindex="1" value="' .
            $criteria_cache['is_profile_field']['condition1'] .
        '" />',
        '<input type="text" name="criteria[is_profile_field][condition2]" size="20" class="bginput" tabindex="1" value="' .
            $criteria_cache['is_profile_field']['condition2'] .
        '" />'
    ),
);

$criteria_options = array_merge($criteria_options, $criteria_options2);]]></phpcode>
        </plugin>
    </plugins>
    <phrases>
        <phrasetype name="Notices" fieldname="notice">
            <phrase name="is_profile_field_criteria" date="0" username="Wired1" version="1.0.0"><![CDATA[Profile Field ID {1} contains the following text: {2}]]></phrase>
        </phrasetype>
    </phrases>
    <options>
    </options>
    <helptopics>
    </helptopics>
    <cronentries>
    </cronentries>
    <faqentries>
    </faqentries>
</product>
--------------- Added [DATE]1256055158[/DATE] at [TIME]1256055158[/TIME] ---------------

WTF is line 3?

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

PHP Code:
if ($bbuserinfo[field$conditions[0]] != $conditions[1]) 
is not correct.

Code:
if ($bbuserinfo['field$conditions[0]'] != $conditions[1])
if ($_bbuserinfo['field$conditions[0]'] != $conditions[1])
if ($userinfo['field$conditions[0]'] != $conditions[1])
if ($post['field$conditions[0]'] != $conditions[1])
etc.
are stoping the error message, but have no effekt. noboady gets the Notice.
Reply With Quote
  #4  
Old 10-21-2009, 01:04 AM
Wired1's Avatar
Wired1 Wired1 is offline
 
Join Date: Nov 2003
Location: Orlando, FL, USA
Posts: 1,361
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Try this:
PHP Code:
if ($vbulletin->userinfo[field$conditions[0]] != $conditions[1]) 
Reply With Quote
  #5  
Old 10-21-2009, 06:23 AM
Netz Netz is offline
 
Join Date: Mar 2009
Posts: 18
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Code:
parse error, expecting `']'' in D:\htdocs\forum\includes\functions_notice.php(296) : eval()'d code on line 3
Error on top of all pages and everyone gets the message.

PHP Code:
<?xml version="1.0" encoding="ISO-8859-1"?>

<product productid="profile_field" active="1">
    <title>Profile Field Contains Specified Text</title>
    <description>Allows Notices to show up if profile field ID contains specified text</description>
    <version>1.0.0</version>
    <url></url>
    <versioncheckurl></versioncheckurl>
    <dependencies>
    </dependencies>
    <codes>
    </codes>
    <templates>
    </templates>
    <plugins>
        <plugin active="1" executionorder="5">
            <title>Checks to see if profile field has specified text</title>
            <hookname>notices_check_criteria</hookname>
            <phpcode><![CDATA[if ($criteriaid=='is_profile_field')
{
if ($vbulletin->userinfo[field$conditions[0]] != $conditions[1])  
{
        $abort=true;
}
    }]]></phpcode>
        </plugin>
        <plugin active="1" executionorder="5">
            <title>Adds Profile Field ID Criteria</title>
            <hookname>notices_list_criteria</hookname>
            <phpcode><![CDATA[$criteria_options2 = array(
    'is_profile_field' => array(
        '<input type="integer" name="criteria[is_profile_field][condition1]" size="2" class="bginput" tabindex="1" value="' .
            $criteria_cache['is_profile_field']['condition1'] .
        '" />',
        '<input type="text" name="criteria[is_profile_field][condition2]" size="20" class="bginput" tabindex="1" value="' .
            $criteria_cache['is_profile_field']['condition2'] .
        '" />'
    ),
);

$criteria_options = array_merge($criteria_options, $criteria_options2);]]></phpcode>
        </plugin>
    </plugins>
    <phrases>
        <phrasetype name="Notices" fieldname="notice">
            <phrase name="is_profile_field_criteria" date="0" username="Wired1" version="1.0.0"><![CDATA[Profile Field ID {1} contains the following text: {2}]]></phrase>
        </phrasetype>
    </phrases>
    <options>
    </options>
    <helptopics>
    </helptopics>
    <cronentries>
    </cronentries>
    <faqentries>
    </faqentries>
</product>
All look for the parse error and post what I found.

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

Found it: $vbulletin ->userinfo is ending the brake <![CDATA[if



Different idea: Can it be a problem, that my field7 (wich I'm trying to catch) is a Single-Selection Menu? Maybe the options are counted No1, No2...

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

Found this in advanced search with firebug
HTML Code:
<option value="1">XY1</option>
<option value="2">XY2</option>
So I should search for a value instead of a text.

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

Wrong idea. The value of the option is a text! :erm:

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

I quit! can a moderator pleas move this thread to Modification Requests (Unpaid)

Thanks a lot Wired1!
Reply With Quote
  #6  
Old 10-23-2009, 02:01 PM
Netz Netz is offline
 
Join Date: Mar 2009
Posts: 18
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Can anyone solve the problem for me?
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 02:02 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.04577 seconds
  • Memory Usage 2,268KB
  • Queries Executed 13 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (1)ad_showthread_firstpost
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (3)bbcode_code
  • (1)bbcode_html
  • (7)bbcode_php
  • (1)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (6)post_thanks_box
  • (6)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (6)post_thanks_postbit_info
  • (6)postbit
  • (6)postbit_onlinestatus
  • (6)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.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/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete