2022/01/25 13:34 JST

Geeklog Japan Forums

年間スケジュールつづき…phpblock_calendarjp


状態: オフライン

kuro

Forum User
Active Member
登録日: 2010/03/10
投稿数: 445
以前、年間スケジュールを作ろうと、calendarJPのRSSをRSSアグリエータで静的ページに表示させるまではできたのですが、そのRSSにはイベントの開催日が記載されていないために断念!! Cry しかし、geeklogの左下(デフォルト状態)のPHPブロック「Event」をみると、開催日順にイベントが表示されてる!! この「Event」というPHPブロックを静的ページに貼付けられれば、もしかして年間スケジュールが作れるのでは?と思い、 静的ページPHPで
PHP Formatted Code
echo phpblock_calendarjp();
と入力して「PHPを実行する」で、表示されました! しかし、3件calendarJPには入れているのに、2件だけ表示… この設定を変えるにはどこをいじってやればいいのでしょう???

状態: オフライン

kuro

Forum User
Active Member
登録日: 2010/03/10
投稿数: 445
Oops! すいません…できました。 コンフィグレーションの「カレンダjp」で、 イベント予告を表示する期間を365日にすれば、年間スケジュールですね。 贅沢いうと、ちょっと説明文が入れば嬉しいんですけど…

状態: オフライン

Ivy

Site Admin
Admin
登録日: 2004/01/01
投稿数: 5974
場所:Tokyo
それならちょっとしたハックでできそうですね。

状態: オフライン

kuro

Forum User
Active Member
登録日: 2010/03/10
投稿数: 445
ほんとにいつも有り難うございます。
それならちょっとしたハックでできそうですね。
そのちょっとしたハックのヒントだけでも分かれば… どのファイルを見てみればいいかとか…

状態: オフライン

Ivy

Site Admin
Admin
登録日: 2004/01/01
投稿数: 5974
場所:Tokyo
plugins/calendarjp/functions.inc の中の phpblock_calendarjp() が、このPHPブロック関数です。

状態: オフライン

kuro

Forum User
Active Member
登録日: 2010/03/10
投稿数: 445
Ivyさん、有り難うございます。 DBをphpMyAdminで見ると説明文は「description」と言う名前がついてるみたいなので、 private/plugins/calendarjp/function.inc で、$titleについて書かれてあるところに、同じ様に$descriptionってのを以下の様に追加していったんですが… ■107行目 function phpblock_calendarjp( $help='', $title='', $description='' ) { ■129行目 if( empty( $title )) { $title = DB_getItem( $_TABLES['blocks'], 'title', "name = 'eventsjp_block'" ); } if( empty( $description )) { $description = DB_getItem( $_TABLES['blocks'], 'description', "name = 'eventsjp_block'" ); } $eventSql = 'SELECT eid,title,description,url,datestart,dateend,group_id,owner_id,perm_owner,perm_group,perm_members,perm_anon ' . "FROM {$_TABLES['eventsjp']} "; といった感じです。 しかし何も変わらず…多分、HTMLを吐き出す部分も変えなくてはいけないのか… そこがどこなのか、目を皿のようにして探しておりますが…

状態: オフライン

kuro

Forum User
Active Member
登録日: 2010/03/10
投稿数: 445
先に書いたのは、止めました。 Mr. Green 止めて、結局、 function.incの315行目あたり・・・
PHP Formatted Code
 
if( !empty( $newevents )) {
$retval .= COM_makeList( $newevents, $classname );
                                               
if( empty( $description )) {
$description = DB_getItem( $_TABLES['eventsjp'], 'description', 'eid=' . $theEvent['eid'] );
}
$retval .= $description;
                                               
$newevents = array();
}
 
以上の様にしましたが、 DBの最後の説明文ばかり表示されてしまいます。 もう少しのような気もしますが…

状態: オフライン

kuro

Forum User
Active Member
登録日: 2010/03/10
投稿数: 445
前回をちょっと変えて・・・ private/plugins/calendarjp/function.incの315行目あたり・・・ -------------------------------------------------------------------------------- if( !empty( $newevents )) { $retval .= COM_makeList( $newevents, $classname ); if( empty( $description )) { $description = DB_getItem( $_TABLES['eventsjp'], 'description', 'eid=' . $theEvent['eid'] ); } $retval .= mb_substr($description,0,40) . '...'; $newevents = array(); $description = array(); } -------------------------------------------------------------------------------- 以上のようにすると出来ました。 どうもありがとうございました。

時刻はすべて JST , 現在の時刻は 01:34 PM

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