Hauptmenü

Werkzeuge

Kategorien

Archiv

Einhell

EXIF Bildrotation mit gd / imagerotate korrigieren

Erstellt in PHP am 12. Oktober 2022 vom Daschmi

Möchte man mittels der GD-Bibliothek die Drehung/Spiegelung von Bildern anhand der EXIF Meta Daten korrigieren kann man folgenden Code verwenden:

$srcImage = @imagecreatefrompng($src_file);

$exif = exif_read_data($src_file);

if ($exif && !empty($exif['Orientation'])) {

  $srcImage = match ($exif['Orientation']) {
    8 => imagerotate($srcImage, 90, 0),
    3 => imagerotate($srcImage, 180, 0),
    6, 5, 7 => magerotate($srcImage, -90, 0)
  };

}

Filter/Action unter WordPress innerhalb von Namespaces verwenden

Erstellt in Wordpress am 5. Oktober 2022 vom Daschmi

Nutzt man Namespaces und möchte unter WordPress mit add_filter oder add_action ein Callback übergeben, kann man so vorgehen:

namespace ds;

function wp_enqueue_scripts() {

}

\add_action('wp_enqueue_scripts', __NAMESPACE__.'wp_enqueue_scripts');

Verzeichnis rekursiv mit PHP kopieren

Erstellt in PHP am 23. September 2022 vom Daschmi

abstract class DirHelper {

    public static function cpdir(string $source, string $target): void {
        
        $src_dir = opendir($source);
        
        mkdir($target);
        
        while (($file = readdir($src_dir))) {

            if (!in_array($file, ['.', '..'])) {
        
                if (is_dir($source.DIRECTORY_SEPARATOR.$file)) {
            
                    self::cpdir($source.DIRECTORY_SEPARATOR.$file, $target.DIRECTORY_SEPARATOR.$file);
        
                } else {
            
                    copy($source.DIRECTORY_SEPARATOR.$file,$target.DIRECTORY_SEPARATOR.$file);
            
                }

            }

        }
        
        closedir($src_dir);

    }

}

Link zur Datenschutzseite

Erstellt in Wordpress am 4. September 2022 vom Daschmi

Um den Link zur Datenschutzseite für WordPress zu generieren kann folgender Code verwendet werden.

<?php echo get_permalink(get_option('wp_page_for_privacy_policy')); ?>

Vue3 Composition API Spickzettel

Erstellt in Javascript am 1. September 2022 vom Daschmi

import { defineEmits, watch, inject, defineProps, computed, ref } from "vue";

Eigene Events mit defineEmits definieren

const emit = defineEmits(['select']);

...

emit('select');

Watcher definieren

watch(var, (newValue) => { .. });

Funktion aus Elternklasse nutzen

const xhr = inject(xhr);

Properties definieren

const props = defineProps(['label', 'invoicein']);

Computed Properties

const var = computed(() => { return ... };

HTML Referenzen nutzen

<script setup>

  let form = ref(null);

</script>

<template>
  <form ref="form">
  ...
</template>

Router mit Properties

#router.js
..
{ path: 'user/:id', component: CustomerUserEdit, props:true }
..

#.vue
const props = defineProps(['id']);

Methoden einer Komponente über ref nach außen verfügbar machen

defineExpose({
  toggleDisplay
});