EMLogを調べて、テンプレートをダウンロードしましたが、使用中にログイン済みユーザー向けの機能が利用できないことに気づきました!
管理者ログイン時に表示されるようにしたいです!
そこで、公式ドキュメントを確認しました:
直接使用可能な定数
| 変数・定数 | タイプ | お問い合わせ内容 |
|---|---|---|
| Option::EMLOG_VERSION | 定数 | 現在のEMLOGのバージョン番号を取得します。 |
| ROLE | 定数 | 現在のユーザー役割(ユーザーグループ):admin(管理者)、writer(登録ユーザー)、visitor(訪問者) |
| ROLE_ADMIN | 定数 | 管理者 |
| ROLE_WRITER | 定数 | ライター(登録ユーザー) |
| ROLE_VISITOR | 定数 | visitorビジター |
| UID | 定数 | 現在のユーザーUID |
| BLOG_URL | 定数 | サイトの完全なURL |
| ISLOGIN | 定数 | ログイン状態:true(ログイン済み)/false(未ログイン) |
上記のドキュメントに基づき、私はコードを書いてみた!
主にコンテンツページにおいて、ログイン済みユーザーのみに表示を許可します!
PHPコードの修正
記事テンプレートを検索echo_log.phpファイル。
開き、出力される記事内容を表す変数を検索してください。$log_content!
少し編集してください:
<?php
if(ROLE == 'admin'){
echo styleContent($log_content);
}else{
echo hiddenContent($log_content,'<div class="hiddenContent">涉及到机密,管理员可见</div>');
}
?>
CSSコードの美化
.hiddenContent{
font-size: 15px;
border: 1px dashed red;
color: red;
text-align: center;
padding: 25px 0;
}
PHPで新しく追加された関数
テンプレートの保存先module.phpファイルに以下の2つの関数を追加してください:
// 处理内容,直接输出
function styleContent($string){
$string = str_replace(array('[hide]','[/hide]'),'',$string);
$string = str_replace("<br />","</p><p>",$string);
echo $string;
}
// 隐藏内容,不可见
function hiddenContent($string, $prompt) {
$pattern = "/\[hide\](.*?)\[\/hide\]/";
$replacement = $prompt;
$result = preg_replace($pattern, $replacement, $string);
return $result;
}使用方法
バックエンドで記事を編集する際、隠したい内容を指定してください。[hide]和[/hide]括弧で囲めばOKです!