121からまでを表示 (計279) |
iPhone 4でスクリーンショットを取って、添付していただけますか?
↓こちらでは、このように見えています。(添付ファイル参照)
(iPhone 4は持ちあわせていないので、Chromeのエミュレーションです)
Posted on 7月 07, 2015 at 6:14 午後
|
ページリストブロックを使っておられると思います。
カスタムテンプレート機能を使って、ページリストから出力されるHTMLを書き換えてあげればよいでしょう。
http://concrete5-japan.org/help/5-6/design/block_custom_template/
Posted on 7月 07, 2015 at 6:11 午後
|
原因究明がわかりやすいよう、丁寧に書いて頂きありがとうございました。
それで、こちらも同じ作業をしてみたところ、新しい事実がわかりました。
以前説明したとおり、$this->getThemePath(); は、テーマへのパスを自動的に書きだす、と説明しましたが、
これは、オーバーライド時であっても、元のテーマパスを読みだしてしまうようです。
ブラウザでソースコードを読んでいただければ、footerFixed.js読み出しのパスに/concrete/と入っているのが分かると思います。
で、どうもこれはconcrete5の仕様のようなので、以下のように力技で書いてみると、footerFixed.jsを実装することができました。
<?php $path = $this->getThemePath();
$path = str_replace("/concrete", "", $path);?>
<script type="text/javascript" src="<?php echo $path; ?>/footerFixed.js"></script>
一度、これで試していただけますでしょうか?
Posted on 7月 07, 2015 at 2:53 午後
|
補足です。
footerFixed.jsがgreek_yogurtに正しく実装された場合の挙動をお示ししておきます。
Posted on 7月 05, 2015 at 2:58 午後
|
やってはいけないことではありませんが、このスレッドはあくまで「フッターを底辺に固定する」ことが目的なので、
それ以外の目的で編集やコンテンツ追加をされると、原因の究明が難しくなります。
リロードだけで、開発者ツールのResourcesがそのように変化するのはおかしいので先述のように質問しましたが、
やはりリロードではなく、他のコンテンツの追加等もされていた、ということなんですね。
色々header.phpやfooter.phpを触られたということなのですが、その後もしっかりfooterFixed.jsを読み込む記述は残されていますか?
もう一度ソースコード内を検索して、読み込みコードがあるかどうかチェックしてください。
次に、新しく添付していただいた画像ですが、どちらもウインドウの高さよりもページコンテンツの高さが高くなっているので、
footerFixed.jsが正しく読み込まれていたとしても、これは正しい描画結果です。
footerFixed.jsが機能するのは、ページコンテンツの高さが、ウインドウの高さよりも低い時のみとなります。
この辺りでひとつおかしな事に気づいたのですが、トップ画面から他に作ったページ(添付画像でいうとcontactとかmapのページです)へ移動するとコンテンツの横幅が10pxほど右に移動します。
逆にいうとtopのページだけ左に10pxほど寄っているというか。。
あくまでこのスレッドは、フッターを下辺に固定することが目的ですので、他に気になることがあれば、別にスレッドを立ててください。
フォーラムは問題解決の場だけでなく、後からconcrete5を学ぶ人のための情報でもあります。
後から学ぶ人のためにも、問題は細かく切り分け、なるべく1トピック1スレッドでお願いします。
Posted on 7月 05, 2015 at 2:54 午後
|
また引用が前後しますが…
ひとつ気になったのですが、Chromeの開発者ツールを表示後、ページをリロード後にはScript内のfooterFixed.jsが無くなっていますがこれは正常なのでしょうか?
一応画像を添付させていただきます。
正常ではないです。
添付ファイルを確認しましたが、本当にリロードした直後のものですか?
リロード後のものは、GoogleMapブロックを追加していないと追加されないJavaScriptも存在しています。
仮に、footerFixed.jsの読み込み方が悪かったとしたら、footerFixed.jsがリロード後に消えたとしても、GoogleMapブロックを追加しないと出てこないJavaScriptが読み込まれているのは不自然です。
何か心当たりはありませんか?
なお、リロード前の状態は、正しくfooterFixed.jsが読み込めています。従って、読み込み以外の理由であると考えれます。
あと、スクリーンショットは、私が貼ったように、画面全体を撮っていただけますか? 隠したいところは隠してもらってもいいので、全体のレイアウトが分かるような状態でお願いします。
Posted on 7月 05, 2015 at 1:14 午前
|
index.html等、自分で色々触ったファイルは全て元に戻してあります。
なぜindex.htmlを作られたのかはわかりませんが、greek_yogurtの中にindex.htmlは存在しません。存在しないファイルを作ってもオーバーライドされないので、間違いの元になりますから今後、テーマカスタマイズの時はindex.htmlを忘れたほうが良いでしょう。
引用が前後しますが…
なんとなくしかわからないので<?php echo $this->getThemePath(); ?>をどこに追加すればCSS ファイルや JS ファイルを読み込むのかまだ自分自身わかっていなく、、完全に勉強不足です。。
一旦、concrete5から離れて説明します。
CSSやJavaScriptは、原則的にhead内で読み込みます。(例外もありますが)
かつてHTMLの勉強をされた中で、おそらく、index.htmlなどのhtmlファイルを作り、その中のhead要素内で、
<link rel=“stylesheet” href=“/css/style.css” type=“text/stylesheet” />
などと記述するように学習されたかと思います。
ここで、話はconcrete5に戻ります。一方で、テーマが持つCSSファイルは、
/【concrete5のルート】/themes/theme_name/
の下に置くことになります。毎回themesとかテーマの名前を書いていると間違いの元ですし、途中からテーマの名前が変わり、ディレクトリ名が変更となれば、全部書きなおしです。
そこで、concrete5には<?php echo $this->getThemePath(); ?>と書けば、そのテーマのディレクトリまでのパスを書き出してくれる仕組みが予め用意されています。
これが、greek_yogurtでは、header.phpの11,12,13行目あたりのことになります。
ここまではCSSを例にお話しましたが、JSも原則として同じです。
次に、上記書き込みの通りにやっていただければ、本来はfooterFixed.jsが読み込まれているはずです。
それでも外観に変更がないのであれば、
1)正しく読み込めていない
2)別の理由でフッターが固定できていない
可能性が考えられます。
まず、1の可能性を排除しましょう。
JSが正しく読み込めているかどうかは、ブラウザの開発者ツールで調べることができます。
ブラウザによって開発者ツールのデザインは異なりますが、できることは大体同じです。
ここでは、Chromeの開発者ツールを参考にお話します。
参考:http://www.buildinsider.net/web/chromedevtools/01
デベロッパーツールを起動し、Resoucesというタブを開きます。
次に、左カラムの中から
Frames→(serverの名前もしくはファイル名)→Scriptsと開きます。その中に「footerFixed.js」が存在すれば、正しく読み込まれています。
詳しくは、添付ファイル「ss1.png」を見て下さい。
私の環境でgreek_yogurtにfooterFixed.jsを組み込んだ時の開発者ツールがどう表示されているかがわかると思います。
まずは、ここまで確認しましょう。
Posted on 7月 04, 2015 at 8:11 午後
|
泣きたい気持ちはわかりますが、まず正確に現状をお伝えいただかないと、解決できません。
ひとまず、index.htmlと書かれていた件は、実際にはそうされていなかったと解釈しました。
次に気になる部分があります。
/【concrete5がインストールされているディレクトリ】/themes内に/elements/greek_yogurt/elements/フォルダを作り、その中に
【concrete5がインストールされているディレクトリ】/concrete/themes/greek_yogurt/elements/内のheader.phpの17行目のhead内にお教えいただいたサイトの
もしこのようにされているのであれば、
/【concrete5がインストールされているディレクトリ】/themes/elements/greek_yogurt/elements/header.php
の17行目を書き換えたことになりますが、これは間違いです。正しくは
/【concrete5がインストールされているディレクトリ】/themes/greek_yogurt/elements/header.php
です。
次に、外部に作ったJavaScriptの読み出し方ですが、foterFixed.jsを紹介しているページは、concrete5を前提とした解説ではないので、コードを紹介されたそのまま書き加えても読み出しできません。
誤:<script type="text/javascript" src="./footerFixed.js"></script>
正:<script type="text/javascript" src="<?php echo $this->getThemePath(); ?>/footerFixed.js"></script>
この場合、footerFixed.jsは、elementsフォルダの下ではなく、テーマフォルダ直下
/【concrete5がインストールされているディレクトリ】/themes/greek_yogurt/footerFixed.js
に置くのがスマートでしょう。
ここまで正しく出来ていますか?
Posted on 7月 04, 2015 at 2:40 午後
|
↑先ほどの書き込みを改めて読みましたが、index.htmlに書いているとありますが…
greek_yogurtには、index.htmlは必要ありません。
footerFixedをhead内に書くのであれば、/themes/elements/greek_yogurt/elements/header.php
に書かないといけません。
これはしっかり出来ていますか?
Posted on 7月 04, 2015 at 9:12 午前
|
5.7でアイコンを表示させるのはやったことなかったので、ちょっと調べながらやってみました。
カスタムテンプレートの作り方はご存知だと思うので、ページリストブロックのview.phpを元に、アイコンを表示させるカスタムテンプレートを新しく作ってください。
view.phpの100行目と101行目の間に、以下のように書いてみてください。
<?php
$topic = $page->getAttribute('blog_entry_topics');
$topic = $topic[0]->treeNodeTopicName;
switch ($topic){
case $topic == "Projects":
echo '<img src="http://placehold.jp/50x50.png?text=icon-projects" />';
break;
case $topic == "Humor":
echo '<img src="http://placehold.jp/50x50.png?text=icon-humor" />';
break;
default:
echo "カテゴリ未設定";
}
?>
concrete5 5.7のサンプルコンテンツを元に作っています。トピック名を判別して、その名前ごとに、アイコンを表示させています。
上記例では外部のサーバーから画像を読みだしていますが、ここは、適宜書き換えてください。
↓参考にしたページ
http://www.concrete5.org/community/forums/5-7-discussion/what-is-the-right-way-to-get-a-current-topic/
Posted on 7月 03, 2015 at 3:17 午後
|