Osclass osc_user_phone() 不工作
Osclass osc_user_phone () is not working
最近我用这个函数在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>
到这里一切正常。如果完成用户配置文件中的 Phone 单元格字段没问题,phone 数字将显示在项目页面中。
如果 post 一个新广告,没有帐户并完成单元格 Phone 输入,phone 号码不会显示在项目页面中。
来自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>
来自用户-profile.php,单元格phone输入:
<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
相同的代码
输入字段如何工作以及当用户 post 编辑新广告时 phone 数字显示在项目页面中?
提交页面时,Osclass 会检查发布项目的是注册用户还是非注册用户。
- 如果找到用户 ID,信息将存储在具有
s_phone_land
和 s_phone_mobile
. 的 oc_t_user
中
- 当一个非注册用户发布一个项目时,他的信息被存储到数据库中的
oc_t_item
table。不幸的是,它只保存了 s_contact_name
和 s_contact_email
,没有可用的字段是 table 用于 phone。
然后,您的 phone 输入字段已提交,但控制器并未考虑。您可以在 controller/item.php
和 ItemActions.php
.
中查看该过程
您可能想查看 ItemActions.php
中第 1100 到 1110 行附近的 prepareData()
方法:
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;
在 osclass 3.7.1(bender 主题)中,我设法将注册用户 phone 放入 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 } ?>
最近我用这个函数在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>
到这里一切正常。如果完成用户配置文件中的 Phone 单元格字段没问题,phone 数字将显示在项目页面中。 如果 post 一个新广告,没有帐户并完成单元格 Phone 输入,phone 号码不会显示在项目页面中。
来自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>
来自用户-profile.php,单元格phone输入:
<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
相同的代码输入字段如何工作以及当用户 post 编辑新广告时 phone 数字显示在项目页面中?
提交页面时,Osclass 会检查发布项目的是注册用户还是非注册用户。
- 如果找到用户 ID,信息将存储在具有
s_phone_land
和s_phone_mobile
. 的 - 当一个非注册用户发布一个项目时,他的信息被存储到数据库中的
oc_t_item
table。不幸的是,它只保存了s_contact_name
和s_contact_email
,没有可用的字段是 table 用于 phone。
oc_t_user
中
然后,您的 phone 输入字段已提交,但控制器并未考虑。您可以在 controller/item.php
和 ItemActions.php
.
您可能想查看 ItemActions.php
中第 1100 到 1110 行附近的 prepareData()
方法:
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;
在 osclass 3.7.1(bender 主题)中,我设法将注册用户 phone 放入 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 } ?>