Reading view

Is there a way to auto-translate user comments based on the interface language in Drupal?

Hi! I'd like to know if it's possible for users to post comments in the language they have selected on the language switcher, and then have those comments automatically translated when another user views the page in a different language.

For example: a user in Chicago browses the English version of the site and posts a comment in English. Later, someone in Bogotá visits the Spanish version of the same node and sees that comment automatically translated into Spanish.

My site is fully multilingual with a single content type. Content translation is enabled, so I manually translate each node to have two versions (Spanish and English). However, I’d like comments to be translated automatically by Drupal (or an integration), rather than doing it manually for every comment.

submitted by /u/kayograco
[link] [comments]
  •  

Removing a view link from /admin/content

Removing a view link from /admin/content

Hi everyone-

Running Drupal 10.3

You know the list of views across the top of one's admin/content screen?

https://preview.redd.it/k9vwlvdjmjtf1.png?width=1594&format=png&auto=webp&s=481bccf381ad6f53ab046635ef7dc87ca8794e6f

How do I delete one of those? Going to /admin/structure/views and disabling the view or even deleting it didn't seem to work. In fact, deleting it not only didn't disable the link, the link still took me to the admin view!

In our particular case we want to remove "Comments" from that list.

Thanks!
J

submitted by /u/dietdew72
[link] [comments]
  •  

Question Json API sur site Multilingue

Bonjour à tous !

J’ai une question pour les experts de JSON:API

J’ai un site Next.js en front et un Drupal en back-end. La communication se fait via JSON:API, et le site est multilingue.

J’utilise Redis pour améliorer les performances, et je souhaite pré-générer les caches Redis via une cron.

Le problème : lorsque j’exécute le cron, les données mises en cache sont toujours dans la langue par défaut (ou celle du back-office), au lieu de respecter la langue que je passe dans ma boucle.

→ Connaissez-vous une manière fiable de forcer la langue de contexte lors de l’exécution d’une cron ou d’une sous-requête JSON:API en PHP (via $this->kernel->handle() par exemple) ?

Pour donner plus de contexte, voici un extrait du code utilisé dans mon cron :

$cache = \Drupal::service('lagoon_global.cache'); $languages = ['en', 'fr', 'de', 'es', 'it', 'pt-pt']; foreach ($languages as $language) { $cache->lifeOnBoardListJsonApi($language); } 

La méthode appelée :

 $collection = $this->jsonapi_client->getNodeCollection('life_on_board', $filters, $options, true, $language, true); 

et ensuite la méthode getNodeCollection est :

public function getNodeCollection(string $bundle, array $filters = [], array $options = [], bool $decode = true, ?string $language = null, ?int $runAsUid = null) { $prefix = $language ? sprintf('/%s', $language) : ''; $path = sprintf('%s/jsonapi/node/%s', $prefix, $bundle); $query = [ "filter" => $filters, ...$options ]; return $this->requestJsonApi('GET', $path, $query, null, $decode, $runAsUid); } 

et finalement :

public function requestJsonApi(string $method, string $path, array $query = [], $body = null, bool $decode = true, ?int $runAsUid = null) { $server = [ 'HTTP_ACCEPT' => 'application/vnd.api+json', 'CONTENT_TYPE' => 'application/vnd.api+json', ]; $query[] = []; $secret = getenv('JSONAPI_SECRET_KEY'); if ($secret) { $server['HTTP_secret-key'] = $secret; } $request = Request::create($path, $method, $query, [], [], $server, is_array($body) ? json_encode($body) : $body); $response = null; if ($response === null) { $response = $this->kernel->handle($request, HttpKernelInterface::SUB_REQUEST); } $status = $response->getStatusCode(); $content = $response->getContent(); if ($status < 200 || $status >= 300) { $this->logger?->error('JSON:API {method} {path} a renvoyé {status}: {body}', [ 'method' => $method, 'path' => $path, 'status' => $status, 'body' => $content, ]); throw new \RuntimeException(sprintf('Erreur JSON:API %s %s (%d)', $method, $path, $status)); } return $decode ? json_decode($content, true, flags: JSON_THROW_ON_ERROR) : $content; } 

Merci d’avance pour vos idées ou retours d’expérience !

submitted by /u/One-Peace4941
[link] [comments]
  •  

How to reliably add Bootstrap classes to blocks in a specific region in Drupal 11?

Hi everyone,

I’m working on a custom Drupal 11 subtheme based on Bootstrap 5 and I want to achieve the following:

Goal:
I have a footer region called footerblocks and I want all blocks placed in this region to automatically get Bootstrap 5 classes like col-md-4 and mb-4, so they layout nicely in 3 columns.

What I’ve tried:

  1. Using hook_preprocess_region()Problem:foreach (Element::children($variables['content']) as $key) { $variables['content'][$key]['#is_in_footerblocks'] = TRUE; }
    • I iterate through $variables['content'] with Element::children() to flag blocks inside footerblocks.
    • Then, in hook_preprocess_block(), I check for this flag and add the classes.
    • Sometimes $variables['content'] is a Markup object instead of an array, which causes a TypeError.
    • Even after fixing with is_array($variables['content']), some blocks in footerblocks are never flagged, and I get logs like: Block b5subtheme_belangrijkelinks_3 processed. Region: NONE. (No footerblocks flag found)
  2. Trying to detect region in preprocess_block()
    • I check $variables['elements']['#configuration']['region'] or $variables['elements']['#block']->getRegion().
    • This works for some blocks but not reliably for all, and I’m not sure if I’m missing something about render arrays or region naming.
  3. Using block--footerblocks.html.twig I considered creating a custom block template for the footerblocks region (e.g., block--footerblocks.html.twig) and adding the Bootstrap classes there. Problem: Some blocks still don’t render with the correct classes, and I want a method that works for all blocks automatically, without creating a separate template for each block.

Questions:

  • What is the best/reliable way in Drupal 11 to detect if a block is placed in a specific region?
  • Is there a safer way than preprocess_region() + flags to automatically add classes to all blocks in a region?
  • Could there be a problem with how my region footerblocks is defined or rendered in a Bootstrap 5 subtheme?

Thanks in advance for any guidance or examples!

submitted by /u/Prof-ChromeOS
[link] [comments]
  •  

Full Upload with Drag and Drop AND Drag and Drop sorting functionality of File/Image field? Usability advice needed

Use case: classified ads type site where user has opportunity to attach many images through dedicated File/Image field. How many? 20+ maybe 30+. That is important!

The problem that built in core file uploader has some bugs (as in https://www.drupal.org/project/drupal/issues/3548630) and totally break down if one image is does not comply to the set requirements of width x height.

So for that I am using PLupload module, which solves that issue. It just drops image files which are outside allowed dimensions.

Another issue is that even if all the uploading works, like with PLupload module - the built-in Drupal core image sorter has table-like wrapper with <li> items, so all the sorting is made just vertically. It is perfectly ok if we use 3-5 images, but not ok if there are 20-50 images. It is a usability nightmare from end user standpoint.

I found that https://www.drupal.org/project/dropzonejs module should offer vertical and horizontal drag and drop sorting, but I have no luck to get it working on the File/image field no matter what I try.

Just me have no luck with that module or there are other selections?

What would be your solutions to this? Thank you in advance.

submitted by /u/Regular_Fake_Name
[link] [comments]
  •  
❌