From d38e8286162c19c05013830a29f4cb2874a9a5ad Mon Sep 17 00:00:00 2001 From: s-nakajima Date: Fri, 8 Jan 2021 19:22:55 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20ffmpeg=E3=81=8C=E3=82=A4=E3=83=B3?= =?UTF-8?q?=E3=82=B9=E3=83=88=E3=83=BC=E3=83=AB=E3=81=95=E3=82=8C=E3=81=A6?= =?UTF-8?q?=E3=81=84=E3=81=AA=E3=81=84=E7=92=B0=E5=A2=83=E3=81=A7=E7=A7=BB?= =?UTF-8?q?=E8=A1=8C=E3=81=99=E3=82=8B=E3=81=A8=E3=82=B5=E3=83=A0=E3=83=8D?= =?UTF-8?q?=E3=82=A4=E3=83=AB=E7=94=BB=E5=83=8F=E3=81=8C=E4=BD=9C=E3=82=89?= =?UTF-8?q?=E3=82=8C=E3=81=AA=E3=81=84=E3=81=9F=E3=82=81=E3=80=81=E5=8B=95?= =?UTF-8?q?=E7=94=BB=E3=82=92=E7=B7=A8=E9=9B=86=E3=81=99=E3=82=8B=E3=81=93?= =?UTF-8?q?=E3=81=A8=E3=81=8C=E5=87=BA=E6=9D=A5=E3=81=AA=E3=81=8F=E3=81=AA?= =?UTF-8?q?=E3=82=8B=E3=83=90=E3=82=B0=E4=BF=AE=E6=AD=A3=20https://github.?= =?UTF-8?q?com/NetCommons3/NetCommons3/issues/1617?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Controller/VideoFilesController.php | 18 +++++++++++++++++- Model/Behavior/VideoValidationBehavior.php | 8 ++++++++ webroot/img/thumbnail_noimage.png | Bin 0 -> 7735 bytes 3 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 webroot/img/thumbnail_noimage.png diff --git a/Controller/VideoFilesController.php b/Controller/VideoFilesController.php index e19c3ba..a52a7d4 100644 --- a/Controller/VideoFilesController.php +++ b/Controller/VideoFilesController.php @@ -80,7 +80,23 @@ public function file() { // ダウンロード実行 if ($video) { - return $this->Download->doDownload($video['Video']['id']); + //NC2からNC3で移行するとサムネイルが移行されないため、サムネイル画像がないときはNoImageを表示させる + //@see https://github.com/NetCommons3/NetCommons3/issues/1617 + try { + $response = $this->Download->doDownload($video['Video']['id']); + } catch (Exception $ex) { + if (!empty($this->request->params['pass']) && + $this->request->params['pass'][0] === Video::THUMBNAIL_FIELD) { + //NoImageを表示する + $noimagePath = CakePlugin::path('Videos') . + 'webroot' . DS . 'img' . DS . 'thumbnail_noimage.png'; + $this->response->file($noimagePath, ['name' => 'No Image']); + $response = $this->response; + } else { + throw $ex; + } + } + return $response; } else { // 表示できないなら404 throw new NotFoundException(__d('videos', 'Invalid video entry')); diff --git a/Model/Behavior/VideoValidationBehavior.php b/Model/Behavior/VideoValidationBehavior.php index e5e15f9..83a3406 100644 --- a/Model/Behavior/VideoValidationBehavior.php +++ b/Model/Behavior/VideoValidationBehavior.php @@ -172,6 +172,14 @@ public function rules(Model $model, $options = array()) { ), ), )); + + //NC2からNC3で移行するとサムネイルが移行されないため、サムネイルのupload_idが空であれば、 + //エラーにならないようにunsetする。 + //@see https://github.com/NetCommons3/NetCommons3/issues/1617 + if (isset($model->data['UploadFile']['thumbnail']['id']) && + ! $model->data['UploadFile']['thumbnail']['id']) { + unset($model->data['UploadFile']['thumbnail']); + } } return $rules; diff --git a/webroot/img/thumbnail_noimage.png b/webroot/img/thumbnail_noimage.png new file mode 100644 index 0000000000000000000000000000000000000000..6ef4242c292969ee208f995a03bce293bc6c7d92 GIT binary patch literal 7735 zcmeHshgVaJvu^AP0!OiefE`hakO0!ff*`>t9U*iAp-S(dM=^&kH6{osC876T0upIL zKobH|BPE0$B(#u(+?@N~TkmhU>;BeWd(E0zGvA&)d-j^W=Zk*+?1=!M2p<3d5YW?o zWC#Ep`~v_Sz#Tuxv!u23C-cMsU&AL40A&N07J15HXKe#*0H89FpKW)9r=NJGYvBt3 z2;%=e4|IDKI067-{d$kIjf1RLCuK6mb;ghW-V9IpE9tM4zfw-8BzH0uImMzad5(I~ zdjIf_9<^(sB=_O0B=_*C&@7cP)r_uTb9AU|yw0{nVq&5M0ARYt9pD}Tm;+Hq0sq{` z8~|MX00+E2?kEDdeDFV}|5W0CW>4$~g@vhWg*`zNFe+MMt3mfJ4GN9qz?BHpF30ZK z>4v&o-g(R$DG(hdZ|@{hlmF^Qa~2saD`044EYUsM!NmsKE` zoErwT$Mk@X5CSZB3;qJwYCEEH2m>7=0P`a#OvnF~|E+7HF#P;(0NX`Jw5N2*f!9tc z@Fv$fwSP^Oj_5UXyzwD`{teP*vQfPLb3ny?1p`RNl6_m|@#` z7a;u(>^nK#7;)nJzj+-+Vdfel>ne@{Otmpm)jT;oo!H&o&A{*Ej%un~wZZ&?_V+B~ zMptmg_WCiJwadm1QeG3|UHt{{jf{xBoyXl_=fhd$JH_;`D%ma9%2)bZgd|53(>%;+ zUx$o-K+b&S$ex9d3ACud9{@u%sRTki7lq`})nY5!! zyr~sXJNw#NhBdk~GR%ZDS9$eXvQIVLUkiP;$71^(0WZ4KIwZ4?d;*jULo@mLLuZ*3N+dTtVmBg;y~$)?6KRx|qy$VXf|y9BBp5J%8`yF1)8ji5G|IE9 zTZJ7;P`Cbeq7J)}wLCaT=q~nJ{!3FSTeE&^mSs1l9Q>eO>{Di%Akyz$n`V$Qyyw^1 zI!t}bAtMRqpVd&BPTptshz&dgplrfmCO!&i^zBg^>w{%@yHU#`*x!5&> z!)h*N<44?&sbQhfLzNOZ^*JVrA*2%+(Ya{7uHi~dVmqZeGO-9xV%z9%wm@FSNNH&|JA&0Re4}B6 zerB(xh8xrq%cl6PZ4dm@LX@QdU+r6*4~Bp9&FdSeF30M<)j=4og`Fyy%xr7fqG|jJ zuk0ZY`;EV!Bf@INe~Rmh)jQ;+orkY9+vRtXtv8581A{>mSmBBn#n08GhMXHb#?yC( zy*xry{Hi=5ND-u9W&oU+)^>NmdNs_kuB>(kIUEpC^m7MxhS%%R_wha-dTze_q6EP# zra2QUs_CI5L$ynOYwIbkBSs&Aq&c@@gWyzGuf76APuXm6NUySl>*(~S>6%j3o;KNE z?LA#G^W~px&DQJj2)N@ak=wPnFR2l8zb!O)Y(77Hm_ulGc~|rS3vOB=X|Ar~fDYuw zKjzoiI;!HuH`Fq9Ow#!y*_&`QwWCn~j8dMyL&%alIAbf7{S7+zlaMgqE} z%P$U&&1a5{OjM#n78E-&4;nP9W$)GOI5`It_@%^4EyFYj@l%UF)9PDeU(%^0dO3t? zOl7|v&x`q`3E{wr7T!)Xam{nS-=?>K}qBME#DA~;dJ2i?gycbX~wa2>mOnatF483i=y4O9=Ufo`OKDs}b)2x&$;6!a> zS6!S{OSIk5**D59LV5p&nfN*r1?dlmUVqJ6kllKqsr%DS)Kabe$%(=*J)l6{V?Na5 zE5R?qf2xjDvGli&V3(l5^=j@{G|1KWp{loIAW6-=vX6-!1ETgoqVJhQ?PrV>-*%$T z7xtML5<6f-&4-e9D-dO+RwQ}ByPy|;?R5yT%~5~u7Nu6@S3PP$>Q z9Gk4#`%L6a)$izH8qLD(48D^cOutL{p~5or7KUtYwl}w)*_s*awu_woBX3-$Dz!6m zsdPXH;r|`zaASWK7nVW4OmHniY8Z-ks}-WI4bO>IJoTEW(3sPzeTcJ8q{yS@Beu}v zcF7LCMe=q;AEVN1s_e^4W~QM{t0$IeC&R@Ag%N0PM!((-dBGngAl!L3^KrRunS*a7 zlAQ>3>TM=+?D}Fw|C;sI2nE7ls?sGE^v6GzsGsDUx1DOeJ%5}%OefvKKf$@N*cG|c z!Ul$yxCjwx;$Pe?_svSpVla7PyyPVkeakaWQQk+788f+HX&C$@vk`iYbTSuzDvNFb zrD&V4s^-S2n$((Qu8F6A^u#?kHf`3~$f!&xwXb`*dhwO_{vr-WE^1H3Dhi+dv=LRO zcXgsiUhy^xc6SR`*O4z?>wXuK(|fzzy=Y$W+8TMIo%M7OFw{+#AaI}h(j|Wl+_GSJm3U+@B*IE^&SZjONh6fVWX-p^$nM>GL)nXRR z>UiIIhc>%yV*70&n6MycQ6?sw-nv14`DOkz3iezqoqr^KOhz}qum5?!HBedYePy7V zcfuT2rQW{v*uVt_BrVXPNGf(jC!Fl_Pe$EJnvFqp^L@-k^Uu_dSZP>!TD^8+n>N?K zMZ-Vj&7b<2I=SoS4d3A$nJ*Z1C;3$XH};fGgO!qwmO`XimZ9;?)Cc&{5%0!z=CqGY z&Bs<#shN;48{yOyL2vu{QuEbL>{m(Gb5&(?$(3av(qp?$$|MA5`l%}rE-an5QjX>N z)lb(9{^>|#v?3{{Ak zs6Brc?wXO?7pP25kP*@mevFQ`hIPh3oliWrU57UG{~N)#g9ZbOp7Fb#3p(NYhrE*J zlc=oRtkBV=@ji6twxkmOFa5V(4;$AABQrDleW3DQ(6!}Fl`wsMMXGhxJJ)TrtXACP zmC?uU@7`iI#QT+<<#X&~oi)-dtqD+B6wHtJMCD}2sjTgdCbQs_IEa`*owLb;ciy$| z28VEg$F{!+=KJ4=YX#RGQ1zXBR)GqH>#8#6t@}IBJ{SvoMWEp6Uu1UGxCd#FA(71;jQ+ObwOkx( zb(sWq(%^TyS^nYBEAfXXRX$5!X***hIR~%_c4kH?>+v2P# z_545r3p=)yL2(bT;X{^s!ol8mSYE%c4>u5y@nNsh1(AzWSfXj%FRry^mu1p+ka*Rz zwwT)K2#uGu34$hL-={<^%JTHJNbsd=ZGrzXu`R6>6Rg$Z)nD zh&(*;41+S&Am@>yI)YUz>^)N9a+0fc`U&!MI#F1=2V|r+jO3SF7j}Cc`ibT=cFTAF z=PSdWd*Xr!zm6K4-_Yp0S5UB{eb%xq13(ZqLE0n+7@S1E&rqQ4Rz*fcL_Ed8nA&?B zO-|6?&xNbY8y|?h0|R5vMhH^SQfB?vx>4%NzT*czcHrTAROD_lLq9=|wRwy=ILKXY z-~33S?u1khjO)(hu*#SwdQQvPQrYFvV{LS}SfDz)tbv>|`4sp%N$A;*1_!ifSvjh) zvIli}dTO3lE^5>2$M*9gKaFX>8?RxZmr^JX0cH#txYjn0CV2m8wa=`iMBmUSy8GHM z1%SmFX?X!6Hz8l=E?#h+BHbC*pgL(dqE-BvV{1;(zlrr7b%FmWN)CzzG>%S*mS@;xBNzkLnl{YUMMy2m187=|QQXB*8!>U}pz(%J}Whp=pk zJmgS)k8lwUfgF+p3E6%Y+!JKQ1*0!GqN5gg!NM{n7B;kV@Q+ZO{vY;wa)^*kvj5O) zJLN|OC$upZae{qO%HvEVe;??TcC{2#JnQyPFiC?l4Ui+1M1iX>>s!c%si%5&o7?^i zVku9&w8M&?cR9M8>GrYaLJ;tKn*AI9M14o}W8NE%!Asgq6j}|&&~klmc_o4IyWf*A zLCJUXrjJf3o?L(E)hXh0Nl}47^kZJaeP7Mlu{5K}dVbKw@1~zFKDLrU6{&b9obi?a z=hDrB#`_qHEM9hZ>f@$LCmNMAM$NX^MGY#X%&Uw9nd_!Pqrg7P*4GCj-dWYMFFi>E zS3iPkLW3q6(LUOuYKB`^iFfNaj%!(9E-JZP63jO$WALu4`2kzYI|q!ytC;kz5{*6q zAHS<4X)8pOVs4>T6N>ZcMjG;g)15(}_GJfwjatUv7CO60{E#gx&wU|ZEU#ECg8Xhe zM!iQ;!ixT!U43#pTf)XxN`NFqkp=GAXPlzxyK-FiM#o@k+x5)h0qVKC4+;JX1d;xo ztw3^e-5u-wix8@N?{xv;+mtIHpMs0QV>w~f?T1gzroj(B&JP1mz(SJX!*)1hBmHAW zVP<&IG-0C@5V%jIu1wZw;lX~0B_i{&Q3W*%cg z&ttj#iS4xF`}(5@T%gBZTjYjB}*qi+?b?ygK2Wnx>dkV<;p z`=XY$zsR^c?5wxQHdv|L5Sf3$ulUd=XA-Q|6}VecqHX~s9?jpqi*I?-T{P>OfxpbP7Po$2MsmlFkBCKNd*&1on=-e(Q>@Ht)_2gK&$cg5fLL$ ze>r}%tI&C~HT~7n$xhq{*A9~J((zdxmP36CA^4J3J{%%Qxuzy$+XcJ|Nyj4$ zrZ0ylHAOCQn1qEP7HNOCg#)bJ@^xKdI-Av8xu)d|3~;cSld3Q#sGez^QlvX~vVh7h zdk0HrrzxEJS=&;6>i?U=Eit%R@VC=L$jQW!j{zdBrp=UlSv8b`nZh}50X6@m=Sc{nW zx=K#Zsx~MW30Y%u(C9f-4)Ty=Q5SBZ(E;L994Qs7l@T7W-=?aM(mLUHP8o!nk3Z{# z4v`eCm#?Ry?efYvm;T^Zd6Nz`k9|Rj$Me(o&mpnQRF^;(WWLZ}4YO#oIcAEq>7%>pJ*4 zu5s=_c#TeW9)?Eas*Wz&U!ePF2wdw6Om*iAO!GsAY}>U-upE?a{S21Q22SLKE}gie zyIF`@_0Zb!+XrPy82T2+L%%hZNUu)RjqaGXv>?@LKNUNQbPbiQaH#|DNo{g!2Ipvz zw1mw4J3W8>D12CxnKN`{EaAf(u3`X8QQGu-;!sJe7t>JQqItX!BUC(USaPD9T86uB zN3IS$i)@GT7=>ZyXw>^g3&^4Ny&-4qph%v{^hw?{k7syIPJ%b^*ausWMYCjse^SM^an!}|6y7xugt}Chl6-BRtAJ87 z)b0iWF&iOAYzgFn$Bwv5#6)-bOP=P1MirOj%Io2yd6^_Djw290IsZqyug8dGB;F*s z2axYGrq|i-$?sSGyW<}Mb|;JB$+LFZ;LR&{Ggk2dmV_4wTKQE0$$29+ zV4NsPnJn*R0Br)c?)y$?odB_~lK?*krAFhTwV?M#MFg|f`uP;r1l!|7jnaoi$6Cd8K-Pg7*v)n&US-i9}IA}EK z-^tet0vLmWP1fsZM{=|cLWEV^Zt$`rNdKJwI1?9Zz#FoFACS;kLyCWEIJNd32Db1R zbKtiQZz5d0J(YJkB?lZzA7V=W$mG=xFqVN*l2cZ!ZPVg>eN40bvJvT%pyI|o?#aUh uoZ9s~{2#vQKg`?zCc<%;jz@5hT_JbE@5%by