2019/04/26 18:47 JST

Geeklog Japan Forums

COM_showTopics_EXT() in Geeklog1.4


状態: オフライン

OMAL

Forum User
Regular Member
登録日: 02/14/18
投稿数: 27
私が担当しているサイトのgl1.4のlib-commonに入っている関数ですが、本家の方で尋ねたところ、カスタム関数の可能性があります。
もしかしたらと思っての質問ですが、
gl2.2のivy版でのインストールはCOM_showTopics_EXT()の移行自動処理(1.4から2.2へのアップグレードでのlib-common内のCOM_showTopics_EXT()関数の書き換え)に対応していますでしょうか?


状態: オフライン

terayama

Forum User
Active Member
登録日: 02/16/07
投稿数: 217
https://mixi.jp/view_bbs.pl?comm_id=43246&id=5204936 の一部に下記の記述が見受けられます
手元の1.4.1にも見受けられない関数なので独自に追加されたのだと思われます
であれば追加するしかありません
[18] mixiユーザー
03月17日 12:55
話題の2階層化(“プロジェクト“メニューの作成)

プロジェクトメニューを作成し、その下に、トピックを配置するような仕組みを考える。
通常のトピックとは別に、キーを持ったトピックを作成し、通常トピックと区別する。
たとえば、話題IDの先頭が_出始めるものは、メイン話題に表示しないようにする。
lib-common.phpの1856行付近、function COM_showTopics( $topic='' )を以下のように変更。メニュー項目をデータベースから取り出すときにIDの制約条件を$tidselectパラメータで渡す機能を追加し、これをfunction COM_showTopics_EXT( $topic='', $tidselect )という関数名にした。
IDの先頭が_Pのメニューを抽出する場合は、COM_showTopics_EXT( $topic, "tid LIKE '\_P%'"Wink;を呼び出す。
元々の関数、function COM_showTopics( $topic='' )については、先頭が_以外の項目だけ取り出すためreturn COM_showTopics_EXT( $topic, "tid NOT LIKE '\_%'"Wink;を呼び出す関数として作成。

PHP Formatted Code

function COM_showTopics( $topic='' )
{
return COM_showTopics_EXT( $topic, "tid NOT LIKE '\_%'");
}
function COM_showTopics_EXT( $topic='', $tidselect )
{
if( !empty( $tids )) //読みたくない話題を除外
{
$sql .= " WHERE (tid NOT IN ('" . str_replace( ' ', "','", $tids )
. "')) AND (tid NOT LIKE '\_%') " . COM_getPermSQL( 'AND' );
}
else
{ //すべての話題名を検索する
$sql .= " WHERE (tid NOT LIKE '\_%') " . COM_getPermSQL( 'AND' );
//$sql .= COM_getPermSQL();
}
 

(以上なかにしさんからです。)

話題が並列にいくつも増えていくのを防ぎたいということから
つくられました。
本来ならメニューをクリックするとそのメニューの直下に
サブメニューが表示されるようになればもっとよいですが。
とりあえずここまでで・・・
本家におねがいできるまでこなれていないのです。
とりあえず試作段階 というところかと思います。

状態: オフライン

OMAL

Forum User
Regular Member
登録日: 02/14/18
投稿数: 27
ありがとうございます。
これで状況は分かりました。
確かに、この関数はあるブロック内に、特定の種類のトピックのみを表示しているところに使われています。

残すことになりそうです。可能ならlib-commonから外してカスタムファイル内での関数として管理したいところです。考えてみます。

当時はコア関数COM_showTopics()を上書きする必要から苦肉の策でlib-commonを修正した感じがしますが、gl2.2にはこの関数が無くなっているのでカスタム化はもしかしたら楽なのかもしれません。

追記
コア関数COM_showTopics()はgl2.2にも残っていますね。ということは、ちょっと面倒です。

状態: オフライン

Ivy

Site Admin
Admin
登録日: 01/01/04
投稿数: 5900
場所:Tokyo
話題の階層化 であれば、昔は階層化の機能がなかったので、話題IDに勝手に特別ルールを設けて階層表示するなどやっていたようにおもいますが、今では標準機能なので、まったく不要になりました。

状態: オフライン

OMAL

Forum User
Regular Member
登録日: 02/14/18
投稿数: 27
毎度思うのですが、古いバージョンの特定のファイルと見比べる必要が出た場合に、 その度に全ファイル一式が圧縮されたファイルをダウンロードするのはきついですね。 オンラインでその特定のファイルだけ見れるようにできないのでしょうか? 例えば、lib-common.phpの昔のバージョンを取得したい場合に、 githubでもなんでもいいですが、glの1.4を選んで、その中のlib-common.phpをブラウザ上で一瞬で見れるとか、 もしくは最新版のglのlib-common.phpのページのヒストリーからgl1.4の時のlib-common.phpがブラウザで一瞬で見れるとか。 まあ、最悪、ブラウザで見れなくてもその特定のファイルだけダウンロードでもいいですけど。

状態: オフライン

Ivy

Site Admin
Admin
登録日: 01/01/04
投稿数: 5900
場所:Tokyo
OMALさん、GitHubを活用するとバージョン管理できますので、やってみていただけますでしょうか。
どんどんforkしてご自分のGeeklogバージョンを管理してみてください。

また、旧バージョンは、日本語化のためにかなりハックしていますが、今は、ハックが殆ど不要になっていますので、
プラグインなし、ハックなし、で新バージョンに移行させてください。

現バージョンで必要なプラグインは、静的ページ、自動タグ、Assist, dataBox, MediaGallery, Forum, XMLSitemap, テーマエディタ, サイトマップ、
このくらいだと思います。

サイト構築には、UIkit v3をフレームワークとして活用しているので、UIkitサイトもご覧ください。

また、独自のハックは可能な限りやめて。有用な機能はハックしたら本家にフィードバックして本体を改善するなりしてもらいなりし、あるいはカスタム関数を開発・提供していただけると良いと思います。

時刻はすべて JST , 現在の時刻は 06:47 PM

  • 通常
  • 注目トピック
  • ロック済
  • 新着
  • 注目トピック 新着
  • ロック済トピック 新着
  •  ゲストユーザの投稿を見る
  •  ゲストユーザ投稿可能
  •  一部のHTMLを許可
  •  バッドワードをチェック