Difference between revisions of "Drupal"

From Wasya Wiki
Jump to: navigation, search
(Default Attachments)
Line 1: Line 1:
+
 
= doing / documentation =
+
* A great book: https://drupalatyourfingertips.com
* https://www.drupal.org/docs/drupal-apis/form-api
+
* https://api.drupal.org/api/drupal/core%21core.api.php/group/hooks/9
+
* https://www.drupalatyourfingertips.com/hooks
+
  
 
= Install & Configure =
 
= Install & Configure =
Line 69: Line 66:
 
   composer require 'drupal/insert_view:^2.1'
 
   composer require 'drupal/insert_view:^2.1'
 
   composer require drush/drush
 
   composer require drush/drush
 +
 +
== 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'
  
 
== Setting up dev environment ==
 
== Setting up dev environment ==
Line 87: Line 94:
 
   composer require --dev phpspec/prophecy-phpunit:^2
 
   composer require --dev phpspec/prophecy-phpunit:^2
  
== 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'
 
 
== trash ==
 
  composer require 'drupal/webform_rest:^4.1' ## not working!
 
 
== upgrade 9 -> 10 ==
 
 
* https://piousbox.com/update.php
 
* https://www.drupal.org/docs/upgrading-drupal/upgrading-from-drupal-8-or-later/how-to-upgrade-from-drupal-9-to-drupal-10
 
* https://www.drupal.org/project/upgrade_status
 
  
  composer require 'drupal/core-recommended:^10' 'drupal/core-composer-scaffold:^10' 'drupal/core-project-message:^10' --no-update
 
  
 
== Configure Apache ==
 
== Configure Apache ==
Line 155: Line 143:
 
</pre>
 
</pre>
  
= Develop =
 
  
* various dumpers like dpm: https://www.drupal.org/project/vardumper
 
 
  $renderer = \Drupal::service('renderer');
 
    $renderer->addCacheableDependency($build, $config);
 
    $renderer->addCacheableDependency($build, $cu);
 
  $config = \Drupal::config('system.site');
 
  $current_user = \Drupal::currentUser();
 
    $cu = \Drupal\user\Entity\User::load($current_user->id())
 
 
== use drush ==
 
 
  ./vendor/bin/drush --version
 
  ./vendor/bin/drush cache:clear
 
  ./vendor/bin/drush updatedb:status  -vvv
 
 
  drush entity:updates
 
  
 
== Disable caching ==
 
== Disable caching ==
Line 226: Line 197:
 
   txt pdf png jpg jpeg gif mp3 mp4 webm mov zip tar gz doc docx html csv xlsx xlsm sh json
 
   txt pdf png jpg jpeg gif mp3 mp4 webm mov zip tar gz doc docx html csv xlsx xlsm sh json
 
   cer pem pub key
 
   cer pem pub key
 
= Tutorials =
 
* routing
 
** https://www.drupal.org/docs/8/api/routing-system/parameters-in-routes/using-parameters-in-routes
 
* https://drupal.stackexchange.com/questions/87234/get-term-name-for-page-title-from-term-id-passed-in-the-contextual-filter
 
* https://www.drupal.org/docs/drupal-apis/routing-system/introductory-drupal-routes-and-controllers-example
 

Revision as of 21:00, 1 May 2025

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' ## only 3k users, not evaluating.
 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

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'

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 png jpg jpeg gif mp3 mp4 webm mov zip tar gz doc docx html csv xlsx xlsm sh json
 cer pem pub key