Quantcast
Channel: Issues for Drupal core
Viewing all 291721 articles
Browse latest View live

Remove \Drupal\Core\Database\Connection::$statementClass

$
0
0

Problem/Motivation

Follow-up for #3174662: Encapsulate \PDOStatement instead of extending from it

Steps to reproduce

\Drupal\Core\Database\Connection::$statementClass property is deprecated
It should be removed from code and comments already, so only clean-up needed

Proposed resolution

Clean-up property from class and make sure no mentions left

Remaining tasks

patch, review, commit

User interface changes

no

API changes

\Drupal\Core\Database\Connection::$statementClassis removed

Data model changes

no

Release notes snippet

no


Introduce HistoryRepository service

$
0
0

Problem/Motivation

The History service is sometimes slow and only works for the entity type node. All queries are hardcoded and cannot be replaced by contrib.

Proposed resolution

Introduce swappable HistoryRepository service to allow more performant implementations in contrib to figure out actual needs and help to make improvements in newer version of core.

Remaining tasks

Implement HistoryRepository and HistoryRepositoryInterface. (done)
Replace all usages of history table with proper service calls. (done)

User interface changes

No

API changes

Deprecated functions:
history_read($nid) and history_read_multiple($nids) - HistoryRepositoryInterface::getLastViewed($entity_type, $entity_ids, AccountInterface $account)
history_write($nid, AccountInterface $account = NULL) - updateLastViewed(EntityInterface $entity, AccountInterface $account)

#1029708: History table for any entity
#2078753: Add history_read_multiple()
#1991684: Node history markers (comment & node "new" indicator, "x new comments" links) forces render caching to be per user

Access to 'Reset to alphabetical' denied for users without administer permission

$
0
0

Reset to alphabetical button is visible if users have access to edit all terms in a vocabulary, however reset route access is determined by whether the user has administer taxonomy.

This means users without administer taxonomy can see the button, but they receive access denied when clicked.

Problem (cause)

  • Reset route uses administer taxonomy permission. (See \Drupal\taxonomy\Entity\Routing\VocabularyRouteProvider::getResetPageRoute)
  • Button visibility on is determined by checking $term->access('update') on all terms. (See $change_weight_access)

Proposed solution

  1. Create a reset-all-weights operation for vocabularies.
  2. Check administer taxonomy before checking all terms.
  3. Move all existing $change_weight_access logic to operation access
  4. Change reset route permission to use _entity_access: 'vocabulary.reset-all-weights'
  5. Check vocabulary access before showing button.

Related concerns were raised in #1848686: Add a dedicated permission to access the term overview page (without 'administer taxonomy' permission)

Html::getId is outdated and has a few bugs as well

$
0
0

Problem/Motivation

Drupal\Component\Utility\Html::getId cites the HTML4 standard but Drupal 8 is HTML 5 (yay!). HTML 5 is much more permissive https://mathiasbynens.be/notes/html5-id-class Even IE11 is on board.

However the CSS spec cited by the method disallows certain combinations at the beginning of the string which are not filtered out.

Steps to reproduce

Proposed resolution

Implement the full CSS2.1 requirements, HTML 5 will be covered.

  1. Permit characters above 00A0
  2. Remove disallowed starting combinations

Remaining tasks

Agree then test.

User interface changes

API changes

Data model changes

Release notes snippet

Set samesite cookie attribute for PHP sessions

$
0
0

Problem/Motivation

Drupal 7 does not set the samesite attribute for PHP session cookies, unless on PHP 7.3 or higher. Up until recently, all major browsers treated cookies without this attribute as if it were samesite=None. Recently (July 2020), Google Chrome has changed this with the release of Chrome 84, and cookies are treated as "Lax" if there is no samesite attribute set. The Drupal contrib module ecosystem has by and large been developed with the implicit assumption that browsers treat cookies as samesite=None. Additionally, some sites/modules aren't yet ready to upgrade to higher versions of PHP.

