入稿用ディレクトリからのアップロード

2011年3月1日 at 1:52

concrete5.4.1.1.1では、ファイルマネージャの「複数アップロード」→「サーバーから追加」より入稿用ディレクトリからのアップロードができますね。

入稿用ディレクトリにファイルが1個以上あるとき、この「サーバーから追加」画面でチェックボックスを1つも入れないで(アップロードするファイルを1つも選択しないで)「ファイル追加」を押すとエラーになります。

Fatal error: Uncaught exception 'ADODB_Exception' with message 'mysql error: [1048: Column 'fvID' cannot be null] in EXECUTE("insert into FileVersions (fvID,fvDateAdded,fvAuthorUID,fvIsApproved) values (NULL,'2011-03-01 01:43:07','1',0)") ' in ...


上はデバッグレベルを「開発モード」としてPHPエラーを表示させたときのもので、「公開モード」だとエラーが表示されない代わりに、処理中を示すアイコンがいつまでも消えなくなります。

とりあえず「1個もファイルを選択していないときはボタンを押せないようにする」という方針でパッチを作ってみました。おかしなところがあるかもしれませんがお許しください。

js\ccm.filemanager.js
--- concrete\js\ccm.filemanager.js Wed Jan 5 19:07:36 2011
+++ js\ccm.filemanager.js Tue Mar 1 01:14:55 2011
@@ -883,11 +883,24 @@
});
}

+ccm_alSelectIncomingFiles = function() {
+ var $flag = 1;
+ $("#incoming_file_table input.ccm-input-submit").attr('disabled', true);
+ $("input.ccm-file-select-incoming").each(function(){
+ if($(this).attr('checked')) {
+ $("#incoming_file_table input.ccm-input-submit").attr('disabled', false);
+ return false;
+ }
+ });
+}
+
ccm_alSelectMultipleIncomingFiles = function(obj) {
if ($(obj).attr('checked')) {
$("input.ccm-file-select-incoming").attr('checked', true);
+ $("#incoming_file_table input.ccm-input-submit").attr('disabled', false);
} else {
$("input.ccm-file-select-incoming").attr('checked', false);
+ $("#incoming_file_table input.ccm-input-submit").attr('disabled', true);
}
}

tools\files\import.php
--- concrete\tools\files\import.php Wed Jan 5 19:07:57 2011
+++ tools\files\import.php Tue Mar 1 01:16:27 2011
@@ -229,7 +229,7 @@
<tr>
<td width="10%" valign="middle" class="center">
<?php if($fh->extension($file_array['name'])) { ?>
- <input type="checkbox" name="send_file<?php echo $filenum?>" class="ccm-file-select-incoming" value="<?php echo $file_array['name']?>" />
+ <input type="checkbox" name="send_file<?php echo $filenum?>" class="ccm-file-select-incoming" onclick="ccm_alSelectIncomingFiles();" value="<?php echo $file_array['name']?>" />
<?php } ?>
</td>
<td width="20%" valign="middle" class="center"><?php echo $ft->getThumbnail(1)?></td>
@@ -244,7 +244,7 @@
<?php echo t('Remove files from incoming/ directory.')?></td>
<td>
<?php
- print $form->submit('submit', t('Add Files'));
+ print $form->submit('submit', t('Add Files'), array('disabled' => 'disabled'));
?>
</td>
</tr>


おそらく本家版からの問題だと思いますが…。確認よろしくお願いします。

Re: 入稿用ディレクトリからのアップロード

2011年3月1日 at 2:45
投稿ありがとうございます。

もう1つの方法として、bulk_properties.phpでfIDの無い場合
無視するかそれなりのメッセージを出すということも考えられます。

本家に考えてもらうしかないですね。
 

Re: Re: 入稿用ディレクトリからのアップロード

2011年3月1日 at 9:59
対処法はどうとでもなりますね。私もどうしようか迷ったのですが。

こういうのはやっぱり本家に提案したほうがいいでしょうか?(汗