| 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;    }}
 |