Drupal 7's documentation presently indicates that PHP 7.0 and higher is supported.

Steps to reproduce

I and other users have seen consequences of this for Drupal Commerce off-site payment redirects. This is where the user submits a form that POSTs to another domain (payment processor), and the payment processor sends the user back to the site with another POST (containing the verified payment data). Such an arrangement is a way of attaining PCI compliance (by the Drupal website never seeing a credit card number or other sensitive account information).

Contrib modules don't seem to be an appropriate/feasible place to change this in.

Proposed resolution

Modify drupal_session_start() so that it sets this attribute for PHP session cookies.

Since Drupal 7's contrib modules have been developed with the implicit assumption of samesite=None (and this is how web browsers have acted), explicitly set this cookie attribute. On PHP 7.3 and higher, this attribute can be based off of the php ini option: session.cookie_samesite="None". There is currently a related issue for Drupal 9.1.x, but it is for setting samesite=Lax.

Lower versions of PHP do not have built-in support for the samesite attribute. However, users on StackExchange and elsewhere have pointed out a workaround for PHP < 7.3 session cookies. The workaround involves modifying the cookie's path to append the string "; samesite=None" (or Lax, or Strict).

Detect incompatible browsers (which reject cookies having this attribute) via their User-Agent string, and avoid setting this attribute for them. Known incompatible clients are documented here: https://www.chromium.org/updates/same-site/incompatible-clients

Remaining tasks

Discuss and patch.

User interface changes

None

API changes

None. Possibly support a config variable that can be used as a substitute for the ini option (for PHP versions lower than 7.3).

Data model changes

None

Release notes snippet

Explicitly set the samesite cookie attribute (default: None).

Make fallback date format editable rather than hard coding to US notation

$
0
0

Problem/Motivation

Drupal has a "Fallback date format" which always uses the US notation: MM/DD/YYYY
With Drupal being used a lot in non US projects this is actually a problem since the fallback format can't be edited and is used when a format is not provided.

Example of a module not passing a date format in a date value: https://git.drupalcode.org/project/webform/-/blob/8.x-5.x/src/WebformSub...
In the above line:
($entity->{$name}->value ? $date_formatter->format($entity->{$name}->value) : '')
should be (for example)
($entity->{$name}->value ? $date_formatter->format($entity->{$name}->value ,'long') : '')

Steps to reproduce

  1. Install Drupal
  2. Visit: /admin/config/regional/date-time
  3. See that Fallback date format can't be edited and is using US notation.

Proposed resolution

  1. Make fallback date format editable or
  2. Make fallback date location respect default country notation from /admin/config/regional/settings

Option 1 should be enough for everybody.

Remaining tasks

User interface changes

API changes

Data model changes

Release notes snippet

Ignore 20 misspelled words used only in test fixtures

$
0
0

Problem/Motivation

We have added a spellcheck to Drupal core. The core and Media oEmbed test fixtures contain a number of words that are considered misspelled and only appear in these fixtures.

Steps to reproduce

Proposed resolution

Ignore these words.

Remaining tasks

User interface changes

API changes

Data model changes

Release notes snippet

Fix ~50 "shouldBeCamelCased" and relevant typos in core

$
0
0

Problem/Motivation

Discovered at #2972224: Add .cspell.json to automate spellchecking in Drupal core, and pointed by @xjm in https://www.drupal.org/project/drupal/issues/3122088#comment-13628724

