Resource icon

Registration Referrer Member AutoComplete

KozmoK

Active member
KozmoK submitted a new resource:

Registration Referrer - Registration Referrer Template mod

If you ever wanted to have your custom registration referral field do a XenForo member name auto complete, then this tweak is for you. Its probably not the right way to do it, as I add a enum type to the XenForo table, but it was quick and easy.

Please backup your db, as necessary as I am not responsible for anything you did to your forum.

Step 1
Create a Custom referrer field in AdminCP - set all the options you want on it.

Step 2...

Read more about this resource...
 
Its a custom registration field


Well, on my site - I like to reward people who send people to my site, so I want them to fill it out to credit the propper people if they purchase a subscription.

So - with this mod, it allows them to find the member properly.
 
That sounds pretty cool but can you please consider including screenshots of what this looks like?
 
I had made two versions of this, one with the db edits, and php file edits, and found that the template edit is much easier for the novice so I removed the ones with php edits/sql.
 
Last edited:
Ok I reverted and tested it, it worked fine:

Here is the first 26 lines of "custom_field_edit" Green is inserted, and red is altered, black is existing.... if it still doesnt work, please paste these lines from your template here...i'm sure it something simple.

<dl class="ctrlUnit customFieldEdit{$field.field_id}">
<dt>
<label for="ctrl_custom_field_{$field.field_id}">{$field.title}:</label>
<xen:if is="{$field.required}"><dfn>{xen:phrase required}</dfn></xen:if>
</dt>
<dd>

<xen:if is="{$field.field_id} == 'Referrer'">
<input type="search" name="custom_fields[{$field.field_id}]"
value="{$field.field_value}"
placeholder="{xen:phrase name}..." results="0" class="textCtrl AutoComplete"
data-validatorname="custom_field_{$field.field_id}"
data-autoSubmit="true" />

<xen:elseif is="{$field.field_type} == 'textbox'" />
<input type="text" name="custom_fields[{$field.field_id}]" value="{$field.field_value}"
id="ctrl_custom_field_{$field.field_id}"
data-validatorname="custom_field_{$field.field_id}"
class="textCtrl" maxlength="{xen:if $field.max_length, $field.max_length}"
/>

<xen:elseif is="{$field.field_type} == 'textarea'" />
<textarea name="custom_fields[{$field.field_id}]"
id="ctrl_custom_field_{$field.field_id}"
data-validatorname="custom_field_{$field.field_id}"
class="textCtrl Elastic">{$field.field_value}</textarea>
<xen:elseif is="{$field.field_type} == 'radio'" />
 
