diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml
index 9501566..f46fc05 100644
--- a/.github/workflows/tests.yml
+++ b/.github/workflows/tests.yml
@@ -3,22 +3,21 @@ on:
branches:
- main
- master
- - availability
pull_request:
branches:
- main
- master
- - availability
name: tests
jobs:
setup:
name: setup
- runs-on: ubuntu-18.04
+ runs-on: ubuntu-latest
steps:
- name: Slack Notification on Start
uses: rtCamp/action-slack-notify@v2.2.0
+ if: env.SLACK_WEBHOOK != ''
env:
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_TESTS }}
SLACK_CHANNEL: notify-nc3-tests
@@ -28,11 +27,11 @@ jobs:
tests:
name: tests
needs: setup
- runs-on: ubuntu-18.04
+ runs-on: ubuntu-latest
strategy:
matrix:
- php: [ '7.1', '7.2', '7.3', '7.4' ]
- mysql: [ '5.7', '8.0' ]
+ php: [ '7.4' ]
+ mysql: [ '8.0' ]
env:
NC3_BUILD_DIR: "/opt/nc3"
@@ -44,6 +43,7 @@ jobs:
MYSQL_VERSION: ${{ matrix.mysql }}
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: cakephp_test
+ COMPOSER_TOKEN: ${{ secrets.GITHUB_TOKEN }}
steps:
- uses: actions/checkout@v2
@@ -91,46 +91,53 @@ jobs:
docker-compose exec -T nc3app bash /opt/scripts/app-build.sh
- name: phpcs (PHP CodeSniffer)
+ if: always()
run: |
cd ${NC3_DOCKER_DIR}
docker-compose exec -T nc3app bash /opt/scripts/phpcs.sh
- name: phpmd (PHP Mess Detector)
+ if: always()
run: |
cd ${NC3_DOCKER_DIR}
docker-compose exec -T nc3app bash /opt/scripts/phpmd.sh
- name: phpcpd (PHP Copy/Paste Detector)
+ if: always()
run: |
cd ${NC3_DOCKER_DIR}
docker-compose exec -T nc3app bash /opt/scripts/phpcpd.sh
- name: gjslint (JavaScript Style Check)
+ if: always()
run: |
cd ${NC3_DOCKER_DIR}
docker-compose exec -T nc3app bash /opt/scripts/gjslint.sh
- name: phpdoc (PHP Documentor)
+ if: always()
run: |
cd ${NC3_DOCKER_DIR}
docker-compose exec -T nc3app bash /opt/scripts/phpdoc.sh
- name: phpunit (PHP UnitTest)
+ if: always()
run: |
cd ${NC3_DOCKER_DIR}
docker-compose exec -T nc3app bash /opt/scripts/phpunit.sh
sudo -s chmod a+w -R ${NC3_BUILD_DIR}/build
- - name: push coveralls
- env:
- COVERALLS_REPO_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- COVERALLS_FLAG_NAME: ${{ matrix.php }}
- run: |
- cd ${NC3_BUILD_DIR}
- ls -la ${NC3_BUILD_DIR}
- vendors/bin/php-coveralls --coverage_clover=build/logs/clover.xml -v
+# - name: push coveralls
+# env:
+# COVERALLS_REPO_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+# COVERALLS_FLAG_NAME: ${{ matrix.php }}
+# run: |
+# cd ${NC3_BUILD_DIR}
+# ls -la ${NC3_BUILD_DIR}
+# vendors/bin/php-coveralls --coverage_clover=build/logs/clover.xml -v
- name: docker-compose remove
+ if: always()
run: |
cd ${NC3_DOCKER_DIR}
docker-compose rm -f
@@ -138,7 +145,7 @@ jobs:
# テスト失敗時はこちらのステップが実行される
- name: Slack Notification on Failure
uses: rtCamp/action-slack-notify@v2.2.0
- if: failure()
+ if: env.SLACK_WEBHOOK != '' && failure()
env:
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_TESTS }}
SLACK_CHANNEL: notify-nc3-tests
@@ -147,13 +154,13 @@ jobs:
teardown:
name: teardown
- runs-on: ubuntu-18.04
+ runs-on: ubuntu-latest
needs: tests
steps:
# テスト成功時はこちらのステップが実行される
- name: Slack Notification on Success
- if: success()
uses: rtCamp/action-slack-notify@v2.2.0
+ if: env.SLACK_WEBHOOK != '' && success()
env:
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_TESTS }}
SLACK_CHANNEL: notify-nc3-tests
diff --git a/Config/Migration/1753253996_add_index.php b/Config/Migration/1753253996_add_index.php
new file mode 100644
index 0000000..caaebf8
--- /dev/null
+++ b/Config/Migration/1753253996_add_index.php
@@ -0,0 +1,70 @@
+
+ * @link http://www.netcommons.org NetCommons Project
+ * @license http://www.netcommons.org/license.txt NetCommons License
+ * @copyright Copyright 2014, NetCommons Project
+ */
+
+/**
+ * AddIndex Migration
+ *
+ * @author Hiroki Mochizuki
+ * @package NetCommons\Multidatabases\Config\Migration
+ *
+ */
+class AddIndex extends CakeMigration {
+
+/**
+ * Migration description
+ *
+ * @var string
+ */
+ public $description = 'add_index';
+
+/**
+ * Actions to be performed
+ *
+ * @var array $migration
+ */
+ public $migration = array(
+ 'up' => array(
+ 'create_field' => array(
+ 'multidatabase_contents' => array(
+ 'indexes' => array(
+ 'key' => array('column' => 'key', 'unique' => 0),
+ 'block_id' => array('column' => 'block_id', 'unique' => 0),
+ ),
+ ),
+ ),
+ ),
+ 'down' => array(
+ 'drop_field' => array(
+ 'multidatabase_contents' => array('indexes' => array('key', 'block_id')),
+ ),
+ ),
+ );
+
+/**
+ * Before migration callback
+ *
+ * @param string $direction Direction of migration process (up or down)
+ * @return bool Should process continue
+ */
+ public function before($direction) {
+ return true;
+ }
+
+/**
+ * After migration callback
+ *
+ * @param string $direction Direction of migration process (up or down)
+ * @return bool Should process continue
+ */
+ public function after($direction) {
+ return true;
+ }
+}
diff --git a/Config/Migration/1769652195_add_index.php b/Config/Migration/1769652195_add_index.php
new file mode 100644
index 0000000..7ca1814
--- /dev/null
+++ b/Config/Migration/1769652195_add_index.php
@@ -0,0 +1,62 @@
+ array(
+ 'create_field' => array(
+ 'multidatabase_metadatas' => array(
+ 'indexes' => array(
+ 'idx1_p_multidatabase_metadatas' => array('column' => array('multidatabase_id', 'is_title'), 'unique' => 0),
+ 'idx2_p_multidatabase_metadatas' => array('column' => array('multidatabase_id', 'position', '`rank`'), 'unique' => 0),
+ ),
+ ),
+ ),
+ ),
+ 'down' => array(
+ 'drop_field' => array(
+ 'multidatabase_metadatas' => array('indexes' => array('idx1_p_multidatabase_metadatas', 'idx2_p_multidatabase_metadatas')),
+ ),
+ ),
+ );
+
+/**
+ * Before migration callback
+ *
+ * @param string $direction Direction of migration process (up or down)
+ * @return bool Should process continue
+ */
+ public function before($direction) {
+ return true;
+ }
+
+/**
+ * After migration callback
+ *
+ * @param string $direction Direction of migration process (up or down)
+ * @return bool Should process continue
+ */
+ public function after($direction) {
+ return true;
+ }
+}
diff --git a/Config/Schema/schema.php b/Config/Schema/schema.php
index a67f3c0..5b83cff 100644
--- a/Config/Schema/schema.php
+++ b/Config/Schema/schema.php
@@ -161,7 +161,9 @@ public function after($event = array()) {
'modified_user' => array('type' => 'integer', 'null' => true, 'default' => '0', 'unsigned' => false, 'comment' => '更新者'),
'modified' => array('type' => 'datetime', 'null' => true, 'default' => null, 'comment' => '更新日時'),
'indexes' => array(
- 'PRIMARY' => array('column' => 'id', 'unique' => 1)
+ 'PRIMARY' => array('column' => 'id', 'unique' => 1),
+ 'key' => array('column' => 'key', 'unique' => 0),
+ 'block_id' => array('column' => 'block_id', 'unique' => 0)
),
'tableParameters' => array('charset' => 'utf8', 'collate' => 'utf8_general_ci', 'engine' => 'InnoDB')
);
@@ -212,7 +214,9 @@ public function after($event = array()) {
'modified_user' => array('type' => 'integer', 'null' => true, 'default' => '0', 'unsigned' => false, 'comment' => '更新者'),
'modified' => array('type' => 'datetime', 'null' => true, 'default' => null, 'comment' => '更新日時'),
'indexes' => array(
- 'PRIMARY' => array('column' => 'id', 'unique' => 1)
+ 'PRIMARY' => array('column' => 'id', 'unique' => 1),
+ 'idx1_p_multidatabase_metadatas' => array('column' => array('multidatabase_id', 'is_title'), 'unique' => 0),
+ 'idx2_p_multidatabase_metadatas' => array('column' => array('multidatabase_id', 'position', '`rank`'), 'unique' => 0)
),
'tableParameters' => array('charset' => 'utf8', 'collate' => 'utf8_general_ci', 'engine' => 'InnoDB')
);
diff --git a/Controller/MultidatabaseContentsController.php b/Controller/MultidatabaseContentsController.php
index ec8627a..d67e2c8 100644
--- a/Controller/MultidatabaseContentsController.php
+++ b/Controller/MultidatabaseContentsController.php
@@ -19,6 +19,7 @@
*
* @author Tomoyuki OHNO (Ricksoft Co., Ltd.)
* @package NetCommons\Multidatabases\Controller
+ * @SuppressWarnings(PHPMD.ExcessiveClassComplexity)
*/
class MultidatabaseContentsController extends MultidatabasesAppController {
@@ -130,13 +131,11 @@ public function beforeFilter() {
return false;
}
- $frameSetting = $this->MultidatabaseFrameSetting->getMultidatabaseFrameSetting(true);
- $this->set('multidatabaseFrameSetting', $frameSetting['MultidatabaseFrameSetting']);
-
// ゲストアクセスOKのアクションを設定
$this->Auth->allow('index', 'detail', 'search');
$this->_prepare();
+ $this->set('multidatabaseFrameSetting', $this->_frameSetting['MultidatabaseFrameSetting']);
}
/**
@@ -409,6 +408,7 @@ public function download() {
* 検索
*
* @return void
+ * @SuppressWarnings(PHPMD.CyclomaticComplexity)
*/
public function search() {
// クエリを取得する
@@ -444,6 +444,9 @@ public function search() {
}
$searchConds = $this->MultidatabaseContentSearch->getSearchConds($query);
+ if (!$searchConds) {
+ $searchConds = ['conditions' => [], 'order' => []];
+ }
$conditions = $this->__listBase($searchConds['conditions']);
// paginatorへ渡すための条件を取得する
@@ -503,7 +506,7 @@ private function __condSortOrder($sortCol = '') {
*/
private function __condSelect() {
$pagerNamed = $this->Paginator->Controller->params->named;
- return $this->MultidatabaseContentSearch->getCondSelect($pagerNamed);
+ return $this->MultidatabaseContentSearch->getCondSelect($pagerNamed, $this->_metadata);
}
/**
@@ -546,12 +549,39 @@ private function __list($extraConditions = []) {
);
}
+ $field = [
+ 'Block.*',
+ 'Like.*',
+ 'LikesUser.*',
+ 'MultidatabaseContent.id',
+ 'MultidatabaseContent.key',
+ 'MultidatabaseContent.multidatabase_key',
+ 'MultidatabaseContent.multidatabase_id',
+ 'MultidatabaseContent.language_id',
+ 'MultidatabaseContent.block_id',
+ 'MultidatabaseContent.title_icon',
+ 'MultidatabaseContent.status',
+ 'MultidatabaseContent.is_active',
+ 'MultidatabaseContent.is_latest',
+ 'MultidatabaseContent.created_user',
+ 'MultidatabaseContent.created',
+ 'MultidatabaseContent.modified_user',
+ 'MultidatabaseContent.modified',
+ ];
+
+ foreach ($this->_metadata as $metadata) {
+ if ($metadata['is_visible_list']) {
+ $field[] = 'MultidatabaseContent.' . 'value' . $metadata['col_no'];
+ }
+ }
+
$this->Paginator->settings = array_merge(
$this->Paginator->settings,
[
'conditions' => $conditions,
'limit' => $this->_frameSetting['MultidatabaseFrameSetting']['content_per_page'],
- 'order' => $this->__condSortOrder()
+ 'order' => $this->__condSortOrder(),
+ 'fields' => $field
]
);
diff --git a/Controller/MultidatabasesAppController.php b/Controller/MultidatabasesAppController.php
index 0b5b790..4eb5eb6 100644
--- a/Controller/MultidatabasesAppController.php
+++ b/Controller/MultidatabasesAppController.php
@@ -72,25 +72,10 @@ class MultidatabasesAppController extends AppController {
* @return void
*/
protected function _prepare() {
- $this->_setupMultidatabaseTitle();
$this->_initMultidatabase(['multidatabaseSetting']);
$this->_loadFrameSetting();
}
-/**
- * ブロック名を汎用DBタイトルとしてセットする
- *
- * @return void
- */
- protected function _setupMultidatabaseTitle() {
- $this->loadModel('Blocks.Block');
- $block = $this->Block->find('first', [
- 'recursive' => 0,
- 'conditions' => ['Block.id' => Current::read('Block.id')],
- ]);
- $this->_multidatabaseTitle = $block['BlocksLanguage']['name'];
- }
-
/**
* 初期設定
*
@@ -103,24 +88,23 @@ protected function _initMultidatabase() {
}
// メタデータを取得
- if (!$metadata = $this->MultidatabaseMetadata->getEditMetadatas(
+ if (!$metadatas = $this->MultidatabaseMetadata->getEditMetadatas(
$multidatabase['Multidatabase']['id'])
) {
return $this->throwBadRequest();
}
- if (!$metadataGroups = $this->MultidatabaseMetadata->getMetadataGroups(
- $multidatabase['Multidatabase']['id'])
- ) {
- return $this->throwBadRequest();
+ foreach ($metadatas as $metadata) {
+ $metadataGroups[$metadata['position']][$metadata['rank']] = $metadata;
}
$this->_multidatabaseTitle = $multidatabase['Multidatabase']['name'];
$this->set('multidatabase', $multidatabase);
- $this->set('multidatabaseMetadata', $metadata);
+ $this->set('multidatabaseMetadata', $metadatas);
$this->set('multidatabaseMetadataGroups', $metadataGroups);
- if (!$multidatabaseSetting = $this->MultidatabaseSetting->getMultidatabaseSetting()) {
+ $multidatabaseSetting['MultidatabaseSetting'] = $multidatabase['MultidatabaseSetting'];
+ if (!$multidatabaseSetting) {
$multidatabaseSetting = $this->MultidatabaseSetting->createBlockSetting();
$multidatabaseSetting['MultidatabaseSetting']['multidatabase_key'] = null;
} else {
@@ -129,7 +113,7 @@ protected function _initMultidatabase() {
}
$this->_multidatabase = $multidatabase;
- $this->_metadata = $metadata;
+ $this->_metadata = $metadatas;
$this->_setting = $multidatabaseSetting;
$this->set('multidatabaseSetting', $multidatabaseSetting['MultidatabaseSetting']);
$this->set('userId', (int)$this->Auth->user('id'));
diff --git a/Model/Multidatabase.php b/Model/Multidatabase.php
index 5092f95..90729df 100644
--- a/Model/Multidatabase.php
+++ b/Model/Multidatabase.php
@@ -267,7 +267,7 @@ public function deleteMultidatabase($data) {
}
$conditions = [
- $this->MultidatabaseMetadata->alias . '.multidatabase_id' => $data['Multidatabase']['id']
+ $this->MultidatabaseMetadata->alias . '.multidatabase_id' => $multidatabaseIds
];
if (!$this->MultidatabaseMetadata->deleteAll($conditions, false, false)) {
throw new InternalErrorException(__d('net_commons', 'Internal Server Error'));
diff --git a/Model/MultidatabaseContent.php b/Model/MultidatabaseContent.php
index 1275cd2..d9fdc36 100644
--- a/Model/MultidatabaseContent.php
+++ b/Model/MultidatabaseContent.php
@@ -288,6 +288,14 @@ public function saveContent($data, $isUpdate) {
}
$data = $this->data;
+ // $this->dataには、クレンジングされたデータが保持されており、添付ファイルの削除フラグが消されてしまっている。
+ // 後続の処理で、添付ファイルを削除する際に、`$data['value5__attach_del'] = 'on'`がないと削除してくれないため、
+ // $dataを引数$dataにある値を戻す。
+ foreach ($deleteFiles as $colNo) {
+ $delColumn = 'value' . $colNo . '_attach';
+ $data[$delColumn . '_del'] = 'on';
+ }
+
$result = $this->MultidatabaseContentEdit->makeSaveData($data, $metadatas, $isUpdate);
return $this->__saveContent($result);
@@ -365,7 +373,7 @@ public function deleteContentByKey($key) {
$this->deleteCommentsByContentKey($key);
// 添付ファイルの削除
- if (! $this->MultidatabaseContentFile->removeFileByContentKey($key)) {
+ if (! $this->MultidatabaseContentFile->removeFilesByContentKey($key)) {
throw new InternalErrorException(__d('net_commons', 'Internal Server Error'));
}
@@ -373,6 +381,8 @@ public function deleteContentByKey($key) {
'MultidatabaseContent.Key' => $key,
];
+ $this->Behaviors->load('Topics.Topics');
+
if ($result = $this->deleteAll($conditions, true, true)) {
$this->commit();
} else {
@@ -470,14 +480,16 @@ private function __saveContent($data) {
$attachPasswords
);
- $this->commit();
-
// ファイルを削除する
if (! empty($removeAttachFields)) {
$this->MultidatabaseContentFile->removeAttachFile(
- $removeAttachFields, $data['MultidatabaseContent']['key']);
+ $removeAttachFields,
+ $data['MultidatabaseContent']['key']
+ );
}
+ $this->commit();
+
} catch (Exception $e) {
$this->rollback($e);
}
diff --git a/Model/MultidatabaseContentFile.php b/Model/MultidatabaseContentFile.php
index cf06d2c..b39a71e 100644
--- a/Model/MultidatabaseContentFile.php
+++ b/Model/MultidatabaseContentFile.php
@@ -241,6 +241,38 @@ public function removeFileByContentKey($key, $fieldName = '') {
return $this->__removeFile($fileInfo, $fieldName);
}
+/**
+ * Remove File(s)
+ * ファイルを削除する(コンテンツKeyより)
+ *
+ * @param string $contentKey コンテンツKey
+ * @return bool
+ */
+ public function removeFilesByContentKey($contentKey) {
+ $UploadFile = ClassRegistry::init('Files.UploadFile');
+ $pluginKey = 'multidatabases';
+
+ $options = [
+ 'recursive' => -1,
+ 'fields' => [
+ 'UploadFile.id',
+ ],
+ 'conditions' => [
+ 'UploadFile.plugin_key' => $pluginKey,
+ 'UploadFile.content_key' => $contentKey,
+ ],
+ 'callbacks' => false,
+ ];
+
+ $files = $UploadFile->find('all', $options);
+
+ foreach ($files as $file) {
+ $UploadFile->deleteUploadFile($file['UploadFile']['id']);
+ }
+
+ return true;
+ }
+
/**
* RemoveFile(s) Base
* ファイルを削除する
diff --git a/Model/MultidatabaseContentSearch.php b/Model/MultidatabaseContentSearch.php
index f809cb7..1eca98f 100644
--- a/Model/MultidatabaseContentSearch.php
+++ b/Model/MultidatabaseContentSearch.php
@@ -101,9 +101,10 @@ public function getSearchConds($query = []) {
* 複数選択、単一選択の絞込条件出力
*
* @param array $values 値
+ * @param array $metadatas メタデータ
* @return array
*/
- public function getCondSelect($values = []) {
+ public function getCondSelect($values = [], $metadatas = []) {
$this->loadModels([
'MultidatabaseMetadata' => 'Multidatabases.MultidatabaseMetadata',
'MultidatabaseContentSearchCond' => 'Multidatabases.MultidatabaseContentSearchCond',
@@ -113,7 +114,9 @@ public function getCondSelect($values = []) {
return [];
}
- $metadatas = $this->MultidatabaseMetadata->getEditMetadatas();
+ if (empty($metadatas)) {
+ $metadatas = $this->MultidatabaseMetadata->getEditMetadatas();
+ }
$result = [];
$valueKey = null;
@@ -133,7 +136,7 @@ public function getCondSelect($values = []) {
);
break;
case 'checkbox':
- $result += $this->MultidatabaseContentSearchCond->getCondSelCheck(
+ $result[] = $this->MultidatabaseContentSearchCond->getCondSelCheck(
$metadata['selections'], $values, $valueKey
);
break;
@@ -178,7 +181,11 @@ public function getCondSortOrder($sortCol = '') {
$sortColDir = 'desc';
}
- $sortOrder = ['MultidatabaseContent.' . $sortCol => $sortColDir];
+ $sortOrder = [
+ 'MultidatabaseContent.' . $sortCol => $sortColDir,
+ 'MultidatabaseContent.created' => $sortColDir,
+ 'MultidatabaseContent.id' => $sortColDir
+ ];
return $sortOrder;
}
diff --git a/Model/MultidatabaseContentSearchCond.php b/Model/MultidatabaseContentSearchCond.php
index 7ea8dac..cf2dff4 100644
--- a/Model/MultidatabaseContentSearchCond.php
+++ b/Model/MultidatabaseContentSearchCond.php
@@ -57,20 +57,28 @@ public function getCondSelVal($query) {
*/
public function getCondStartEndDt($query) {
$conditions = [];
+
+ //サーバタイムゾーンの日時に変換
+ $date = new DateTime($query['start_dt']['value']);
+ $createdStart = (new NetCommonsTime())->toServerDatetime($date->format('Y-m-d H:i:s'));
+ $date = new DateTime($query['end_dt']['value']);
+ $date->modify('+59 second');
+ $createdEnd = (new NetCommonsTime())->toServerDatetime($date->format('Y-m-d H:i:s'));
+
if (
!empty($query['start_dt']['value']) &&
!empty($query['end_dt']['value'])
) {
$conditions['MultidatabaseContent.created between ? and ?'] = [
- $query['start_dt']['value'],
- $query['end_dt']['value']
+ $createdStart,
+ $createdEnd
];
} else {
if (!empty($query['start_dt']['value'])) {
- $conditions['MultidatabaseContent.created <='] = $query['start_dt']['value'];
+ $conditions['MultidatabaseContent.created >='] = $createdStart;
}
if (!empty($query['end_dt']['value'])) {
- $conditions['MultidatabaseContent.created >='] = $query['end_dt']['value'];
+ $conditions['MultidatabaseContent.created <='] = $createdEnd;
}
}
diff --git a/Model/MultidatabaseFrameSetting.php b/Model/MultidatabaseFrameSetting.php
index 36d42dd..a2229c5 100644
--- a/Model/MultidatabaseFrameSetting.php
+++ b/Model/MultidatabaseFrameSetting.php
@@ -80,6 +80,7 @@ public function getMultidatabaseFrameSetting() {
$frameSetting = $this->find('first', [
'recursive' => -1,
'conditions' => $conditions,
+ 'callbacks' => false,
]
);
diff --git a/Model/MultidatabaseMetadata.php b/Model/MultidatabaseMetadata.php
index e1f4a0b..83034b0 100644
--- a/Model/MultidatabaseMetadata.php
+++ b/Model/MultidatabaseMetadata.php
@@ -222,7 +222,14 @@ public function getMetadatasColNo($multidatabaseId = 0) {
*/
public function getMetadatas($multidatabaseId = 0, $extraConditions = []) {
if (empty($multidatabaseId)) {
- if (! $multidatabase = $this->Multidatabase->getMultidatabase()) {
+ $multidatabase = $this->Multidatabase->find('first', [
+ 'recursive' => 0,
+ 'fields' => 'Multidatabase.id',
+ 'conditions' => $this->Multidatabase->getBlockConditionById(),
+ 'callbacks' => false,
+ ]);
+
+ if (!$multidatabase) {
return false;
}
$multidatabaseId = $multidatabase['Multidatabase']['id'];
diff --git a/VERSION.txt b/VERSION.txt
index fa7adc7..dee3cd5 100644
--- a/VERSION.txt
+++ b/VERSION.txt
@@ -1 +1 @@
-3.3.5
+3.3.7.1
diff --git a/View/Helper/MultidatabaseContentViewElementHelper.php b/View/Helper/MultidatabaseContentViewElementHelper.php
index 5871e09..007b727 100644
--- a/View/Helper/MultidatabaseContentViewElementHelper.php
+++ b/View/Helper/MultidatabaseContentViewElementHelper.php
@@ -161,7 +161,7 @@ private function __renderViewElementFile($content, $colNo, $showCounter = 0) {
$result .= '';
// 表示が全てダウンロードとなる。ファイル名を表示する
//$result .= __d('multidatabases', 'Download');
- $result .= $fileInfo['UploadFile']['original_name'];
+ $result .= h($fileInfo['UploadFile']['original_name']);
$result .= '';
} else {
$result = $this->__renderViewElementFileReqAuth($content, $colNo, $fileInfo);
diff --git a/View/Helper/MultidatabaseContentViewHelper.php b/View/Helper/MultidatabaseContentViewHelper.php
index a87fb73..6806fe8 100644
--- a/View/Helper/MultidatabaseContentViewHelper.php
+++ b/View/Helper/MultidatabaseContentViewHelper.php
@@ -215,6 +215,7 @@ public function renderGroupItems($metadatas) {
public function dropDownToggleSelect($metadatas, $viewType = 'index') {
$params = $this->_View->Paginator->params;
$named = $params['named'];
+ $named['page'] = 1;
$url = $named;
$result = '';
diff --git a/View/MultidatabaseContents/search.ctp b/View/MultidatabaseContents/search.ctp
index 6650f9a..333743e 100644
--- a/View/MultidatabaseContents/search.ctp
+++ b/View/MultidatabaseContents/search.ctp
@@ -48,15 +48,6 @@ echo $this->NetCommonsHtml->css([
echo $this->NetCommonsForm->input('type', $options);
?>
-
-
- __d('multidatabases', 'Create user')
- ];
- echo $this->NetCommonsForm->input('create_user', $options);
- ?>
-