自作システムの個人ブログ

様々な情報について適当に記述しています。
(モバイル向け)サイドバーまで飛ばす

「運営」の検索結果

投稿: 2017年02月20日 / 更新: 2017年02月20日 / 筆者: イスターリャ / Comment: 5 / タグ: 運営 システム メモ つぶやき

自作ブログシステムは必要な機能が一通り揃った感じがする。
カラーテーマ変更機能と新着コメントRSSを作成したらいよいよインストーラ(イニシャライザ)
を作ることにした。

あ、RSSアイコンどこに置こう。
決めてなかった。
投稿: 2017年02月18日 / 更新: 2017年02月18日 / 筆者: イスターリャ / Comment: 0 / タグ: 運営 検索

先日難儀していた検索システムを一応完成させた。
先日の記事の通り、%をMySQLに保存するときに=に置き換えることでなんとかした。
これで一応タグ検索はできるようになったはず。

しかし、記事の本文検索はうまくいかなさそうだ。
MySQLに保存するデータ容量削減のために記事本文のみを静的ファイルに切り替えたので、仕様上、記事本文検索をするには総ての公開記事の静的ファイルを読み出さなければならない
ある程度記事が検索エンジンによって登録されているのであれば、Googleカスタム検索などを導入するのもアリだが、それでは最新記事を検索することはできない。
記事本文検索については、当ブログシステムで実装することを諦めることとする。
投稿: 2017年02月17日 / 更新: 2017年02月17日 / 筆者: イスターリャ / Comment: 0 / タグ: 運営 PHP MySQL SQL 検索

記事検索機能を作ってみたけど速攻で隠した。
うまく検索してくれないので……。

原因は分かりきっている。
マルチバイト文字のままMySQLに保存すると文字化けしてしまうので、URLエンコードした状態でテーブルに入れているのだが、URLエンコードに使われる「%」がSQL文のコマンド的なものにもなってしまっているのだ。
対策としてはエンコード後に一旦「%」を別な記号に置き換えて保存すれば良いのだが……
また時間がかかりそう。
アカウント登録を優先して作成することにする。
投稿: 2017年02月15日 / 更新: 2017年02月22日 / 筆者: イスターリャ / Comment: 4 / タグ: 運営 システム WYSIWYG freshereditor bootstrap

はじめ

当ブログは元々完全自作をするつもりであった。
ネットからCSSのサンプルを拾ってきたりはしたがどれも5行未満で、ちゃんと読めば自分でも書ける程度のものだ。
ところが、記事を執筆する時点でその目論見というか予定は崩れた。
記事を編集するためのWYSIWYGエディタ。これは(多分)自作するよりも既存のものを使ったほうが早いと思った。

WYSIWYGエディタ

そこでダウンロードしたのがfreshereditor(フレッシャーエディタ)
http://jquery-plugins.net/freshereditor-jquery-rich-text-editor
divタグのcontenteditable属性を利用したエディタで、ブラウザ間の環境差は知らないが、今のところWindows版Chromeの最新版で良い感じに動いている。
bootstrapを使用した立体的で分かりやすい操作ボタン、枠のないスタイリッシュな編集画面は私の心に「これだ!」という感想を持たせた。

早速ダウンロードし、GitHubに載っているクイックスタートをコピペ・ちょっと改変し、ダウンロードしたファイルを配置し、いざ試すと、そこには素晴らしいテキスト編集体験があった。
WYSIWYGはWikipediaによると「What You See IWhat You Get(見たままが得られる)」という意味らしいが、幾つか試した後、これが一番私に合ったエディタだと再確認した。
もちろん、上記のカギ括弧の中身のように、書式付きコピペも可能。まさにその名の通りである。

しかし……

便利すぎて感動のあまり不要なテキストを打っては消し、また打っては消しを繰り返していたのだが、ある重大なことに気がついた。
なんと、ブログタイトル等の一部レイアウトが崩れてしまっていたのである。
これには驚いた。同時にテキストフォームも妙なデザインになっていて、これは何だと調べた。

結果、bootstrapなるものがこのデザインに関わっていることが分かった。
bootstrapとはフロントエンドWebアプリケーションフレームワークだとか書いてあるけど、現在、私はデザインテンプレートのようなものとして認識している。
10kBものCSSのテキストに様々なデザインが定義されているのだ。
なんかJavaScriptもあるらしいが、そちらは今回お世話にならなかったのでカット。

bootstrap排除

