ecshop自制模板中增加ecshop2.7.1注册自定义项

2010-01-14 11:39 来源:www.chinab4c.com 作者:admin

    ecshop模板如果要自己制作模板,或者是在ecshop2.7.1版本之前增加ecshop会员注册项设置,最简单的办法就是模仿他的js.而且增加他对应的数据结构。如果在其他模板中,有html标签,又该如何处理。

    我们找到colclothing模板,在ecshop注册项目中。我们发现有些注册项目增加其他html标签。比如<strong>{$field.reg_field_name}</strong>。在提示信息中,我们必须通过以下函数来过滤掉多余的html.

    function DelHtml(Word){
a = Word.indexOf("<");
b = Word.indexOf(">");
len = Word.length;
c = Word.substring(0, a);
if(b == -1)
b = a;
d = Word.substring((b + 1), len);
Word = c + d;
tagCheck = Word.indexOf("<");
if(tagCheck != -1)
Word = DelHtml(Word);
return Word;
}

 在注册模板user_passport.dwt中。增加以下显示的代码.

  <!-- {foreach from=$extend_info_list item=field} -->
       <tr>
   <td align="right">&nbsp;</td>
          <td align="left" <!-- {if $field.is_need} -->id="extend_field{$field.id}i"<!--{/if}-->><strong>{$field.reg_field_name}</strong></td>
          <td>
          <input name="extend_field{$field.id}" type="text" size="25" class="border" /><!-- {if $field.is_need} --><span style="color:#FF0000"> *</span><!-- {/if} -->
          </td>
        </tr>

 <!-- {/foreach} -->

还不够,我们需要找到控制注册的js.在js/user.js文件中。增加以下控制扩展项目的,

for (i = 4; i < frm.elements.length - 4; i++) // 从第五项开始循环检查是否为必填项
  {
 needinput = document.getElementById(frm.elements[i].name + 'i') ? document.getElementById(frm.elements[i].name + 'i') : '';

 if (needinput != '' && frm.elements[i].value.length == 0)
 {
   //msg += '- ' + needinput.innerHTML + msg_blank + '\n';
   msg += '- ' + DelHtml(needinput.innerHTML)  +'不能为空'+ '\n';
 }
  }
 在user.php的register动作中,增加以下代码

 /* 取出注册扩展字段 */
    $sql = 'SELECT * FROM ' . $ecs->table('reg_fields') . ' WHERE type < 2 AND display = 1 ORDER BY dis_order, id';
    $extend_info_list = $db->getAll($sql);
    $smarty->assign('extend_info_list', $extend_info_list);

  这样就完成了注册扩展的项目施工了。

   相关文章:

    分析ecshop2.7.1会员注册项设

 来源:中国B4C电子商务

来源于香港公司注册管理专家