public function run(&$arrData, $arrConf) { if (empty($arrData) || !is_array($arrData)) { return false; } // 查找对应资源 foreach ($GLOBALS['RESULT'] as $res) { foreach ($arrData['uiData'][$res]['item'] as $intIndex => &$arrItem) { if (empty($arrItem['dispData']['click_data'])) { Clog::debug("ClickDataStrategy click_data is empty"); continue; } //对所有click_data字段进行组装 $string_value = ''; $firstflag = true; foreach ($arrItem['dispData']['click_data'] as $key => $value) { if ($firstflag == true) { $string_value = $string_value . $key . ':' . $value; $firstflag = false; } else { $string_value = $string_value . '|'; $string_value = $string_value . $key . ':' . $value; } } if (strlen($string_value) != 0) { //与FE约定加入串的名字为click_data_str与click_data平级 $arrItem['dispData']['click_data_str'] = $string_value; } } } return true; }
function clog($message = '') { return Clog::Log($message); }
/** * desc: 发送图文客服消息,需要access_token * * @param $openid * @param $articleArr --- array( { * "title":"Happy Day", * "description":"Is Really A Happy Day", * "url":"URL", * "picurl":"PIC_URL") * * @return bool|mixed */ public function sendImageMessage($openid, $article = array(), $loop = 1) { if ($access_token = $this->getAccessToken()) { $message = array(); $message['touser'] = $openid; $message['msgtype'] = "news"; $message['news']['articles'] = array($article); $url_message = parent::$links['message'] . "?access_token={$access_token}"; //https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=ACCESS_TOKEN /*{ "touser":"******", "msgtype":"news", "news":{ "articles": [ { "title":"Happy Day", "description":"Is Really A Happy Day", "url":"URL", "picurl":"PIC_URL" }, { "title":"Happy Day", "description":"Is Really A Happy Day", "url":"URL", "picurl":"PIC_URL" } ] } } } */ $rstArr = Curl::curlSend($url_message, $message, array('format' => 'json')); Clog::WriteLog($rstArr, 'wxmsg'); if ($rstArr && isset($rstArr['text'])) { $retArr = json_decode($rstArr['text'], true); if (isset($retArr['errmsg']) && 'ok' == $retArr['errmsg']) { return true; } //{"errcode":40001,"errmsg":"invalid credential, access_token is invalid or not latest"} if ($loop < 2 && isset($retArr['errcode']) && 40001 == intval($retArr['errcode'])) { $this->dropAccessToken(10); $this->sendImageMessage($openid, $article, 2); } } } return false; }
public function run(&$arrData, $arrConf) { if (empty($arrData) || !is_array($arrData)) { return false; } // 查找对应资源 foreach ($GLOBALS['RESULT'] as $res) { foreach ($arrData['uiData'][$res]['item'] as $intIndex => $arrItem) { $hide_path_list = $arrItem['hideItemPath']; if (!isset($hide_path_list) || !is_array($hide_path_list)) { Clog::debug("ItemHideStrategy hide_path_list is empty"); continue; } if (empty($arrItem['dispData']['resultData']['tplData'])) { Clog::debug("ItemHideStrategy tplData is empty"); continue; } //解析屏蔽path列表 foreach ($hide_path_list as $path) { //样式 result.list[0], 方括号内为数字 Clog::debug($path . "need to hide"); $tmp = explode(".", $path); $path_array = array(); foreach ($tmp as $fd) { Clog::debug($fd); $length = strlen($fd); if ($length == 0) { continue; } $fields = explode("[", $fd); //提取出数字索引 if (count($fields) == 2) { $path_array[] = $fields[0]; $path_array[] = intval(trim($fields[1], "]")); } else { if (count($fields) == 1) { $path_array[] = $fd; } else { continue; } } } $tpl_data =& $arrData['uiData'][$res]['item'][$intIndex]['dispData']['resultData']['tplData']; Clog::debug("path_array count=" . count($path_array)); //删除item的内容 switch (count($path_array)) { case 0: break; case 1: if (isset($tpl_data[$path_array[0]])) { unset($tpl_data[$path_array[0]]); } break; case 2: if (isset($tpl_data[$path_array[0]][$path_array[1]])) { unset($tpl_data[$path_array[0]][$path_array[1]]); } break; case 3: if (isset($tpl_data[$path_array[0]][$path_array[1]][$path_array[2]])) { unset($tpl_data[$path_array[0]][$path_array[1]][$path_array[2]]); } break; case 4: if (isset($tpl_data[$path_array[0]][$path_array[1]][$path_array[2]][$path_array[3]])) { unset($tpl_data[$path_array[0]][$path_array[1]][$path_array[2]][$path_array[3]]); } break; case 5: if (isset($tpl_data[$path_array[0]][$path_array[1]][$path_array[2]][$path_array[3]][$path_array[4]])) { unset($tpl_data[$path_array[0]][$path_array[1]][$path_array[2]][$path_array[3]][$path_array[4]]); } default: Clog::warning("hide path illegal"); break; } } } } return true; }