Houston, TX
Account created on 4 September 2016, over 8 years ago
#

Merge Requests

Recent comments

🇺🇸United States anilu@ Houston, TX

Automatic testing failed because of update to 3.0 branch. Manually applying the patch is working on my project but we need to update the patch and continued testing.

At this moment, I am not sure if this is a long term solution. Open to hear oppinions.

🇺🇸United States anilu@ Houston, TX

I write a script on composer that removes book core module. For now this should work for anyone that needs a quick fix.

{
    "scripts": {
        "post-install-cmd": [
            "rm -rf web/core/modules/book",
            "@composer drupal:scaffold"
        ],
        "post-update-cmd": [
            "rm -rf web/core/modules/book",
            "@composer drupal:scaffold"
        ]
    }
}
🇺🇸United States anilu@ Houston, TX

After a few hours of investigation I found that the original function in core book is overriding the Constrain validator from the contributed module. I was able to fix the error by manually deleting core/modules/book.

Not sure how we will solve this issue but, I created a follow up ticket https://www.drupal.org/project/book/issues/3519344 🐛 Cannot save unpublished versions of published content with Layout Builder Active

🇺🇸United States anilu@ Houston, TX

Last development version for this module has the required validation for $value->book on src/Plugin/Validation/Constraint/BookOutlineConstraintValidator.php

