Skip to content

Commit

Permalink
Merge branch 'dev-5.1' into unitTest_BlogCommentsService_Add
Browse files Browse the repository at this point in the history
  • Loading branch information
thangnn committed Feb 26, 2024
2 parents 7b8fd85 + 16e6519 commit 9e51a98
Show file tree
Hide file tree
Showing 36 changed files with 461 additions and 95 deletions.
1 change: 1 addition & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ indent_size = 2

[*.twig]
insert_final_newline = false
indent_size = 2

[*.{md,markdown}]
trim_trailing_whitespace = false
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@ yarn-error.log
/docker/volumes
/docker/docker-compose.yml
/docker_inited
/docker/.env
# plugins
/plugins/*
!/plugins/baser-core
Expand Down
2 changes: 1 addition & 1 deletion composer_installer.php
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ function command($phpPath)
exec($command, $out, $code);
if ($code !== 0) throw new Exception('composer のアップデートに失敗しました。(' . $command . ')');

$command = "cd " . ROOT_DIR . "; export HOME={$composerDir} ; yes | {$phpPath} {$composerDir}composer.phar update";
$command = "cd " . ROOT_DIR . "; export HOME={$composerDir} ; yes | {$phpPath} {$composerDir}composer.phar update --ignore-platform-req=ext-xdebug";
exec($command, $out, $code);
if ($code !== 0) throw new Exception('ライブラリのインストールに失敗しました。<br>コマンド実行をお試しください<br>' . $command);

Expand Down
41 changes: 11 additions & 30 deletions config/plugins.php
Original file line number Diff line number Diff line change
@@ -1,34 +1,15 @@
<?php
/**
* Plugin configuration.
*
* In this file, you configure which plugins are loaded in the different states your app can be.
* It's loaded via the `parent::bootstrap();` call inside your `Application::bootstrap()` method.
* For more information see https://book.cakephp.org/5/en/plugins.html#loading-plugins-via-configuration-array
*
* CakePHP(tm) : Rapid Development Framework (https://cakephp.org)
* Copyright (c) Cake Software Foundation, Inc. (https://cakefoundation.org)
*
* Licensed under The MIT License
* For full copyright and license information, please see the LICENSE.txt
* Redistributions of files must retain the above copyright notice.
*
* @copyright Copyright (c) Cake Software Foundation, Inc. (https://cakefoundation.org)
* @link https://cakephp.org CakePHP(tm) Project
* @since 5.0.0
* @license https://opensource.org/licenses/mit-license.php MIT License
*/

return [
// Plugins only needed when in debug mode
'DebugKit' => ['onlyDebug' => true],

// Optional plugins which are only needed in CLI commands
'Bake' => ['onlyCli' => true, 'optional' => true],

// Required plugins only in CLI commands
'Migrations' => ['onlyCli' => true],

// Add your custom plugins here
'BaserCore'
'DebugKit' => [
'onlyDebug' => true,
],
'Bake' => [
'onlyCli' => true,
'optional' => true,
],
'Migrations' => [
'onlyCli' => true,
],
'BaserCore' => null
];
1 change: 1 addition & 0 deletions docker/.env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
COMPOSE_PROJECT_NAME=basercms
2 changes: 1 addition & 1 deletion plugins/BcColumn/templates/element/site_search_form.php
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@

<div class="section search-box">
<?php echo $this->BcForm->create($searchIndexesFront, array('type' => 'get', 'url' => $url)) ?>
<?php echo $this->BcForm->control('q', ['escape' => false]) ?>
<?php echo $this->BcForm->control('q') ?>
<?php echo $this->BcForm->hidden('site_id', ['value' => $this->getRequest()->getAttribute('currentSite')->id]) ?>
<?php echo $this->BcForm->submit('検索', array('div' => false, 'class' => 'submit_button bs-button')) ?>
<?php echo $this->BcForm->end() ?>
Expand Down
37 changes: 33 additions & 4 deletions plugins/baser-core/VERSION.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
5.0.9-dev
5.0.11-dev

///////////////////////////////////////////////////////////////////////////////////////////////////////////
// +---------------------------------------------------------------------------------------------------+ //
Expand All @@ -14,6 +14,35 @@
CHG: 変更内容 / BUG: バグフィックス / NEW: 機能追加


