1

最近我使用这个函数来隐藏Osclass 3.6.1中osc_user_phone()的最后一个数字

jQuery

<script>
    $(document).ready(function(){
        $("#showPhone").click(function () {
            $("#showPhone").hide();
            $("#hidePhone").show();
        });

        $("#hidePhone").click(function () {
            $("#showPhone").show();
            $("#hidePhone").hide();
        });
    });
</script>

HTML

<?php _e('user phone'); ?> :
<span>
    <a href="#"  id="hidePhone" style="display: none;">
        <?php echo osc_user_phone_mobile(); ?>
    </a>
</span>
<span>
    <a href="#"  id="showPhone">
        <?php echo substr(osc_user_phone_mobile(),0,-4).'XXXX'; ?>
    </a>
</span>

在这里一切正常。如果完成用户配置文件中的电话号码字段是确定的,电话号码将显示在项目页面中。如果发布一个新的广告,没有账号并完成手机输入,电话号码不会显示在项目页面中。

来自item-post.php,问题就在这里(我希望)

<div class="control-group">
    <label class="control-label" for="phoneMobile"><?php _e('Cell phone', 'infinity'); ?></label>
    <div class="controls">
        <?php UserForm::mobile_text(osc_user()); ?>
    </div>
</div>

user-profile.php,手机输入:

<div class="control-group">
    <label class="control-label" for="phoneMobile"><?php _e('Cell phone', 'infinity'); ?></label>
    <div class="controls">
        <?php UserForm::mobile_text(osc_user()); ?>
    </div>
</div>

与item-post.php相同的代码

输入字段如何工作以及当用户发布新广告时,电话号码会显示在项目页面中?

4

2 回答 2

0

提交页面时,Osclass 会检查发布项目的是注册用户还是非注册用户。

  1. 如果它找到一个用户 id,信息将存储在oc_t_user具有s_phone_land和的s_phone_mobile中。
  2. 当一个非注册用户发布一个项目时,他的信息被存储oc_t_item在数据库的表中。不幸的是,它只保存s_contact_names_contact_email,没有可用的字段是此表的电话。

然后,您的手机输入字段已提交,但控制器并未将其考虑在内。controller/item.php您可以在和中看到该过程ItemActions.php

您可能想查看 1100 到 1110 行附近的prepareData()方法ItemActions.php

if( $userId != null ) {
    $aItem['contactName']   = $data['s_name'];
    $aItem['contactEmail']  = $data['s_email'];
    Params::setParam('contactName', $data['s_name']);
    Params::setParam('contactEmail', $data['s_email']);
} else {
    $aItem['contactName']   = Params::getParam('contactName');
    $aItem['contactEmail']  = Params::getParam('contactEmail');
}
$aItem['userId']        = $userId;
于 2016-06-13T09:35:14.577 回答
0

在 osclass 3.7.1(bender 主题)中,我设法将注册的用户手机放入 item-post.php 代码:

<?php if(osc_is_web_user_logged_in()) { ?>
 <?php if (!$edit) { ?>
            <div class="control-group">
                <label class="control-label" for="phoneLand"><?php _e('Phone', 'bender'); ?>*</label>
                <div class="controls">
                    <?php UserForm::phone_land_text(osc_user()); ?>
<p style="font-size: 0.85em; color:red;">* empty => <u>it will miss from all the listings !</u></br>* filled => <u>it will show in all the listings !</u></p>
         </div>
    </div>
 <?php } ?>
 <?php if ($edit) { ?>
            <div class="control-group">
                <label class="control-label" for="phoneLand">The <?php _e('Phone', 'bender'); ?></label>
                <div class="controls">
<p style="font-size: 0.85em;"> can be edited <a href="<?php echo osc_user_profile_url(); ?>" target="_blank">here</a>.</p>
         </div>
    </div>
 <?php } ?>
<?php } ?>
于 2017-03-24T21:32:13.617 回答