Drupal

From Wasya Wiki
Jump to: navigation, search

Install & Configure

 composer create-project drupal/recommended-project:9.5.10 html
 composer require 'drupal/devel:^5.1'
 composer require 'drupal/s3fs:^3.3'
 # composer require 'wasya-co/consent_popup: 1.0.4.x-dev'
 composer require 'drupal/consent_popup:^1.0'
 composer require 'drush/drush:^11.6'
 composer require 'drupal/metatag:^2.0'
 composer require 'drupal/redirect:^1.9'
 composer require 'drupal/superfish:^1.6'
 composer require 'drupal/webform:^6.0'
 composer require 'drupal/captcha:^1.14'
 composer require 'drupal/typed_data:^1.0@alpha'
 composer require 'drupal/rules:^3.0@alpha'
 composer require 'drupal/smtp:^1.2'
 composer require 'drupal/hal:^1.0'
 composer require 'drupal/restui:^1.21'
 composer require 'drupal/keycloak:^2.2@beta'
 composer require 'drupal/nodeaccess:^2.0@alpha'
 composer require 'drupal/backup_migrate:^5.0'
 composer require 'drupal/email_registration:^2.0@RC'
 composer require 'drupal/content_access:^2.0'
 composer require 'drupal/social_media:^2.0'
 composer require 'drupal/wordpress_migrate:^3.0@alpha'
 composer require 'drupal/migrate_tools:^6.0'
 composer require 'drupal/codefilter:^2.0'
 composer require 'drupal/views_taxonomy_term_name_depth:^7.2'
 composer require 'drupal/pathauto:^1.12'
 composer require 'drupal/metatag:^2.0'
 composer require 'drupal/twig_tweak:^3.3'
 composer require 'drupal/simplenews:^4.0'
   # composer require 'drupal/migrate_plus:^6.0' ## didn't need it the second time
 composer require 'drupal/ctools:^4.0'
 composer require 'drupal/commerce:^2.40'
   composer require drupal/inline_entity_form @RC --no-update
   apt install php-bcmath php8.1-bcmath
   composer require 'drupal/commerce_stripe:^1.1'
 composer require 'drupal/linkit:^6.0'
 composer require 'drupal/redirect_after_login:^3.0'
 composer require 'drupal/symfony_mailer:^1.4'
 composer require 'drupal/custom_search:^1.0@beta'
 composer require 'drupal/fullcalendar_view:^5.2' 
 composer require 'drupal/date_recur:^3.3@RC'
 composer require 'drupal/date_recur_modular:^3.1'
 composer require 'drupal/colorbox:2.0.2'
 composer require 'drupal/tagclouds:^2.0'
 composer require 'drupal/filelog:^3.0'
 composer require 'drupal/message:^1.6'
 composer require 'drupal/flag:^4.0@beta'
 composer require 'drupal/message_subscribe:^1.4'
 composer require 'drupal/message_digest:^1.5'
 composer require 'drupal/message_ui:^1.3'
 composer require 'drupal/layout_builder_usage_reports:^1.0'
 composer require 'drupal/views_tree:^2.0@RC'
 composer require 'drupal/vote_up_down:^1.0@alpha'
 composer require 'drupal/formblock:^2.0@beta'
 composer require 'drupal/views_pdf:^3.0@alpha'
 composer require 'drupal/field_permissions:^1.4'
 composer require 'drupal/scheduler:^2.2'
 composer require 'drupal/simplenews_scheduler:^4.0@alpha'
 composer require 'drupal/insert_view:^2.1'
 composer require drush/drush
 composer require 'drupal/keycloak:^1.8'
 composer require 'drupal/simple_oauth:^5.2'
 composer require 'drupal/group:^1.6'
   composer require 'drupal/group_join_link:^1.0'
 composer require 'drupal/social_auth:^4.1'
   composer require 'drupal/social_auth_google:^4.0'

evaluating

 composer require 'drupal/seo_checklist:^5.2'
 composer require 'drupal/yoast_seo:^1.9'
 composer require 'drupal/tvi:^2.0' ## From: https://www.drupal.org/project/tvi
 composer require 'drupal/advanced_text_formatter:^3.0@RC'
 composer require 'drupal/token_filter:^2.1'
 composer require 'drupal/form_mode_control:^2.4'
 composer require 'drupal/queue_mail:^1.7'
 composer require 'drupal/googlelogin-googlelogin:^9.5'