Becalled
Isnew
describedby this is from aria-describedby, I don't think there's anything to fix -- this needs to stay in the word list.
Bytouched
Entitiesto
Fieldby
Groupby
Librariesby
Urlto
intefacewithconstants
invalidateby
mydistro
mydriver
myeditor
myeditoroverride
myfragment
myfrontpage
myfunctions
mymenu
mymodule - too many instances of this, this can be done separately
mynewpassword
myothermenu
mypath
myprimarykey
myprofile
myproject
myrootuser
myroute
mysetting
mysite - too many instances of this, this can be done separately
mytab
mytable
mytheme
mytube
mytype
myvalue
myvar
myverylongurl
myverylongurlexample
nosuchcolumn
nosuchindex
nosuchscheme - part of XssTest which has many spelling issues, should be done separately
nosuchtable
nosuchtag - part of XssTest which has many spelling issues, should be done separately
testid
testnoschema
wrongparam

Proposed resolution

Make sure everything isProperlyCamelCased or snake_cased as appropriate.

Remaining tasks

Pick out all applicable words from #2972224: Add .cspell.json to automate spellchecking in Drupal core and fix them.

User interface changes

API changes

Data model changes

Release notes snippet


composer [Errorexception] mkdir(); Permission Denied

$
0
0

composer [Errorexception] mkdir(); Permission Denied

Fresh install of everything,
Ubuntu 20.04
PHP 7.4.3
Composer 1.10.8
Git 2.25.1

Within the var/www/html directory, as per instructions on GITHUB, I run this command:
composer create-project drupal-composer/drupal-project:8.x-dev comp_test --no-interaction

Results in this error:
composer [Errorexception] mkdir(); Permission Denied

I have tried:
Running with sudo, get warning not to run under root.

chown -R www-data:www-data html

chmod g+rwx html

I suppose I could chmod -R 777... but that just goes around the problem

Running PHPUnit tests

$
0
0

Problem/Motivation

I've followed the steps in this tutorial: https://mglaman.dev/blog/running-drupals-phpunit-test-suites-ddev but I'm finding my test always fails as the database connection used when drupalGet() is called is missing the `test{TEST_ID}` prefix and so the get is run against the main database tables and not the test ones.

First off this is the require-dev section of my `composer.json` file:

"require-dev": {
        "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0",
        "drupal/core-dev": "8.8.8"
    },

I've copied the `core/phpunit.xml.dist` file to my docroot and have renamed to `phpunit.xml`

<?xml version="1.0" encoding="UTF-8"?>

<!-- TODO set checkForUnintentionallyCoveredCode="true" once https://www.drupal.org/node/2626832 is resolved. -->
<!-- PHPUnit expects functional tests to be run with either a privileged user
 or your current system user. See core/tests/README.md and
 https://www.drupal.org/node/2116263 for details.