この記事を執筆している前日には、bootstrapを排除し、また他のbootstrapを使わないWYSIWYGエディタを探すか自作しよう、と思っていたのだが、bootstrap.cssをよくよく見てみると(当然だが)いくつかの部分に分かれている模様だった。
これをいじることでなんとかならないか、試行錯誤してみた。

主にコメントアウトしかしていないが、なんとかブログデザインを崩さずにbootstrapを利用できるようになった。
ただしコメントアウトが中途半端なので、まだ今後不具合が出てくるかもしれない。
今後もbootstrapに頼るのはエディタだけにしておきたい。
投稿: 2017年02月13日 / 更新: 2017年02月14日 / 筆者: イスターリャ / Comment: 1 / タグ: 運営 システム メモ つぶやき

今日も今日とて、機能の拡張を行えました。
記事の編集削除面では少し不具合がありますが、専用関数を作ることでなんとかなるでしょう。
記事マネージャで一部の記事の内容が表示されないのは弱りましたが……これはSQLとかの不具合だと信じましょう。もしかしたら文字列のトリミング辺りで不具合があるのかもしれませんが。
機能追加が多すぎて汎用化作業が進みませんね。次は……「次へ」「前へ」があると良いでしょうか。
ですが基本的には前回の記事と同様です。前回の記事は箇条書きになっているのでToDoがたくさん詰まってます。

(更新)投稿済み記事の編集機能テストです。
投稿: 2017年02月12日 / 更新: 2017年02月12日 / 筆者: イスターリャ / Comment: 6 / タグ: 運営 システム

ブログの公開を開始しました。
現在はそっけないタイトルとどうでも良いテストコンテンツばかりですが、ブログ機能を発展させながら記事もそこそこやっていこうと思います。

次の機能実装予定

  • 記事の下書きの保存 / 管理 / 投稿
  • 投稿済みの記事の編集(既存の編集ページを引数で変化させる)
  • コメントのスパムチェックの強化
  • ログインユーザーシステム(ログインするときのユーザーをちゃんとDBから参照する)
  • ブログタイトル等の汎用化(JSONかXMLで定義して保存しておく)
  • コメントスパムフィルタの強化
  • 記事の同時表示数制限(ページ分け)
  • コメントの同時表示数制限(ページ分け)
  • 記事検索機能
投稿: 2017年02月10日 / 更新: 2017年02月10日 / 筆者: イスターリャ / Comment: 6 / タグ: 運営 メモ

実装する機能を検討中なのです。
現在、以下のような機能を検討しています。

実装予定機能

コメントシステム

・ 大前提として、クライアントのJavaScriptが有効であること(サイト移転を考慮し、チェック処理を入れておくこと)
・fc2のように、確認ページを挟む(確認ページにPHPの画像認証ライブラリ「Securimage」を使用)
・スパムフィルタの考案
→ http://www.sound-uz.jp/php/note/spampost
→ http://cms.helog.jp/security/securimage/
→ URLを1つでも含むなら承認待ち / URLを3つ以上なら即刻削除 / URLのみの投稿もアウト / 短縮URLは即刻削除
→ IPアドレスごとに1時間のインターバル、ただし他の人が投稿すると5分まで短縮される(なくすかも)
→ 過去5コメントに全く同じ投稿が見受けられた場合に即刻削除
→ 即刻削除した投稿が2件以上同じ$_SERVER["REMOTE_ADDR"]から投稿されていたら、公式投稿フォーム以外ならブラックリストに登録(ドメインごと)
→ 即刻削除した投稿が5件以上同じOS&画面サイズならそのセットを7日間コメント禁止に
・コメント投稿後に更に確認ページを設け、そこでJavaScript(jQuery)による転送を行い、作業を完了させる
・ コメント管理ページを新設、承認済み&承認待ちコメントと制限中環境を一望できる

テーマ機能

・ CSSを2つ以上指定すると上書きされる動作を利用
・ JSONでデータを読み書きし、書くときに一緒にCSSファイルも出力する or JSONを毎回読んでPHPでCSSを直に記述する(優先順位どうなるんだろうか)
・ 色を変えるだけ、画像指定とかは無理
・ レイアウトの変更も厳しい

画像アップローダ

・ 基本的に画像はbase64で置いておきたいけど……使い回すのに便利かな
・ アップロード&一覧画面からアップロード
・ クリックでモーダルウィンドウが開き、URLをコピー可能に
アップロードできるのは1つのIPアドレスに対し10枚/日(実装できたら)
・ ログイン権限により削除できる画像が制限される(画像は権限レベルの情報を保持する)(意味あるかなぁ)