l54
1
以前こちらでブログのタグIDを取得し、それぞれにstyleをつける質問をさせて頂きました。
\httpdocs\lib\Baser\Plugin\Blog\View\Elements 内の「blog_tag.php」(テーマフォルダにコピーして使用)内の
<div class="tag"><?php $this->Blog->tag($post) ?></div>
を
<?php if (!empty($this->Blog->blogContent['tag_use'])): ?>
<?php if (!empty($post['BlogTag'])) : ?>
<div class="tag <?php if(!empty($post['BlogTag'])) {
foreach($post['BlogTag'] as $tag) {
echo 'tag'.$tag['id'].' ';
}
} ?>"><?php $this->Blog->Tag($post) ?>
<?php endif ?>
<?php endif ?>
とすることで、
と取得することが出来たのですが、タグが複数の場合これだとうまくいきません。
<?php $this->Blog->Tag($post) ?>のhref属性にこのクラスを付与することは可能なのでしょうか。
もしくはtagのhref属性を外すのはどうすればよいのでしょうか。
tagにそれぞれ異なるクラスをつけて表示させたいのですが、方法はあるのでしょうか。
どなたかご存知の方がいましたらご教授いただけますと幸いです。
よろしくお願い致します。
Baser4.1.7
PHP5.6
mysql
私はこのように書きました。
<?php
foreach($post['BlogTag'] as $tag):?>
<?php
switch($tag['name']){
case 'aaa':
$class = 'StyleA';
break;
case 'bbb':
$class = 'StyleB';
break;
default:
$class = 'StyleDefault';
break;
}
?>
<div class="<?php echo $class ?>">
<?php echo h($tag['name']) ?>
</div>
<?php endforeach; ?>
「いいね!」 1
l54
3
お返事ありがとうございます。
教えて頂いた方法で夫々のタグにclassをつけることができました。
このように記述しました。
<?php if (!empty($this->Blog->blogContent['tag_use'])): ?>
<?php
foreach($post['BlogTag'] as $tag):?>
<?php
switch($tag['id']){
case '1':
$class = 'tag1';
break;
case '2':
$class = 'tag2';
break;
case '3':
$class = 'tag3';
break;
case '4':
$class = 'tag4';
break;
default:
$class = 'tag5';
break;
}
?>
<span class="tag <?php echo $class ?>">
<?php echo h($tag['name']) ?>
</span>
<?php endforeach; ?>
<?php endif ?>
このタグにhref属性を付与したい場合はどのようにかけばよいのでしょうか。
<?php echo h($tag['name']) ?>
<?php echo h($tag['name']) ?>
などとしてみましたが、記事自体にリンクしてしまいます。タグへのリンクにしたい場合の記述方法はどうなるのでしょうか。
・タグ自体にclassを付与
cake自体が未熟なもので何度も申し訳ありません。
よろしくお願い致します。
l54
4
すみません。記述がもれていました。
<span class="tag <?php echo $class ?>">
<?php echo h($tag['name']) ?>
</span>
を
<a href="<?php echo $this->Blog->getPostLinkUrl($post, true) ?>" class="tag <?php echo $class ?>">
<?php echo h($tag['name']) ?>
</a>
などとしてみましたが、タグへのリンク(tag/タグ名) にすることは可能なのでしょうか。
タグにリンクを付加したいのですね。
こんな風に書き換えてみました。いかがでしょうか?
<?php if (!empty($this->Blog->blogContent['tag_use'])): ?>
<?php
foreach($post['BlogTag'] as $tag):?>
<?php
switch($tag['id']){
case '1':
$class = 'tag1';
break;
case '2':
$class = 'tag2';
break;
case '3':
$class = 'tag3';
break;
case '4':
$class = 'tag4';
break;
default:
$class = 'tag5';
break;
}
?>
<span class="tag <?php echo $class ?>">
<?php $tag2['BlogTag'] = $tag ?>
<?php $this->Blog->tagLink($post['BlogPost']['blog_content_id'], $tag2) ?>
</span>
<?php endforeach; ?>
<?php endif; ?>
「いいね!」 1
l54
6
できました!!
思い通りの形になりました。
本当にありがとうございました!!!
「いいね!」 2