Last edited:
Template custom_field_edit :(

Code:
<dl class="ctrlUnit">

    <dt>
        <label for="ctrl_custom_field_{$field.field_id}">{$field.title}:</label>
        <xen:if is="{$field.required}"><dfn>{xen:phrase required}</dfn></xen:if>
    </dt>
    <dd>
        <xen:if is="{$field.field_type} == 'textbox'">
            <input type="text" name="custom_fields[{$field.field_id}]" value="{$field.field_value}"
                id="ctrl_custom_field_{$field.field_id}"
                data-validatorname="custom_field_{$field.field_id}"
                class="textCtrl" maxlength="{xen:if $field.max_length, $field.max_length}"
            />
        <xen:elseif is="{$field.field_type} == 'textarea'" />
            <textarea name="custom_fields[{$field.field_id}]"
                id="ctrl_custom_field_{$field.field_id}"
                data-validatorname="custom_field_{$field.field_id}"
                class="textCtrl Elastic">{$field.field_value}</textarea>
        <xen:elseif is="{$field.field_type} == 'radio'" />
            <ul class="checkboxColumns">
            <xen:if is="!{$field.required}">
                <li><label><input type="radio" name="custom_fields[{$field.field_id}]" value="" {xen:checked '{$field.field_value} == ""'} /> <span class="muted">{xen:phrase no_selection}</span></label></li>
            </xen:if>
            <xen:foreach loop="$field.fieldChoices" key="$choice" value="$text">
                <li><label><input type="radio" name="custom_fields[{$field.field_id}]" value="{$choice}" {xen:checked '{$field.field_value} == {$choice}'} /> {xen:raw $text}</label></li>
            </xen:foreach>
            </ul>
        <xen:elseif is="{$field.field_type} == 'select'" />
            <select name="custom_fields[{$field.field_id}]" id="ctrl_custom_field_{$field.field_id}" class="textCtrl">
            <xen:if is="!{$field.required} OR !{$field.hasValue}">
                <option value="">&nbsp;</option>
            </xen:if>
            <xen:foreach loop="$field.fieldChoices" key="$choice" value="$text">
                <option value="{$choice}" {xen:selected '{$field.field_value} == {$choice}'}>{xen:raw $text}</option>
            </xen:foreach>
            </select>
        <xen:elseif is="{$field.field_type} == 'checkbox'" />
            <ul class="checkboxColumns">
            <xen:foreach loop="$field.fieldChoices" key="$choice" value="$text">
                <li><label><input type="checkbox" name="custom_fields[{$field.field_id}][{$choice}]" value="{$choice}" {xen:checked 'isset({$field.field_value.{$choice}})'} /> {xen:raw $text}</label></li>
            </xen:foreach>
            </ul>
        <xen:elseif is="{$field.field_type} == 'multiselect'" />
            <select name="custom_fields[{$field.field_id}][]" id="ctrl_custom_field_{$field.field_id}" class="textCtrl" size="7" multiple="multiple">
            <xen:if is="!{$field.required} OR !{$field.hasValue}">
                <option value="">&nbsp;</option>
            </xen:if>
            <xen:foreach loop="$field.fieldChoices" key="$choice" value="$text">
                <option value="{$choice}" {xen:selected 'isset({$field.field_value.{$choice}}'}>{xen:raw $text}</option>
            </xen:foreach>
            </select>
        </xen:if>

        <xen:if hascontent="true"><p class="explain"><xen:contentcheck>{xen:raw $field.description}</xen:contentcheck></p></xen:if>
        <input type="hidden" name="custom_fields_shown[]" value="{$field.field_id}" />
    </dd>
</dl>
 
I dont see where you edited it at all... oh crap, Im running 1.2 RC 2

I wonder if that matters?

all's I did was insert the green lines above, and altered that red one - dont know how to make it simpler then that.
 
I edited template ..RED

<dl class="ctrlUnit">
<dt>
<label for="ctrl_custom_field_{$field.field_id}">{$field.title}:</label>
<xen:if is="{$field.required}"><dfn>{xen:phrase required}</dfn></xen:if>
</dt>
<dd>

<xen:if is="{$field.field_id} == 'ReferrerForum'">
<input type="search" name="custom_fields[{$field.field_id}]"
value="{$field.field_value}"
placeholder="{xen:phrase name}..." results="0" class="textCtrl AutoComplete"
data-validatorname="custom_field_{$field.field_id}"
data-autoSubmit="true" />

<xen:if is="{$field.field_type} == 'textbox'">
<input type="text" name="custom_fields[{$field.field_id}]" value="{$field.field_value}"
id="ctrl_custom_field_{$field.field_id}"
data-validatorname="custom_field_{$field.field_id}"
class="textCtrl" maxlength="{xen:if $field.max_length, $field.max_length}"
/>
<xen:elseif is="{$field.field_type} == 'textarea'" />
<textarea name="custom_fields[{$field.field_id}]"
id="ctrl_custom_field_{$field.field_id}"
data-validatorname="custom_field_{$field.field_id}"
class="textCtrl Elastic">{$field.field_value}</textarea>
<xen:elseif is="{$field.field_type} == 'radio'" />
<ul class="checkboxColumns">
<xen:if is="!{$field.required}">
<li><label><input type="radio" name="custom_fields[{$field.field_id}]" value="" {xen:checked '{$field.field_value} == ""'} /> <span class="muted">{xen:phrase no_selection}</span></label></li>
</xen:if>
<xen:foreach loop="$field.fieldChoices" key="$choice" value="$text">
<li><label><input type="radio" name="custom_fields[{$field.field_id}]" value="{$choice}" {xen:checked '{$field.field_value} == {$choice}'} /> {xen:raw $text}</label></li>
</xen:foreach>
</ul>
<xen:elseif is="{$field.field_type} == 'select'" />
<select name="custom_fields[{$field.field_id}]" id="ctrl_custom_field_{$field.field_id}" class="textCtrl">
<xen:if is="!{$field.required} OR !{$field.hasValue}">
<option value="">&nbsp;</option>
</xen:if>
<xen:foreach loop="$field.fieldChoices" key="$choice" value="$text">
<option value="{$choice}" {xen:selected '{$field.field_value} == {$choice}'}>{xen:raw $text}</option>
</xen:foreach>
</select>
<xen:elseif is="{$field.field_type} == 'checkbox'" />
<ul class="checkboxColumns">
<xen:foreach loop="$field.fieldChoices" key="$choice" value="$text">
<li><label><input type="checkbox" name="custom_fields[{$field.field_id}][{$choice}]" value="{$choice}" {xen:checked 'isset({$field.field_value.{$choice}})'} /> {xen:raw $text}</label></li>
</xen:foreach>
</ul>
<xen:elseif is="{$field.field_type} == 'multiselect'" />
<select name="custom_fields[{$field.field_id}][]" id="ctrl_custom_field_{$field.field_id}" class="textCtrl" size="7" multiple="multiple">
<xen:if is="!{$field.required} OR !{$field.hasValue}">
<option value="">&nbsp;</option>
</xen:if>
<xen:foreach loop="$field.fieldChoices" key="$choice" value="$text">
<option value="{$choice}" {xen:selected 'isset({$field.field_value.{$choice}}'}>{xen:raw $text}</option>
</xen:foreach>
</select>
</xen:if>
</xen:if>

<xen:if hascontent="true"><p class="explain"><xen:contentcheck>{xen:raw $field.description}</xen:contentcheck></p></xen:if>
<input type="hidden" name="custom_fields_shown[]" value="{$field.field_id}" />
</dd>
</dl>
 
You didnt edit the "<xen:if is="{$field.field_type} == 'textbox'">" as I did above....

it should be:

<xen:elseif is="{$field.field_type} == 'textbox'" />

please notice the elseif difference and the /> at the end


and dont put the extra end </xen:if> - I never said to add that.
 
Last edited:
It should be that way automatically if you set the input type = "search" . Its not showing a magnifying glass?
 
Back
Top Bottom