[2024-02-22] basercms-5.0.10
- NEW [BC] fix #3010 管理画面よりサイトのドメイン設定をできるようにした
- CHG [BC] プラグイン管理で開発者にリンクが貼られていないので調整
- CHG [BC] BcArrayについてQeuryにも対応した
- CHG [BC] BcAdminFormHelper::control() にて type の指定がない場合、CSSのクラス定義の前段階で自動判定するようにした
- CHG [BC] Docker の .env のサンプルファイルを追加
- BUG [BC] プラグインのインストール時にインストールメッセージが表示されていない問題を改善
- BUG [BC] 複数サイトを作成した場合、グローバルメニューにて他サイトのメニューまで取得してしまう問題を改善
- BUG [BC] コンテンツ管理のURLのバリデーションが動作していない問題を改善
- BUG [BC] fix #3050ユーティリティ機能にシンボリックリンク作成機能する問題を解決 (#3063)
- BUG [BC] 検索インデックス一覧:検索インデックス再構築でキャンセルを選択すると、ローディングが終わらない fix #3073
- BUG [BC] fix #3009 コンテンツ管理で固定ページを複製するとタイトルが消えて_copyだけのタイトルになってしまう問題を解消 (#3062)
- BUG [BC] fix #3137 xdebugが有効でないとライブラリのインストールに失敗する問題を改善
- BUG [BC] テーマが見つからなかった場合に画面が表示できなくなってしまう問題を改善
- BUG [BC] DBプレフィックスを利用している場合にサイトが更新できない問題を改善
- BUG [BG] RSSフィード出力件数のバリデーションが正常に動作していない問題を改善
- BUG [BG] ブログコンテンツのプレビューにて全ての記事が表示されてしまう問題を改善
- BUG [BG] fix #3111 ブログ記事詳細画面のプレビューが動作しない(BurgerEditorを入れた時など)件を修正 (#3117)
- BUG [BG] ブログのアーカイブでパンくずやタイトルが正常に設定されない問題を改善 fix #3099
- BUG [CC] カスタムコンテンツにおけるエントリーでファイルフィールドを保有している場合、トップページで表示できない問題を改善
- BUG [CC] カスタムコンテンツのカスタムフィールドの最大文字数に正常な値を入力できない問題を改善
- BUG [CC] カスタムコンテンツの関連フィールドのNOが更新されない問題を改善
- BUG [CC] fix #3120 カスタムコンテンツを2つ以上トップページなどで一覧表示させるとアイキャッチが取得できない問題を解決 (#3121)
- BUG [ML] 送信先メールアドレスのバリデーションが正常に動作していない問題を改善
- BUG [ML] メールフォームでパンくずが重複してしまう問題を改善

[2024-02-22] basercms-5.0.9
リリース失敗のため欠番

[2024-01-25] basercms-5.0.8
- NEW [BC] TRUST_PROXY について、AWSのALBに対応
- CHG [BC] basersマガジンへのバナーを削除
Expand Down Expand Up @@ -70,9 +99,9 @@ CHG: 変更内容 / BUG: バグフィックス / NEW: 機能追加
- BUG [BC] fix #2744 カスタムコンテンツのバリデーションエラーを改善
- BUG [BC] fix #2199 カスタムコンテンツのAPIで取得する情報に不要な連携データが含まれる処理の改善
- BUG [BC] fix #2502 サイト判別機能の改善
- BUG [UL] fix #2677 ファイルアップローダーで制限環境下のファイル削除時の処理を改善
- BUG [UL] fix #2677 ファイルアップローダーで制限環境下のファイル削除時の処理を改善
- BUG [ML] fix #2551 メールメッセージAPIにvaildationのみを実行する機能の追加
- BUG [ML] fix #2550 メールメッセージAPIを利用した際のメール送信機能を改善
- BUG [ML] fix #2550 メールメッセージAPIを利用した際のメール送信機能を改善
- BUG [BG] fix #2527 ブログ記事一覧の表示処理を改善

[2023-08-31] basercms-5.0.4
Expand All @@ -81,7 +110,7 @@ CHG: 変更内容 / BUG: バグフィックス / NEW: 機能追加
- BUG [BC] fix #2630 ログアウト時に代理ログインの情報が残ってしまう問題を改善

