ホームページ  >  記事  >  ウェブフロントエンド  >  dedecms5.7記事全文閲覧機能の二次開発を実現 function_html/css_WEB-ITnose

dedecms5.7記事全文閲覧機能の二次開発を実現 function_html/css_WEB-ITnose

WBOY
WBOYオリジナル
2016-06-24 11:57:341140ブラウズ

全文を読む機能は、NetEase、Sina などの多くの人気サイトで実際に利用できます。記事の内容が増加するにつれて、ページに複数のページネーションがある場合、この「このページの全文を読む」が表示されます。 . 」リンクをクリックすると、ページネーションなしで記事が表示されます。 , それでは、dedecms5.7で記事コンテンツページに全文読み上げ機能を追加するにはどうすればよいでしょうか?
写真に示すように:

全文を読んで何の役に立つのですか?端的に言えば、ユーザーエクスペリエンスを向上させることです。この関数を簡単に実装する方法を見てみましょう。

ファイルを変更します: include/arc.archives.class.php

注: 変更を加える前に、元のファイルをバックアップしてください。

ステップ 1: include/arc.archives.class.php を開きます

ファイル検索: //issystem==-1

145 行ほど下に進み、$this->Fields['userip'] = $this を見つけます。 ->addTableRow['userip'];

次の行を追加します: $this->Fields['body2'] = $this->addTableRow['body'];

2 番目のステップは、以下を見つけることです。 $this ->dsql->ExecuteNoneQuery("Update `#@__archives` SET ismake=1 WHERE id='".$this->ArcID."'");

次のコードを前の行に追加します

コードは次のとおりです コードをコピーします
// 全文を読み始めます
if($this->TotalPage > 1) {
// 通常のマッチングを使用して改ページを削除します
$this->Fields[ 'body2'] = preg_replace('/# p#subtitle#e#/U', '',$this->Fields['body2']);
$this->SplitFields =explode("#p2222#") ,$this->フィールド['body2 ']);
$this->フィールド['tmptitle'] = (empty($this->フィールド['tmptitle']) ? $this->フィールド[ 'title'] : $this-> フィールド['tmptitle']);
$this->フィールド['title'] = $this->フィールド['tmptitle'];
$this->TotalPage = count($this->SplitFields) ;
$this->Fields['totalpage'] = $this->TotalPage;
$TRUEfilenameall = $this->GetTruePath().$fileFirst."_all. ".$this->ShortName;
$this->ParseDMFields(1,0);
$this->dtp->SaveTo($TRUEfilenameall);

if($cfg_remote_site=='Y' && $isremote == 1)
{

//リモートファイルパスを分析します
$remotefile = str_replace(DEDEROOT, '', $TRUEfilename);
$localfile = '..'.$remotefile;
//リモートファイルを作成しますフォルダー
$remotedir = preg_replace("#[^ \/]*\.html#", '', $remotefile);
$this->ftp->rmkdir($remotedir);
$this-> ftp->upload($localfile, $remotefile , 'ascii');
}
}
//全文読み終わり

ステップ 3: 静的ページ ページング リストを検索して取得する

代码如下复制代码
/**
* 静的ページのページネーションリストを取得します
*
* @access public
* @param int $totalPage 総ページ数
* @param int $nowPage 現在のページ数
* @param int $aid ドキュメント ID
* @return string
*/
function GetPagebreak($totalPage, $nowPage, $aid)
{
if($totalPage==1)
{
return "";
}
// $PageList = "

  • 共".(www.111cn.net)$totalPage."页: gt;
  • ";
    $PageList = "";
    $nPage = $nowPage-1;
    $lPage = $nowPage+1;
    if($nowPage==1)
    {
    $PageList.="< ";
    }
    else
    {
    if($nPage==1)
    {
    $PageList.="<";
    }
    else
    {
    $PageList.="<";
    }
    }
    for($i=1;$ i<=$totalPage;$i++)
    {
    if($i==1)
    {
    if($nowPage!=1)
    {
    $PageList.="1";
    }
    else
    {
    $PageList.="1";
    }
    }
    else
    {
    $n = $i;
    if($nowPage!=$i)
    {
    $PageList.="".$n." ";
    }
    else
    {
    $PageList.="{$n}";
    }
    }
    }
    if($lPage <= $totalPage)
    {
    $PageList.=">";
    }
    else
    {
    $PageList.= ">";
    }
    $PageList.= "阅读全文";
    return $PageList;
    }

    也就是在return $PageList 上一行追加了一行代码,
    $PageList.= "阅读全文";
    修改完了したら、ファイルを保存し、次のページを更新すると、効果が確認できます。

    声明:
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。