質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

1939閲覧

PHP(symfony)でトップページだけh1タグにしたい。

kapimako

総合スコア39

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2015/01/07 13:50

PHPとフレームワークsymfonyの質問です。サイトのトップページだけ<h1>、他のページは<p>タグにしたいのですが、下記コードだと全ページ<h1>になってしまいました。どなたかご教示いただけないでしょうか。よろしくお願いいたします。

■actions.class.php テンプレートに変数をセット
public function executeIndex()
{
$this->getUser()->getAttributeHolder()->remove('bread_crumb');
$this->isTopPage = true;
return sfView::SUCCESS;
}
■_header.php

<?php if (!isset($isTopPage)):?> <h1 id="siteTitle"><?php echo link_to(image_tag('/images/common/title.jpg', 'alt'=>'サイト名')), '@homepage')?></h1> <?php else:?> <p id="siteTitle"><?php echo link_to(image_tag('/images/common/title.jpg', 'alt'=>'サイト名')), '@homepage')?></p> <?php endif;?>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

trueかそうでないかの値のはずなのに、issetの否定では判定できないと思われます。
トップページかどうかはissetかつ=== trueでの判定になるのではないかと思います。
Symfonyのことはよくわからないので、テンプレート上で$isTopPageがどうなっているのかはよくわかりませんが…

投稿2015/01/08 01:31

TaMaMhyu

総合スコア1356

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kapimako

2015/01/08 14:35

教えていただいてありがとうございます。!issetが否定という事が分かりました。 かつ===true(データ型も同じ?という解釈でよいでしょうか?)というのはどこでセットするのでしょうか? テンプレート上の $this->isTopPage = true;  を $this->isTopPage === true; (かつデータ型も一緒と言う認識でよろしいでしょうか?)にしてもうまくいきませんでした。。。当方初心者なので、1つ1つ手さぐりですが、もう少し調べてみます。また、こちらの何が原因か分かりましたら教えていただけますと幸いです。お返事遅くなりすみません。取り急ぎ御礼申し上げます。
TaMaMhyu

2015/01/09 04:26

テンプレート上のトップページの判定を isset($isTopPage) && $isTopPage === true のような条件に変えるとできる気がします。 (正しい対応がどうあるべきかはSymfonyの仕様の考慮も必要で、そこまでは考えていません。)
guest

0

ご教示ありがとうございます。おっしゃる通り、symfonyのテンプレートの仕様で別の設定も関係していたようです。初心者の当方ではアタリも付けられず…教えていただいた内容を制作側に再度問合せてやっと回答を得ることができました。
■_header.php(修正)

<?php if (isset($isTopPage) && $isTopPage === true):?>

■_noSidebar.php(追加)

<?php include_partial('global/header', array('isTopPage'=>isset($isTopPage)?$isTopPage:null))?>

こうゆう書き方や設定が関係するなど非常に勉強になりました。今回の件でPHPが書けたらいいなと強く思いました。本当に助かりました。勉強がんばります!また機会がありましたらご教示の程よろしくお願い申し上げます。ありがとうございました。m(_ _)m

投稿2015/01/09 18:34

kapimako

総合スコア39

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問