[2023-07-27] basercms-5.0.3
- CHG [ML] ユーザーメールアドレスの半角チェックを追加
- CHG [ML] ユーザーメールアドレスの半角チェックを追加
- BUG [BC] fix #2585 カスタムフィールドの編集画面で編集できない場合がある問題を改善
- BUG [BC] fix #2505 ファイルアップロード利用時にファイルを更新した場合古いファイルが削除されない場合がある問題を改善
- BUG [BC] fix #2484 アップロードファイル一覧の表示件数変更機能が動作しない問題を改善
Expand Down
25 changes: 25 additions & 0 deletions plugins/baser-core/src/Model/Table/PermissionGroupsTable.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
use BaserCore\Annotation\UnitTest;
use BaserCore\Annotation\NoTodo;
use BaserCore\Annotation\Checked;
use Cake\Validation\Validator;

class PermissionGroupsTable extends AppTable
{
Expand Down Expand Up @@ -43,4 +44,28 @@ public function initialize(array $config): void
]);
}

/**
* Validation Default
*
* @param Validator $validator
* @return Validator
* @checked
* @noTodo
* @unitTest
*/
public function validationDefault(Validator $validator): Validator
{
// id
$validator
->integer('id')
->allowEmptyString('id', null, 'create');

$validator
->scalar('name')
->maxLength('name', 60, __d('baser_core', 'ルールグループ名は60文字以内で入力してください。'))
->notEmptyString('name', __d('baser_core', 'ルールグループ名を入力してください。'));

return $validator;
}

}
20 changes: 10 additions & 10 deletions plugins/baser-core/src/Model/Table/SitesTable.php
Original file line number Diff line number Diff line change
Expand Up @@ -202,7 +202,7 @@ public function getList($mainSiteId = null, $options = [])
unset($options['excludeIds'][$excludeKey]);
}
if ($options['excludeIds']) {
$conditions[]['id NOT IN'] = $options['excludeIds'];
$conditions[]['Sites.id NOT IN'] = $options['excludeIds'];
}
}

