20201112
This commit is contained in:
@@ -97,7 +97,6 @@ class Article extends Controller {
|
||||
$re['cite'] = $cite;
|
||||
return jsonSuccess($re);
|
||||
}
|
||||
|
||||
private function sys_author($authors, $organs, $atto) {
|
||||
$cache = [];
|
||||
foreach ($organs as $k => $v) {
|
||||
@@ -221,7 +220,6 @@ class Article extends Controller {
|
||||
}
|
||||
$list[$k]['title'] = $cache_title;
|
||||
}
|
||||
|
||||
$re['stageInfo'] = $stage_info;
|
||||
$re['articleList'] = $list;
|
||||
return jsonSuccess($re);
|
||||
@@ -299,5 +297,263 @@ class Article extends Controller {
|
||||
$re['articleList'] = $list;
|
||||
return jsonSuccess($re);
|
||||
}
|
||||
|
||||
/**
|
||||
* @title 获取文章ris文件
|
||||
* @description 获取文章ris文件
|
||||
* @author wangjinlei
|
||||
* @url /api/Article/getArticleRis
|
||||
* @method POST
|
||||
*
|
||||
* @param name:article_id type:int require:1 desc:文章id
|
||||
*
|
||||
* @return url:地址
|
||||
*/
|
||||
public function getArticleRis(){
|
||||
$data = $this->request->post();
|
||||
$article_info = $this->article_obj->where('article_id',$data['article_id'])->find();
|
||||
$filename = trim(strrchr($article_info['doi'], '/'),'/');
|
||||
$file_path = '../public/article/ris/'.$filename.'.ris';
|
||||
if(!file_exists($file_path)){
|
||||
//创建ris文件的内容
|
||||
$ris = 'TY - JOUR'."\n";
|
||||
$ris .= 'T1 - '.$article_info['title']."\n";
|
||||
$authors = $this->article_author_obj->where('article_id',$article_info['article_id'])->where('state',0)->select();
|
||||
$journal = $this->journal_obj->where('journal_id',$article_info['journal_id'])->find();
|
||||
foreach ($authors as $vv){
|
||||
$ris .= 'AU - '.$vv['last_name'].', '.$vv['first_name']."\n";
|
||||
}
|
||||
$stage_info = $this->journal_stage_obj->where('journal_stage_id',$article_info['journal_stage_id'])->find();
|
||||
$ris .= 'JO - '.$journal['title']."\n";
|
||||
$ris .= 'VL - '.$stage_info['stage_vol']."\n";
|
||||
$ca_fq = explode('-', $stage_info['stage_page']);
|
||||
$ris .= 'SP - '.$ca_fq[0]."\n";if(isset($ca_fq[1])){
|
||||
$ris .= 'EP - '.$ca_fq[1]."\n";
|
||||
}
|
||||
$ris .= 'PY - '.$stage_info['stage_year']."\n";
|
||||
$ris .= 'DA - '. $this->chendate($stage_info['issue_date'])."\n";
|
||||
$ris .= 'SN - '.$journal['issn']."\n";
|
||||
$ris .= 'DO - https://doi.org/'.$article_info['doi']."\n";
|
||||
$ris .= 'UR - https://www.tmrjournals.com/article.html?J_num='.$journal['journal_id'].'&a_id='.$article_info['article_id']."\n";
|
||||
$ris .= 'J2 - '.$journal['jabbr']."\n";
|
||||
$ris .= 'JF - '.$journal['title']."\n";
|
||||
$kws = explode(', ', $article_info['keywords']);
|
||||
foreach ($kws as $vvv){
|
||||
$ris .= 'KW - '.str_replace('</i>','',str_replace('<i>','',$vvv))."\n";
|
||||
}
|
||||
$abs = str_replace('Abstract','',strip_tags(str_replace(" ","",htmlspecialchars_decode($article_info['abstract']))));
|
||||
$ris .= 'AB - '.$abs."\n";
|
||||
$ris .= 'ER - '."\n";
|
||||
//生成ris文件
|
||||
file_put_contents($file_path,$ris);
|
||||
}
|
||||
$re['url'] = '/public/article/ris/'.$filename.'.ris';
|
||||
return jsonSuccess($re);
|
||||
}
|
||||
|
||||
/**
|
||||
* @title 获取文章enw文件
|
||||
* @description 获取文章enw文件
|
||||
* @author wangjinlei
|
||||
* @url /api/Article/getArticleenw
|
||||
* @method POST
|
||||
*
|
||||
* @param name:article_id type:int require:1 desc:文章id
|
||||
*
|
||||
* @return url:地址
|
||||
*/
|
||||
public function getArticleenw(){
|
||||
$data = $this->request->post();
|
||||
// $data['article_id'] = 3;
|
||||
$article_info = $this->article_obj->where('article_id',$data['article_id'])->find();
|
||||
$filename = trim(strrchr($article_info['doi'], '/'),'/');
|
||||
$file_path = '../public/article/enw/'.$filename.'.enw';
|
||||
if(!file_exists($file_path)){
|
||||
//创建ris文件的内容
|
||||
$ris = 'TY - JOUR'."\n";
|
||||
$ris .= 'T1 - '.$article_info['title']."\n";
|
||||
$authors = $this->article_author_obj->where('article_id',$article_info['article_id'])->where('state',0)->select();
|
||||
$journal = $this->journal_obj->where('journal_id',$article_info['journal_id'])->find();
|
||||
foreach ($authors as $vv){
|
||||
$ris .= 'AU - '.$vv['last_name'].', '.$vv['first_name']."\n";
|
||||
}
|
||||
$stage_info = $this->journal_stage_obj->where('journal_stage_id',$article_info['journal_stage_id'])->find();
|
||||
$ris .= 'JO - '.$journal['title']."\n";
|
||||
$ris .= 'VL - '.$stage_info['stage_vol']."\n";
|
||||
$ca_fq = explode('-', $stage_info['stage_page']);
|
||||
$ris .= 'SP - '.$ca_fq[0]."\n";
|
||||
if(isset($ca_fq[1])){
|
||||
$ris .= 'EP - '.$ca_fq[1]."\n";
|
||||
}
|
||||
$ris .= 'PY - '.$stage_info['stage_year']."\n";
|
||||
$ris .= 'DA - '. $this->chendate($stage_info['issue_date'])."\n";
|
||||
$ris .= 'SN - '.$journal['issn']."\n";
|
||||
$ris .= 'DO - https://doi.org/'.$article_info['doi']."\n";
|
||||
$ris .= 'UR - https://www.tmrjournals.com/article.html?J_num='.$journal['journal_id'].'&a_id='.$article_info['article_id']."\n";
|
||||
$ris .= 'J2 - '.$journal['jabbr']."\n";
|
||||
$ris .= 'JF - '.$journal['title']."\n";
|
||||
$kws = explode(', ', $article_info['keywords']);
|
||||
foreach ($kws as $vvv){
|
||||
|
||||
$ris .= 'KW - '.str_replace('</i>','',str_replace('<i>','',$vvv))."\n";
|
||||
}
|
||||
$abs = str_replace('Abstract','',strip_tags(str_replace(" ","",htmlspecialchars_decode($article_info['abstract']))));
|
||||
$ris .= 'AB - '.$abs."\n";
|
||||
$ris .= 'ER - '."\n";
|
||||
//生成ris文件
|
||||
file_put_contents($file_path,$ris);
|
||||
}
|
||||
$re['url'] = '/public/article/enw/'.$filename.'.enw';
|
||||
return jsonSuccess($re);
|
||||
}
|
||||
|
||||
/**
|
||||
* @title 获取文章bib文件
|
||||
* @description 获取文章bib文件
|
||||
* @author wangjinlei
|
||||
* @url /api/Article/getArticlebib
|
||||
* @method POST
|
||||
*
|
||||
* @param name:article_id type:int require:1 desc:文章id
|
||||
*
|
||||
* @return url:地址
|
||||
*/
|
||||
public function getArticlebib(){
|
||||
$data = $this->request->post();
|
||||
$article_info = $this->article_obj->where('article_id',$data['article_id'])->find();
|
||||
$filename = trim(strrchr($article_info['doi'], '/'),'/');
|
||||
$file_path = '../public/article/bib/'.$filename.'.bib';
|
||||
if(!file_exists($file_path)){
|
||||
//创建ris文件的内容
|
||||
$ris = '@article{'.$article_info['doi'].",\n";
|
||||
$ris .= 'title = "'.$article_info['title'].'"'.",\n";
|
||||
$authors = $this->article_author_obj->where('article_id',$article_info['article_id'])->where('state',0)->select();
|
||||
$journal = $this->journal_obj->where('journal_id',$article_info['journal_id'])->find();
|
||||
$stage_info = $this->journal_stage_obj->where('journal_stage_id',$article_info['journal_stage_id'])->find();
|
||||
$ris .= 'journal = "'.$journal['title'].'"'.",\n";
|
||||
$ris .= 'volume = "'.$stage_info['stage_vol'].'"'.",\n";
|
||||
$ris .= 'pages = "'.$stage_info['stage_page'].'"'.",\n";
|
||||
$ris .= 'year = "'.$stage_info['stage_year'].'"'.",\n";
|
||||
$ris .= 'issn = "'.$journal['issn'].'"'.",\n";
|
||||
$ris .= 'doi = "https://doi.org/'.$article_info['doi'].'"'.",\n";
|
||||
$ris .= 'url = "https://www.tmrjournals.com/article.html?J_num='.$journal['journal_id'].'&a_id='.$article_info['article_id'].'"'.",\n";
|
||||
$auts = '';
|
||||
foreach ($authors as $vv){
|
||||
$auts .= $vv['first_name'].' '.$vv['last_name']." and ";
|
||||
}
|
||||
$ris .= 'author = "'.substr($auts, 0,-5).'"'.",\n";
|
||||
$ris .= 'keywords = "'.str_replace('</i>','',str_replace('<i>','',$article_info['keywords'])).'"'.".\n";
|
||||
$ris .= 'abstract = "'.str_replace('Abstract','',strip_tags(str_replace(" ","",htmlspecialchars_decode($article_info['abstract'])))).'"'."\n";
|
||||
$ris .= '}';
|
||||
|
||||
file_put_contents($file_path,$ris);
|
||||
}
|
||||
$re['url'] = '/public/article/bib/'.$filename.'.bib';
|
||||
return jsonSuccess($re);
|
||||
}
|
||||
|
||||
/**
|
||||
* @title 获取文章text文件
|
||||
* @description 获取文章text文件
|
||||
* @author wangjinlei
|
||||
* @url /api/Article/getArticletext
|
||||
* @method POST
|
||||
*
|
||||
* @param name:article_id type:int require:1 desc:文章id
|
||||
*
|
||||
* @return url:地址
|
||||
*/
|
||||
public function getArticletext(){
|
||||
$data = $this->request->post();
|
||||
$article_info = $this->article_obj->where('article_id',$data['article_id'])->find();
|
||||
$filename = trim(strrchr($article_info['doi'], '/'),'/');
|
||||
$file_path = '../public/article/text/'.$filename.'.txt';
|
||||
if(!file_exists($file_path)){
|
||||
$authors = $this->article_author_obj->where('article_id',$article_info['article_id'])->where('state',0)->select();
|
||||
$journal = $this->journal_obj->where('journal_id',$article_info['journal_id'])->find();
|
||||
$stage_info = $this->journal_stage_obj->where('journal_stage_id',$article_info['journal_stage_id'])->find();
|
||||
$auts = '';
|
||||
foreach ($authors as $vv){
|
||||
$auts .= $vv['first_name'].' '.$vv['last_name'].", ";
|
||||
}
|
||||
$ris = substr($auts, 0,-2).",\n";
|
||||
$ris .= $article_info['title'].",\n";
|
||||
$ris .= $journal['title'].",\n";
|
||||
$ris .= 'Volume '.$stage_info['stage_vol'].",\n";
|
||||
$ris .= $stage_info['stage_year'].",\n";
|
||||
$ris .= 'Pages '.$stage_info['stage_page'].",\n";
|
||||
$ris .= 'ISSN '.$journal['issn'].",\n";
|
||||
$ris .= 'https://doi.org/'.$article_info['doi'].",\n";
|
||||
$ris .= '(https://www.tmrjournals.com/article.html?J_num='.$journal['journal_id'].'&a_id='.$article_info['article_id'].')'."\n";
|
||||
$ris .= 'Abstract:'.str_replace('Abstract','',strip_tags(str_replace(" ","",htmlspecialchars_decode($article_info['abstract']))))."\n";
|
||||
$ris .= 'Keywords:'. str_replace('</i>','',str_replace('<i>','',str_replace(',',';', $article_info['keywords'])))."\n";
|
||||
|
||||
file_put_contents($file_path,$ris);
|
||||
}
|
||||
$re['url'] = '/public/article/text/'.$filename.'.txt';
|
||||
return jsonSuccess($re);
|
||||
}
|
||||
|
||||
private function chendate($rq) {
|
||||
$st = explode(' ', $rq);
|
||||
$yf = '01';
|
||||
if(!isset($st[1])){
|
||||
return $rq;
|
||||
}
|
||||
switch ($st[1]){
|
||||
case 'January':
|
||||
$yf = '01';
|
||||
break;
|
||||
case 'February':
|
||||
$yf = '02';
|
||||
break;
|
||||
case 'March';
|
||||
$yf = '03';
|
||||
break;
|
||||
case 'April';
|
||||
$yf = '04';
|
||||
break;
|
||||
case 'May';
|
||||
$yf = '05';
|
||||
break;
|
||||
case 'June';
|
||||
$yf = '06';
|
||||
break;
|
||||
case 'July';
|
||||
$yf = '07';
|
||||
break;
|
||||
case 'August';
|
||||
$yf = '08';
|
||||
break;
|
||||
case 'September';
|
||||
$yf = '09';
|
||||
break;
|
||||
case 'October';
|
||||
$yf = '10';
|
||||
break;
|
||||
case 'November';
|
||||
$yf = '11';
|
||||
break;
|
||||
case 'December';
|
||||
$yf = '12';
|
||||
break;
|
||||
}
|
||||
return $st[2].'/'.$yf.'/'.$st[0].'/';
|
||||
}
|
||||
|
||||
|
||||
// public function ggname(){
|
||||
// $list = $this->article_author_obj->where('article_author_id >= 1500')->select();
|
||||
// foreach ($list as $v){
|
||||
// $cache = explode(' ', $v['author_name']);
|
||||
// $first = str_replace('-', '', $cache[0]);
|
||||
// $last = isset($cache[1])?$cache[1]:'';
|
||||
// $this->article_author_obj->where('article_author_id',$v['article_author_id'])->update(['first_name'=>$first,'last_name'=>$last]);
|
||||
// }
|
||||
// echo '<pre>';
|
||||
// var_dump($list);
|
||||
// echo '</pre>';
|
||||
// die;
|
||||
// }
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user