てがろぐ - Fumy Otegaru Memo Logger -

お手軽一言掲示板(この辺の文章は「管理画面」の「設定」内にある「フリースペース」タブから編集できます。)

■フリースペース: 編集

ここは、CGIの設定画面から自由に文章を入力して掲載できるスペースです。スキンを編集しなくてもCGI上から手軽に内容を変更できます(HTML使用可)。
動作サンプルです。◆他のスキン:標準スキン, 昔のツイッターっぽいスキン(ピンク版), 付箋型スキン, シンプル日記スキン, ジャーナル(日誌)スキン, ブログタイプスキン, チャットタイプスキン, 黒板スキンてがろぐCGIの配布ページに戻る

or 管理画面へ

No.4548, No.4547, No.4546, No.4545, No.4543, No.4542, No.45417件]

Icon of tomoyo ともよ 2つの画像を隣り合わせにすることは可能ですか?
NO IMAGE にしし おっと、回答を書いている間に、さらに回答が。(笑)
解決したなら良かったです。(╹◡╹)ノ >>4545
NO IMAGE にしし 今日は、冷凍餃子の備蓄を調達してきました。さらに冷蔵餃子も買ってきたのでそれは夕飯に食べました。🥟🥟🥟

🥟Re:4543◆今のところ、実装上の都合で「SITUATION:CLASS」にログイン有無のキーワードを加えられないのですが、何か良さげな実装方法を思いついた場合には考えます。ただ、おっしゃる通り、ログインしていなければ特に何も操作はできませんので、CSSが適用されなかった場合まで考慮する必要はないのではないかとは思います。

さて、スキンディレクトリ名の話ですが。なるほど、その場合は、
[[INCLUDE:head1.html]]
<link type="text/css" rel="stylesheet" href="スキン固有ファイル名.css">
[[INCLUDE:head2.html]]

……のように、ヘッダ用の共通ファイルを2つに分けて頂いて、CSSを読み込む行だけは各スキンに直接書いて頂くのが最も簡単な気がします。

なお、共通ファイルを2つに分けるのが嫌な場合は、先のJavaScriptでスキンディレクトリ名を変数 skinDirName に得ておいて、
document.write('<link type="text/css" rel="stylesheet" href="[[PATH:SKINDIR]]' + skinDirName + '.css">');
……のようなJavaScriptを使ってCSSファイルを読み込むという方法もあります。

もし、「今時 document.write はないのでは……」と思われる場合には、以下のようなモダンな書き方もできます。
let skincss = document.createElement('link');
skincss.rel = 'stylesheet';
skincss.type = 'text/css';
skincss.href = '[[PATH:SKINDIR]]' + skinDirName + '.css';
document.head.appendChild(skincss);

これで、スキンディレクトリ名のCSSファイルを読み込めます。

※JavaScriptでCSSを動的に読み込む場合は、てがろぐ側でのリンク自動調整機能が働きませんので、読み込むCSSファイルパスにはスキンディレクトリ([[PATH:SKINDIR]])も自力で加える必要があります。
畳む
Icon of sakura さくら たびたびすみません、>>4541,4543 です。
教えていただいたjavascriptをもとに
function getLastPart(path) {
   if(path.endsWith('/')) {
      path = path.slice(0, -1);
   }
   const parts = path.split('/');
   return parts[parts.length - 1];
}
let path = "[[PATH:SKINDIR]]";
let skinDirName = getLastPart(path);
var skinDircss = document.createElement('link');
skinDircss.href = skinDirName+'.css';
skinDircss.rel = 'stylesheet';
document.head.appendChild(skinDircss);

として考えていたような出力が出来ましたのでご報告いたします。ありがとうございました!
Icon of sakura さくら お返事ありがとうございます、>>4541 です

言葉足らずですみません、

