Skip to content

Instantly share code, notes, and snippets.

View theking2's full-sized avatar
🎯
contemplating the odds

Johannes Kingma theking2

🎯
contemplating the odds
View GitHub Profile
@theking2
theking2 / selector.js
Created June 30, 2024 11:36
compact selector
/**
* returns a static (not live) NodeList representing a list of the document's elements that match the specified group of selectors.
* @param {string} selector
* @param {Element} [document] base
* @returns {(NodeList|Element|null)}
*/
const $ = (selector, base = document) => {
let elements = base.querySelectorAll(selector);
return (elements.length == 0) ? null : (elements.length == 1) ? elements[0] : elements;
}
@theking2
theking2 / ReplaceInFormFields.bas
Created June 29, 2024 12:50
ReplaceInFormFields
Private Sub ReplaceInFormFields(Semester)
Dim mergeField As Field
Dim fieldCode As String
' Loop through each merge field
For Each mergeField In ActiveDocument.Fields
If mergeField.Type = wdFieldMergeField Then
' Get the field code text
fieldCode = mergeField.Code.Text
<?php declare(strict_types=1);
/**
* ZipStepResponse
*
* This class creates a ZIP archive of the specified directory.
* With the name of the archive, it creates a new archive name if the current one is too large.
* in small steps to avoid PHP timeouts
*/
class ZipStepResponse
{
@theking2
theking2 / read-json-body.php
Last active June 17, 2024 16:50
read json body in php
<?php
$request = json_decode( file_get_contents( 'php://input' ) );
@theking2
theking2 / my.ini
Created June 6, 2024 10:11
charset/collation mariadb
character_set_server=utf8mb4
collation_server=utf8mb4_unicode_520_ci
@theking2
theking2 / call-sp.inc.php
Created June 5, 2024 18:41
call sp and return the last paramete
function call_sp( \mysqli|\PDO $db, string $sp_name, ...$params ): string
{
$placeholders = array_fill( 0, count( $params ), "?" );
$placeholders[] = "@__newid;
$sql = "CALL $sp_name( " . implode( ", ", $placeholders ) . " );";
try {
LOG->debug( "calling Stored Procedure", [ "sql" => $sql ] );
if( $db instanceof \mysqli ) {
@theking2
theking2 / NotificationAlert.js
Last active June 5, 2024 11:14
JavaScript class for notifications
/**
* class Notifications asks for notification
*/
class NotificationAlert {
constructor() {
this.#askNotificationPermission();
}
/**
* ask permissions for Notification, if not granted use alerts
*/
@theking2
theking2 / plugin_class.php
Created May 11, 2024 15:12
WordPress Bootstrap function to load actions and filters
<?php declare(strict_types=1);
abstract class PluginName
{
public function __construct()
{
$this->bootstrap();
}
private function bootstrap()
@theking2
theking2 / regexp_search.md
Last active January 26, 2025 19:10
Replace array() by []
what how
Search ([\s\r\n]*)array[\s\r\n]*\(([\s\r\n]*[^()\s](?:[^()]*[^()\s])?[\s\r\n]*)\)
Replace $1[$2]

Perhaps repeat for nested arrays

@theking2
theking2 / index.php
Created May 8, 2024 07:29
Export stored procedures and function for easy versioning
<?php declare(strict_types=1);
define('NO_SESSION', true);
define('NO_AUTH', true);
require "../inc/config.inc.php";
function show_routine(string $type, string $name) {
global $db;
$query = "SHOW CREATE $type `$name`";
$result = $db->query( $query );
foreach( $result as $row ) {