# 升级AI新闻

# 10.1 ~ 10.4 版本

1: 上传文件夹 /public/admin/templates/ai/ 和 aisearch.tpl 文件

2: 修改 setting.tpl 文件

<div class="form-group">
    <label class="col-md-3 label-width control-label" for="">AI新闻发布条数:</label>
    <div class="col-md-3">
        <input name="ai_publish_num" id="ai_publish_num" class="form-control" type="text" value="{{ $config.ai_publish_num }}" />
    </div>
    <div class="col-md-5">
        <div class="tag-state"></div>
        <div id='dtag' class='input-wz'>每天最多发布2</div>
    </div>
</div>

<div class="form-group">
    <label class="col-md-3 label-width control-label" for="">AI新闻发布状态:</label>
    <div class="col-md-3">
        <div class="beautify-checkbox">
            <input type="checkbox" id="ai_publish_flag" name="ai_publish_flag" value="1" {{ if $config.ai_publish_flag==1 }}checked="checked" {{ /if }}>
            <label for="ai_publish_flag"></label>
        </div>
    </div>
</div>

3: 修改 xycms_setting.php 文件

//ai管理开关
$ai_publish_num = Core_Fun::detect_number(Core_Fun::rec_post("ai_publish_num", 1)) ?: '1';
$ai_publish_flag = Core_Fun::detect_number(Core_Fun::rec_post("ai_publish_flag", 1));


if ($ai_publish_num > $GLOBALS['appConfig']['aiPublishMaxNum']) {
    $ai_publish_num = $GLOBALS['appConfig']['aiPublishMaxNum'];
}

'ai_publish_num' => $ai_publish_num,

'ai_publish_flag' => $ai_publish_flag,


if ($config['ai_publish_num'] != $array['ai_publish_num']) {
    $header = ['Accept:application/json', 'token:' . $config['resource_token']];
    curl($GLOBALS['appConfig']['aliApi'] . '/site/ai-publish', ['ai_publish_num' => $array['ai_publish_num']], 5, $header);
}

4: /source/conf/app.php 添加代码

// AI新闻发布最大数
'aiPublishMaxNum' => 2,

//chatgpt接口
'chat' => 'chat.cn86.cn',

5: 数据库xypt-config 添加字段 ai_publish_num 2 、 ai_publish_flag 1 、 ainews_flag 1 、 ai_flag 1

6: 导入4个数据库 xypt_ainews_media 、 xypt_ainews_tag 、 xypt_ainews_title 、 xypt_aisearch

7: 添加数据库表添加权限

ai_manage 和 ainews_manage  // xypt_menu_permission 表添加两个权限
ai_manage 和 ainews_manage  // xypt_permissions     表添加两个权限

8: /source/conf/permission.php php 文件添加权限

'ai_manage'                 => 'AI内容助手',
'ainews_manage'             => 'AI新闻管理',

9: 新闻表添加字段 img_path

10: 新闻详情页添加判断ai新闻

<div class="xypg-detail-con">
    {% if news_detail.img_path is not empty %}
    <div style="text-align: center">
        <img src="{{ news_detail.img_path }}" alt="{{ news_detail.title }}" title="{{ news_detail.title }}">
    </div>
    {% endif %}
    {{ news_detail.content | raw }}
</div>

11: core.func.php 加一个方法

protected static $client; 
// 头部增加一行

 /**
 * 获取gettoken返回数据
 */
public static function gettoken()
{

  self::$client = new \GuzzleHttp\Client([
    'headers' => [
      'token' => '4e0f0cab4e5baae3d5ef6a867469976e',
      'referer' => PATH_URL
    ],
    'timeout' => 600
  ]);

  $response = self::$client->request('GET', 'http://www.cn86.cn/api/v1/get-gpt-key');

  if ($response->getStatusCode() >= 400) {
    self::error('查询异常');
  }

  $token = json_decode($response->getBody()->getContents(), true);

  return $token;
}

12: tpl.php 增加一行

define('server_request_scheme', $server_request_scheme);

13: 添加后台菜单

AI新闻管理      图标        icon-xiangmuguanli
AI内容助手      地址        xycms_aisearch.php        权限  ai_manage
新闻标题        地址        xycms_ainews_title.php    权限  ainews_manage
新闻列表        地址        xycms_ainews.php          权限  ainews_manage
标签管理        地址        xycms_ainews_tag.php      权限  ainews_manage
媒体库          地址        xycms_ainews_media.php    权限  ainews_manage