ログイン状況を示すキーワードについてですが、
現状では [[QUICKPOST]] 記述あり+管理画面で『ログインしている際にのみ表示する』に設定でCSSで表示非表示を切り替えています
が、これだとソースには出力されているのでCSSが何らかの原因で適用されないような場合には表示されてしまうなぁというのが少し気になってしまい…
見えてしまっても非ログイン時には操作できないので気にしすぎかもしれません。
「ログインしています/していません」等のメッセージを表示したい場合はご教示いただいたjavascriptを試してみます。

スキンディレクトリ名だけが欲しいのは、
複数のスキンを共通部分(<head>~</head>間や<footer>~</footer>など)を一つにしていて各スキンで[[INCLUDE:ファイル名]]で合成して使っているのですがその時のcss名を「スキンディレクトリ名.css」としたかったためです。
CSSファイルの名前を同じ(tegalog.css)にすれば
<link type="text/css" rel="stylesheet" href="tegalog.css">
で行けるのはわかっているんですがその場合どのスキンのCSSを編集しているのかわからなくなる時があるので適用するCSSファイル名を「スキンディレクトリ名.css」として
<link type="text/css" rel="stylesheet" href="[[スキンディレクトリ名]].css">←共通ファイルに書いて各スキンでINCLUDE
みたいなことが出来たらちょっと助かるかなぁと思ったのでした。ニッチな要望ですみません。
NO IMAGE にしし ご要望を頂く際には、「それをどんなことに使うのか」も併せてお知らせ頂けると、検討なり方策の提示なりの参考になってありがたいです。

🧇Re:4541◆残念ながら、ログイン状況を示すキーワードはありません。ただ、この2条件が成立している状況なら、JavaScriptを使うことで判別は可能です。要は、CSSの中に .Login-Required という定義が存在するかどうかを調べれば良いので、以下のようなJavaScriptで調べられます。
for(let sheet of document.styleSheets) {
   for(let rule of sheet.cssRules) {
      if(rule.selectorText === '.Login-Required') {
         // 非ログイン状態だと分かる
      }
   }
}

このJavaScriptを、QUICKPOSTの記述位置よりもに書くか、もしくはページ読み込み完了後に実行されるように書けば、ログインされているかどうかを判別できます。

また、[[PATH:SKINDIR]]で得られる文字列から、スキンディレクトリ名だけを抜き出すには、以下のJavaScriptでできます。
function getLastPart(path) {
   if(path.endsWith('/')) {
      path = path.slice(0, -1);
   }
   const parts = path.split('/');
   return parts[parts.length - 1];
}
let path = "[[PATH:SKINDIR]]";
let skinDirName = getLastPart(path));

このJavaScriptを使うと、変数 skinDirName には、スキンディレクトリ名だけが入ります。(もうちょっとスマートな方法があるかもしれませんが。^^;)
例えば、[[PATH:SKINDIR]]/path/to/directory/なら、変数skinDirName にはdirectoryだけが入ります。
Icon of sakura さくら こんにちは、お世話になっております。質問というか要望というか…なのですが

①[[IF(条件): ~中身~ :IF]]に使える条件にログインしていることを示すキーワードはありますか?
②また、これは需要が少ない要望かと思いますが、スキンディレクトリ名を表示させるキーワードが欲しいです。
[[PATH:SKINDIR]]でスキンディレクトリの絶対パスが取得できますが[[NAME:SKINDIR]]のような感じでディレクトリ名だけ出せるものがあるとありがたいです。

動作サンプルです。 ご自由にお試し下さい。パスワードguest管理画面もお試し頂けます。
■いま見ているスキンは「チャットタイプスキン」です。他に、 標準スキン昔のツイッターっぽいスキン(ブルー)昔のツイッターっぽいスキン(ピンク)付箋型スキンシンプル日記スキンジャーナル(日誌)スキンブログタイプスキン(タイトル付きブログっぽくできるスキン)、 黒板スキンがあります。
てがろぐCGIの配布・解説ページに戻る