/** * 根据app_id获取相关信息 */ public function config() { $app_id = intval($this->input['id']); if (!$app_id) { $this->errorOutput(NO_APP_ID); } //获取APP信息 $app_info = $this->api->detail('app_info', array('id' => $app_id, 'del' => 0)); if (!$app_info) { $this->errorOutput(APP_NOT_EXISTS); } //分享平台数据 if (isset($app_info['share_plant']) && $app_info['share_plant']) { $app_info['share_plant'] = @unserialize($app_info['share_plant']); } else { $app_info['share_plant'] = array(); } if ($app_info['icon'] && unserialize($app_info['icon'])) { $app_info['icon'] = unserialize($app_info['icon']); if (IS_REPLACE && REPLACE_IMG_DOMAIN) { $app_info['icon']['host'] = REPLACE_IMG_DOMAIN; } $app_icon = array('web' => $app_info['icon']); if ($this->settings['icon_size']) { $path = $app_info['icon']['host'] . $app_info['icon']['dir']; $file = $app_info['icon']['filepath'] . $app_info['icon']['filename']; if ($this->settings['icon_size']['android']) { foreach ($this->settings['icon_size']['android'] as $android) { $size = $android['width'] . 'x' . $android['height']; $url = $path . $size . '/' . $file; switch ($android['width']) { case '36': $key = 'drawable-ldpi'; break; case '48': $key = 'drawable-mdpi'; break; case '72': $key = 'drawable-hdpi'; break; case '96': $key = 'drawable-xhdpi'; break; case '144': $key = 'drawable-xxhdpi'; break; } if ($key) { $app_icon['android'][$key] = $url; } } } if ($this->settings['icon_size']['ios']) { foreach ($this->settings['icon_size']['ios'] as $ios) { $size = $ios['width'] . 'x' . $ios['height']; $url = $path . $size . '/' . $file; switch ($ios['width']) { case '57': $key = 'Icon'; break; case '114': $key = 'Icon@2x'; break; case '120': $key = 'Icon-60@2x'; break; } if ($key) { $app_icon['ios'][$key] = $url; } } } } if ($app_icon) { $app_info['icon'] = $app_icon; } } if ($app_info['startup_pic'] && unserialize($app_info['startup_pic'])) { $app_info['startup_pic'] = unserialize($app_info['startup_pic']); if (IS_REPLACE && REPLACE_IMG_DOMAIN) { $app_info['startup_pic']['host'] = REPLACE_IMG_DOMAIN; } $startup_pic = array('web' => $app_info['startup_pic']); if ($this->settings['startup_size']) { $path = $app_info['startup_pic']['host'] . $app_info['startup_pic']['dir']; $file = $app_info['startup_pic']['filepath'] . $app_info['startup_pic']['filename']; if ($this->settings['startup_size']['android']) { foreach ($this->settings['startup_size']['android'] as $android) { $size = $android['width'] . 'x' . $android['height']; $url = $path . $size . '/' . $file; $startup_pic['android'] = $url; } } if ($this->settings['startup_size']['ios']) { foreach ($this->settings['startup_size']['ios'] as $ios) { $size = $ios['width'] . 'x' . $ios['height']; $url = $path . $size . '/' . $file; switch ($size) { case '640x960': $key = 'Default@2x'; break; case '640x1136': $key = 'Default-568h@2x'; break; } if ($key) { $startup_pic['ios'][$key] = $url; } } } //iOS有上传图片则覆盖 if ($app_info['startup_pic2'] && unserialize($app_info['startup_pic2'])) { $startup_pic2 = unserialize($app_info['startup_pic2']); $path = $startup_pic2['host'] . $startup_pic2['dir']; $file = $startup_pic2['filepath'] . $startup_pic2['filename']; $startup_pic['ios']['Default-568h@2x'] = $path . '640x1136/' . $file; } if ($app_info['startup_pic3'] && unserialize($app_info['startup_pic3'])) { $startup_pic3 = unserialize($app_info['startup_pic3']); $path = $startup_pic3['host'] . $startup_pic3['dir']; $file = $startup_pic3['filepath'] . $startup_pic3['filename']; $startup_pic['ios']['Default@2x'] = $path . '640x960/' . $file; } } if ($startup_pic) { $app_info['startup_pic'] = $startup_pic; } } if ($app_info['is_show_guide']) { //获取APP引导图 $guideCondition = array('app_id' => $app_id, 'effect' => $app_info['guide_effect']); $guide_pic = $this->api->app_pic($guideCondition); if ($guide_pic) { $guide_pic_arr = array(); foreach ($guide_pic as $k => $guide) { if ($guide['type'] == 1) { $guide_type = 'fg'; } elseif ($guide['type'] == 2) { $guide_type = 'bg'; } if (IS_REPLACE && REPLACE_IMG_DOMAIN) { $guide['info']['host'] = REPLACE_IMG_DOMAIN; } $guide_pic_arr[$guide_type][$k]['web'] = $guide['info']; if ($this->settings['guide_size']) { $path = $guide['info']['host'] . $guide['info']['dir']; $file = $guide['info']['filepath'] . $guide['info']['filename']; if ($this->settings['guide_size']['android']) { foreach ($this->settings['guide_size']['android'] as $android) { if ($guide['type'] == 2 && $app_info['guide_effect'] == 'effect2') { $size = 'x800'; } else { $size = $android['width'] . 'x' . $android['height']; } $url = $path . $size . '/' . $file; $guide_pic_arr[$guide_type][$k]['android'] = $url; } } if ($this->settings['guide_size']['ios']) { foreach ($this->settings['guide_size']['ios'] as $ios) { if ($guide['type'] == 2 && $app_info['guide_effect'] == 'effect2') { $size = 'x1136'; } else { $size = $ios['width'] . 'x' . $ios['height']; } $url = $path . $size . '/' . $file; $guide_pic_arr[$guide_type][$k]['ios'] = $url; } } } } if (!$guide_pic_arr) { $guide_pic_arr = $guide_pic; } $app_info['guide_pic'] = $guide_pic_arr; } } if ($this->settings['data_url']) { $app_info['base_url'] = trim($this->settings['data_url']['path'], '/') . '/' . $app_info['user_id'] . '/'; } //天气接口 if (WEATHER_API) { $app_info['weather_api'] = WEATHER_API; } //统计接口 if (STATISTICS_API) { $app_info['statistics_api'] = STATISTICS_API; } //会员接口 if (MEMBER_API) { $app_info['member_api'] = MEMBER_API; } //互助接口 if (SEEKHELP_API) { $app_info['seekhelp_api'] = SEEKHELP_API; } //获取推送id和key include_once ROOT_PATH . 'lib/class/company.class.php'; $companyApi = new company(); $push_api = $companyApi->getPushApi($this->user['user_id']); if ($push_api) { $app_info['push_api'] = $push_api; $app_info['prov_id'] = $push_api['prov_id']; } //获取APP打包程序数据 $app_info['client'] = $this->api->get_version_info($app_id); //获取APP模板信息 $temp_info = $this->api->detail('app_template', array('id' => $app_info['temp_id'])); if ($temp_info) { if (unserialize($temp_info['pic'])) { $temp_info['pic'] = unserialize($temp_info['pic']); if (IS_REPLACE && REPLACE_IMG_DOMAIN) { $temp_info['pic']['host'] = REPLACE_IMG_DOMAIN; } } $app_info['template'] = $temp_info; //获取APP模板的属性 include_once CUR_CONF_PATH . 'lib/appTemplate.class.php'; $tempApi = new appTemplate(); $temp_attr = $tempApi->get_attribute($app_info['temp_id'], $app_id, true); if ($temp_attr) { $temp_attr = $temp_attr[$app_info['temp_id']]; foreach ($temp_attr as $k => $attr) { if ($attr['mark'] == 'homeBackground') { unset($temp_attr[$k]); continue; } if (is_string($attr['attr_value']) && strpos($attr['attr_value'], '|')) { $arr = explode('|', $attr['attr_value']); $arr_list = array(); foreach ($arr as $value) { $vv = explode(':', $value); $arr_list[$vv[0]] = $vv[1]; } $temp_attr[$k]['attr_value'] = $arr_list; } } $app_info['template']['attrs'] = $temp_attr; } } //获取APP模块信息 include_once CUR_CONF_PATH . 'lib/appModule.class.php'; $moduleApi = new appModule(); include_once CUR_CONF_PATH . 'lib/appInterface.class.php'; $ui_api = new appInterface(); $condition = array('app_id' => $app_id); if ($this->user['user_id']) { $condition['uid'] = $this->user['user_id']; } $module_info = $moduleApi->show(array('count' => -1, 'condition' => $condition)); if ($module_info) { $ui_id = array(); foreach ($module_info as $k => $module) { if ($module['pic'] && is_array($module['pic']) && $this->settings['module_size']) { if (IS_REPLACE && REPLACE_IMG_DOMAIN) { $module['pic']['host'] = REPLACE_IMG_DOMAIN; } $module_icon = array('web' => $module['pic']); if ($this->settings['module_size']) { $path = $module['pic']['host'] . $module['pic']['dir']; $file = $module['pic']['filepath'] . $module['pic']['filename']; if ($this->settings['module_size']['android']) { foreach ($this->settings['module_size']['android'] as $android) { $size = $android['width'] . 'x' . $android['height']; $url = $path . $size . '/' . $file; $module_icon['android'] = $url; } } if ($this->settings['module_size']['ios']) { foreach ($this->settings['module_size']['ios'] as $ios) { $size = $ios['width'] . 'x' . $ios['height']; $url = $path . $size . '/' . $file; $module_icon['ios'] = $url; } } } if ($module_icon) { $module_info[$k]['pic'] = $module_icon; } } if ($module['press_pic'] && is_array($module['press_pic']) && $this->settings['module_size']) { if (IS_REPLACE && REPLACE_IMG_DOMAIN) { $module['press_pic']['host'] = REPLACE_IMG_DOMAIN; } $module_icon = array('web' => $module['press_pic']); if ($this->settings['module_size']) { $path = $module['press_pic']['host'] . $module['press_pic']['dir']; $file = $module['press_pic']['filepath'] . $module['press_pic']['filename']; if ($this->settings['module_size']['android']) { foreach ($this->settings['module_size']['android'] as $android) { $size = $android['width'] . 'x' . $android['height']; $url = $path . $size . '/' . $file; $module_icon['android'] = $url; } } if ($this->settings['module_size']['ios']) { foreach ($this->settings['module_size']['ios'] as $ios) { $size = $ios['width'] . 'x' . $ios['height']; $url = $path . $size . '/' . $file; $module_icon['ios'] = $url; } } } if ($module_icon) { $module_info[$k]['press_pic'] = $module_icon; } } if ($module['ui_id']) { $ui_id[$module['ui_id']] = $module['ui_id']; } } if ($ui_id) { $ui_id = implode(',', $ui_id); $ui_info = $ui_api->show(array('count' => -1, 'condition' => array('id' => $ui_id))); if ($ui_info) { foreach ($module_info as $k => $v) { //获取界面对应的属性 $ui_attr = $ui_api->get_attribute($v['ui_id'], $v['id'], true); if ($ui_attr && $ui_attr[$v['ui_id']]) { $ui_info[$v['ui_id']]['attr'] = $ui_attr[$v['ui_id']]; } if ($ui_info[$v['ui_id']]) { $module_info[$k]['ui'] = $ui_info[$v['ui_id']]; } } } } $app_info['module'] = $module_info; } if ($this->input['flag']) { $app_cache = $this->api->detail('app_cache', array('app_id' => $app_id)); if (!$app_cache) { $insertData = array('app_id' => $app_id, 'data' => serialize($app_info)); $this->api->create('app_cache', $insertData); $app_info['unpack'] = 1; } else { if ($app_cache && unserialize($app_cache['data'])) { $app_cache_data = unserialize($app_cache['data']); //暂时去除验证设置是否改动 //if ($this->compare_data($app_info, $app_cache_data)) //{ // $app_info['unpack'] = 0; //} //else //{ $this->api->update('app_cache', array('data' => serialize($app_info)), array('app_id' => $app_id)); if ($app_info['client']) { /* $updateData = array( 'file_url' => '', 'download_url' => '', 'file_size' => 0, 'state' => 0, 'publish_time' => 0, 'push' => 0 ); foreach ($app_info['client'] as $k => $client) { $updateData['version_name'] = $client['version_name'] + 1; $updateData['version_code'] = $client['version_code'] + 1; $updateCondition = array( 'app_id' => $app_id, 'client_id' => $client['client_id'] ); if ($this->api->update('client_relation', $updateData, $updateCondition)) { $app_info['client'][$k]['version_name'] = $updateData['version_name']; $app_info['client'][$k]['version_code'] = $updateData['version_code']; } } */ } $app_info['unpack'] = 2; //} } else { $app_info['unpack'] = 0; } } } $this->addItem($app_info); $this->output(); }
public function getAppAllInfo() { $app_id = intval($this->input['id']); if (!$app_id) { $this->errorOutput(NO_APP_ID); } //获取APP信息 $app_info = $this->api->detail('app_info', array('id' => $app_id, 'del' => 0)); if (!$app_info) { $this->errorOutput(APP_NOT_EXISTS); } $app_info['is_open_weather'] = 1; //天气默认都开启 // 获取融云的 production_app_key $rcAppKey = $this->_im->get_rckey($app_id); if ($rcAppKey) { $app_info['rcAppKey'] = $rcAppKey; } else { //创建融云应用 $rc_info = $this->_im->apply_signature($app_id, $app_info['name'], $app_info['brief']); $app_info['rcAppKey'] = $rc_info['rc_key']; } if ($this->user['user_id']) { $user_info = $this->companyApi->getUserInfoByUserId($this->user['user_id']); } elseif ($app_info['user_id']) { $user_info = $this->companyApi->getUserInfoByUserId($app_info['user_id']); } if (!$user_info) { $this->errorOutput(USER_NOT_EXISTS); } $app_info['user_info'] = $user_info; if ($app_info['guide_effect']) { $app_info['guide_effect_num'] = $this->settings['guide_effect_setting'][$app_info['guide_effect']]; } //处理默认城市 if (!$app_info['city']) { $app_info['city'] = $this->settings['default_city']['city']; } //分享平台数据 if (isset($app_info['share_plant']) && $app_info['share_plant']) { $app_info['share_plant'] = @unserialize($app_info['share_plant']); } else { $app_info['share_plant'] = array(); } //额外配置数据 if (isset($app_info['extras']) && $app_info['extras']) { $app_info['extras'] = @unserialize($app_info['extras']); } else { $app_info['extras'] = $this->settings['app_extras']; } //获取推送id和key $pushInfo = $this->_company->getPushApi($this->user['user_id']); if ($pushInfo && is_array($pushInfo)) { $app_info['push_info'] = $pushInfo; } //应用图标 if ($app_info['icon'] && unserialize($app_info['icon'])) { $app_info['icon'] = unserialize($app_info['icon']); if (IS_REPLACE && REPLACE_IMG_DOMAIN) { $app_info['icon']['host'] = REPLACE_IMG_DOMAIN; } $app_icon = array('web' => $app_info['icon']); if ($this->settings['icon_size']) { $path = $app_info['icon']['host'] . $app_info['icon']['dir']; $file = $app_info['icon']['filepath'] . $app_info['icon']['filename']; if ($this->settings['icon_size']['android']) { foreach ($this->settings['icon_size']['android'] as $android) { //兼容原来的附件,dir存在就说明是原来的附件 if ($app_info['icon']['dir']) { $size = $android['width'] . 'x' . $android['height']; $url = $path . $size . '/' . $file; } else { $url = $path . $file . '!' . $android['thumb']; } $app_icon['android'][$android['key']] = $url; } } if ($this->settings['icon_size']['ios']) { foreach ($this->settings['icon_size']['ios'] as $ios) { //兼容原来的附件,dir存在就说明是原来的附件 if ($app_info['icon']['dir']) { $size = $ios['width'] . 'x' . $ios['height']; $url = $path . $size . '/' . $file; } else { $url = $path . $file . '!' . $ios['thumb']; } $app_icon['ios'][$ios['key']] = $url; } } } if ($app_icon) { $app_info['icon'] = $app_icon; } } //启动图 if ($app_info['startup_pic'] && unserialize($app_info['startup_pic'])) { $app_info['startup_pic'] = unserialize($app_info['startup_pic']); if (IS_REPLACE && REPLACE_IMG_DOMAIN) { $app_info['startup_pic']['host'] = REPLACE_IMG_DOMAIN; } $startup_pic = array('web' => $app_info['startup_pic']); if ($this->settings['startup_size']) { $path = $app_info['startup_pic']['host'] . $app_info['startup_pic']['dir']; $file = $app_info['startup_pic']['filepath'] . $app_info['startup_pic']['filename']; if ($this->settings['startup_size']['android']) { foreach ($this->settings['startup_size']['android'] as $android) { //兼容原来的附件,dir存在就说明是原来的附件 if ($app_info['startup_pic']['dir']) { $size = $android['width'] . 'x' . $android['height']; $url = $path . $size . '/' . $file; } else { $url = $path . $file . '!' . $android['thumb']; } $startup_pic['android'] = $url; //此处因为安卓只有一个 } } if ($this->settings['startup_size']['ios']) { foreach ($this->settings['startup_size']['ios'] as $ios) { //兼容原来的附件,dir存在就说明是原来的附件 if ($app_info['startup_pic']['dir']) { $size = $ios['width'] . 'x' . $ios['height']; $url = $path . $size . '/' . $file; } else { $url = $path . $file . '!' . $ios['thumb']; } $startup_pic['ios'][$ios['key']] = $url; } } //iOS有上传图片则覆盖 if ($app_info['startup_pic2'] && unserialize($app_info['startup_pic2'])) { $startup_pic2 = unserialize($app_info['startup_pic2']); $path = $startup_pic2['host'] . $startup_pic2['dir']; $file = $startup_pic2['filepath'] . $startup_pic2['filename']; //兼容原来的附件,dir存在就说明是原来的附件 if ($startup_pic2['dir']) { $startup_pic['ios']['Default-568h@2x'] = $path . '640x1136/' . $file; } else { $startup_pic['ios']['Default-568h@2x'] = $path . $file . '!default568x2'; } } if ($app_info['startup_pic3'] && unserialize($app_info['startup_pic3'])) { $startup_pic3 = unserialize($app_info['startup_pic3']); $path = $startup_pic3['host'] . $startup_pic3['dir']; $file = $startup_pic3['filepath'] . $startup_pic3['filename']; //兼容原来的附件,dir存在就说明是原来的附件 if ($startup_pic3['dir']) { $startup_pic['ios']['Default@2x'] = $path . '640x960/' . $file; } else { $startup_pic['ios']['Default@2x'] = $path . $file . '!defaultx2'; } } } if ($startup_pic) { $app_info['startup_pic'] = $startup_pic; } } //是否显示引导图 if ($app_info['is_show_guide']) { //获取APP引导图 $guideCondition = array('app_id' => $app_id, 'effect' => $app_info['guide_effect']); $guide_pic = $this->api->app_pic($guideCondition); if ($guide_pic) { $guide_pic_arr = array(); foreach ($guide_pic as $k => $guide) { if ($guide['type'] == 1) { $guide_type = 'fg'; } elseif ($guide['type'] == 2) { $guide_type = 'bg'; } if (IS_REPLACE && REPLACE_IMG_DOMAIN) { $guide['info']['host'] = REPLACE_IMG_DOMAIN; } $guide_pic_arr[$guide_type][$k]['web'] = $guide['info']; if ($this->settings['guide_size']) { $path = $guide['info']['host'] . $guide['info']['dir']; $file = $guide['info']['filepath'] . $guide['info']['filename']; if ($this->settings['guide_size']['android']) { foreach ($this->settings['guide_size']['android'] as $android) { //兼容原来的附件 if ($guide['info']['dir']) { if ($guide['type'] == 2 && $app_info['guide_effect'] == 'effect2') { $size = 'x800'; } else { $size = $android['width'] . 'x' . $android['height']; } $url = $path . $size . '/' . $file; } else { if ($guide['type'] == 2 && $app_info['guide_effect'] == 'effect2') { $thumb = $android['effect2']; } else { $thumb = $android['thumb']; } $url = $path . $file . '!' . $thumb; } $guide_pic_arr[$guide_type][$k]['android'] = $url; } } if ($this->settings['guide_size']['ios']) { foreach ($this->settings['guide_size']['ios'] as $ios) { //兼容原来的附件 if ($guide['info']['dir']) { if ($guide['type'] == 2 && $app_info['guide_effect'] == 'effect2') { $size = 'x800'; } else { $size = $ios['width'] . 'x' . $ios['height']; } $url = $path . $size . '/' . $file; } else { if ($guide['type'] == 2 && $app_info['guide_effect'] == 'effect2') { $thumb = $ios['effect2']; } else { $thumb = $ios['thumb']; } $url = $path . $file . '!' . $thumb; } $guide_pic_arr[$guide_type][$k]['ios'] = $url; } } } } if (!$guide_pic_arr) { $guide_pic_arr = $guide_pic; } $app_info['guide_pic'] = $guide_pic_arr; } } if ($this->settings['data_url']) { $app_info['base_url'] = trim($this->settings['data_url']['path'], '/') . '/' . $app_info['user_id'] . '/'; } //天气接口 if (WEATHER_API) { $app_info['weather_api'] = WEATHER_API; } //统计接口 if (STATISTICS_API) { $app_info['statistics_api'] = STATISTICS_API; } //会员接口 if (MEMBER_API) { $app_info['member_api'] = MEMBER_API; } //互助接口 if (SEEKHELP_API) { $app_info['seekhelp_api'] = SEEKHELP_API; } //获取推送id和key include_once ROOT_PATH . 'lib/class/company.class.php'; $companyApi = new company(); $push_api = $companyApi->getPushApi($this->user['user_id']); if ($push_api) { $app_info['push_api'] = $push_api; $app_info['prov_id'] = $push_api['prov_id']; } //获取APP打包程序数据 $app_info['client'] = $this->api->get_version_info($app_id); /*****************************************获取MAIN_UI信息********************************************/ $appUIInfo = $this->ui_mode->detail($app_info['temp_id']); if ($appUIInfo) { if (IS_REPLACE && REPLACE_IMG_DOMAIN) { if ($appUIInfo['img_info']) { $appUIInfo['img_info']['host'] = REPLACE_IMG_DOMAIN; } } //查询出该UI下对应的属性 $attrData = $this->ui_value_mode->getAttributeData($app_info['temp_id'], TRUE, $app_id, 0, 1, $user_info['dingdone_role_id']); if ($attrData) { //获取分组数据 $groupData = $this->ui_value_mode->getGroupData(); //输出配置型 $uiConfig = $this->buildTreeDataConfig(0, $groupData, $attrData); foreach ($uiConfig as $kk => $vv) { foreach ($vv as $_kk => $_vv) { if ($_kk == 'main_ui') { $appUIInfo['attr'] = $_vv; //判断全局导航栏标题有没有值 if (!$appUIInfo['attr']['navBar']['titleContent']['text'] && !$appUIInfo['attr']['navBar']['titleContent']['drawable']) { $appUIInfo['attr']['navBar']['titleContent']['text'] = $app_info['name']; //如果全局导航栏标题没有设置,就取应用名称 } //经典风格做的特殊处理(只有经典风格才有more节点) if ($appUIInfo['uniqueid'] == 'MainUI1') { if (isset($_vv['more']) && $_vv['more'] && is_array($_vv['more'])) { //more里面的文字默认色取外面的文字默认色 if (isset($_vv['textNorBg']) && $_vv['textNorBg']) { $appUIInfo['attr']['more']['textNorBg'] = $_vv['textNorBg']; } //more里面的文字点击色取外面的文字点击色 if (isset($_vv['textPreBg']) && $_vv['textPreBg']) { $appUIInfo['attr']['more']['textPreBg'] = $_vv['textPreBg']; } //more里面的模块默认色透明 $appUIInfo['attr']['more']['layoutNorBg'] = Common::convertColor('#ffffff', 0); //more里面的模块点击色取外面的遮罩色 if (isset($_vv['tabedBg']) && $_vv['tabedBg']) { $appUIInfo['attr']['more']['layoutPreBg'] = $_vv['tabedBg']; } //more里面的导航栏相关设置 if (isset($_vv['more']['navBar'])) { $appUIInfo['attr']['more']['navBar']['height'] = 50; //所有导航栏的高度固定值50,不用用户配置 //根据是否开启导航栏天气 if ($app_info['is_open_navBar_weather']) { $appUIInfo['attr']['more']['navBar']['navLeftComponent'] = 1; } else { $appUIInfo['attr']['more']['navBar']['navLeftComponent'] = 0; } //右边控件的判断,是否开启会员 if ($app_info['is_open_member']) { $appUIInfo['attr']['more']['navBar']['navRightComponent'] = 1; } else { $appUIInfo['attr']['more']['navBar']['navRightComponent'] = 2; } //更多模块的导航栏高斯模糊根据全局的来 if (isset($appUIInfo['attr']['navBar']['isBlur'])) { $appUIInfo['attr']['more']['navBar']['isBlur'] = (bool) $appUIInfo['attr']['navBar']['isBlur']; } else { $appUIInfo['attr']['more']['navBar']['isBlur'] = $this->settings['module_default']['isBlur']; } //如果more里面没有设置导航栏标题就取全局的 if (!$appUIInfo['attr']['more']['navBar']['titleContent']['text'] && !$appUIInfo['attr']['more']['navBar']['titleContent']['drawable']) { if (isset($appUIInfo['attr']['navBar']['titleContent']['text'])) { $appUIInfo['attr']['more']['navBar']['titleContent']['text'] = $appUIInfo['attr']['navBar']['titleContent']['text']; } else { $appUIInfo['attr']['more']['navBar']['titleContent']['text'] = $app_info['name']; } } //more里面的导航栏背景取全局的导航栏背景 if ($_vv['navBar']['bg']) { $appUIInfo['attr']['more']['navBar']['bg'] = $_vv['navBar']['bg']; } } //经典风格里面模块的页面距下面的距离后台取tabHeight的高度+10 if (isset($_vv['tabHeight'])) { $appUIInfo['attr']['more']['uiPaddingBottom'] = (int) $_vv['tabHeight'] + (int) $_vv['dividerSpace']; } //如果more里面到模块主色没有设置 if (isset($_vv['more']['mainColor']['noColor']) && $_vv['more']['mainColor']['noColor']) { if (isset($appUIInfo['attr']['mainColor']) && is_array($appUIInfo['attr']['mainColor']) && !isset($appUIInfo['attr']['mainColor']['noColor'])) { $appUIInfo['attr']['more']['main_color'] = $appUIInfo['attr']['mainColor']['color']; } else { $appUIInfo['attr']['more']['main_color'] = Common::convertColor($this->settings['module_default']['main_color']); } } } } } } } } $app_info['main_ui'] = $appUIInfo; } /*****************************************获取MAIN_UI信息********************************************/ //获取APP模块信息 include_once CUR_CONF_PATH . 'lib/appModule.class.php'; $moduleApi = new appModule(); include_once CUR_CONF_PATH . 'lib/appInterface.class.php'; $ui_api = new appInterface(); $condition = array('app_id' => $app_id); if ($this->user['user_id']) { $condition['uid'] = $this->user['user_id']; } $module_info = $moduleApi->show(array('count' => -1, 'condition' => $condition)); if ($module_info) { $ui_id = array(); foreach ($module_info as $k => $module) { if ($module['pic'] && is_array($module['pic']) && $this->settings['module_size']) { if (IS_REPLACE && REPLACE_IMG_DOMAIN) { $module['pic']['host'] = REPLACE_IMG_DOMAIN; } $module_icon = array('web' => $module['pic']); if ($this->settings['module_size']) { $path = $module['pic']['host'] . $module['pic']['dir']; $file = $module['pic']['filepath'] . $module['pic']['filename']; if ($this->settings['module_size']['android']) { foreach ($this->settings['module_size']['android'] as $android) { //此处为了兼容原来的附件 if ($module['pic']['dir']) { $size = $android['width'] . 'x' . $android['height']; $url = $path . $size . '/' . $file; } else { $url = $path . $file . '!' . $android['thumb']; } $module_icon['android'] = $url; } } if ($this->settings['module_size']['ios']) { foreach ($this->settings['module_size']['ios'] as $ios) { //此处为了兼容原来的附件 if ($module['pic']['dir']) { $size = $ios['width'] . 'x' . $ios['height']; $url = $path . $size . '/' . $file; } else { $url = $path . $file . '!' . $ios['thumb']; } $module_icon['ios'] = $url; } } } if ($module_icon) { $module_info[$k]['pic'] = $module_icon; } } if ($module['press_pic'] && is_array($module['press_pic']) && $this->settings['module_size']) { if (IS_REPLACE && REPLACE_IMG_DOMAIN) { $module['press_pic']['host'] = REPLACE_IMG_DOMAIN; } $module_icon = array('web' => $module['press_pic']); if ($this->settings['module_size']) { $path = $module['press_pic']['host'] . $module['press_pic']['dir']; $file = $module['press_pic']['filepath'] . $module['press_pic']['filename']; if ($this->settings['module_size']['android']) { foreach ($this->settings['module_size']['android'] as $android) { //此处为了兼容原来的附件 if ($module['press_pic']['dir']) { $size = $android['width'] . 'x' . $android['height']; $url = $path . $size . '/' . $file; } else { $url = $path . $file . '!' . $android['thumb']; } $module_icon['android'] = $url; } } if ($this->settings['module_size']['ios']) { foreach ($this->settings['module_size']['ios'] as $ios) { //此处为了兼容原来的附件 if ($module['press_pic']['dir']) { $size = $ios['width'] . 'x' . $ios['height']; $url = $path . $size . '/' . $file; } else { $url = $path . $file . '!' . $ios['thumb']; } $module_icon['ios'] = $url; } } } if ($module_icon) { $module_info[$k]['press_pic'] = $module_icon; } } //经典风格的时候,所有模块里面的模块点击色,文字点击色,模块默认色,文字默认色此处做特殊处理 if ($appUIInfo['uniqueid'] == 'MainUI1') { //模块里面的文字默认色取外面的文字默认色 if (isset($appUIInfo['attr']['textNorBg'])) { $module_info[$k]['text_nor_bg'] = $appUIInfo['attr']['textNorBg']; } elseif ($module['text_nor_bg']) { $module_info[$k]['text_nor_bg'] = Common::convertColor($module['text_nor_bg']); } else { $module_info[$k]['text_nor_bg'] = Common::convertColor($this->settings['module_default']['text_nor_bg']); } //模块里面的文字点击色取外面的文字点击色 if (isset($appUIInfo['attr']['textPreBg'])) { $module_info[$k]['text_pre_bg'] = $appUIInfo['attr']['textPreBg']; } elseif ($module['text_pre_bg']) { $module_info[$k]['text_pre_bg'] = Common::convertColor($module['text_pre_bg']); } else { $module_info[$k]['text_pre_bg'] = Common::convertColor($this->settings['module_default']['text_pre_bg']); } //模块里面的模块默认色透明 $module_info[$k]['layout_nor_bg'] = Common::convertColor('#ffffff', 0); //模块里面的模块点击色取外面的遮罩色 if (isset($appUIInfo['attr']['tabedBg'])) { $module_info[$k]['layout_pre_bg'] = $appUIInfo['attr']['tabedBg']; } elseif ($module['layout_pre_bg']) { $module_info[$k]['layout_pre_bg'] = Common::convertColor($module['layout_pre_bg'], $module['layout_pre_alpha']); } else { $module_info[$k]['layout_pre_bg'] = Common::convertColor($this->settings['module_default']['layout_pre_bg'], $this->settings['module_default']['layout_pre_alpha']); } } else { //其他风格如果用户没有设置值,就取默认值 //文字默认背景 if (!$module['text_nor_bg']) { if (isset($appUIInfo['attr']['textNorBg']) && is_array($appUIInfo['attr']['textNorBg'])) { $module_info[$k]['text_nor_bg'] = $appUIInfo['attr']['textNorBg']['color']; } else { $module_info[$k]['text_nor_bg'] = $this->settings['module_default']['text_nor_bg']; } } //文字点击背景 if (!$module['text_pre_bg']) { if (isset($appUIInfo['attr']['textPreBg']) && is_array($appUIInfo['attr']['textPreBg'])) { $module_info[$k]['text_pre_bg'] = $appUIInfo['attr']['textPreBg']['color']; } else { $module_info[$k]['text_pre_bg'] = $this->settings['module_default']['text_pre_bg']; } } //模块默认背景 $is_global_nor = 0; //用于标识是否取得是全局的默认背景 if (!$module['layout_nor_bg']) { if (isset($appUIInfo['attr']['layoutNorBg']) && is_array($appUIInfo['attr']['layoutNorBg'])) { $module_info[$k]['layout_nor_bg'] = $appUIInfo['attr']['layoutNorBg']['color']; $module_info[$k]['layout_nor_alpha'] = $appUIInfo['attr']['layoutNorBg']['alpha']; $is_global_nor = 1; } else { $module_info[$k]['layout_nor_bg'] = $this->settings['module_default']['layout_nor_bg']; } } //模块点击背景 $is_global_pre = 0; //用于标识是否取得是全局的模块点击背景 if (!$module['layout_pre_bg']) { if (isset($appUIInfo['attr']['layoutPreBg']) && is_array($appUIInfo['attr']['layoutPreBg'])) { $module_info[$k]['layout_pre_bg'] = $appUIInfo['attr']['layoutPreBg']['color']; $module_info[$k]['layout_pre_alpha'] = $appUIInfo['attr']['layoutPreBg']['alpha']; $is_global_pre = 1; } else { $module_info[$k]['layout_pre_bg'] = $this->settings['module_default']['layout_pre_bg']; } } if (!$is_global_nor && !$module['layout_nor_alpha'] && $module['layout_nor_alpha'] !== 0.0) { $module_info[$k]['layout_nor_alpha'] = $this->settings['module_default']['layout_nor_alpha']; } if (!$is_global_pre && !$module['layout_pre_alpha'] && $module['layout_pre_alpha'] !== 0.0) { $module_info[$k]['layout_pre_alpha'] = $this->settings['module_default']['layout_pre_alpha']; } } //处理导航栏配置 if ($module['navbar'] && unserialize($module['navbar'])) { $navBar = unserialize($module['navbar']); //处理导航栏背景 if (isset($navBar['bg']) && isset($navBar['bg']['img'])) { $_img_info = $this->app_material->detail('app_material', array('id' => $navBar['bg']['img'])); $navBar['bg']['img'] = $_img_info; } //处理导航栏标题 if (isset($navBar['titleContent']) && isset($navBar['titleContent']['img'])) { $_img_info = $this->app_material->detail('app_material', array('id' => $navBar['titleContent']['img'])); $navBar['titleContent']['img'] = $_img_info; } //如果模块本身没有设置导航栏背景的值 if (!isset($navBar['bg']) || !is_array($navBar['bg'])) { //全局导航栏背景 if (isset($appUIInfo['attr']['navBar']['bg']) && is_array($appUIInfo['attr']['navBar']['bg'])) { //如果全局首页背景设置的是颜色 if ($appUIInfo['attr']['navBar']['bg']['color']) { $navBar['bg'] = array('color' => $appUIInfo['attr']['navBar']['bg']['color'], 'alpha' => $appUIInfo['attr']['navBar']['bg']['alpha']); } elseif ($appUIInfo['attr']['navBar']['bg']['img_id']) { $_img_info = $this->app_material->detail('app_material', array('id' => $appUIInfo['attr']['navBar']['bg']['img_id'])); $navBar['bg'] = array('img' => $_img_info, 'is_tile' => $appUIInfo['attr']['navBar']['bg']['isRepeat']); } } if (!isset($navBar['bg']) || !$navBar['bg']) { $navBar['bg'] = array('color' => $this->settings['module_default']['navbar']['bg'], 'alpha' => 1); } } //如果模块本身没有设置导航栏标题内容 if (!isset($navBar['titleContent']) || !is_array($navBar['titleContent'])) { //全局导航栏标题内容 if (isset($appUIInfo['attr']['navBar']['titleContent']) && is_array($appUIInfo['attr']['navBar']['titleContent'])) { //如果全局导航栏标题是文字 if ($appUIInfo['attr']['navBar']['titleContent']['text']) { $navBar['titleContent'] = array('text' => $appUIInfo['attr']['navBar']['titleContent']['text']); } elseif ($appUIInfo['attr']['navBar']['titleContent']['img_id']) { $_img_info = $this->app_material->detail('app_material', array('id' => $appUIInfo['attr']['navBar']['titleContent']['img_id'])); $navBar['titleContent'] = array('img' => $_img_info); } } if (!isset($navBar['titleContent']) || !$navBar['titleContent']) { //导航栏标题取应用的名称 $navBar['titleContent']['text'] = $app_info['name']; } } //导航栏高斯模糊根据全局的来 if (isset($appUIInfo['attr']['navBar']['isBlur'])) { $navBar['isBlur'] = (bool) $appUIInfo['attr']['navBar']['isBlur']; } else { $navBar['isBlur'] = $this->settings['module_default']['isBlur']; } $module_info[$k]['navbar'] = $navBar; } else { $navBar = array(); //全局导航栏背景 if (isset($appUIInfo['attr']['navBar']['bg']) && is_array($appUIInfo['attr']['navBar']['bg'])) { //如果全局首页背景设置的是颜色 if ($appUIInfo['attr']['navBar']['bg']['color']) { $navBar['bg'] = array('color' => $appUIInfo['attr']['navBar']['bg']['color'], 'alpha' => $appUIInfo['attr']['navBar']['bg']['alpha']); } elseif ($appUIInfo['attr']['navBar']['bg']['img_id']) { $_img_info = $this->app_material->detail('app_material', array('id' => $appUIInfo['attr']['navBar']['bg']['img_id'])); $navBar['bg'] = array('img' => $_img_info, 'is_tile' => $appUIInfo['attr']['navBar']['bg']['isRepeat']); } } //全局导航栏标题内容 if (isset($appUIInfo['attr']['navBar']['titleContent']) && is_array($appUIInfo['attr']['navBar']['titleContent'])) { //如果全局导航栏标题是文字 if ($appUIInfo['attr']['navBar']['titleContent']['text']) { $navBar['titleContent'] = array('text' => $appUIInfo['attr']['navBar']['titleContent']['text']); } elseif ($appUIInfo['attr']['navBar']['titleContent']['img_id']) { $_img_info = $this->app_material->detail('app_material', array('id' => $appUIInfo['attr']['navBar']['titleContent']['img_id'])); $navBar['titleContent'] = array('img' => $_img_info); } } if (!isset($navBar['bg']) || !$navBar['bg']) { $navBar['bg'] = array('color' => $this->settings['module_default']['navbar']['bg'], 'alpha' => 1); } if (!isset($navBar['titleContent']) || !$navBar['titleContent']) { //导航栏标题取应用的名称 $navBar['titleContent']['text'] = $app_info['name']; } //导航栏高斯模糊根据全局的来 if (isset($appUIInfo['attr']['navBar']['isBlur'])) { $navBar['isBlur'] = (bool) $appUIInfo['attr']['navBar']['isBlur']; } else { $navBar['isBlur'] = $this->settings['module_default']['isBlur']; } $module_info[$k]['navbar'] = $navBar; } //处理页面背景 if ($module['ui_bg']) { $_uiBg = explode('|', $module['ui_bg']); if (isset($_uiBg[0]) && $_uiBg[0]) { if ($_uiBg[0] == 'img') { $_img_info = $this->app_material->detail('app_material', array('id' => $_uiBg[1])); $module_info[$k]['ui_bg'] = array('img' => $_img_info, 'is_tile' => $_uiBg[2]); } elseif ($_uiBg[0] == 'color') { $module_info[$k]['ui_bg'] = array('color' => $_uiBg[1], 'alpha' => $_uiBg[2]); } } } else { //全局的页面背景 if (isset($appUIInfo['attr']['uiBg']) && is_array($appUIInfo['attr']['uiBg'])) { //如果全局首页背景设置的是颜色 if ($appUIInfo['attr']['uiBg']['color']) { $module_info[$k]['ui_bg'] = array('color' => $appUIInfo['attr']['uiBg']['color'], 'alpha' => $appUIInfo['attr']['uiBg']['alpha']); } elseif ($appUIInfo['attr']['uiBg']['img_id']) { $_img_info = $this->app_material->detail('app_material', array('id' => $appUIInfo['attr']['uiBg']['img_id'])); $module_info[$k]['ui_bg'] = array('img' => $_img_info, 'is_tile' => $appUIInfo['attr']['uiBg']['isRepeat']); } } //经过上面的洗礼,还是没有值的话,那就只能取默认的了 if (!$module_info[$k]['ui_bg']) { $module_info[$k]['ui_bg'] = array('color' => $this->settings['module_default']['ui_bg'], 'alpha' => 1); } } //如果用户没有在module_list里面设置,就取外面到main_ui里面到main_color if (!$module['main_color']) { if (isset($appUIInfo['attr']['mainColor']) && is_array($appUIInfo['attr']['mainColor']) && !isset($appUIInfo['attr']['mainColor']['noColor'])) { $module_info[$k]['main_color'] = $appUIInfo['attr']['mainColor']['color']; } else { $module_info[$k]['main_color'] = $this->settings['module_default']['main_color']; } } //if ($module['ui_id']) $ui_id[$module['ui_id']] = $module['ui_id']; if ($module['ui_id']) { //获取该LIST_UI的信息 $listUIInfo = $this->ui_mode->detail($module['ui_id']); if ($listUIInfo) { //获取分组数据 $groupData = $this->ui_value_mode->getGroupData(); //如果用户选择的时自由组合 if ($listUIInfo['uniqueid'] == 'ListUI10') { $_comp_ui = $this->createCompConfig($module['id']); if ($_comp_ui) { $listUIInfo['attr']['components'] = $_comp_ui; } else { $listUIInfo['attr']['components'] = array(); } } else { //获取属性 $listAttrData = $this->ui_value_mode->getAttributeData($module['ui_id'], TRUE, 0, $module['id'], 1, $user_info['dingdone_role_id']); if ($listAttrData) { $listUIConfig = $this->buildTreeDataConfig(0, $groupData, $listAttrData); foreach ($listUIConfig as $kk => $vv) { foreach ($vv as $_kk => $_vv) { if ($_kk == 'list_ui') { $listUIInfo['attr'] = $_vv; //看看该有没有组件插入到该listUI if (in_array($listUIInfo['uniqueid'], array('ListUI1', 'ListUI2', 'ListUI7'))) { $_comp_ui = $this->createCompConfig($module['id']); if ($_comp_ui) { $listUIInfo['attr']['components'] = $_comp_ui; } } } } } } //获取模块扩展字段 $extend_fields = $this->extend_mode->getExtendFieldByModuleId($module['id'], " AND is_display = 1 "); if ($extend_fields) { $listUIInfo['extend_fields'] = $extend_fields; } //获取新扩展字段 $new_extends = array(); //先获取这个模块扩展区域的基本信息 //自适应还是固定高度 $new_extends['showType'] = $module['extend_area_position']; //获取上下部分区域 $module['extend_area_position'] =2时 只取UP部分 $up_area = array(); $up_area_lines = $this->new_extend->getInfos('new_extend_line', array('module_id' => $module['id'], 'line_position' => $this->settings['new_extend']['line_position']['up']), 'order by order_id asc'); if ($up_area_lines) { foreach ($up_area_lines as $___k => $___v) { $one_line = array(); //获取这个行的后台属性 $line_attr = $this->new_extend->getExtendLineAttributeData($___v['id']); if ($line_attr) { $lineAttrConfig = $this->buildTreeDataConfig(0, $groupData, $line_attr); if ($lineAttrConfig && $lineAttrConfig[0]['extendLine']) { $one_line = $lineAttrConfig[0]['extendLine']; } } $one_line['lineNum'] = $___v['line_num']; //取对应扩展行里的扩展单元 //单行 多行区分 if ($___v['line_type'] == 1) { $left_line_fields = $this->new_extend->getInfos('new_extend_field', array('field_position' => $this->settings['new_extend']['field_position']['left'], 'line_id' => $___v['id'], 'module_id' => $module['id']), 'order by order_id asc'); if ($left_line_fields) { $left_fields = array(); foreach ($left_line_fields as $f_k => $f_v) { $one_left_field = array(); //对左边单元进行处理,取出属性 //取出对应单元的后台属性 $left_field_attr = $this->new_extend->getExtendFieldAttributeData($f_v['id']); if ($left_field_attr) { $left_field_config = $this->buildTreeDataConfig(0, $groupData, $left_field_attr); $one_left_field = $left_field_config[0]['extendLine']['extendField']; } $one_left_field['type'] = $f_v['field_type']; $one_left_field['style'] = $this->settings['new_extend']['price_style']; //处理显示样式 $display_arr = $this->processFieldStyle($f_v['id'], $f_v['style_type']); if ($display_arr && is_array($display_arr)) { foreach ($display_arr as $kk => $vv) { $one_left_field[$kk] = $vv; } } //处理颜色 if (array_key_exists('textColor', $one_left_field)) { $color_arr = $this->processExtendColor($one_left_field['textColor']); unset($one_left_field['textColor']); foreach ($color_arr as $ck => $cv) { $one_left_field['textColor'][$ck] = $cv; } } //处理indexContent if ($one_left_field['indexContent'] == '空格') { $one_left_field['indexContent'] = ' '; } if ($f_v['style_type'] == 2 || $f_v['style_type'] == 4) { $one_left_field['indexContent'] = ''; } if ($one_left_field['marginLeft'] !== '') { $left_fields[] = $one_left_field; } } $one_line['left'] = $left_fields; } $right_line_fields = $this->new_extend->getInfos('new_extend_field', array('field_position' => $this->settings['new_extend']['field_position']['right'], 'line_id' => $___v['id'], 'module_id' => $module['id']), 'order by order_id asc'); if ($right_line_fields) { $right_fields = array(); foreach ($right_line_fields as $r_k => $r_v) { $one_right_field = array(); //对左边单元进行处理,取出属性 //取出对应单元的后台属性 $right_field_attr = $this->new_extend->getExtendFieldAttributeData($r_v['id']); if ($right_field_attr) { $right_field_config = $this->buildTreeDataConfig(0, $groupData, $right_field_attr); $one_right_field = $right_field_config[0]['extendLine']['extendField']; } $one_right_field['type'] = $r_v['field_type']; //处理显示样式 $display_arr = $this->processFieldStyle($r_v['id'], $r_v['style_type']); if ($display_arr && is_array($display_arr)) { foreach ($display_arr as $kk => $vv) { $one_right_field[$kk] = $vv; } } //处理颜色 if (array_key_exists('textColor', $one_right_field)) { $color_arr = $this->processExtendColor($one_right_field['textColor']); unset($one_right_field['textColor']); foreach ($color_arr as $ck => $cv) { $one_right_field['textColor'][$ck] = $cv; } } //处理indexContent if ($one_right_field['indexContent'] == '空格') { $one_right_field['indexContent'] = ' '; } if ($r_v['style_type'] == 2 || $r_v['style_type'] == 4) { $one_right_field['indexContent'] = ''; } $one_right_field['style'] = $this->settings['new_extend']['price_style']; if ($one_right_field['marginLeft'] !== '') { $right_fields[] = $one_right_field; } } $one_line['right'] = $right_fields; } } elseif ($___v['line_type'] == 2) { //左边一个为left 取出 $left_line_fields = $this->new_extend->getInfos('new_extend_field', array('field_position' => $this->settings['new_extend']['field_position']['left'], 'line_id' => $___v['id'], 'module_id' => $module['id']), 'order by order_id asc'); if ($left_line_fields) { $left_fields = array(); $one_left_field = array(); //对左边单元进行处理,取出属性 //取出对应单元的后台属性 $left_field_attr = $this->new_extend->getExtendFieldAttributeData($left_line_fields[0]['id']); if ($left_field_attr) { $left_field_config = $this->buildTreeDataConfig(0, $groupData, $left_field_attr); $one_left_field = $left_field_config[0]['extendLine']['extendField']; } $one_left_field['type'] = $left_line_fields[0]['field_type']; //处理显示样式 $display_arr = $this->processFieldStyle($left_line_fields[0]['id'], $left_line_fields[0]['style_type']); if ($display_arr && is_array($display_arr)) { foreach ($display_arr as $kk => $vv) { $one_left_field[$kk] = $vv; } } //处理颜色 if (array_key_exists('textColor', $one_left_field)) { $color_arr = $this->processExtendColor($one_left_field['textColor']); unset($one_left_field['textColor']); foreach ($color_arr as $ck => $cv) { $one_left_field['textColor'][$ck] = $cv; } } //处理indexContent if ($one_left_field['indexContent'] == '空格') { $one_left_field['indexContent'] = ' '; } if ($left_line_fields[0]['style_type'] == 2 || $left_line_fields[0]['style_type'] == 4) { $one_left_field['indexContent'] = ''; } $one_left_field['style'] = $this->settings['new_extend']['price_style']; if ($one_left_field['marginLeft'] !== '') { $left_fields[] = $one_left_field; } $one_line['left'] = $left_fields; } //其他都为right $right_line_fields = $this->new_extend->getInfos('new_extend_field', array('field_position' => $this->settings['new_extend']['field_position']['right'], 'line_id' => $___v['id'], 'module_id' => $module['id']), 'order by order_id asc'); if ($right_line_fields) { $right_fields = array(); foreach ($right_line_fields as $r__k => $r__v) { $one_right_field = array(); //对左边单元进行处理,取出属性 //取出对应单元的后台属性 $right_field_attr = $this->new_extend->getExtendFieldAttributeData($r__v['id']); if ($right_field_attr) { $right_field_config = $this->buildTreeDataConfig(0, $groupData, $right_field_attr); $one_right_field = $right_field_config[0]['extendLine']['extendField']; } $one_right_field['type'] = $r__v['field_type']; //处理显示样式 $display_arr = $this->processFieldStyle($r__v['id'], $r__v['style_type']); if ($display_arr && is_array($display_arr)) { foreach ($display_arr as $kk => $vv) { $one_right_field[$kk] = $vv; } } //处理颜色 if (array_key_exists('textColor', $one_right_field)) { $color_arr = $this->processExtendColor($one_right_field['textColor']); unset($one_right_field['textColor']); foreach ($color_arr as $ck => $cv) { $one_right_field['textColor'][$ck] = $cv; } } //处理indexContent if ($one_right_field['indexContent'] == '空格') { $one_right_field['indexContent'] = ' '; } if ($r__v['style_type'] == 2 || $r__v['style_type'] == 4) { $one_right_field['indexContent'] = ''; } $one_right_field['style'] = $this->settings['new_extend']['price_style']; if ($one_right_field['marginLeft'] !== '') { $right_fields[] = $one_right_field; } } $one_line['right'] = $right_fields; } } $up_area[] = $one_line; } $new_extends['up'] = $up_area; } //如果固定高度情况下,考虑下部区域 if ($module['extend_area_position'] == 1) { $down_area = array(); //获取down部分 $down_area_lines = $this->new_extend->getInfos('new_extend_line', array('module_id' => $module['id'], 'line_position' => $this->settings['new_extend']['line_position']['down']), 'order by order_id asc'); if ($down_area_lines) { foreach ($down_area_lines as $____k => $____v) { $one_line = array(); //获取这个行的后台属性 $down_line_attr = $this->new_extend->getExtendLineAttributeData($____v['id']); if ($down_line_attr) { $downLineAttrConfig = $this->buildTreeDataConfig(0, $groupData, $down_line_attr); if ($downLineAttrConfig && $downLineAttrConfig[0]['extendLine']) { $one_line = $downLineAttrConfig[0]['extendLine']; } } $one_line['lineNum'] = $____v['line_num']; //处理扩展单元 //单行模式 if ($____v['line_type'] == 1) { $left_line_fields = $this->new_extend->getInfos('new_extend_field', array('field_position' => $this->settings['new_extend']['field_position']['left'], 'line_id' => $____v['id'], 'module_id' => $module['id']), 'order by order_id asc'); if ($left_line_fields) { $left_fields = array(); foreach ($left_line_fields as $f__k => $f__v) { $one_left_field = array(); //对左边单元进行处理,取出属性 //取出对应单元的后台属性 $left_field_attr = $this->new_extend->getExtendFieldAttributeData($f__v['id']); if ($left_field_attr) { $left_field_config = $this->buildTreeDataConfig(0, $groupData, $left_field_attr); $one_left_field = $left_field_config[0]['extendLine']['extendField']; } $one_left_field['type'] = $f__v['field_type']; $one_left_field['style'] = $this->settings['new_extend']['price_style']; //处理显示样式 $display_arr = $this->processFieldStyle($f__v['id'], $f__v['style_type']); if ($display_arr && is_array($display_arr)) { foreach ($display_arr as $kkk => $vvv) { $one_left_field[$kkk] = $vvv; } } //处理颜色 if (array_key_exists('textColor', $one_left_field)) { $color_arr = $this->processExtendColor($one_left_field['textColor']); unset($one_left_field['textColor']); foreach ($color_arr as $ck => $cv) { $one_left_field['textColor'][$ck] = $cv; } } //处理indexContent if ($one_left_field['indexContent'] == '空格') { $one_left_field['indexContent'] = ' '; } if ($f__v['style_type'] == 2 || $f__v['style_type'] == 4) { $one_left_field['indexContent'] = ''; } if ($one_left_field['marginLeft'] !== '') { $left_fields[] = $one_left_field; } } $one_line['left'] = $left_fields; } $right_line_fields = $this->new_extend->getInfos('new_extend_field', array('field_position' => $this->settings['new_extend']['field_position']['right'], 'line_id' => $____v['id'], 'module_id' => $module['id']), 'order by order_id asc'); if ($right_line_fields) { $right_fields = array(); foreach ($right_line_fields as $r__k => $r__v) { $one_right_field = array(); //对左边单元进行处理,取出属性 //取出对应单元的后台属性 $right_field_attr = $this->new_extend->getExtendFieldAttributeData($r__v['id']); if ($right_field_attr) { $right_field_config = $this->buildTreeDataConfig(0, $groupData, $right_field_attr); $one_right_field = $right_field_config[0]['extendLine']['extendField']; } $one_right_field['type'] = $r__v['field_type']; //处理显示样式 $display_arr = $this->processFieldStyle($r__v['id'], $r__v['style_type']); if ($display_arr && is_array($display_arr)) { foreach ($display_arr as $kkkk => $vvvv) { $one_right_field[$kkkk] = $vvvv; } } //处理颜色 if (array_key_exists('textColor', $one_right_field)) { $color_arr = $this->processExtendColor($one_right_field['textColor']); unset($one_right_field['textColor']); foreach ($color_arr as $ck => $cv) { $one_right_field['textColor'][$ck] = $cv; } } //处理indexContent if ($one_right_field['indexContent'] == '空格') { $one_right_field['indexContent'] = ' '; } if ($r__v['style_type'] == 2 || $r__v['style_type'] == 4) { $one_right_field['indexContent'] = ''; } $one_right_field['style'] = $this->settings['new_extend']['price_style']; if ($one_right_field['marginLeft'] !== '') { $right_fields[] = $one_right_field; } } $one_line['right'] = $right_fields; } } elseif ($____v['line_type'] == 2) { //左边一个为left 取出 $left_line_fields = $this->new_extend->getInfos('new_extend_field', array('field_position' => $this->settings['new_extend']['field_position']['left'], 'line_id' => $____v['id'], 'module_id' => $module['id']), 'order by order_id asc'); if ($left_line_fields) { $left_fields = array(); $one_left_field = array(); //对左边单元进行处理,取出属性 //取出对应单元的后台属性 $left_field_attr = $this->new_extend->getExtendFieldAttributeData($left_line_fields[0]['id']); if ($left_field_attr) { $left_field_config = $this->buildTreeDataConfig(0, $groupData, $left_field_attr); $one_left_field = $left_field_config[0]['extendLine']['extendField']; } $one_left_field['type'] = $left_line_fields[0]['field_type']; //处理显示样式 $display_arr = $this->processFieldStyle($left_line_fields[0]['id'], $left_line_fields[0]['style_type']); if ($display_arr && is_array($display_arr)) { foreach ($display_arr as $_kk => $_vv) { $one_left_field[$_kk] = $_vv; } } //处理颜色 if (array_key_exists('textColor', $one_left_field)) { $color_arr = $this->processExtendColor($one_left_field['textColor']); unset($one_left_field['textColor']); foreach ($color_arr as $ck => $cv) { $one_left_field['textColor'][$ck] = $cv; } } //处理indexContent if ($one_left_field['indexContent'] == '空格') { $one_left_field['indexContent'] = ' '; } if ($left_line_fields[0]['style_type'] == 2 || $left_line_fields[0]['style_type'] == 4) { $one_left_field['indexContent'] = ''; } $one_left_field['style'] = $this->settings['new_extend']['price_style']; if ($one_left_field['marginLeft'] !== '') { $left_fields[] = $one_left_field; } $one_line['left'] = $left_fields; } //其他都为right $right_line_fields = $this->new_extend->getInfos('new_extend_field', array('field_position' => $this->settings['new_extend']['field_position']['right'], 'line_id' => $____v['id'], 'module_id' => $module['id']), 'order by order_id asc'); if ($right_line_fields) { $right_fields = array(); foreach ($right_line_fields as $r__k => $r__v) { $one_right_field = array(); //对左边单元进行处理,取出属性 //取出对应单元的后台属性 $right_field_attr = $this->new_extend->getExtendFieldAttributeData($r__v['id']); if ($right_field_attr) { $right_field_config = $this->buildTreeDataConfig(0, $groupData, $right_field_attr); $one_right_field = $right_field_config[0]['extendLine']['extendField']; } $one_right_field['type'] = $r__v['field_type']; //处理显示样式 $display_arr = $this->processFieldStyle($r__v['id'], $r__v['style_type']); if ($display_arr && is_array($display_arr)) { foreach ($display_arr as $kk => $vv) { $one_right_field[$kk] = $vv; } } //处理颜色 if (array_key_exists('textColor', $one_right_field)) { $color_arr = $this->processExtendColor($one_right_field['textColor']); unset($one_right_field['textColor']); foreach ($color_arr as $ck => $cv) { $one_right_field['textColor'][$ck] = $cv; } } //处理indexContent if ($one_right_field['indexContent'] == '空格') { $one_right_field['indexContent'] = ' '; } if ($r__v['style_type'] == 2 || $r__v['style_type'] == 4) { $one_right_field['indexContent'] = ''; } $one_right_field['style'] = $this->settings['new_extend']['price_style']; if ($one_right_field['marginLeft'] !== '') { $right_fields[] = $one_right_field; } } $one_line['right'] = $right_fields; } } $down_area[] = $one_line; } } $new_extends['down'] = $down_area; } $listUIInfo['extendLayout'] = $new_extends; //获取角标样式 $cornerStyle = $this->extend_mode->getCornerData($module['id']); if ($cornerStyle) { $listUIInfo['corner_style'] = $cornerStyle; } //构建新角标的配置 //首先获取当前模块使用角标的情况 $cornerUseInfo = $this->_corner_mode->getUseCornerInfoByModId($module['id']); if ($cornerUseInfo && !array_key_exists('ErrorCode', $cornerUseInfo)) { $corners = array('showType' => (int) $module['corner_show_type']); foreach ($cornerUseInfo as $_key => $_value) { //获取该用户这次使用的角标对应的属性 $_corner_attr = $this->ui_value_mode->getCornerAttributeData($_value['mod_corner_id'], MODULE_USE_SUPERSCRIPT); if ($_corner_attr) { //对数据整一下型 $cornerAttrConfig = $this->buildTreeDataConfig(0, $groupData, $_corner_attr); if ($cornerAttrConfig && isset($cornerAttrConfig[0]['corner'])) { $_itemCornerAttr = $cornerAttrConfig[0]['corner']; $_itemCornerAttr['key'] = $_value['field_type']; $_itemCornerAttr['text'] = $_value['text']; $_itemCornerAttr['mod_corner_id'] = $_value['mod_corner_id']; //增加superscript_id $_itemCornerAttr['superscript_id'] = $_value['id']; //系统图标 if (intval($_value['img_type']) == 1) { $_icon_arr = explode('.', $_value['img_info']); $_itemCornerAttr['icon'] = 'dd_' . $_icon_arr[0]; $_itemCornerAttr['url'] = $this->settings['base_url'] . $this->settings['superscript']['save_path'] . $_value['img_info']; } elseif (intval($_value['img_type']) == 2) { if ($_value['img_info'] && is_array($_value['img_info'])) { $_icon_arr = explode('.', $_value['img_info']['filename']); $_itemCornerAttr['icon'] = 'dd_' . $_icon_arr[0]; //此处记录url,以便后期提交打包服务器是把图片下载到工程里面 $_itemCornerAttr['url'] = $_value['img_info']['host'] . $_value['img_info']['filepath'] . $_value['img_info']['filename']; } else { $_itemCornerAttr['icon'] = ''; $_itemCornerAttr['url'] = ''; } } else { $_itemCornerAttr['icon'] = ''; $_itemCornerAttr['url'] = ''; } //计算图片宽高比 $_itemCornerAttr['hwScale'] = Common::getImageAspect($_itemCornerAttr['url']); $corners['corner' . ($_key + 1)] = $_itemCornerAttr; } } } $listUIInfo['attr']['corners'] = $corners; } } $module_info[$k]['ui'] = $listUIInfo; } } } $app_info['module'] = $module_info; } if ($this->input['flag']) { $app_info['unpack'] = 1; /* $app_cache = $this->api->detail('app_cache', array('app_id' => $app_id)); if (!$app_cache) { $insertData = array( 'app_id' => $app_id, 'data' => serialize($app_info) ); $this->api->create('app_cache', $insertData); $app_info['unpack'] = 1; } else { if ($app_cache && unserialize($app_cache['data'])) { $app_cache_data = unserialize($app_cache['data']); //暂时去除验证设置是否改动 //if ($this->compare_data($app_info, $app_cache_data)) //{ // $app_info['unpack'] = 0; //} //else //{ $this->api->update('app_cache', array('data' => serialize($app_info)), array('app_id' => $app_id)); if ($app_info['client']) { $updateData = array( 'file_url' => '', 'download_url' => '', 'file_size' => 0, 'state' => 0, 'publish_time' => 0, 'push' => 0 ); foreach ($app_info['client'] as $k => $client) { $updateData['version_name'] = $client['version_name'] + 1; $updateData['version_code'] = $client['version_code'] + 1; $updateCondition = array( 'app_id' => $app_id, 'client_id' => $client['client_id'] ); if ($this->api->update('client_relation', $updateData, $updateCondition)) { $app_info['client'][$k]['version_name'] = $updateData['version_name']; $app_info['client'][$k]['version_code'] = $updateData['version_code']; } } } $app_info['unpack'] = 2; //} } else { $app_info['unpack'] = 0; } } */ } $this->addItem($app_info); $this->output(); }