Re: 5.5.2.1にアップしたらエラーになってしまいました

2014年8月14日 at 17:41

いつもありがとうございます。

以下ソースです。
すみません、こちらでしょうか?
<?php defined('C5_EXECUTE') or die("Access Denied."); ?>
<div id="orbit">
<?php
foreach($images as $imgInfo) {
$f = File::getByID($imgInfo['fID']);
$fp = new Permissions($f);
if ($fp->canViewFile()) {
?>
<div>
<?php if($imgInfo['url']): ?><a href="<?php echo $imgInfo['url']?>"><?php endif; ?>
<img src="<?php echo $f->getRelativePath()?>" alt="<?php echo $f->getFileName()?>" />
<?php if($imgInfo['url']): ?></a><?php endif; ?>
</div>
<?php }
} ?>
</div>

タグ:

Re: 5.5.2.1にアップしたらエラーになってしまいました

2014年8月14日 at 17:59
先ほどアップしたのは多分間違っていますよね。

wwwroot/concrete/blocks/slideshow
こちらのview.phpは以下です。

<?php defined('C5_EXECUTE') or die("Access Denied."); ?>

<script type="text/javascript">
//<![CDATA[
var ccmSlideShowHelper<?php echo intval($bID)?> = {

bID:<?php echo intval($bID)?>,
imgNum:0,

init:function(){
this.displayWrap=$('#ccm-SlideshowBlock-display'+this.bID);
if(this.imgInfos.length==0){
//alert('There are no images in this slideshow');
return false;
}
var maxHeight=0;
for(var i=0;i<this.imgInfos.length;i++){
this.addImg(i);
if(maxHeight==0 || this.imgInfos[i].imgHeight > maxHeight)
maxHeight=this.imgInfos[i].imgHeight;
}
this.displayWrap.css('height',maxHeight);


//center images
for(var i=0;i<this.imgInfos.length;i++){
if( this.imgInfos[i].imgHeight < maxHeight){
var t=((maxHeight - this.imgInfos[i].imgHeight)/2);
this.imgEls[i].css('top',t);
}
}
this.nextImg();
},
nextImg:function(){
if(this.imgNum>=this.imgInfos.length) this.imgNum=0;
this.imgEls[this.imgNum].css('opacity',0);
this.imgEls[this.imgNum].css('display','block');
this.imgEls[this.imgNum].animate({opacity:1},
this.imgInfos[this.imgNum].fadeDuration*1000,'',function(){ccmSlideShowHelper<?php echo intval($bID)?>.preparefadeOut()});
var prevNum=this.imgNum-1;
if(prevNum<0) prevNum=this.imgInfos.length-1;
if(this.imgInfos.length==1) return;
this.imgEls[prevNum].animate({opacity:0},this.imgInfos[this.imgNum].fadeDuration*800,function(){this.style.zIndex=1;});
},
preparefadeOut:function(){
if(this.imgInfos.length==1) return;
var milisecDuration=parseInt(this.imgInfos[this.imgNum].duration)*1000;
this.imgEls[this.imgNum].css('z-index',2);
setTimeout('ccmSlideShowHelper'+<?php echo intval($bID)?>+'.nextImg();',milisecDuration);
this.imgNum++;
},
maxHeight:0,
imgEls:[],
addImg:function(num){
var el=document.createElement('div');
el.id="slideImgWrap"+num;
el.className="slideImgWrap";
if(this.imgInfos[num].fullFilePath.length>0)
imgURL=this.imgInfos[num].fullFilePath;
else imgURL='<?php echo REL_DIR_FILES_UPLOADED?>/'+this.imgInfos[num].fileName;
//el.innerHTML='<img src="'+imgURL+'" >';
el.innerHTML='<div style="height:'+this.imgInfos[num].imgHeight+'px; background:url(\''+escape(imgURL)+'\') center no-repeat"> </div>';
//alert(imgURL);
if(this.imgInfos[num].url.length>0) {
//el.linkURL=this.imgInfos[num].url;
var clickEvent='onclick="return ccmSlideShowHelper<?php echo intval($bID)?>.imgClick( this.href );"';
el.innerHTML='<a href="'+this.imgInfos[num].url+'" '+clickEvent+' >'+el.innerHTML+'</a>';
}
el.style.display='none';
this.displayWrap.append(el);
var jqEl=$(el);
this.imgEls.push(jqEl);
},
imgClick:function(linkURL){
//override for custom behavior
},
imgInfos:[
<?php
$notFirst=1;
foreach($images as $imgInfo) {
$f = File::getByID($imgInfo['fID']);
$fp = new Permissions($f);
if ($fp->canRead()) {
if(!$notFirst) echo ',';
$notFirst=0
?>
{
fileName:"<?php echo $f->getFileName()?>",
fullFilePath:"<?php echo $f->getRelativePath()?>",
duration:<?php echo intval($imgInfo['duration'])?>,
fadeDuration:<?php echo intval($imgInfo['fadeDuration'])?>,
url:"<?php echo $imgInfo['url']?>",
groupSet:<?php echo intval($imgInfo['groupSet'])?>,
imgHeight:<?php echo intval($imgInfo['imgHeight'])?>
}
<?php }
} ?>
]
}
$(function(){ccmSlideShowHelper<?php echo intval($bID)?>.init();});
//]]>
</script>

<div id="ccm-SlideshowBlock-display<?php echo intval($bID)?>" class="ccm-SlideshowBlock-display">
<div id="ccm-SlideshowBlock-heightSetter<?php echo intval($bID)?>" class="ccm-SlideshowBlock-heightSetter"></div>
<div class="ccm-SlideshowBlock-clear" ></div>
</div>
 

Re: 5.5.2.1にアップしたらエラーになってしまいました

2014年8月14日 at 20:25
短い方のファイルですね。concrete フォルダ内は concrete5 のコアファイルですが、そのひとつうえの階層にあるファイルは、ご自身で(あるいは別の方が)カスタマイズされたものと思います。詳しくは、当サイトで「オーバーライド」で検索してみてください…。

修正方法は、
$fp->canViewFile()

$fp->canRead()
に変更するだけです。お試しを。
 

Re: Re: 5.5.2.1にアップしたらエラーになってしまいました

2014年8月14日 at 22:04
ありがとうございます。
復活しました。

教えて頂いたwwwroot/blocksの下のslideshowフォルダとview.phpは以下の公式ページからダウンロードしたファイルなんです。
http://book.concrete5-japan.org/

デモのビデオを見て、blocks以下のフォルダをコピーしてカスタムテンプレートを使えばいいのかと思ってやったのが原因だったようです。

コピーしたblocks以下のフォルダを全部削除して復活しました。

concrete5のバージョンが違うのでしょうか?
 

Re: 5.5.2.1にアップしたらエラーになってしまいました

2014年8月15日 at 7:28
書籍で解説しているのはバージョン5.6.2.1で動作を確認したものですので、それ以下のバージョンでは動作しないものがあります。
 

Re: 5.5.2.1にアップしたらエラーになってしまいました

2014年8月18日 at 0:55
そうなんですね、ご教授ありがとうございました。