Compare commits

...

5 Commits

37 changed files with 766 additions and 85 deletions

2
.gitignore vendored
View File

@ -7,6 +7,8 @@
# Ignore configuration files that may contain sensitive information
/web/sites/*/settings.local.php
# Ignore ddev settings
/web/sites/*/settings.ddev.php
# Ignore paths that may contain user-generated content
/web/sites/*/files

View File

@ -24,6 +24,10 @@ Sajt je dostopen preko naslova: https://yufu-manifest.ddev.site/
Lahko pa napišemo tudi `ddev launch`
v `web/sites/default/settings.local.php` dodamo vrstico, ki vključi services nastavitve, ki omogočijo CORS:
`$settings['container_yamls'][] = DRUPAL_ROOT . '/sites/default/yufu.services.yml';`
### Postavitev (vuejs) "prednjegadela"
Najprej gremo v podfolder `nuxt` in namestimo odvisne javascript pakete:

View File

@ -25,6 +25,7 @@
"drupal/core-recommended": "^10.0",
"drupal/diff": "^1.1",
"drupal/core-recommended": "^10.2.4",
"drupal/devel": "^5.1",
"drupal/gin": "^3.0@RC",
"drupal/gin_toolbar": "^1.0@RC",
"drupal/jsonapi_menu_items": "^1.2",

282
composer.lock generated
View File

@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "1e4c156c402a50481a77ff4b24a87020",
"content-hash": "caa4d6224baab3b5995203a97dae9c08",
"packages": [
{
"name": "asm89/stack-cors",
@ -1124,6 +1124,97 @@
},
"time": "2023-02-01T09:20:38+00:00"
},
{
"name": "doctrine/common",
"version": "3.4.3",
"source": {
"type": "git",
"url": "https://github.com/doctrine/common.git",
"reference": "8b5e5650391f851ed58910b3e3d48a71062eeced"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/doctrine/common/zipball/8b5e5650391f851ed58910b3e3d48a71062eeced",
"reference": "8b5e5650391f851ed58910b3e3d48a71062eeced",
"shasum": ""
},
"require": {
"doctrine/persistence": "^2.0 || ^3.0",
"php": "^7.1 || ^8.0"
},
"require-dev": {
"doctrine/coding-standard": "^9.0 || ^10.0",
"doctrine/collections": "^1",
"phpstan/phpstan": "^1.4.1",
"phpstan/phpstan-phpunit": "^1",
"phpunit/phpunit": "^7.5.20 || ^8.5 || ^9.0",
"squizlabs/php_codesniffer": "^3.0",
"symfony/phpunit-bridge": "^6.1",
"vimeo/psalm": "^4.4"
},
"type": "library",
"autoload": {
"psr-4": {
"Doctrine\\Common\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Guilherme Blanco",
"email": "guilhermeblanco@gmail.com"
},
{
"name": "Roman Borschel",
"email": "roman@code-factory.org"
},
{
"name": "Benjamin Eberlei",
"email": "kontakt@beberlei.de"
},
{
"name": "Jonathan Wage",
"email": "jonwage@gmail.com"
},
{
"name": "Johannes Schmitt",
"email": "schmittjoh@gmail.com"
},
{
"name": "Marco Pivetta",
"email": "ocramius@gmail.com"
}
],
"description": "PHP Doctrine Common project is a library that provides additional functionality that other Doctrine projects depend on such as better reflection support, proxies and much more.",
"homepage": "https://www.doctrine-project.org/projects/common.html",
"keywords": [
"common",
"doctrine",
"php"
],
"support": {
"issues": "https://github.com/doctrine/common/issues",
"source": "https://github.com/doctrine/common/tree/3.4.3"
},
"funding": [
{
"url": "https://www.doctrine-project.org/sponsorship.html",
"type": "custom"
},
{
"url": "https://www.patreon.com/phpdoctrine",
"type": "patreon"
},
{
"url": "https://tidelift.com/funding/github/packagist/doctrine%2Fcommon",
"type": "tidelift"
}
],
"time": "2022-10-09T11:47:59+00:00"
},
{
"name": "doctrine/deprecations",
"version": "1.1.3",
@ -1171,6 +1262,97 @@
},
"time": "2024-01-30T19:34:25+00:00"
},
{
"name": "doctrine/event-manager",
"version": "2.0.0",
"source": {
"type": "git",
"url": "https://github.com/doctrine/event-manager.git",
"reference": "750671534e0241a7c50ea5b43f67e23eb5c96f32"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/doctrine/event-manager/zipball/750671534e0241a7c50ea5b43f67e23eb5c96f32",
"reference": "750671534e0241a7c50ea5b43f67e23eb5c96f32",
"shasum": ""
},
"require": {
"php": "^8.1"
},
"conflict": {
"doctrine/common": "<2.9"
},
"require-dev": {
"doctrine/coding-standard": "^10",
"phpstan/phpstan": "^1.8.8",
"phpunit/phpunit": "^9.5",
"vimeo/psalm": "^4.28"
},
"type": "library",
"autoload": {
"psr-4": {
"Doctrine\\Common\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Guilherme Blanco",
"email": "guilhermeblanco@gmail.com"
},
{
"name": "Roman Borschel",
"email": "roman@code-factory.org"
},
{
"name": "Benjamin Eberlei",
"email": "kontakt@beberlei.de"
},
{
"name": "Jonathan Wage",
"email": "jonwage@gmail.com"
},
{
"name": "Johannes Schmitt",
"email": "schmittjoh@gmail.com"
},
{
"name": "Marco Pivetta",
"email": "ocramius@gmail.com"
}
],
"description": "The Doctrine Event Manager is a simple PHP event system that was built to be used with the various Doctrine projects.",
"homepage": "https://www.doctrine-project.org/projects/event-manager.html",
"keywords": [
"event",
"event dispatcher",
"event manager",
"event system",
"events"
],
"support": {
"issues": "https://github.com/doctrine/event-manager/issues",
"source": "https://github.com/doctrine/event-manager/tree/2.0.0"
},
"funding": [
{
"url": "https://www.doctrine-project.org/sponsorship.html",
"type": "custom"
},
{
"url": "https://www.patreon.com/phpdoctrine",
"type": "patreon"
},
{
"url": "https://tidelift.com/funding/github/packagist/doctrine%2Fevent-manager",
"type": "tidelift"
}
],
"time": "2022-10-12T20:59:15+00:00"
},
{
"name": "doctrine/lexer",
"version": "2.1.1",
@ -1249,6 +1431,104 @@
],
"time": "2024-02-05T11:35:39+00:00"
},
{
"name": "doctrine/persistence",
"version": "3.3.2",
"source": {
"type": "git",
"url": "https://github.com/doctrine/persistence.git",
"reference": "477da35bd0255e032826f440b94b3e37f2d56f42"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/doctrine/persistence/zipball/477da35bd0255e032826f440b94b3e37f2d56f42",
"reference": "477da35bd0255e032826f440b94b3e37f2d56f42",
"shasum": ""
},
"require": {
"doctrine/event-manager": "^1 || ^2",
"php": "^7.2 || ^8.0",
"psr/cache": "^1.0 || ^2.0 || ^3.0"
},
"conflict": {
"doctrine/common": "<2.10"
},
"require-dev": {
"composer/package-versions-deprecated": "^1.11",
"doctrine/coding-standard": "^11",
"doctrine/common": "^3.0",
"phpstan/phpstan": "1.9.4",
"phpstan/phpstan-phpunit": "^1",
"phpstan/phpstan-strict-rules": "^1.1",
"phpunit/phpunit": "^8.5 || ^9.5",
"symfony/cache": "^4.4 || ^5.4 || ^6.0",
"vimeo/psalm": "4.30.0 || 5.3.0"
},
"type": "library",
"autoload": {
"psr-4": {
"Doctrine\\Persistence\\": "src/Persistence"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Guilherme Blanco",
"email": "guilhermeblanco@gmail.com"
},
{
"name": "Roman Borschel",
"email": "roman@code-factory.org"
},
{
"name": "Benjamin Eberlei",
"email": "kontakt@beberlei.de"
},
{
"name": "Jonathan Wage",
"email": "jonwage@gmail.com"
},
{
"name": "Johannes Schmitt",
"email": "schmittjoh@gmail.com"
},
{
"name": "Marco Pivetta",
"email": "ocramius@gmail.com"
}
],
"description": "The Doctrine Persistence project is a set of shared interfaces and functionality that the different Doctrine object mappers share.",
"homepage": "https://www.doctrine-project.org/projects/persistence.html",
"keywords": [
"mapper",
"object",
"odm",
"orm",
"persistence"
],
"support": {
"issues": "https://github.com/doctrine/persistence/issues",
"source": "https://github.com/doctrine/persistence/tree/3.3.2"
},
"funding": [
{
"url": "https://www.doctrine-project.org/sponsorship.html",
"type": "custom"
},
{
"url": "https://www.patreon.com/phpdoctrine",
"type": "patreon"
},
{
"url": "https://tidelift.com/funding/github/packagist/doctrine%2Fpersistence",
"type": "tidelift"
}
],
"time": "2024-03-12T14:54:36+00:00"
},
{
"name": "drupal/cer",
"version": "5.0.0-beta3",

View File

@ -17,6 +17,7 @@ module:
contextual: 0
datetime: 0
dblog: 0
devel: 0
diff: 0
dynamic_page_cache: 0
editor: 0

View File

@ -0,0 +1,12 @@
_core:
default_config_hash: Aqx6J0yYT6mVqT0fbjeP4JkoL-700nmudVF5d6Pq2Yo
page_alter: false
raw_names: false
error_handlers:
1: 1
rebuild_theme: false
debug_mail_file_format: '%to-%subject-%datetime.mail.txt'
debug_mail_directory: 'temporary://devel-mails'
devel_dumper: var_dumper
debug_logfile: 'temporary://drupal_debug.txt'
debug_pre: true

View File

@ -0,0 +1,10 @@
_core:
default_config_hash: IQjf_ytthngZTAk_MU8-74VecArWD3G5g0oEH6PM6GA
toolbar_items:
- devel.admin_settings_link
- devel.cache_clear
- devel.container_info.service
- devel.menu_rebuild
- devel.reinstall
- devel.route_info
- devel.run_cron

View File

@ -0,0 +1,2 @@
settings:
label: 'RSS feed'

View File

@ -0,0 +1 @@
label: RSS

View File

@ -0,0 +1 @@
label: Razvoj

View File

@ -12,6 +12,7 @@ display:
name:
label: Autor
status:
label: Status
settings:
format_custom_true: Objavljeno
changed:
@ -25,6 +26,9 @@ display:
exposed_sorts_label: 'Rasporedi po'
sort_asc_label: Uzlazno
sort_desc_label: Silazno
empty:
area_text_custom:
content: 'Na voljo ni nobene vsebine.'
filters:
title:
expose:
@ -33,6 +37,8 @@ display:
expose:
label: 'Vrsta sadržaja'
status:
expose:
label: Status
group_info:
group_items:
1:

View File

@ -12,6 +12,7 @@ display:
uid:
label: Autor
status:
label: Status
settings:
format_custom_true: Objavljeno
changed:

View File

@ -36,6 +36,7 @@ display:
delete_media:
text: Ukloni
widget:
display_title: Widget
display_options:
arguments:
bundle:

View File

@ -7,18 +7,12 @@ display:
fields:
title:
label: Naziv
separator: ', '
type:
label: 'Vrsta sadržaja'
separator: ', '
name:
label: Autor
separator: ', '
moderation_state:
separator: ', '
changed:
label: Osvježeno
separator: ', '
operations:
label: Operacije
exposed_form:

View File

@ -0,0 +1,2 @@
settings:
label: 'RSS feed'

View File

@ -0,0 +1 @@
label: RSS

View File

@ -0,0 +1 @@
label: Razvoj

View File

@ -12,6 +12,7 @@ display:
uid:
label: Avtor
status:
label: Status
settings:
format_custom_true: Objavljeno
changed:

View File

@ -36,6 +36,7 @@ display:
delete_media:
text: Ukloni
widget:
display_title: Widget
display_options:
arguments:
bundle:

View File

@ -7,34 +7,28 @@ display:
fields:
title:
label: Naslov
separator: ', '
type:
label: 'Tip vsebin'
separator: ', '
label: 'Tip vsebine'
name:
label: Avtor
separator: ', '
moderation_state:
separator: ', '
changed:
label: Posodobljeno
separator: ', '
operations:
label: Operacije
exposed_form:
options:
submit_button: Počisti
reset_button_label: Ponastavi
reset_button_label: Poništi
exposed_sorts_label: 'Rasporedi po'
sort_asc_label: Naraščajoče
sort_desc_label: Padajoče
sort_asc_label: Uzlazno
sort_desc_label: Silazno
filters:
title:
expose:
label: Naslov
type:
expose:
label: ''
label: 'Tip vsebine'
langcode:
expose:
label: Jezik

View File

@ -0,0 +1,2 @@
settings:
label: 'RSS feed'

View File

@ -0,0 +1 @@
label: RSS

View File

@ -0,0 +1 @@
label: Razvoj

View File

@ -12,6 +12,7 @@ display:
name:
label: Autor
status:
label: Status
settings:
format_custom_true: Objavljeno
changed:
@ -25,6 +26,9 @@ display:
exposed_sorts_label: 'Rasporedi po'
sort_asc_label: Uzlazno
sort_desc_label: Silazno
empty:
area_text_custom:
content: 'Na voljo ni nobene vsebine.'
filters:
title:
expose:
@ -33,6 +37,8 @@ display:
expose:
label: 'Vrsta sadržaja'
status:
expose:
label: Status
group_info:
group_items:
1:

View File

@ -12,6 +12,7 @@ display:
uid:
label: Autor
status:
label: Status
settings:
format_custom_true: Objavljeno
changed:

View File

@ -36,6 +36,7 @@ display:
delete_media:
text: Ukloni
widget:
display_title: Widget
display_options:
arguments:
bundle:

View File

@ -7,18 +7,12 @@ display:
fields:
title:
label: Naziv
separator: ', '
type:
label: 'Vrsta sadržaja'
separator: ', '
name:
label: Autor
separator: ', '
moderation_state:
separator: ', '
changed:
label: Osvježeno
separator: ', '
operations:
label: Operacije
exposed_form:

View File

@ -0,0 +1,13 @@
uuid: f9ee5a80-6539-4ade-ad1c-4f71f3739e60
langcode: en
status: true
dependencies:
enforced:
module:
- devel
_core:
default_config_hash: 3V-l1uuTcyirYOGLPZV5HWaDfr02uEbWZJIwc8Byz-c
id: devel
label: Development
description: 'Links related to Devel module.'
locked: true

View File

@ -8,7 +8,7 @@ slogan: ''
page:
403: ''
404: ''
front: /user/login
front: /zadnje-spremembe
admin_compact_mode: false
weight_select_max: 100
default_langcode: en

View File

@ -8,7 +8,7 @@ dependencies:
_core:
default_config_hash: 12Bd0mJQFIaXAkRfMVCAAcZ0oaxm94PoK8oHR9hkLmY
id: content
label: Vsebine
label: Sadržaj
module: node
description: 'Find and manage content.'
tag: default

View File

@ -0,0 +1,390 @@
uuid: 89fa6e21-3730-4602-b26f-d4f1f45f52d4
langcode: en
status: true
dependencies:
config:
- node.type.concept
module:
- node
- user
id: zadnje_spremembe
label: 'Zadnje spremembe'
module: views
description: ''
tag: ''
base_table: node_field_revision
base_field: vid
display:
default:
id: default
display_title: Default
display_plugin: default
position: 0
display_options:
title: 'Zadnje spremembe'
fields:
changed:
id: changed
table: node_field_revision
field: changed
relationship: none
group_type: group
admin_label: ''
entity_type: node
entity_field: changed
plugin_id: field
label: Čas
exclude: false
alter:
alter_text: false
text: ''
make_link: false
path: ''
absolute: false
external: false
replace_spaces: false
path_case: none
trim_whitespace: false
alt: ''
rel: ''
link_class: ''
prefix: ''
suffix: ''
target: ''
nl2br: false
max_length: 0
word_boundary: false
ellipsis: false
more_link: false
more_link_text: ''
more_link_path: ''
strip_tags: false
trim: false
preserve_tags: ''
html: false
element_type: ''
element_class: ''
element_label_type: ''
element_label_class: ''
element_label_colon: true
element_wrapper_type: ''
element_wrapper_class: ''
element_default_classes: true
empty: ''
hide_empty: false
empty_zero: false
hide_alter_empty: true
click_sort_column: value
type: timestamp
settings:
date_format: medium
custom_date_format: ''
timezone: ''
tooltip:
date_format: ''
custom_date_format: ''
time_diff:
enabled: false
future_format: '@interval hence'
past_format: '@interval ago'
granularity: 2
refresh: 60
description: ''
group_column: value
group_columns: { }
group_rows: true
delta_limit: 0
delta_offset: 0
delta_reversed: false
delta_first_last: false
multi_type: separator
separator: ', '
field_api_classes: false
title:
id: title
table: node_field_revision
field: title
relationship: none
group_type: group
admin_label: ''
entity_type: node
entity_field: title
plugin_id: field
label: Pojem
exclude: false
alter:
alter_text: false
text: ''
make_link: false
path: ''
absolute: false
external: false
replace_spaces: false
path_case: none
trim_whitespace: false
alt: ''
rel: ''
link_class: ''
prefix: ''
suffix: ''
target: ''
nl2br: false
max_length: 0
word_boundary: false
ellipsis: false
more_link: false
more_link_text: ''
more_link_path: ''
strip_tags: false
trim: false
preserve_tags: ''
html: false
element_type: ''
element_class: ''
element_label_type: ''
element_label_class: ''
element_label_colon: true
element_wrapper_type: ''
element_wrapper_class: ''
element_default_classes: true
empty: ''
hide_empty: false
empty_zero: false
hide_alter_empty: true
click_sort_column: value
type: string
settings:
link_to_entity: false
group_column: value
group_columns: { }
group_rows: true
delta_limit: 0
delta_offset: 0
delta_reversed: false
delta_first_last: false
multi_type: separator
separator: ', '
field_api_classes: false
revision_uid:
id: revision_uid
table: node_revision
field: revision_uid
relationship: none
group_type: group
admin_label: ''
entity_type: node
entity_field: revision_uid
plugin_id: field
label: 'Revision user'
exclude: false
alter:
alter_text: false
text: ''
make_link: false
path: ''
absolute: false
external: false
replace_spaces: false
path_case: none
trim_whitespace: false
alt: ''
rel: ''
link_class: ''
prefix: ''
suffix: ''
target: ''
nl2br: false
max_length: 0
word_boundary: true
ellipsis: true
more_link: false
more_link_text: ''
more_link_path: ''
strip_tags: false
trim: false
preserve_tags: ''
html: false
element_type: ''
element_class: ''
element_label_type: ''
element_label_class: ''
element_label_colon: true
element_wrapper_type: ''
element_wrapper_class: ''
element_default_classes: true
empty: ''
hide_empty: false
empty_zero: false
hide_alter_empty: true
click_sort_column: target_id
type: entity_reference_label
settings:
link: true
group_column: target_id
group_columns: { }
group_rows: true
delta_limit: 0
delta_offset: 0
delta_reversed: false
delta_first_last: false
multi_type: separator
separator: ', '
field_api_classes: false
pager:
type: mini
options:
offset: 0
items_per_page: 20
total_pages: null
id: 0
tags:
next:
previous:
expose:
items_per_page: false
items_per_page_label: 'Items per page'
items_per_page_options: '5, 10, 25, 50'
items_per_page_options_all: false
items_per_page_options_all_label: '- All -'
offset: false
offset_label: Offset
exposed_form:
type: basic
options:
submit_button: Apply
reset_button: false
reset_button_label: Reset
exposed_sorts_label: 'Sort by'
expose_sort_order: true
sort_asc_label: Asc
sort_desc_label: Desc
access:
type: perm
options:
perm: 'view all revisions'
cache:
type: tag
options: { }
empty: { }
sorts:
changed:
id: changed
table: node_field_revision
field: changed
relationship: none
group_type: group
admin_label: ''
entity_type: node
entity_field: changed
plugin_id: date
order: DESC
expose:
label: ''
field_identifier: ''
exposed: false
granularity: second
arguments: { }
filters:
status:
id: status
table: node_field_revision
field: status
entity_type: node
entity_field: status
plugin_id: boolean
value: '1'
group: 1
expose:
operator: ''
type:
id: type
table: node_field_data
field: type
relationship: nid
entity_type: node
entity_field: type
plugin_id: bundle
value:
concept: concept
style:
type: table
options:
grouping: { }
row_class: ''
default_row_class: true
columns:
changed: changed
title: title
default: '-1'
info:
changed:
sortable: false
default_sort_order: asc
align: ''
separator: ''
empty_column: false
responsive: ''
title:
sortable: false
default_sort_order: asc
align: ''
separator: ''
empty_column: false
responsive: ''
override: true
sticky: false
summary: ''
empty_table: false
caption: ''
description: ''
row:
type: fields
query:
type: views_query
options:
query_comment: ''
disable_sql_rewrite: false
distinct: false
replica: false
query_tags: { }
relationships:
nid:
id: nid
table: node_field_revision
field: nid
relationship: none
group_type: group
admin_label: 'Get the actual content from a content revision.'
entity_type: node
entity_field: nid
plugin_id: standard
required: true
header: { }
footer: { }
display_extenders: { }
cache_metadata:
max-age: -1
contexts:
- 'languages:language_content'
- 'languages:language_interface'
- url.query_args
- 'user.node_grants:view'
- user.permissions
tags: { }
page_1:
id: page_1
display_title: Page
display_plugin: page
position: 1
display_options:
display_extenders: { }
path: zadnje-spremembe
cache_metadata:
max-age: -1
contexts:
- 'languages:language_content'
- 'languages:language_interface'
- url.query_args
- 'user.node_grants:view'
- user.permissions
tags: { }

View File

@ -130,13 +130,13 @@ function _yufu_admin_concept_drafted_mail(NodeInterface $node) {
if ($node->isNew()) {
$params['message'] = t('New concept created: @title - @url', [
'@title' => $node->getTitle(),
'@url' => !$node->isNew() ? $node?->toUrl()?->toString() : '',
'@url' => '',
]);
}
else {
$params['message'] = t('New changes to concept proposed: @title - @url', [
'@title' => $node->getTitle(),
'@url' => !$node->isNew() ? $node?->toUrl()?->toString() : '',
'@url' => $node?->toUrl()?->toString(),
]);
}
$params['node_title'] = $node->getTitle();

View File

@ -12,6 +12,7 @@ use Drupal\rest\ResourceResponse;
use Psr\Log\LogLevel;
use Psr\Log\LoggerInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException;
@ -125,9 +126,8 @@ class AddConcept extends ResourceBase {
$concept->set('body', $data['text'] ?? $concept->body->value);
$concept->isDefaultRevision(FALSE);
$concept->setRevisionLogMessage('New revision by concept endpoint.');
$concept->moderation_state->target_id = 'draft';
$concept->set('moderation_state', 'draft');
$concept->set('status', 0);
$concept->setUnpublished();
$concept->save();
$this->logger->notice('New concept @title revision @revid created by uid @uid.', [
'@title' => $concept->getTitle(),
@ -163,7 +163,8 @@ class AddConcept extends ResourceBase {
'revision_uid' => $concept->getRevisionUserId(),
'uid' => $concept->uid->target_id,
];
$response = new ResourceResponse($response_status);
// $response = new ResourceResponse($response_status);
$response = new JsonResponse($response_status);
return $response;
}
@ -182,7 +183,8 @@ class AddConcept extends ResourceBase {
return NULL;
}
$node_storage = $this->entityTypeManager->getStorage('node');
if ($concept = end($node_storage->loadByProperties(['uuid' => $uuid]))) {
$concepts = $node_storage->loadByProperties(['uuid' => $uuid]);
if ($concept = end($concepts)) {
return $concept;
}
return NULL;

View File

@ -1,50 +0,0 @@
<?php
$host = "db";
$port = 3306;
$driver = "mysql";
// If DDEV_PHP_VERSION is not set but IS_DDEV_PROJECT *is*, it means we're running (drush) on the host,
// so use the host-side bind port on docker IP
if (empty(getenv('DDEV_PHP_VERSION') && getenv('IS_DDEV_PROJECT') == 'true')) {
$host = "127.0.0.1";
$port = 32786;
}
$databases['default']['default'] = array(
'database' => "db",
'username' => "db",
'password' => "db",
'host' => $host,
'driver' => $driver,
'port' => $port,
'prefix' => "",
);
$settings['hash_salt'] = 'kShGqBypYstnMBJYmaRocqYLQcvBTMgvGbLQkdODVMavjRUyDhgBFcSAideqnFoM';
// This will prevent Drupal from setting read-only permissions on sites/default.
$settings['skip_permissions_hardening'] = TRUE;
// This will ensure the site can only be accessed through the intended host
// names. Additional host patterns can be added for custom configurations.
$settings['trusted_host_patterns'] = ['.*'];
// Don't use Symfony's APCLoader. ddev includes APCu; Composer's APCu loader has
// better performance.
$settings['class_loader_auto_detect'] = FALSE;
// Set $settings['config_sync_directory'] if not set in settings.php.
if (empty($settings['config_sync_directory'])) {
$settings['config_sync_directory'] = 'sites/default/files/sync';
}
// Override drupal/symfony_mailer default config to use Mailhog
$config['symfony_mailer.mailer_transport.sendmail']['plugin'] = 'smtp';
$config['symfony_mailer.mailer_transport.sendmail']['configuration']['user']='';
$config['symfony_mailer.mailer_transport.sendmail']['configuration']['pass']='';
$config['symfony_mailer.mailer_transport.sendmail']['configuration']['host']='localhost';
$config['symfony_mailer.mailer_transport.sendmail']['configuration']['port']='1025';
// Deveopment services (for CORS)
$settings['container_yamls'][] = DRUPAL_ROOT . '/sites/development.services.yml';

View File

@ -0,0 +1,4 @@
services:
cors.config:
enabled: true

View File

@ -7,6 +7,3 @@ parameters:
services:
cache.backend.null:
class: Drupal\Core\Cache\NullBackendFactory
cors.config:
enabled: true

View File

@ -0,0 +1,3 @@
services:
cache.backend.null:
class: Drupal\Core\Cache\NullBackendFactory