Skip to content

Instantly share code, notes, and snippets.

@chx
chx / PauseRedirectRequestSubscriber.php
Created September 17, 2022 20:14
Pause redirect module
View PauseRedirectRequestSubscriber.php
<?php
namespace Drupal\pause_redirect\EventSubscriber;
use Drupal\Core\Messenger\MessengerInterface;
use Drupal\pause_redirect\Form\PauseRedirectSettingsForm;
use Drupal\redirect\EventSubscriber\RedirectRequestSubscriber;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\HttpKernel\Event\RequestEvent;
@chx
chx / MapItemTest.php
Created October 31, 2020 08:30
map item test
View MapItemTest.php
<?php
namespace Drupal\Tests\field\Kernel;
use Drupal\entity_test\Entity\EntityTestMapField;
class MapItemTest extends FieldKernelTestBase {
protected function setUp(): void {
parent::setUp();
@chx
chx / resolve.php
Last active May 2, 2020 21:17
Drupal config export YAML diff resolver
View resolve.php
<?php
use Drupal\Core\Serialization\Yaml;
include 'autoload.php';
chdir('..');
$old = Yaml::decode(shell_exec('git show origin/master^:' . $argv[1]));
$new = Yaml::decode(shell_exec('git show origin/master:' . $argv[1]));
$diff = make_diff($new, $old);
View Redirector.json
{
"createdBy": "Redirector v3.5.3",
"createdAt": "2020-04-16T03:37:40.345Z",
"redirects": [
{
"description": "No more JIRA popups",
"exampleUrl": "https://example.atlassian.net/secure/RapidBoard.jspa?rapidView=102&modal=detail&selectedIssue=WEB-8424&quickFilter=107",
"exampleResult": "https://example.atlassian.net/browse/WEB-8424",
"error": null,
"includePattern": "^(.*atlassian.net)/secure/RapidBoard.jspa.*modal=detail&selectedIssue=([^&]+)",
@chx
chx / gist:9dbace679a8798f96da4a40e4df51902
Last active March 4, 2020 04:44
Config export from production
View gist:9dbace679a8798f96da4a40e4df51902
On production:
rm -Rf /tmp/cex/* /tmp/cex.tgz
drush cex --destination=/tmp/cex -y sync
cd /tmp/cex
tar czf ../cex.tgz .
On local:
@chx
chx / rest.resource.user_registration.yml
Last active February 14, 2020 08:22
Drupal 8 JSON user cycle
View rest.resource.user_registration.yml
To register (admin needs to install rest module, add the registration resource attached, the right registration settings and the user permission 'restful post user_registration' granted to anonymous):
➜ curl -H "Content-type: application/json" -X POST 'http://localhost/docroot/user/register?_format=json' --data '{"name":{"value":"test name"},"mail":{"value":"chx1975@gmail.com"},"pass":{"value":"test pass"}}'
{"uid":[{"value":14048}],"uuid":[{"value":"6494d669-086a-451f-b7e5-573ffb4e1dfe"}],"langcode":[{"value":"hu"}],"name":[{"value":"test name"}],"created":[{"value":"2020-02-14T05:18:53+00:00","format":"Y-m-d\\TH:i:sP"}],"changed":[{"value":"2020-02-14T05:18:53+00:00","format":"Y-m-d\\TH:i:sP"}],"default_langcode":[{"value":true}],"synonyms":[]}%
To log in (unpatched core requires a user name here but I patched it so users can use their email as well):
➜ curl -c cookie.txt --request POST 'http://localhost/docroot/user/login?_format=json' --data '{"name":"chx1975@gmail.com","pass":"test pass"}'
{"current_
View gist:929fbcebc80cc5ead5c6a8684d5a33db
To register:
➜ fortepan git:(master) ✗ curl -H "Content-type: application/json" -X POST 'http://localhost/fortepan/docroot/user/register?_format=json' --data '{"name":{"value":"test name"},"mail":{"value":"chx1975@gmail.com"},"pass":{"value":"test pass"}}'
{"uid":[{"value":14048}],"uuid":[{"value":"6494d669-086a-451f-b7e5-573ffb4e1dfe"}],"langcode":[{"value":"hu"}],"name":[{"value":"test name"}],"created":[{"value":"2020-02-14T05:18:53+00:00","format":"Y-m-d\\TH:i:sP"}],"changed":[{"value":"2020-02-14T05:18:53+00:00","format":"Y-m-d\\TH:i:sP"}],"default_langcode":[{"value":true}],"synonyms":[]}%
To log in (unpatched core requires a user name here but I patched it so users can use their email as well):
➜ fortepan git:(master) ✗ curl -c cookie.txt --request POST 'http://localhost/fortepan/docroot/user/login?_format=json' --data '{"name":"chx1975@gmail.com","pass":"test pass"}'
{"current_user":{"uid":"14048","name":"test name"},"csrf_token":"AH8CpdwKyNdoTI89F3tUypGm470Qi9eQYYbeS-wK7is","logout_token":"NAH-
View slcs.info.yml
name: 'Scale Language Content Settings'
type: module
description: 'Scale Language Content Settings form'
core: 8.x
View x.php
<?php
interface foo {
}
interface bar {
function foo(Foo $foo);
}
class broken implements bar {
function foo(bar $x) {}
}
@chx
chx / gist:50db023a4c300f99850b3fe78a135811
Created February 27, 2019 00:53
redirect rehash in mysql
View gist:50db023a4c300f99850b3fe78a135811
REPLACE(REPLACE(REPLACE(
TO_BASE64(UNHEX(SHA2(CONCAT(:string1, LENGTH(language), :string2, language, :string3, LENGTH(redirect_source__path), :string4, redirect_source__path, :string5), 256))),
'+', '-'), '/', '_'), '=', '') AS hash_calc,
':string1' => 'a:2:{s:8:"language";s:',
':string2' => ':"',
':string3' => '";s:6:"source";s:',
':string4' => ':"',
':string5' => '";}',