Skip to content

Commit

Permalink
Merge branch 'release/1.2.0'
Browse files Browse the repository at this point in the history
  • Loading branch information
rhukster committed Mar 28, 2022
2 parents 8fb145e + 5fda5cc commit da60315
Show file tree
Hide file tree
Showing 4 changed files with 117 additions and 20 deletions.
11 changes: 11 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,14 @@
# v1.2.0
## 03/28/2022

1. [](#new)
* Require **Grav 1.7.32** and **Form 6.0.0**
2. [](#improved)
* Improved flex router event to include directory
3. [](#bugfix)
* Fixed caching issues in dynamic flex forms
* Fixed flex content in unauthorized module causing the whole page to become unauthorized

# v1.1.9
## 03/14/2022

Expand Down
6 changes: 3 additions & 3 deletions blueprints.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name: Flex Objects
slug: flex-objects
type: plugin
version: 1.1.9
version: 1.2.0
description: Flex Objects plugin allows you to manage Flex Objects in Grav Admin.
icon: list-alt
author:
Expand All @@ -14,8 +14,8 @@ docs: https://github.com/trilbymedia/grav-plugin-flex-objects/blob/develop/READM
license: MIT

dependencies:
- { name: grav, version: '>=1.7.29' }
- { name: form, version: '>=5.1.0' }
- { name: grav, version: '>=1.7.32' }
- { name: form, version: '>=6.0.0' }

form:
validation: loose
Expand Down
47 changes: 30 additions & 17 deletions flex-objects.php
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
use Grav\Plugin\FlexObjects\Flex;
use Psr\Http\Message\ServerRequestInterface;
use RocketTheme\Toolbox\Event\Event;
use function is_array;
use function is_callable;

/**
Expand Down Expand Up @@ -119,8 +120,6 @@ public function getFormFieldTypes()
}

/**
* [PluginsLoadedEvent:100000] Composer autoload.
*
* @return ClassLoader
*/
public function autoload(): ClassLoader
Expand Down Expand Up @@ -309,13 +308,17 @@ public function onPagesInitialized(Event $event): void

// If page is found, check if it contains flex directory router.
if ($page) {
$flex = $this->grav['flex'];
$options = $page->header()->flex ?? null;
$router = $options['router'] ?? null;
$type = $options['directory'] ?? null;
$directory = $type ? $flex->getDirectory($type) : null;
if (\is_string($router)) {
$path = implode('/', array_reverse($path));
$response = null;
$flexEvent = new Event([
'flex' => $this->grav['flex'],
'flex' => $flex,
'directory' => $directory,
'parent' => $page,
'page' => $page,
'base' => $base,
Expand Down Expand Up @@ -354,21 +357,29 @@ public function authorizePage(Event $event): void
{
/** @var PageInterface|null $page */
$page = $event['page'];
if (null === $page) {
if (!$page instanceof PageInterface) {
return;
}

$header = $page->header();
$forms = $page->forms();
$form = reset($forms);
if (($form['type'] ?? null) !== 'flex') {
$form = null;
$forms = $page->getForms();

// Update dynamic flex forms from the page.
$form = null;
foreach ($forms as $name => $test) {
$type = $form['type'] ?? null;
if ($type === 'flex') {
$form = $test;

// Update the form and add it back to the page.
$this->grav->fireEvent('onBeforeFlexFormInitialize', new Event(['page' => $page, 'name' => $name, 'form' => &$form]));
$page->addForms([$form], true);
}
}

// Make sure the page contains flex.
/** @var array $config <- phpstan 1 workaround */
$config = $header->flex ?? [];
if (!$config && !$form) {
$config = $header->flex ?? null;
if (!is_array($config) && !$form) {
return;
}

Expand Down Expand Up @@ -433,12 +444,14 @@ public function authorizePage(Event $event): void
$page->routable(false);
$page->visible(false);

$login = $this->grav['login'] ?? null;
$unauthorized = $login ? $login->addPage('unauthorized') : null;
if ($unauthorized) {
// Replace page with unauthorized page.
unset($this->grav['page']);
$this->grav['page'] = $unauthorized;
// If page is not a module, replace the current page with unauthorized page.
if (!$page->isModule()) {
$login = $this->grav['login'] ?? null;
$unauthorized = $login ? $login->addPage('unauthorized') : null;
if ($unauthorized) {
unset($this->grav['page']);
$this->grav['page'] = $unauthorized;
}
}
} elseif ($config['access']['override'] ?? false) {
// Override page access settings (allow).
Expand Down
73 changes: 73 additions & 0 deletions languages/ja.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
PLUGIN_FLEX_OBJECTS:
PLUGIN_NAME: "Flex Objects"
PLUGIN_DESCRIPTION: "Flex Objects plugin allows you to manage Flex Objects in Grav Admin."

TITLE: Flex Objects
TYPES_TITLE: ディレクトリー
AFTER_SAVE: 保存した後…
LIST_INFO: "全{total}件中、{from} 件目から {to} 件目を表示中"
EMPTY_RESULT: 指定の検索条件を満たすものは、見つかりませんでした

USE_BUILT_IN_CSS: "内蔵の CSS を利用"
EXTRA_ADMIN_TWIG_PATH: "追加の Admin Twig パス"
DIRECTORIES: "ディレクトリー"
CSV: "CSV"
PARENTS: "親"
NEW: "新規"

CONTROLLER:
TASK_DELETE_SUCCESS: "データを削除しました"
TASK_DELETE_FAILURE: "データの削除に失敗: %s"
TASK_NEW_FOLDER_SUCCESS: "フォルダーを作成しました"
TASK_COPY_SUCCESS: "コピーを作成しました"
TASK_COPY_FAILURE: "コピーの作成に失敗: %s"
TASK_SAVE_SUCCESS: "データを保存しました"
TASK_SAVE_FAILURE: "データの保存に失敗: %s"
TASK_CONFIGURE_SUCCESS: "設定を保存しました"
TASK_CONFIGURE_FAILURE: "設定の保存に失敗: %s"

ACTION:
CREATE_NEW: 新しいデータを作成
EDIT_ITEM: "データの編集"
LIST_ITEMS: "データの一覧表示"
LIST_ITEM: データの一覧
DELETE_N: "削除" # In some languages 'delete OBJECT' may need a special declination
REALLY_DELETE: "%s を削除します。復元はできませんがよろしいですか?"
SEARCH_PLACEHOLDER: "検索…"
ADVANCED_OPTIONS: "詳細設定"
APPLY_FILTERS: "フィルターを適用"
RESET_FILTERS: "標準にリセットする"

FILTER:
PAGE_ATTRIBUTES: "ページ属性"
PAGE_TYPES: "ページ タイプ"
MODULAR_TYPES: "モジュラー タイプ"

LANGUAGE:
USING_DEFAULT: "<b>デフォルト</b> の言語ファイルを使用しています。"
UNUSED_DEFAULT: "未使用の <b>デフォルト</b> の言語ファイルもあります。"
USING_OVERRIDE: "<b>%s</b> 言語ファイルでオーバーライドします。"
NOT_TRANSLATED_YET: "このページは、まだ <i class=\"fa fa-flag-o\"></i> <b>%s</b> 言語へ翻訳されていません!"
NO_FALLBACK_FOUND: "フォールバック先の翻訳が見つかりません。"
FALLING_BACK: "<b>%s</b> 言語へフォールバックしています。"

STATE:
LOADING: "読み込んでいます…"
CREATED_SUCCESSFULLY: "作成しました"
UPDATED_SUCCESSFULLY: "更新しました"
DELETED_SUCCESSFULLY: "削除しました"
EDITING_DRAFT: "保存済みの下書きを編集中です"
NOT_CREATED_YET: "このページは保存するまで、存在しません。"

ERROR:
BAD_DIRECTORY: "ディレクトリーの指定が正しくありません"
PAGE_NOT_FOUND: "ページが見つかりません"
PAGE_NOT_EXIST: "残念! このページは存在しないようです。"
PAGE_FORBIDDEN: "残念! あなたはこのページへのアクセス権をもっていないようです。"
LAYOUT_NOT_FOUND: "Object layout '%s' が見つかりません。"
BLUEPRINT_NO_LIST: "<i>%s</i> の Blueprint では、表示用の項目やリストページのオーバーライドが未定義です。"
BLUEPRINT_NO_LIST_ADVISE: "Blueprint ファイルにリストの項目を追加してください。"
BLUEPRINT_NO_LIST_TEMPLATE: "表示のためのテンプレートファイルを以下のファイル名で作成してください。<b>flex-objects/types/%s/list.html.twig</b>"
LIST_EMPTY: "現在、データがありません。"
LIST_EMPTY_ADD: "現在データがありません。<a href=\"%s\">追加</a> ボタンをクリックして新規作成してください…"
NO_FLEX_DIRECTORIES: "Flex ディレクトリーが見つかりません。"

0 comments on commit da60315

Please sign in to comment.