跳转到主要内容
庙凡_弱弱 提交于 7 December 2016

微信开发中,遇到这样的需求:提交了一次表单,第二次点开表单,页面显示温馨提示。

思路是清晰的:点开表单页,获取用户的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 版本