Писалось под конкретное дополнительное поле "Телефон", т.к. у заказчика оно было одно, но подходит для поиска по любому полю - индекс, девичья фамилия матери и т.п.
при одном доп.поле:
1.jpg 12.41К 4 Количество загрузок:
при нескольких:
2.jpg 13.21К 4 Количество загрузок:
Установка:
==========
1. в файле order_functions.php в функции ordGetOrders
перед
if ( isset($callBackParam["orderStatuses"]) )
вставляем
# BEGIN поиск по дополнительному полю
if ( isset($callBackParam['reg_field_id']) && isset($callBackParam['reg_field_value']))
{
#$where = " WHERE reg_field_ID=".$callBackParam['reg_field_id']." AND REPLACE(REPLACE(reg_field_value,'-',''),' ','') LIKE '%".$callBackParam['reg_field_value']."%'";
$where = " WHERE reg_field_ID=".$callBackParam['reg_field_id']." AND reg_field_value LIKE '%".$callBackParam['reg_field_value']."%'";
$select_registered = "SELECT customerID FROM ".CUSTOMER_REG_FIELDS_VALUES_TABLE.$where;
$select_quick = "SELECT orderID FROM ".CUSTOMER_REG_FIELDS_VALUES_TABLE_QUICKREG.$where;
$where_clause .= " customerID IN ($select_registered) OR orderID IN ($select_quick) AND customerID=0";
}
# END поиск по дополнительному полю
2. в файле custord_new_orders.php
2.1. в функции _setCallBackParamsToSearchOrders
в самый конец вставляем
# BEGIN поиск по дополнительному полю
else if ( $_GET["order_search_type"] == "reg_field" )
{
$callBackParam["reg_field_id"] = (int)$_GET["reg_field_id"];
$callBackParam["reg_field_value"] = trim($_GET["reg_field_value"]);
}
# END поиск по дополнительному полю
2.2. в функциях _getReturnUrl, _getUrlToNavigate и _getUrlToSort
после
$url .= "&orderID_textbox=".$_GET["orderID_textbox"];
вставляем
# BEGIN поиск по дополнительному полю
if (isset($_GET["reg_field_id"])) $url .= "®_field_id=".$_GET["reg_field_id"];
if (isset($_GET["reg_field_value"])) $url .= "®_field_value=".$_GET["reg_field_value"];
# END поиск по дополнительному полю
3. в файле menu.tpl.html
3.1. перед
<tr>
<td align="left"><input type=radio class="round" name=order_search_type id=order_search_type2 value='SearchByStatusID'
вставляем
{* BEGIN поиск по дополнительному полю *}
{assign var='reg_fields' value=0|GetRegFields}
{if $reg_fields|@count}
<tr>
<td align="left" width="16" valign="middle">
<input type=radio class="round" name=order_search_type id=order_search_type3 value='reg_field'{if $order_search_type == 'reg_field'} checked{/if} onclick='order_search_typeClickHandler()'>
</td>
<td valign="middle" height="20">Поиск по доп.полю</td>
</tr>
<tr>
<td> </td>
<td align="left">
{if $reg_fields|@count==1}
<input type='hidden' name='reg_field_id' id='reg_field_id' value='{$reg_fields[0].reg_field_ID}'>{$reg_fields[0].reg_field_name}<br>
{else}
<select name='reg_field_id' id='reg_field_id' style='width:126px;'>
{foreach from=$reg_fields item=reg_field}
<option value="{$reg_field.reg_field_ID}"{if $reg_field.reg_field_ID==$smarty.get.reg_field_ID} selected{/if}>{$reg_field.reg_field_name}</option>
{/foreach}
</select>
{/if}
</td>
</tr>
<tr>
<td> </td>
<td align="left"><input type=text name='reg_field_value' id='reg_field_value' value='{$smarty.get.reg_field_value}' class="prc" size="21"></td>
</tr>
<tr><td height="6" colspan="2"></td></tr>
{/if}
{* END поиск по дополнительному полю *}
3.2. после
document.getElementById('id_checkall').disabled = true;
вставляем
// BEGIN поиск по дополнительному полю
document.getElementById('reg_field_id').disabled = true;
document.getElementById('reg_field_value').disabled = true;
// END поиск по дополнительному полю
3.3. после
document.getElementById('id_checkall').disabled = false;
вставляем
// BEGIN поиск по дополнительному полю
document.getElementById('reg_field_id').disabled = true;
document.getElementById('reg_field_value').disabled = true;
// END поиск по дополнительному полю
3.4. перед
{literal}}{/literal}
order_search_typeClickHandler();
вставляем
// BEGIN поиск по дополнительному полю
else if ( document.getElementById('order_search_type3').checked )
{literal}{{/literal}
{section name=i loop=$order_statuses}
document.getElementById('checkbox_order_status_{$order_statuses[i].statusID}').disabled = true;
{/section}
document.getElementById('id_checkall').disabled = true;
document.getElementById('orderID_textbox').disabled = true;
document.getElementById('reg_field_id').disabled = false;
document.getElementById('reg_field_value').disabled = false;
{literal}}{/literal}
// END поиск по дополнительному полю