| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 | <?php/** * SeoOption.php UTF-8 * SEO配置处理 * * @date    : 2019/4/17 12:03 * * @license 这不是一个自由软件,未经授权不许任何使用和传播。 * @author  : wuyonghong <wyh@huosdk.com> * @version : HUOSDK 8.5 */namespace huo\controller\option;use huo\logic\posts\PostsLogic;use huo\model\game\CategoryModel;use huo\model\game\GameModel;use huo\model\game\GiftModel;use huolib\constant\OptionConst;class SeoOption extends Option {    /**     * 获取网站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_model = new GameModel();            $_game_name = (new GameModel())->getNameById($game_id);            if (false !== strpos($value, OptionConst::SEO_REPLACE_GAMENAME)) {                $value = str_replace(OptionConst::SEO_REPLACE_GAMENAME, $_game_name, $value);            }            $_game_type = $_game_model->getCategoryById($game_id);            $_cate_model = new CategoryModel();            $_category_name = $_cate_model->getNameByIds($_game_type);            if (false !== strpos($value, OptionConst::SEO_REPLACE_GAMETYPE)) {                $value = str_replace(OptionConst::SEO_REPLACE_GAMETYPE, $_category_name, $value);            }        }        if (strpos($value, OptionConst::SEO_REPLACE_GIFTNAME) !== false) {            if (!empty($gift_id)) {                $_gift_name = (new GiftModel())->getNameById($gift_id);                $value = str_replace(OptionConst::SEO_REPLACE_GIFTNAME, $_gift_name, $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;    }}
 |