-->
<phpunit bootstrap="web/core/tests/bootstrap.php" colors="true"
         beStrictAboutTestsThatDoNotTestAnything="true"
         beStrictAboutOutputDuringTests="true"
         beStrictAboutChangesToGlobalState="true"
         printerClass="\Drupal\Tests\Listeners\HtmlOutputPrinter">
  <php>
    <!-- Set error reporting to E_ALL. -->
    <ini name="error_reporting" value="32767"/>
    <!-- Do not limit the amount of memory tests take to run. -->
    <ini name="memory_limit" value="-1"/>
    <!-- Example SIMPLETEST_BASE_URL value: http://localhost -->
    <env name="SIMPLETEST_BASE_URL" value="http://localhost"/>
    <!-- Example SIMPLETEST_DB value: mysql://username:password@localhost/databasename#table_prefix -->
    <env name="SIMPLETEST_DB" value="mysql://db:db@db/db"/>
    <!-- Example BROWSERTEST_OUTPUT_DIRECTORY value: /path/to/webroot/sites/simpletest/browser_output -->
    <env name="BROWSERTEST_OUTPUT_DIRECTORY" value="sites/simpletest/browser_output"/>
    <!-- To have browsertest output use an alternative base URL. For example if
     SIMPLETEST_BASE_URL is an internal DDEV URL, you can set this to the
     external DDev URL so you can follow the links directly.
    -->
    <env name="BROWSERTEST_OUTPUT_BASE_URL" value=""/>
    <!-- To disable deprecation testing completely uncomment the next line. -->
    <!-- <env name="SYMFONY_DEPRECATIONS_HELPER" value="disabled"/> -->
    <!-- Example for changing the driver class for mink tests MINK_DRIVER_CLASS value: 'Drupal\FunctionalJavascriptTests\DrupalSelenium2Driver' -->
    <env name="MINK_DRIVER_CLASS" value=''/>
    <!-- Example for changing the driver args to mink tests MINK_DRIVER_ARGS value: '["http://127.0.0.1:8510"]' -->
    <env name="MINK_DRIVER_ARGS" value=''/>
    <!-- Example for changing the driver args to phantomjs tests MINK_DRIVER_ARGS_PHANTOMJS value: '["http://127.0.0.1:8510"]' -->
    <env name="MINK_DRIVER_ARGS_PHANTOMJS" value=''/>
    <!-- Example for changing the driver args to webdriver tests MINK_DRIVER_ARGS_WEBDRIVER value: '["chrome", { "chromeOptions": { "w3c": false } }, "http://localhost:4444/wd/hub"]' For using the Firefox browser, replace "chrome" with "firefox" -->
    <env name="MINK_DRIVER_ARGS_WEBDRIVER" value=''/>
  </php>
  <testsuites>
    <testsuite name="unit">
      <file>./tests/TestSuites/UnitTestSuite.php</file>
    </testsuite>
    <testsuite name="kernel">
      <file>./tests/TestSuites/KernelTestSuite.php</file>
    </testsuite>
    <testsuite name="functional">
      <file>./tests/TestSuites/FunctionalTestSuite.php</file>
    </testsuite>
    <testsuite name="functional-javascript">
      <file>./tests/TestSuites/FunctionalJavascriptTestSuite.php</file>
    </testsuite>
    <testsuite name="build">
      <file>./tests/TestSuites/BuildTestSuite.php</file>
    </testsuite>
  </testsuites>
  <!-- Filter for coverage reports. -->
  <filter>
    <whitelist>
      <directory>./includes</directory>
      <directory>./lib</directory>
      <!-- Extensions can have their own test directories, so exclude those. -->
      <directory>./modules</directory>
      <exclude>
        <directory>./modules/*/src/Tests</directory>
        <directory>./modules/*/tests</directory>
      </exclude>
      <directory>../modules</directory>
      <exclude>
        <directory>../modules/*/src/Tests</directory>
        <directory>../modules/*/tests</directory>
        <directory>../modules/*/*/src/Tests</directory>
        <directory>../modules/*/*/tests</directory>
      </exclude>
      <directory>../sites</directory>
    </whitelist>
  </filter>
</phpunit>

And I'm running the below test by running:

`../vendor/bin/phpunit -v -c ../phpunit.xml path-to-module`


namespace Drupal\Tests\custom_module\Functional;

use Drupal\node\Entity\Node;
use Drupal\Tests\BrowserTestBase;

/**
 * Test the sidebar displays what we expect
 *
 * @group custom
 */
class RelatedPagesTest extends BrowserTestBase
{
  /**
   * The modules to load to run the test.
   *
   * @var array
   */
  public static $modules = [
    'field',
    'node',
    'taxonomy',
    'custom_module',
  ];

  /**
   * {@inheritdoc}
   */
  protected function setUp() {
    parent::setUp();
  }

  public function testRelatedPagesDoesntShowWhenNoContent()
  {

    $news = $this->container->get('entity_type.manager')->getStorage('node')
      ->create([
        'type' => 'news',
        'title' => 'News article without sidebar',
      ]);
    $news->save();

    $this->drupalGet('node/' . $news->id());
    $this->assertSession()->statusCodeEquals(200);

    // Assert sidebar is missing completely
    $this->assertText('News article without sidebar');
    $this->assertNoText('Show me more');
  }
}