not using

 # composer require 'drupal/oauth_login_oauth2:^3.0'## not free! very limited.

Setting up dev environment

 composer require 'drupal/examples:^4.0'
 composer require --dev drupal/core-dev
 composer require --dev behat/mink jcalderonzumba/mink-phantomjs-driver
 composer require --dev drupal/core-dev:9.5.11 --with-all-dependencies
 composer require --dev --no-update symfony/filesystem:4.4.42
 composer update -W
 composer update symfony/filesystem:4.4.42 drush/drush -W
 composer require --dev drupal/core-dev -W
 composer require --dev phpspec/prophecy-phpunit:^2


Configure Apache

<Directory /var/www/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    allow from all
</Directory>

Configure s3fs

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Statement0",
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",
                "s3:ListBucketVersions"
            ],
            "Resource": [
                "arn:aws:s3:::<ze bucket>"
            ]
        },
        {
            "Sid": "Statement1",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:GetObject",
                "s3:DeleteObjectVersion",
                "s3:DeleteObject",
                "s3:GetObjectVersion",
                "s3:GetObjectAcl",
                "s3:PutObjectAcl"
            ],
            "Resource": [
                "arn:aws:s3:::<ze bucket>/*"
            ]
        }
    ]
}


Disable caching

From: https://www.drupal.org/docs/develop/development-tools/disable-caching

  • Add the settings.local.php and
  • Modify development.services.yml:
parameters:
  http.response.debug_cacheability_headers: true
  twig.config:
    debug: true
    auto_reload: true
    cache: false
services:
  cache.backend.null:
    class: Drupal\Core\Cache\NullBackendFactory

ReST



curl --include \
  --request POST \
  --user admin:<> \
  --header 'Content-type: application/hal+json' \
  http://pi.local/node?_format=hal_json \
  --data-binary '{
    "_links": {
      "type":{"href":"http://pi.local/rest/type/node/article"}
    },
    "title":[{"value":"Node +++ 123 bac +++" }],
    "body":[{"value": "<b>hello, wor</b>ld!", "format": "full_html" }],
    "type":[{"target_id":"article"}],
    "status": [{"value": 1}],
    "_embedded": {
      "http://pi.local/rest/relation/node/article/field_issue": [
        { "uuid": [{ "value": "56229a95-d675-43e1-99b1-f9e11b5579c5" }] }
      ],
      "http://pi.local/rest/relation/node/article/field_tags": [
        { "uuid": [{ "value": "45646a7d-1a16-42e8-b758-f6e1c8d976f7" }] },
        { "uuid": [{ "value": "834e34e2-05ae-498d-b876-453798872ce1" }] }
      ]
    }

  }'

Default Attachments

 txt pdf doc docx html csv xlsx xlsm sh json
 cer pem pub key
 png jpg jpeg gif
 mkv sfv avi mp3 mp4 webm mov
 zip tar gz

Testing

From: https://www.drupal.org/docs/develop/automated-testing/phpunit-in-drupal/running-phpunit-tests

 export PATH="$PATH:/var/www/html/vendor/bin"

DO NOT RUN THIS IN PRODUCTION!

 composer require --dev phpunit/phpunit
 composer require --dev phpunit/phpunit:^9.5 --with-all-dependencies
 composer require --dev drupal/core-dev
 composer require --dev behat/mink:1.8.0 --with-all-dependencies
 composer require --dev symfony/phpunit-bridge
 composer require --dev phpspec/prophecy-phpunit
 composer require --dev behat/mink-browserkit-driver
 composer require --dev drupal/core-dev 
 composer require --dev drupal/core-dev --update-with-all-dependencies
 phpunit --testsuite unit --filter CurrentUserBlock
 ../vendor/bin/phpunit  -c ../phpunit.xml modules/ish_drupal_module/tests/src/Functional/CurrentUserBlockTest.php
 ../vendor/bin/phpunit  -c ../phpunit.xml modules/ish_drupal_module/tests/src/Functional/CurrentUserBlockTest.php -v --debug