Skip to content

Instantly share code, notes, and snippets.

@prashantdsala
prashantdsala / example.module
Created April 12, 2023 06:37
Drupal - Alter views query and add where conditions
<?php
/**
* Implements hook_views_query_alter().
*/
function mymodule_announcements_views_query_alter(Drupal\views\ViewExecutable $view, Drupal\views\Plugin\views\query\QueryPluginBase $query) {
// Alter annoucements views.
if (($view->id() == 'announcements')) {
if ($view->current_display == 'page_announcements' || $view->current_display == 'block_announcements') {
$current_user_id = \Drupal::currentUser()->id();
$user_service = \Drupal::service('my_service.user');
@prashantdsala
prashantdsala / interfaces.php
Created March 21, 2023 09:50
Example of implementing interfaces in PHP
<?php
// Define the interface for a payment gateway
interface PaymentGateway {
public function processPayment(float $amount): bool;
}
// Define a class for a credit card payment gateway that implements the PaymentGateway interface
class CreditCardGateway implements PaymentGateway {
private string $apiKey;
@prashantdsala
prashantdsala / traits.php
Created March 21, 2023 09:44
Traits example in PHP
<?php
// In this example, we define a trait called Greetings which contains two methods: sayHello() and sayGoodbye().
// We then define a class called Person and use the Greetings trait within it using the use keyword.
// This allows the Person class to have access to the methods defined in the Greetings trait.
// We create an instance of the Person class and call the sayHello() and sayGoodbye() methods,
// which output "Hello!" and "Goodbye!", respectively.
trait Greetings {
public function sayHello() {
echo "Hello!";
}
@prashantdsala
prashantdsala / example.php
Last active March 21, 2023 07:26
How to load media entity and get the uploaded file details from media entity programatically in Drupal
<?php
use Drupal\media\Entity\Media;
use Drupal\file\Entity\File;
use Drupal\Core\Url;
// Load the media
$media_id = <Replace with the id of media entity>;
$media = Media::load($media_id);
// Get file id from the media.
@prashantdsala
prashantdsala / file-download.php
Last active March 21, 2023 07:05
PHP script to directly download any file type from external URL using cURL
<?php
/**
* Generic function to direct download any type of file.
*/
function directDownloadAnyFile($file, $newfilename = '', $mimetype='', $isremotefile = false) {
$formattedhpath = "";
$filesize = "";
@prashantdsala
prashantdsala / splat_operator.php
Last active March 10, 2023 05:29
Splat/Variadic operator (3 dots ...) in PHP
<?php
// The splat operator (also known as the variadic operator) in PHP is represented by three dots (...)
// It allows you to pass an arbitrary number of arguments to a function or method.
// Here's an example of using the splat operator in PHP:
function addNumbers(...$numbers) {
$sum = 0;
foreach ($numbers as $number) {
$sum += $number;
@prashantdsala
prashantdsala / named_arguments.php
Created March 10, 2023 05:20
Named arguments in PHP 8
<?php
// Named arguments were introduced in PHP 8,
// and they allow you to pass arguments to a function or method by specifying the name of the argument
// rather than relying on the order in which the arguments are defined.
// Here's an example of using named arguments in PHP:
function createUser($name, $email, $age) {
echo "Name: $name <br>";
@prashantdsala
prashantdsala / customForm.php
Last active March 10, 2023 05:08
How to redirect from a Form using setRedirectUrl() method in Drupal
<?php
In the submitForm() method of your form class, create a new instance of the RedirectResponse class, which is used to redirect to a new URL.
// Use the setRedirectUrl() method to set the URL to which you want to redirect. You can pass the URL as a string or as an instance of the Url class.
// Return the RedirectResponse object from the submitForm() method to trigger the redirect.
// Here's an example of how to use setRedirectUrl() in a form class:
use Drupal\Core\Form\FormStateInterface;
use Drupal\Core\Routing\RedirectDestinationInterface;
@prashantdsala
prashantdsala / modulename.install
Created March 9, 2023 05:16
How to create a custom table using hook_schema() from .install file in Drupal
<?php
/**
* @file
* Install, update and uninstall functions for the modulename module.
*/
/**
* Implements hook_schema().
@prashantdsala
prashantdsala / custom_template.module
Created March 6, 2023 10:55
How to create a custom template file in Drupal
<?php
/**
* @file
* Primary module hooks for Custom Template module.
*/
/**
* Implements hook_theme().
*/