123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170 |
- <?php
- /**
- * Option.php UTF-8
- * Option
- *
- * @date : 2018/5/4 19:33
- *
- * @license 这不是一个自由软件,未经授权不许任何使用和传播。
- * @author : wuyonghong <wyh@huosdk.com>
- * @version : HUOSDK 8.0
- */
- namespace huo\controller\wap;
- use h5wap\wap\controller\GameController;
- use h5wap\wap\controller\NewsController;
- use huo\controller\common\Base;
- use huo\controller\game\CategoryCache;
- use huo\controller\game\Game;
- use huo\controller\game\GameCache;
- use huo\controller\gift\GiftCache;
- use huo\logic\posts\PostsLogic;
- use huolib\constant\OptionConst;
- class Option extends Base {
- /**
- * 获取配置值
- *
- * @param string $option_name 配置名
- * @param int $autoload 是否自动加载 1是 0否
- * @param bool $auto_add 是否自动添加
- * @param string $auto_add_data 自动添加配置值
- *
- * @return array
- */
- public function getOptionData($option_name = '', $autoload = 1, $auto_add = false, $auto_add_data = '') {
- if (empty($option_name)) {
- return null;
- }
- $option_name = trim($option_name);
- $_option_data = OptionCache::ins()->getInfoByOptionName($option_name, $autoload, $auto_add, $auto_add_data);
- return $_option_data;
- }
- /**
- * 保存配置值
- *
- * @param string $option_name
- * @param string $option_value
- *
- * @return bool|string
- */
- public function saveOptionData($option_name = '', $option_value = '') {
- if (empty($option_name)) {
- return '';
- }
- $option_name = trim($option_name);
- return OptionCache::ins()->updateOption($option_name, $option_value);
- }
- public function getValue($option_name) {
- if (empty($option_name)) {
- return '';
- }
- $option_name = trim($option_name);
- $_data = OptionCache::ins()->getInfoByOptionName($option_name);
- if (!empty($_data) && !empty($_data['option_value'])) {
- $_data = json_decode($_data['option_value'], true);
- }
- return $_data;
- }
- /**
- * 获取网站seo优化内容
- *
- * @param $option_name
- * @param $game_id
- * @param $gift_id
- * @param $news_id
- *
- * @return array|bool|mixed|string
- */
- public function getSeoValue($option_name, $game_id = 0, $gift_id = 0, $news_id = 0) {
- $_data = $this->getValue($option_name);
- if (empty($_data)) {
- return array();
- }
- $_data['title'] = $this->replaceSeoValue($_data['title'], $game_id, $gift_id, $news_id);
- $_data['keyword'] = $this->replaceSeoValue($_data['keyword'], $game_id, $gift_id, $news_id);
- $_data['description'] = $this->replaceSeoValue($_data['description'], $game_id, $gift_id, $news_id);
- return $_data;
- }
- /**
- * 统一替换seo优化中的变量
- *
- * @param $value
- * @param $game_id
- * @param $gift_id
- * @param $news_id
- *
- * @return mixed
- */
- private function replaceSeoValue($value, $game_id = 0, $gift_id = 0, $news_id = 0) {
- if (strpos($value, OptionConst::SEO_REPLACE_WEBNAME) !== false) {
- $_wap_basic = $this->getValue(OptionConst::WAP_BASIC);
- if (!empty($_wap_basic)) {
- $_site_title = $_wap_basic[OptionConst::WAP_BASIC_SITE_NAME];
- if (!empty($_site_title)) {
- $value = str_replace(OptionConst::SEO_REPLACE_WEBNAME, $_site_title, $value);
- }
- }
- }
- if (!empty($game_id)) {
- $_game_cache = GameCache::ins();
- $_game_data = $_game_cache->getInfoByAppId($game_id);
- if (!empty($_game_data)) {
- if (strpos($value, OptionConst::SEO_REPLACE_GAMENAME) !== false) {
- $_name = isset($_game_data['gamename']) ? $_game_data['gamename'] : $_game_data['name'];
- $value = str_replace(OptionConst::SEO_REPLACE_GAMENAME, $_name, $value);
- }
- if (strpos($value, OptionConst::SEO_REPLACE_GAMETYPE) !== false) {
- $_category_name = CategoryCache::ins()->getNameByIds(2, $_game_data['category']);
- if (is_array($_category_name) && count($_category_name)) {
- $_category_name = $_category_name[0];
- }
- if (!empty($_category_name)) {
- $value = str_replace(OptionConst::SEO_REPLACE_GAMETYPE, $_category_name, $value);
- }
- }
- }
- }
- if (strpos($value, OptionConst::SEO_REPLACE_GIFTNAME) !== false) {
- if (!empty($gift_id)) {
- $_gift_data = GiftCache::ins()->getInfoByGiftId($gift_id);
- if (!empty($_gift_data)) {
- $value = str_replace(OptionConst::SEO_REPLACE_GIFTNAME, $_gift_data['title'], $value);
- }
- }
- }
- if (strpos($value, OptionConst::SEO_REPLACE_NEWSNAME) !== false) {
- if (!empty($news_id)) {
- $_news_data = (new PostsLogic())->getDetail($news_id);
- if (!empty($_news_data)) {
- $value = str_replace(OptionConst::SEO_REPLACE_NEWSNAME, $_news_data['title'], $value);
- }
- }
- }
- return $value;
- }
- public function getValues($option_names) {
- if (empty($option_names) || !is_array($option_names)) {
- return '';
- }
- $_data = Array();
- foreach ($option_names as $option_name) {
- if (empty($_data)) {
- $_data[$option_name] = $this->getValue($option_name);
- }
- }
- return $_data;
- }
- }
|