Example #1
0
 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;
 }
Example #2
0
 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;
 }
Example #4
0
 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;
 }