| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- <?php
- // +----------------------------------------------------------------------
- // |
- // +----------------------------------------------------------------------
- // |
- // +----------------------------------------------------------------------
- // |
- // +----------------------------------------------------------------------
- // |
- // +----------------------------------------------------------------------
- // +----------------------------------------------------------------------
- // | Links模型
- // +----------------------------------------------------------------------
- namespace addons\links\model;
- use think\facade\Db;
- use think\Model;
- /**
- * 模型
- */
- class Links extends Model
- {
- /**
- * 获取友情链接
- * @param $tag
- */
- public function getList($tag)
- {
- $tag['order'] = !empty($tag['order']) ? $tag['order'] : 'listorder,id desc';
- $cacheTime = !empty($tag['cache']) && is_numeric($tag['cache']) ? intval($tag['cache']) : 3600;
- //每页显示总数
- $num = isset($tag['num']) && intval($tag['num']) > 0 ? intval($tag['num']) : 10;
- $cacheID = to_guid_string($tag);
- if ($cacheData = cache($cacheID)) {
- return $cacheData;
- }
- $map = [['status', '=', 1]];
- if (isset($tag['link_type'])) {
- $map[] = ['link_type', '=', (int) $tag['link_type']];
- }
- if (isset($tag['terms_id'])) {
- $map[] = ['terms_id', '=', (int) $tag['terms_id']];
- }
- $obj = $this->where($map)->where($tag['where'])->order($tag['order'])->limit($num)->select();
- if (is_array($obj)) {
- if (empty($obj)) {
- return [];
- }
- $array = $obj;
- } else {
- if ($obj->isEmpty()) {
- return [];
- }
- $array = $obj->toArray();
- }
- $lang = function_exists('cms_current_lang') ? cms_current_lang() : 'cn';
- $defaultLang = function_exists('cms_default_lang') ? cms_default_lang() : 'cn';
- foreach ($array as &$item) {
- $translate = null;
- if ($lang && $lang !== $defaultLang) {
- $translate = Db::name('links_data')->where(['did' => $item['id'], 'lang' => $lang])->find();
- if (!$translate) {
- $translate = Db::name('links_data')->where(['did' => $item['id'], 'lang' => $defaultLang])->find();
- }
- } else {
- $translate = Db::name('links_data')->where(['did' => $item['id'], 'lang' => $defaultLang])->find();
- }
- if ($translate) {
- if (!empty($translate['name'])) {
- $item['name'] = $translate['name'];
- }
- if (!empty($translate['description'])) {
- $item['description'] = $translate['description'];
- }
- }
- }
- unset($item);
- cache($cacheID, $array, $cacheTime);
- return $array;
- }
- }
|