微信开发中,遇到这样的需求:提交了一次表单,第二次点开表单,页面显示温馨提示。
思路是清晰的:点开表单页,获取用户的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 版本