Re: 5.6 コンポーザーでの下書きと表示

2015年10月12日 at 15:36

以下のようになります。

$main = $cobj->getBlocks('Main');

でMainを取得してるのですが、
$mainb = $main[0]->getInstance()

ってしてるのがダメなのでしょうか?



<?php
defined('C5_EXECUTE') or die("Access Denied.");
$textHelper = Loader::helper("text");
$imgHelper = Loader::Helper('image');
$dateHelper = Loader::Helper('date');
/* @var $dateHelper DateHeler */
// now that we're in the specialized content file for this block type,
// we'll include this block type's class, and pass the block to it, and get
// the content

/*foreach ($cArray as $pc => $arr_post) {
if (!strpos($arr_post->cPath, "blog/news") && !strpos($arr_post->cPath, "blog/media")){
$newcArray[] = $arr_post;
}
}*/

if (count($cArray) > 0) { ?>

<section id="blog_top_list" class="contents">
<div class="top_block_title">BLOG</div>
<div class="container">
<div class="row">
<?php
for ($i = 0; $i < count($cArray); $i++ ) {
$cobj = $cArray[$i];
// $target = $cobj->getAttribute('nav_target');

// 記事タイトル
$title = $cobj->getCollectionName();

// 記事日付
$post_date = $dateHelper->formatDate($cobj->getCollectionDatePublic());
$post_date = date('Y/m/d', strtotime($post_date));

// 親ページタイトル
$parent = Page::getByID($cobj->getCollectionParentID());
$parent_title = $parent->getCollectionName();

// サムネイル取得
$ts = $cobj->getBlocks('Thumbnail Image');
if (is_object($ts[0])) {
$tsb = $ts[0]->getInstance();
$thumb = $tsb->getFileObject();
if($thumb){
$blog_thum = $imgHelper->outputThumbnail($thumb, 360, 240, $title, true);
}
}

$main = $cobj->getBlocks('Main');
if (is_object($main[0])) {
$mainb = $main[0]->getInstance();
// 記事の内容取得
$blog_post = $mainb->content;

// 画像ファイル抽出
$image_info = preg_match_all('/<p><img.+src=[\'"]([^\'"]+)[\'"].*>/i', $blog_post, $img_matches);

// 映像ファイル抽出
$video_info = preg_match_all('/<p><iframe.+src=[\'"]([^\'"]+)[\'"].*>/i', $blog_post, $vid_matches);

// 画像削除
if ($image_info > 0){
$images = $img_matches[0];
foreach ($images as $key => $img_val) {
$blog_post = str_replace($img_val, "", $blog_post);
}
}

// 映像削除
if ($video_info > 0){
foreach ($vid_matches[0] as $vk => $video) {
// 映像を削除
$blog_post = str_replace($video, "", $blog_post);
}
}
}

$post_len = strlen($blog_post);
if ($post_len > 64){
$blog_post = mb_substr($blog_post, 0, 64, 'UTF-8');
} ?>

<div class="sh col-xs-12 col-sm-4">
<div class="container">
<div class="row">
<!-- サムネイル表示 -->
<?php if ($blog_thum) { ?>
<div class="col-xs-6 col-sm-12">
<div class="thum">
<a href="<?php echo $nh->getLinkToCollection($cobj)?>">
<?php echo $blog_thum ?>
</a>
</div>
</div>
<?php } ?>
<div class="post col-xs-6 col-sm-12">
<div class="clearfix">
<!-- 親ページタイトル -->
<div class="parent_title"><?php echo $parent_title; ?></div>
<!-- 日付 -->
<h4 class="date"><?php echo $post_date; ?></h4>
</div>

<!-- タイトル -->
<h3 class="title"><a href="<?php echo $nh->getLinkToCollection($cobj)?>"><?php echo $title?></a></h3>

<!-- 本文 -->
<?php if ($blog_post) { ?>
<div class="post_main clearfix">
<?php echo $blog_post ?>
</div>
</div>
<?php } ?>
</div>
</div>
</div>
<?php } ?>
</div>
</div>
</section>
<?php } ?>



よろしくお願いします。

タグ:

Re: 5.6 コンポーザーでの下書きと表示

2015年10月13日 at 1:59
ログアウトしても、同じですか?
 

Re: 5.6 コンポーザーでの下書きと表示

2015年10月13日 at 7:44
Concrete5のキャッシュをクリアしログアウト。
ブラウザのキャッシュクリア。
としてみましたが、変わらずです。
 

Re: Re: 5.6 コンポーザーでの下書きと表示

2015年10月18日 at 15:15
いろいろテストしてみて「下書き」の意味を勘違いしてるかもしれないことに気づきました。
1.内容作成
2.保存
3.内容編集
4.公開
であれば問題ありません。

一旦公開したものを「編集→保存(下書き)」しても既に「公開済み」なので、ページに反映されてしまう。
※コンポーザの下書きからは消える。

ということですよね。