With a TON of debug I can see the following is happening:

  • The database connection is taken from `phpunit.xml` and sets that as the db connection
  • The test{TEST_ID} table prefix is added to the database configuration
  • The simpletest/{TEST_ID} folder is created and this copies the database settings from the default/testing.settings.php *The prefix is missing here*
  • The test runs and the node is added to the database. Querying the NIDs within the test gives me one nid of 1
  • THIS IS THE STEP THAT GOES WRONG
  • The test then calls `$this->drupalGet()` for node/1
  • The db connection used doesn't have the table prefix so loads the site node/1 (the homepage)
  • The test fails

I've been debugging and I can't figure out why the table prefix gets dropped out of the database connection. Any help is much appreciated!

Cheers

Tom

Viewing uninstall page shouldn't fail if the entity table doesn't exist

$
0
0

In ContentUninstallValidator we validate the state of each module to see if it has any data. To do so we query the table. However we don't first check that the table exists.

This can mean that a bad module corrupts the system preventing its own uninstallation. This is then very difficult to fix as the only way to uninstall the module is to manually edit the database (including the 'core.extension' data).

Drupal\Core\Database\DatabaseExceptionWrapper: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'philip.drupal_custom_entity' doesn't exist: SELECT base_table.id AS id, base_table.id AS base_table_id FROM {custom_entity} base_table LIMIT 1 OFFSET 0; Array ( ) in Drupal\Core\Entity\EntityStorageBase->hasData() (line 588 of core/lib/Drupal/Core/Entity/EntityStorageBase.php).
Drupal\Core\Database\Statement->execute(Array, Array) (Line: 634)
Drupal\Core\Database\Connection->query('SELECT base_table.id AS id, base_table.id AS base_table_id
FROM
{custom_entity} base_table
LIMIT 1 OFFSET 0', Array, Array) (Line: 357)
Drupal\Core\Database\Driver\mysql\Connection->query('SELECT base_table.id AS id, base_table.id AS base_table_id
FROM
{custom_entity} base_table
LIMIT 1 OFFSET 0', Array, Array) (Line: 510)
Drupal\Core\Database\Query\Select->execute() (Line: 267)
Drupal\Core\Entity\Query\Sql\Query->result() (Line: 83)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 588)
Drupal\Core\Entity\EntityStorageBase->hasData() (Line: 56)
Drupal\Core\Entity\ContentUninstallValidator->validate('custom_module') (Line: 587)
Drupal\Core\Extension\ModuleInstaller->validateUninstall(Array) (Line: 99)

Either EntityStorageBase->hasData() should first check if the table exists OR ContentUninstallValidator should call a method on EntityStorageBase to check if it exists. I'm not familiar enough yet with the codebase to make the right call.

Allow users to create a block content entity with a specific UUID if it is a missing dependency of a config object

$
0
0

#2756331: Custom blocks cannot be properly exported and imported is pretty nasty in therm of UX but apparently hard to fix.

Basically, if you export a custom block configuration and import this configuration in a new website you will have a "This block is broken or missing" error has the content is effectively missing.

But we perhaps give the user a chance to save is website by replacing:

"This block is broken or missing. You may be missing content or you might need to enable the original module."
by
"'The content of the block (%bundle %uuid) is missing. Add missing content.'.

missing block

form knows which one to use

Proposed resolution

  • Listen to missing content event in block content module.
  • Take note of missing block content UUIDs
  • Store them in state.
  • In the derivative discovery, make definitions available for those UUIDs
  • In the build method for these, output a link with a prebuilt uuid and type (taken from the missing content event stuff that is saved in state)
  • This link will create a stub entity of that type and with that uuid and then present the edit form
  • User submits, hey presto its fixed
  • State entry is cleaned up when block is saved
  • Tests cover that scenario

Remaining tasks

Approach as per comment 37

[meta] Ensure compatibility of Drupal 8/9 with PHP 8.0 (as it evolves)

$
0
0

Problem/Motivation

Make sure Drupal keeps being compatible with PHP 8. Work with dependencies as needed. See #3086374: Make Drupal 8 & 9 compatible with PHP 7.4 for how we did it with PHP 7.4. PHP 8.0 is feature frozen and beta4 is out, see https://www.php.net/archive/2020.php#2020-09-17-1

Proposed resolution

The following task list has been determined by testing on #3156595: Make Drupal 9 installable on PHP8.

1. Dependency updates to support PHP 8

To produce a list of dependencies that are blocking PHP 8 support, you can do the following. Make sure you use PHP 7.4+ to run it.

$ git clone --branch 9.1.x https://git.drupalcode.org/project/drupal.git whynotphp8
$ cd whynotphp8/
$ composer install
$ composer update
$ composer why-not php:8
DependencyLinks
composer/composer 1.10.13Should update to Composer 2.0. #3135247: Composer's "prefer-stable" setting cannot be relied on to produce a stable release is now in, we should consider it in #3128631: Update dependencies composer/composer and composer/semver to ^3.
composer/semver 1.7.1
doctrine/reflection 1.2.1https://github.com/doctrine/reflection/pull/43
fabpot/goutte 3.3.0Possibly #3176655: Use Behat\Mink\Driver\BrowserKitDriver directly instead of GoutteDriver for PHP 8 compatibility or if that does not work out https://github.com/FriendsOfPHP/Goutte/issues/429
laminas/laminas-diactoros 2.4.1https://github.com/laminas/laminas-diactoros/pull/46
laminas/laminas-escaper 2.6.1https://github.com/laminas/laminas-escaper/issues/8
laminas/laminas-feed 2.12.3https://github.com/laminas/laminas-feed/issues/27
typo3/phar-stream-wrapper 3.1.5https://github.com/TYPO3/phar-stream-wrapper/issues/64

Additionally to the composer reported dependencies above:

2. Drupal issues that can be addressed in Drupal 8 & 9 today

These issues can proceed without worrying about the how and if vendor support works for PHP 8 since the changes are all PHP 7 compatible. We can keep the changes PHP 7.0 compatible to make things easy for Drupal 8.

3. Drupal issues that need a largely working PHP 8 build to test

DONE

Remaining tasks

See above.

User interface changes

None.

API changes

Data model changes

None.

Release notes snippet

stream_open() needs to cope with a failure in \Drupal\Core\StreamWrapper\LocalStream::getLocalPath() better

$
0
0

Problem/Motivation

PHP 8.0 is stricter about argument types and throws an error when fopen() is called with a $path === FALSE in \Drupal\Core\StreamWrapper\LocalStream::stream_open()

Steps to reproduce

Run tests on PHP 8.0 - see https://www.drupal.org/pift-ci-job/1855374

$ php7 -r 'var_dump(fopen(FALSE, "r"));'
...
Warning: fopen(): Filename cannot be empty in Command line code on line 1

$ php8 -r 'var_dump(fopen(FALSE, "r"));'
...
Fatal error: Uncaught ValueError: Path cannot be empty in Command line code on line 1

Proposed resolution

Get $path value and return early.

Remaining tasks

review/commit

User interface changes

None

API changes

None

Data model changes

None

Release notes snippet

N/a

\Drupal\field\Entity\FieldStorageConfig::getCardinality() needs to be more type safe

$
0
0

Problem/Motivation

\Drupal\field\Entity\FieldStorageConfig::getCardinality() does $enforced_cardinality < 1 without checking types. PHP 8.0 handles integer comparison a bit differently. This causes a failing test.

Steps to reproduce

See https://www.drupal.org/pift-ci-job/1855374 and https://3v4l.org/KV2LI

Proposed resolution

Cast to int

Remaining tasks

None

User interface changes

None

API changes

None

Data model changes

None

Release notes snippet

N/a


Views UI should offer a null/not null option on boolean field filtering to expose the already existing code path for handling this

$
0
0

Problem/Motivation

Views provides an option for filtering boolean fields on null/not null, but this is not exposed in the Views UI.

Proposed resolution

Expose this code in the UI (from #2):

      if ($this->accept_null) {
        if ($query_operator == static::EQUAL) {
          $condition = (new Condition('OR'))
            ->condition($field, 0, $query_operator)
            ->isNull($field);
        }
        else {
          $condition = (new Condition('AND'))
            ->condition($field, 0, $query_operator)
            ->isNotNull($field);
        }
        $this->query->addWhere($this->options['group'], $condition);
      }

Possible workaround using a views override in the meantime (from #3):

function MODULENAME_views_pre_build(ViewExecutable $view) {
  if ($view->storage->id() == 'VIEWMACHINENAME') {
    // If reviewed is set to false then we should include NULLs.
    if ($view->filter['FIELDMACHINENAME']->value == 0) {
      $view->filter['FIELDMACHINENAME']->accept_null = TRUE;
    }
  }
}

Remaining tasks

Code, review, documentation.

User interface changes

Adds "is NULL" and "is not NULL" to filtering options in UI on boolean fields.

API changes

None.

Data model changes

None.

Original report by nicxvan

I have a boolean field on a node.

I would like the view to return all nodes that do not have the checked box. (Either never set or selected and unset later)
I set the filter to Is not equal to TRUE.

No nodes with the boolean that is null are returned.

\Drupal\views\Plugin\views\PluginBase::listLanguages() incorrectly uses in_array() resulting in listing additional languages

$
0
0

Problem/Motivation

Running \Drupal\Tests\language\Kernel\Views\FilterLanguageTest() on PHP 8.0 fails because it does not return the ***LANGUAGE_language_content*** language.

Steps to reproduce

See https://www.drupal.org/pift-ci-job/1855374

OR change \Drupal\views\Plugin\views\PluginBase::listLanguages() from

if (isset($type['name']) && !isset($list[$id]) && in_array($id, $current_values)) {

to

if (isset($type['name']) && !isset($list[$id]) && in_array($id, $current_values, TRUE)) {

Proposed resolution

Ensure we make the comparison we expect to in \Drupal\views\Plugin\views\PluginBase::listLanguages()

@todo Discuss the impacts of making this change.

Remaining tasks

User interface changes

API changes

Data model changes

Release notes snippet

Missing docblock for BookManagerInterface::getBookParents()

$
0
0

There is presently no docblock for method BookManagerInterface::getBookParents(). One will need to investigate exactly what is returned by classes that implement this interface and method. When creating a patch, please be sure to include '(optional)' in the description for the @param $parent directive.

Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in require_once() (line 341 of

$
0
0

full error message

Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in require_once() (line 341 of /home4/crazygri/public_html/mysite/includes/module.inc).

This has suddenly appeared on a D7 site - in build status.

I'm not sure what to chase or perhaps what module not use - but my instincts are telling me the problem is "not" with module.inc - and that module.inc has caught an unexpected exception.

Ideas anyone?

Views are just showing content from Original Language but not Translation Language

$
0
0

Hi,

The "Link to Content" field on the view takes only the original language and all my views of the Multilingual sites broke. The links were functioning as expected till the update to 8.5 version . The {{ path }} is no more and got replaced with Link to Content.

Steps to reproduce:
- Drupal 8 multilingual setup
- Create a content type
- Create a view
- Create an English node
- Create a Japanese translation for the node
- Filter criteria - Interface text language for the page

Expected: Result: A view with 2 links to Japanese and English;
Actual result: The view is pointing to English on Japanese site.

I have used "Link to Content" (output as url text) to fetch the path in view.

I am using the Drupal version 8.6.15

Please help.

Viewing all 291721 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>