WP-Cal
-
お世話になります。
WP-Calを使用しておりますが、
カレンダー下に表示される
当日の予定
予定が登録されていませんの枠と文字を削除するにはfunctions/event.phpの
どの部分を修正すればよろしいでしょうか?
出来れば「予定の追加」の文字だけは残したいのです。
よろしくお願いします。
-
kvexさん、いろいろすみません(汗)
検証なしの適当コードでほんと、すみません、すみません。
動くことをお祈りしますです・・・ちなみに、カレンダーそのものを変更するfunctionではなく、表示の一部を置き換えるのみのfunctionですので、与える変数($str)を間違えないようにしてくださいませ。
つまり、今までのコードをすべて破棄してこのコードに置き換えるのではなく、今まで使用していたコードの変更したい部分にfunctionをかまします。
上記kvexさんの説明のとおりではありますが・・・下記ってはどのファイルに該当しますか?
day_events のリスト表示部分に、上記functionを呼ぶように追加
$out .= " <li>". my_schedule_color($event->title). "</li> \n";
こんな感じですかね?
あとキーとなる文字の入力は半角で
b|で→b|太字
brue|で→brue|青文字とかで良いですかね?
2つとも必要な場合の書き方も教えていただいてよろしいですか?全部書かないとわかりませんかね?
day_events() 関数function day_events($date){ global $wpdb, $table; $events = $wpdb->get_results("SELECT * FROM $table WHERE date = $date ORDER BY date ASC"); if($events){ $out = "\n<ul>\n"; foreach($events as $event){ // $out .= "<li><a href='javascript:onclick=getevent($event->id,$date)'>$event->title</a></li>\n"; $out .= "<li>$event->title</li>\n"; } $out .= "</ul>\n"; return $out; } return ""; }
ここのことですけど。
function.php の最後尾に先の関数を追加したなら、すぐ上にある関数です。
ありがとうございます。
確認出来ました。何度もすみませんが、修正していただいたものだと、
予定を新規に追加した場合は、今のままで良いのですが、
後々、変更したい場合にリンクが切れているため変更出来ない状態にあります。
$out .= "<li><a href='javascript:onclick=getevent($event->id,$date)'>$event->title</a></li>\n";
ここのリンク部分はそのまま残せば変更も可能になると思うのですが、修正可能でしょうか?
よろしくお願いします。おっしゃるとおりでした。
このスレッドの最初のほうで、リンク無しにしたいとおっしゃられていたはずですが、事情が変わりましたか?
すみません。
変更を可能にするために予定名からのリンクだけは残す方向に変わりました。下記のとおりにコードを修正したところリンクを追加出来ました。
$out .= "<li><a href='javascript:onclick=getevent($event->id,$date)'>". my_schedule_color($event->title). "</a></li>\n";
それで、
b|テスト
と入れたところ太字になりましたが、
blue|テスト
と入れてもブルーになりません。
リンクの色が優先されてしまいます。CSSを修正しないで解決は出来ませんか?また、
b|blue|テスト
の二重に指定をした場合
テストではなくblueの文字が優先されてしまいます。
二重の指定もしたいのですが・・・よろしくお願いします。
function my_schedule_color ($str) { //$string = strtok($str, "|"); // 最初の文字を読む //$txt = strtok("|"); $arr = explode("|", $str); for( $i = 0;$i < count($arr);$i++ ) { $res = $res_after = ""; switch( true ) { // 処理開始、記号が無かったり条件に合わなければ元のまま case $arr[$i] == "b": //$res = "<strong>" . $txt . "</strong>"; $res .= "<strong>"; $res_after .= "</strong>"; break; case $arr[$i] == "blue": //$res = "<span style=\"color:blue;\">" . $txt . "</span>"; $res .= "<span style=\"color:blue;\">"; $res_after .= "</span>"; default: //$res = $str; $res .= $arr[$i]; } $res .= $res_after; } return $res; }
相変わらず、未検証なのでよろしくです。
上記のコードによってどちらも
「テスト」のみの表示になりました。が、太字と色指定が適用されなくなりました。
また、予定名からのリンクを外し、日付からにリンクに変更したので、
リンクの色が優先されることもなくなりましたが、ブルーに変わりません。
ので、お願いします。ちなみに「b|blue|テスト」と入れた場合、
カレンダー上の日付をクリックすると、
ページ下部に日付、予定名、時間、内容が表示されますが、
その予定名にも閲覧者に不要な「b|blue|」が表示されます。この部分を非表示にするか閲覧者に見えないようにする方法があればご指導下さい。
管理者だけが見れる状態で、変更を可能にしたいのですが。。
かなりいい加減でしたね、すみません。
function my_schedule_color($str) { $arr = explode("|", $str); $res = $res_after = ""; for( $i = 0;$i < count($arr);$i++ ) { switch( true ) { // 処理開始、記号が無かったり条件に合わなければ元のまま case $arr[$i] == "b": $res .= "<strong>"; $res_after = "</strong>" . $res_after; break; case $arr[$i] == "blue": $res .= "<span style=\"color:blue;\">"; $res_after = "</span>". $res_after; break; default: $res .= $arr[$i]; } } $res .= $res_after; return $res; }
こんなんでどうでしょう?
shokun0803さん
ありがとうございます。バッチリでした!
太字も色も適用されました。ちなみに
「b|blue|テスト」と入れた場合、
カレンダー上の日付をクリックすると、
ページ下部に日付、予定名、時間、内容が表示されますが、
その予定名にも閲覧者に不要な「b|blue|」が表示されます。
この部分を非表示にするか閲覧者に見えないようにする方法があればご指導下さい。
管理者だけが見れる状態で、変更を可能にしたいのですが。。っては、不可能ですかね?
その予定名にも閲覧者に不要な「b|blue|」が表示されます。
その予定名を表示しているソースが分からないとなんともできないです。。。
ソースは下記のとおりしか表示されませんが、
カレンダーのフラッシュ部分をソース表示にする方法っては
どのようにすれば良いでしょうか?ログイン後、「予定の追加」、「編集」、「削除」の機能が表示されますが、
それと同じように「b|blue|」も表示されれば良いのですが。。<h2>WP-CAL</h2> <div class="entry"> <p> <div id='cal'></div><div id='msg'></div><div id='calext'></div><script language='javascript'>cal_init();</script></p> </div> </div>
my_schedule_color関数そのものが文字をコードに置き換える関数なので、「ページ下部に日付、予定名、時間、内容が表示される予定名」の表示部分でも同じ関数を使用すれば「文字は」消せるはずです。当然色や太字のコードが適用されますが、第2引数などを付加して消す処理だけに改造とかすれば可能でしょう。
既存のコードを改造してがっつりカスタマイズするなら、最低でもphpは理解していないと難しいかと思います。突然の不具合発生時などに対応できるようにするためにも最低限の勉強はしましょう;)
上記私の書いたコードを「第2引数で文字を消すだけの処理を追加」改造するなら、phpの初級程度のレベルだと思います。これを機に挑戦してみることをお勧めしますよ。
- トピック「WP-Cal」には新たに返信することはできません。