vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   Modification Requests/Questions (Unpaid) (https://vborg.vbsupport.ru/forumdisplay.php?f=112)
-   -   Notice: Criteria Custom Profil Field (https://vborg.vbsupport.ru/showthread.php?t=225543)

Netz 10-19-2009 10:59 AM

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>


Wired1 10-20-2009 12:04 AM

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>


Netz 10-20-2009 12:12 PM

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. :confused:

Wired1 10-21-2009 01:04 AM

Try this:
PHP Code:

if ($vbulletin->userinfo[field$conditions[0]] != $conditions[1]) 


Netz 10-21-2009 06:23 AM

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... :confused:

--------------- 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!

Netz 10-23-2009 02:01 PM

Can anyone solve the problem for me?


All times are GMT. The time now is 06:02 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.01383 seconds
  • Memory Usage 1,812KB
  • 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
  • (3)bbcode_code_printable
  • (1)bbcode_html_printable
  • (7)bbcode_php_printable
  • (1)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (6)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