Expand All @@ -215,7 +215,7 @@ public function getList($mainSiteId = null, $options = [])
unset($options['includeIds'][$includeKey]);
}
if ($options['includeIds']) {
$conditions[]['id IN'] = $options['includeIds'];
$conditions[]['Sites.id IN'] = $options['includeIds'];
}
}
$this->setDisplayField('display_name');
Expand Down Expand Up @@ -364,7 +364,7 @@ public function getPrefix($id)
{
if (is_null($id)) return '';

$site = $this->find()->select(['name', 'alias'])->where(['id' => $id])->first();
$site = $this->find()->select(['name', 'alias'])->where(['Sites.id' => $id])->first();
if (!$site) {
return false;
}
Expand All @@ -390,7 +390,7 @@ public function getRootContentId($id)
return 1;
}
$Contents = TableRegistry::getTableLocator()->get('BaserCore.Contents');
$contents = $Contents->find()->select(['id'])->where(['Contents.site_root' => true, 'Contents.site_id' => $id]);
$contents = $Contents->find()->select(['Contents.id'])->where(['Contents.site_root' => true, 'Contents.site_id' => $id]);
if (!$contents->all()->isEmpty()) return $contents->first()->id;
return 1;
}
Expand Down Expand Up @@ -467,7 +467,7 @@ public function getMainByUrl($url)
{
$site = $this->findByUrl($url);
if ($site->main_site_id) {
return $this->find()->where(['id' => $site->main_site_id])->first();
return $this->find()->where(['Sites.id' => $site->main_site_id])->first();
}
return null;
}
Expand Down Expand Up @@ -550,15 +550,15 @@ public function getSubByUrl(
*/
public function getMain($id)
{
$currentSite = $this->find()->where(['id' => $id])->first();
$currentSite = $this->find()->where(['Sites.id' => $id])->first();
if (!$currentSite) {
return false;
}
if (is_null($currentSite->main_site_id)) {
return $this->getRootMain();
}
$mainSite = $this->find()->where([
'id' => $currentSite->main_site_id
'Sites.id' => $currentSite->main_site_id
])->first();
if (!$mainSite) {
return false;
Expand All @@ -584,7 +584,7 @@ public function getSelectableDevices($mainSiteId, $currentSiteId)
$devices = ['' => __d('baser_core', '指定しない')];
$this->setDisplayField('device');
$conditions = [
'id IS NOT' => $currentSiteId
'Sites.id IS NOT' => $currentSiteId
];
if ($mainSiteId) {
$conditions['main_site_id'] = $mainSiteId;
Expand Down Expand Up @@ -618,7 +618,7 @@ public function getSelectableLangs($mainSiteId, $currentSiteId)
$devices = ['' => __d('baser_core', '指定しない')];
$this->setDisplayField('lang');
$conditions = [
'id IS NOT' => $currentSiteId
'Sites.id IS NOT' => $currentSiteId
];
if ($mainSiteId) {
$conditions['main_site_id'] = $mainSiteId;
Expand Down Expand Up @@ -718,7 +718,7 @@ public function beforeSave(EventInterface $event, EntityInterface $entity, Array
{
// エイリアスに変更があったかチェックする
if ($entity->id && $entity->alias) {
$oldSite = $this->find()->where(['id' => $entity->id])->first();
$oldSite = $this->find()->where(['Sites.id' => $entity->id])->first();
if ($oldSite && $oldSite->alias !== $entity->alias) {
$this->changedAlias = true;
}
Expand Down
13 changes: 8 additions & 5 deletions plugins/baser-core/src/View/Helper/BcAdminFormHelper.php
Original file line number Diff line number Diff line change
Expand Up @@ -28,15 +28,18 @@ class BcAdminFormHelper extends BcFormHelper

/**
* control
* @param string $name
* @param string $fieldName
* @param array $options
* @return string
* @checked
* @noTodo
* @unitTest
*/
public function control(string $name, array $options = []): string
public function control(string $fieldName, array $options = []): string
{
if (empty($options['type'])) {
$options['type'] = $this->_inputType($fieldName, $options);
}
if (!empty($options['type'])) {
$options = array_replace_recursive([
'label' => false,
Expand All @@ -60,7 +63,7 @@ public function control(string $name, array $options = []): string
'deleteLabel' => ['class' => 'bca-file__delete-label'],
'figure' => ['class' => 'bca-file__figure'],
'img' => ['class' => 'bca-file__img'],
'figcaption' => ['class' => 'bca-file__figcaption']
'figcaption' => ['class' => 'bca-file__figcaption', 'escape' => true]
], $options);
break;
case 'dateTimePicker':
Expand Down Expand Up @@ -94,6 +97,7 @@ public function control(string $name, array $options = []): string
$class = 'bca-checkbox__input';
$containerClass = 'bca-checkbox';
$labelClass = 'bca-checkbox__label';
if(empty($options['label'])) $options['label'] = '';
break;
case 'multiCheckbox':
$class = 'bca-checkbox__input';
Expand Down Expand Up @@ -132,8 +136,7 @@ public function control(string $name, array $options = []): string

}

return parent::control($name, $options);

return parent::control($fieldName, $options);
}

/**
Expand Down
9 changes: 8 additions & 1 deletion plugins/baser-core/src/View/Helper/BcBaserHelper.php
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
use Cake\Routing\Router;
use Cake\Utility\Hash;
use Cake\Utility\Inflector;
use Cake\View\Exception\MissingElementException;
use Cake\View\Helper\BreadcrumbsHelper;
use Cake\View\View;
use Cake\View\Helper;
Expand Down Expand Up @@ -322,7 +323,13 @@ public function getElement(string $name, array $data = [], array $options = [])
$options = ($event->getResult() === null || $event->getResult() === true)? $event->getData('options') : $event->getResult();
}

$out = $this->_View->element($name, $data, $options);
$out = '';
try {
$out = $this->_View->element($name, $data, $options);
} catch (MissingElementException $e) {
echo __d('baser_core', 'エレメントテンプレート「{0}」が見つかりませんでした。', $name);
$this->log($e->getMessage());
}

// EVENT afterElement
$event = $this->dispatchLayerEvent('afterElement', [
Expand Down
Loading

0 comments on commit 9e51a98

Please sign in to comment.