微信开发中,遇到这样的需求:提交了一次表单,第二次点开表单,页面显示温馨提示。
思路是清晰的:点开表单页,获取用户的uid,到数据库查找是否有存在对应表单的uid。 没有,即还没提交过表单,加载表单(区块)。 有,即提交过表单,加载温馨提示(区块)。
遇到的问题有:调用webform模块里的一个表单(区块),使用
module_invoke('webform','block_view','client-block-493'); 参数1:模块名称 参数2:hook 名称 参数3:相关的hook参数 参数4:也是hook参数(没用到,不用传)
源码如下:
function blockContent() {
$node_nid = arg(1);//获取当前节点
global $user;//获取uid
$link = "微信授权登录链接,跳至对应node/$node_nid";
if (!$user->uid) {
watchdog('weiform', '跳轉授權登錄');
drupal_goto($link);
}
$uid = $user->uid;
$once = webform_stock_get_once_page($node_nid,$uid);//从数据库中检索是否第一次提交
if($once){
$cont = variable_get('webform_stock_custom_block_setting', t('Hello world'));//获取对应提示内容
$info = wechat_load_wechat_info($uid);//根据uid查出其头像和昵称
$output = '<div class="webform_onceag"><div class="am-g doc-am-g am-text-center am-padding-bottom"><img class="am-circle" src="'.$info['headimgurl'].
'" width="80" height="80"/><br />'.$info['nickname'].'</div><p>'.$cont.'</p></div>';//格式化显示
}else{
$block = module_invoke('webform','block_view','client-block-493');//调用区块(表单)
$output = render($block['content']);
}
return $output;
}
标签
Drupal 版本