if (isset($value) && !empty($value->book) && !$value->isNew() && !$value->isDefaultRevision()) {

This should be working, but is not. This may be related to the update from core to contrib module.

🇺🇸United States anilu@ Houston, TX

The primary issue is with the BookOutlineConstraintValidator in the Book module. This validator is designed to prevent changes to book outlines in non-default (draft) revisions.
The key problematic code is in the validate() method of the BookOutlineConstraintValidator class:

public function validate($entity, Constraint $constraint): void {
  // Validate the book structure when the user has access to manage book
  // outlines. When the user can manage book outlines, the book variable will
  // be populated even if the node is not part of the book. If the user cannot
  // manage book outlines, the book variable will be empty, and we can safely
  // ignore the constraints as the outline cannot be changed by this user.
  if (isset($entity) && !$entity->isNew() && !$entity->isDefaultRevision()) {
    /** @var \Drupal\Core\Entity\ContentEntityInterface $original */
    $original = $this->bookManager->loadBookLink($entity->id(), FALSE) ?: [
      'bid' => 0,
      'weight' => 0,
    ];
    if (empty($original['pid'])) {
      $original['pid'] = -1;
    }

    if ($entity->book['bid'] != $original['bid']) {
      $this->context->buildViolation($constraint->message)
        ->atPath('book.bid')
        ->setInvalidValue($entity)
        ->addViolation();
    }
    // Additional validation code...
  }
}

This constraint validator triggers when:

  1. An entity exists (isset($entity))
  2. The entity is not new (!$entity->isNew())
  3. The entity is not the default revision (!$entity->isDefaultRevision())
🇺🇸United States anilu@ Houston, TX

I have a production D10 website where I successfully moved to the book module. However, I found an Issue with layout builder revisions that does not allows me to save content in draft. I removed the book module and draft estate and revisions are working with Content Moderation. But I do not want to remove the module from production.

This may be related https://www.drupal.org/project/book/issues/2918537 🐛 Cannot save unpublished versions of published content for users without manage book privileges Needs work

🇺🇸United States anilu@ Houston, TX

anilu@ created an issue.

🇺🇸United States anilu@ Houston, TX

Thanks @avpaderno, we are still working on this issue. We are at the mentoring room at Drupalcon Atlantla working on this. The change record is still in draft version but we have completed the requested change to the documentation in https://www.drupal.org/node/161085#readme

🇺🇸United States anilu@ Houston, TX

Documentation to complete this ticket can be found in the ticket tags > about tags https://www.drupal.org/list-changes/drupal

🇺🇸United States anilu@ Houston, TX

Hi my name is Ana (@anilu) and we are at Drupalcon Atlanta mentored contribution workshop and are working in documentation for Media core module

🇺🇸United States anilu@ Houston, TX

Hi my name is Ana (@anilu) and we are at Drupalcon Atlanta mentored contribution workshop and are working in documentation for Media core module

🇺🇸United States anilu@ Houston, TX

https://www.drupal.org/ixp is Ready to write on it. I am working with @camoa on documentation structure. Some of this sections look repetitive, but we will clean that as we write.

Proposed Documentation Structure for www.drupal.org/ixp

Homepage

  • Brief overview:
  • Key statistics: Number of organizations participating, IXPs hired, etc. (if available)
  • Clear pathways: Three main buttons/sections for primary audiences:
  • For New Developers → Learn about becoming an IXP
  • For Organizations → Learn about hiring IXPs and earning contribution credits
  • For Volunteers → Learn about supporting the initiative
  • Success stories: Brief highlight of a success story (can be expanded later)
  • Latest news: Recent updates about the initiative

What is an IXP?

  • Definition, requirements, and skills expected

For New Developers

  • Benefits of joining - Career growth, mentorship, community integration
  • How to qualify - Detailed breakdown of recommended skills
  • Finding opportunities - How to find and apply for IXP positions
  • During your IXP experience - What to expect, reporting requirements
  • Best practices for IXPs - Tips for success
  • Beyond the IXP program - Next steps for career growth
  • Success stories - Testimonials from former IXPs

For Organizations

  • Why hire an IXP? - Business case and benefits
  • Program requirements - Detailed explanation of all requirements
  • Credits and incentives - Explanation of the 250 contribution credits and other benefits
  • How to participate - Step-by-step guide:
    • Getting approved as an IXP organization
    • Posting IXP jobs
    • Selection and onboarding process
    • Mentorship requirements
    • Reporting requirements
    • Program completion and credit awarding
      • Best practices for employers - Tips for successful mentorship and integration
      • Case studies - Successful implementation stories
      • FAQ - Common questions from organizations

      For Volunteers/Reviewers

      • Volunteer opportunities - Different ways to contribute
      • Reviewer responsibilities - Detailed explanation of reviewer tasks
      • Workflows and processes - How to use the tracking system
      • Promotion opportunities - Ways to help promote the initiative

      Program Process & Requirements

      • Complete process overview - Visual flowchart of the entire process
      • For IXPs - Requirements and responsibilities
      • For Organizations - Requirements and responsibilities
      • For Reviewers - Requirements and responsibilities
      • Contribution guidelines - How contribution credits work
      • Documentation & reporting - All required forms and documentation

      Resources

      • Forms and templates - All necessary forms
      • Best practices documentation - Comprehensive guides
      • IXP management site - Link to the tracking platform
      • External resources - Links to related initiatives and case studies
      • Contact information - How to reach the IXP initiative team

      About the Initiative

      • History and mission - Background on how and why the initiative started
      • Initiative team - Key people involved
      • Roadmap - Future plans for the initiative
      • Get involved - How to join the initiative team
      • This structure provides clear pathways for the three main audiences while making sure all the detailed information from your documents is organized logically. It prioritizes helping people understand and navigate the process to facilitate successful participation in the program.
🇺🇸United States anilu@ Houston, TX

It looks like https://www.drupal.org/about/media-kit/logos has been updated and it contains a link to https://drupal.widencollective.com/portals/gfvztttq/BrandPortal. The logos kit still the same and is a little confusing wish logo we need to use but I think the last version is d10.

🇺🇸United States anilu@ Houston, TX

Thanks Flux I really like the proposal. Though it feels a little long, but maybe on a multiple steps forms gon't get the same feeling. Also, this people really want to share their stories.

🇺🇸United States anilu@ Houston, TX

A Intership program case study shared on a community event AGENCY & BUSINESS - How Drupal Internship can help The Drupal Project and your Organization https://youtu.be/5Mikg9hJGDE?si=dLWiYj-2bb4_dvmN

🇺🇸United States anilu@ Houston, TX

Thanks to Mauricio Dinarte for sharing this link in the Slack channel.

From Novice to Expert: Nurturing the Next Generation of Drupal Devs
https://www.youtube.com/watch?v=kPZH39iiFWo

🇺🇸United States anilu@ Houston, TX

Assigning to myself to come back later and review

🇺🇸United States anilu@ Houston, TX

Thanks for sharing this document https://www.drupal.org/project/ixp/issues/3451808#comment-15979757 📌 Gather feedback from people who started as Inexperienced Developers Active it think it will be very useful along the journey. I took a couple of things from it and updated the ticket. Please feel free to prepare a survey so we could reviewed.

My initial toughs will be:
- Look what has been used by the community until now, and how feasible will be to use some tooling at this part of the process.
- Define a few fields so people can share their experience. Something like:
-- Name Fist / Last Optional
-- Country
-- Language
-- Companies relationships : study, first work opportunity,...
-- Mentors / special thanks to:
-- A little background / where are cumming from
-- Tell your experience
-- Takeaways
-- Links

🇺🇸United States anilu@ Houston, TX

We appreciate all the information you can share about Government hiring policies and training. I personally not familiar with the local regulations and this could be different from country to country. But, this initiative is in principle open to everyone that want's to collaborate and tries to limit to a minimum the requirements so every organization can function with its own structure.

Having said that, I would like to open some questions for the discussion:
- Can a government agency or organization endorse a contractor or service provider with the task of teaching and training people to work in Drupal? What are the implications of this professional relationship?
- Can a government agency or organization maintain a contractual relationship while allowing employees to trains and collaborate?
- Can a goverment agency or organization backup the work of both mentors and IXP mentees giving them the time and resources to collaborate and complete the documentation required to complete the program?

Please, if you are not familiar with the proposal refer to https://www.drupal.org/project/ixp/issues/3478419 🌱 IXP Phase 2 proposed process Active . At this moment we are working in the publication of the official landing pages for the program.

🇺🇸United States anilu@ Houston, TX

Removing initial request for help on issues:

Help us with the main 5 Issues here:

https://www.drupal.org/project/issues/ixp?categories=All

🇺🇸United States anilu@ Houston, TX

Removing Survey, as this as already closed.

Right we are running a survey, help us with your answer for the core competencies of an IXP. 

IXP core competencies survey

🇺🇸United States anilu@ Houston, TX

anilu@ created an issue.

🇺🇸United States anilu@ Houston, TX

Functions file_create_url() and file_url_transform_relative() are deprecated

https://www.drupal.org/node/2940031

🇺🇸United States anilu@ Houston, TX

I have this issue on a production site but this ticket haven't been updated in 2 years. I could try to rebase the branch but before that, have someone found a better workaround?

🇺🇸United States anilu@ Houston, TX

Patch needs reroll

🇺🇸United States anilu@ Houston, TX

I tested the MR13 on a production project and is working. @rigoucr Do you mind testing the new PR and move the ticket to tested by the community if the solutions works for you?

🇺🇸United States anilu@ Houston, TX

I tested MR !13 on a client project and did not work. I keep getting the TypeError: Drush\Commands\DrushCommands::logger(): error

I tried to fix the Mr and created an issue directly in gihub as required in the module documentation https://github.com/pantheon-systems/search_api_pantheon/issues/200

🇺🇸United States anilu@ Houston, TX

I check the modules versions and compatibility with Drupal 10. Some of the modules have been tag as minimal maintained or deprecated.

🇺🇸United States anilu@ Houston, TX

To avoid spam consider blocking any email with a specific pattern. For example @wearehackerone.com or public emails like @gmail.com or @yahoo.com and allow only corporative emails address.

^((?!@wearehackerone\.com|@gmail\.com).)*$
🇺🇸United States anilu@ Houston, TX

I tried changing the module to the previous version and got an error when apliying the patch. I think this is cause to merging conflicts.

The fork was created from 8.1 and not from 8.x so I am not sure how to update the code to work with the last version of the code. I will keep looking into it during the week. If someone has an idea on how to fix the PR I will appreciated.

Mean while the remaning work will be to create a new branch from 8.x and applied the same changes as in https://git.drupalcode.org/project/search_api_pantheon/-/merge_requests/...

🇺🇸United States anilu@ Houston, TX

Same issue for me,
Drupal version 10.3.10
Drush 13
Search Api Pantheon ^8.2

I applied the patch with composer and I get the same error

lando drush en devel
TypeError: Drush\Commands\DrushCommands::logger(): Return value must be of type ?Drush\Log\DrushLoggerManager, Drupal\Core\Logger\LoggerChannel returned in /app/vendor/drush/drush/src/Commands/DrushCommands.php on line 77 #0 /app/vendor/drush/drush/src/Runtime/ServiceManager.php(480): Drush\Commands\DrushCommands->logger()
#1 /app/vendor/drush/drush/src/Boot/DrupalBoot8.php(282): Drush\Runtime\ServiceManager->inflect(Object(League\Container\Container), Object(Drupal\search_api_pantheon\Commands\Reload))
#2 /app/vendor/drush/drush/src/Boot/DrupalBoot8.php(218): Drush\Boot\DrupalBoot8->addDrupalModuleDrushCommands(Object(Drush\Boot\BootstrapManager))
#3 /app/vendor/drush/drush/src/Boot/BootstrapManager.php(211): Drush\Boot\DrupalBoot8->bootstrapDrupalFull(Object(Drush\Boot\BootstrapManager), NULL)
#4 /app/vendor/drush/drush/src/Boot/BootstrapManager.php(397): Drush\Boot\BootstrapManager->doBootstrap(5, 6, NULL)
#5 /app/vendor/drush/drush/src/Application.php(219): Drush\Boot\BootstrapManager->bootstrapMax()
#6 /app/vendor/drush/drush/src/Application.php(185): Drush\Application->bootstrapAndFind('pm:install')
#7 /app/vendor/symfony/console/Application.php(266): Drush\Application->find('pm:install')
#8 /app/vendor/symfony/console/Application.php(175): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#9 /app/vendor/drush/drush/src/Runtime/Runtime.php(110): Symfony\Component\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#10 /app/vendor/drush/drush/src/Runtime/Runtime.php(40): Drush\Runtime\Runtime->doRun(Array, Object(Symfony\Component\Console\Output\ConsoleOutput))
#11 /app/vendor/drush/drush/drush.php(140): Drush\Runtime\Runtime->run(Array)
#12 /app/vendor/bin/drush.php(119): include('/app/vendor/dru...')
#13 {main}
TypeError: Drush\Commands\DrushCommands::logger(): Return value must be of type ?Drush\Log\DrushLoggerManager, Drupal\Core\Logger\LoggerChannel returned in Drush\Commands\DrushCommands->logger() (line 77 of /app/vendor/drush/drush/src/Commands/DrushCommands.php).
 [warning] Drush command terminated abnormally.
🇺🇸United States anilu@ Houston, TX

You can also create a view block with content of the same kind, place the block on your page or in the block layout and remove the current node from the view.

🇺🇸United States anilu@ Houston, TX

As the issue is in a module dependency and not the module itself, we need to wait until library maintainers approve the PR. For now, I apply the patch with composer using the vendor folder as this:

 "vendor/caxy/php-htmldiff": {
                "TableDiff: Deprecated function mb_convert_encoding() in PHP 8.2 - [#123]" : "https://patch-diff.githubusercontent.com/raw/caxy/php-htmldiff/pull/125.patch"
            }
🇺🇸United States anilu@ Houston, TX

Having the same issue on a different use case, I have view with exposed filters but "Exposed form in block" is disabled. I am using the page view with ajax and also have a view template with a subtitle that should change when filter selections change.
The view filters are working but when I click on reset the exposed values change but the subtitle in the twig template is not refreshing.

🇺🇸United States anilu@ Houston, TX

This documentation seams to be obsolete. If you go to the right menu you see the general topic is for Drupal 5x

🇺🇸United States anilu@ Houston, TX

I disabled the module with a Drush command and it worked for me. If you do not have drush installed on your local environment is very useful in many other use cases so I reccomment you install Drush and run $ drush un layout_builder_expose_all_field_blocks       

🇺🇸United States anilu@ Houston, TX

NOTICE: Even though this solution should work, you should never override any file inside of your core folder. This may cause issues with the next Drupal update. Instead, try overriding the same template using your own theme. Here is a user guide to do this  https://www.drupal.org/docs/develop/theming-drupal/twig-in-drupal/workin...

🇺🇸United States anilu@ Houston, TX

I applied the patch and tested on a web site and is working.

Drupal Version 10.2.6
PHP 8.2.21

🇺🇸United States anilu@ Houston, TX

I made a revision of the page, and found some improvements.

Styles improvements:
1. Make the Logo 80px width
2. Fix the categories and project details alignment so is staked below the title.
3. Remove border and background from carousel arrows. Make them 40width.

Accessibility:
Follow general guides from https://www.w3.org/WAI/tutorials/carousels/ (I should be able to find better documentation if needed)
1. Carousel should be accessible from the keyboard. User should be able to tab true the carousel controls and move back and forward.
2. Remove the Aria-hidden from the carousel container. And maybe added to the hidden slides instead.
3. Images should be contained on a list element.
4. Add carousel dots (meatballs) at the bottom. Dots should have data-slide=# corresponding to the number on the slide.
5. Add aria-label='Next slide' to the carousel arrow next and 'Previous slide'

🇺🇸United States anilu@ Houston, TX

We have a similar use case on a decoupled website. When we expose the data to GraphQL we are getting a string with the styles machine names but not the classes.

query MyQuery {
  node(id: "749d54d4-04f9-443f-a2cc-3ca56f7266f2") {
    ... on NodePage {
      id
      path
      title
      sections {
        components {
          id
        }
        settings
        id
      }
    }
  }
}
🇺🇸United States anilu@ Houston, TX

I have a similar use case on a decoupled website. We are also using background colors but in this case I need to send the same color variable to the FE to change Layouts and Blocks. For now I am using a Select list for the blocks because I can not apply the color background to specific blocks. On this way, I have background color on blocks for specific use cases and layout builder styles for the layouts.

Production build 0.71.5 2024