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