内容へ移動
あちあち情報局
趣味や日曜プログラムなどを書いています
ユーザ用ツール
ログイン
サイト用ツール
検索
ツール
文書の表示
以前のリビジョン
バックリンク
最近の変更
メディアマネージャー
サイトマップ
ログイン
>
最近の変更
メディアマネージャー
サイトマップ
現在位置:
トップページ
»
📝DokuWiki
»
📝DokuWikiテンプレート編集用PHP
dokuwiki:tpl-edit
この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。
====== 📝DokuWikiテンプレート編集用PHP ====== DokuwikiにはWeb側からテンプレートを編集できる機能が無いので、編集機能をPHPで作って見ました。 ---- <html> <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <!-- respon_0 --> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-9251612436023685" data-ad-slot="1409739163" data-ad-format="auto"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </html> ===== 使い方 ===== DokuWikiのサイト設定の「PHP埋め込み」と「HTML埋め込み」を有効にして、下記のソースコードをDokuWikiのページに張り付けるだけです。(編集するテンプレートにより一部が書き換えが必要:下記参照) 貼り付けたページを表示するとテンプレートの内容がフォームに表示されるので編集して保存ボタンを押すとテンプレートが更新されます。 更新してもキャッシュが有効になっていると即座に反映されません、管理のサイト設定を保存するとキャッシュがクリアされます。(それが面倒なら文中の「touch ('./conf/local.php');」のファイルパスを確認してコメント化を解除してください。キャッシュのタイムスタンプを更新してキャッシュをクリアします) DokuWikiのテンプレートは複数に分かれているためソースコード中の「編集するファイル名」の部分を編集したいテンプレートのファイル名に書き直して下さい。 ^標準テンプレートメイン^ |./lib/tpl/dokuwiki/main.php| ^標準テンプレートメディア^ |./lib/tpl/dokuwiki/mediamanager.php| ^標準テンプレート画像詳細^ |./lib/tpl/dokuwiki/detail.php| ^標準テンプレートヘッダ部^ |./lib/tpl/dokuwiki/tpl_header.php| ^標準テンプレートフッター部^ |./lib/tpl/dokuwiki/tpl_footer.php| **使用上の注意** * 同時に複数のユーザー(プロセス)からの編集には対応していません。同時に保存するとテンプレートファイル破損する可能性があります。 * 外部ユーザーがアクセスできるページに張り付けると誰でもテンプレートを書き換えれてしまいセキュリティー上危険ですので管理者専用のページにてご利用ください。 * テンプレート記述を間違えるとDokuWikiが正しく表示されなくなるので事前にバックアップを行って下さい。 * Google Chromeを使用してると、保存ボタンを押した後「このページは動作していません」と表示されますがデータは保存されています。ブラウザの戻るで戻り再表示して下さい。 * ご利用は自己責任で。無保証。 ===== ソースコード ===== <code php> ~~NOCACHE~~ <html> <style> .textareaset{width:100%;height:300px} </style> </html> <php> //編集するファイル名 $fileName="./lib/tpl/dokuwiki/main.php"; //ファイルを開く $fileText=file_get_contents($fileName); //保存分岐 if($_POST['save']){ if (md5($fileText)===$_POST['save']){ //保存処理 $fileText=$_POST['data']; file_put_contents($fileName,$fileText); //※キャッシュファイルのタイムスタンプを更新 //touch ('./conf/local.php'); echo '<p>保存成功</p>'; }else{ //保存失敗 echo '<p>保存失敗</p>'; } } //PHPのURL $url= (empty($_SERVER['HTTPS']) ? 'http://' : 'https://') . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; //無害化 $url=urlencode($url); $fileText=htmlspecialchars($fileText, ENT_QUOTES); //編集フォームの表示 echo '<form action="'.$url.'" method="post">'; echo '<input type="hidden" name="save" value="'.md5($fileText).'">'; echo '<textarea class="textareaset" name="data">'.$fileText.'</textarea>'; echo '<input type="submit" value="保存">'; echo '</form>'; </php> </code>
dokuwiki/tpl-edit.txt
· 最終更新: 2018/12/20 07:54 by
管理者
ページ用ツール
文書の表示
以前のリビジョン
バックリンク
文書の先頭へ