=
3.228.220.31

Daschmi's Notizblog

Logo des Etikators - Tool um online drucken von Etiketten für selbst angefertigte Tinkturen

Mit php einen Array in x Teile teilen

Erstellt in Sonstiges am 30. Juni 2020

Mit array_chunk kann man einen Array teilen und dabei die Größe der Teile angeben. Bei kleineren Arrays kann man die benötigte Größe der Teile mit floor ermitteln. Hat man aber einen Array mit vielen Elementen so kann man folgende Funktion benutzen.

function part(array $ar, int $pices) {

    $size = sizeof($ar);

    $chunk_size = floor($size / $pices);
    $pr = $size % $pices;

    $r = []; $k = 0;

    for ($i = 0; $i < $pices; $i ++) {

        $j = ($i < $pr)?$chunk_size + 1:$chunk_size;
        $r[$i] = array_slice($ar, $k, $j);

        $k += intval($j);

    }

    return $r;

}

var_dump(part([1,2,3,4,5,6,7,8], 2);

Neue Bibliothek zur datenschutzkonformen Verwendung von Open Streetmap

Erstellt in Sonstiges am 15. Mai 2020

Für die Verwendung von OpenStreetMap nach der DSGVO habe ich eine kleine Bibliothek entwickelt. Diese bindet die Karte erst nach erfolgtem Opt-In ein.

Eine Beispielanwendung finden Sie hier und die Bibliothek selbst finden Sie hier.

Mit TYPO3 und VHS überprüfen ob eine Seite unter einer anderen Seite liegt

Erstellt in Sonstiges am 12. Mai 2020

Mit folgendem Fluid Tempalate Code kann man mittels VHS überprüfen ob eine Seite unter einer anderen Seite liegt.

<f:variable name="rootline" value="{v:page.rootline() -> v:iterator.extract(key: 'uid')}" />
<f:variable name="in_rootline" value="{v:condition.iterator.contains(needle:'3', haystack: rootline, then:'1', else:'0')}" />

Mittels

<f:debug>{rootline}</code>
<f:debug>{in_rootline}</code>

Kann man dies in <f:if> etc. verwenden. in_rootline wird 1 wenn die Seite enthalten ist und 0 wenn die Seite nicht enthalten ist.

Section Frame Wrap nach TYPO3 DCE Update weg

Erstellt in Sonstiges am 7. April 2020

Nach einem Update von TYPO3 und der DCE Extension war bei mir der umschließende Container weg. Die Default.html aus dem Layout von FluidStyledContent wurde gar nicht verwendet.

Der Grund war diese neue Option, die nun standardmäßig auf an steht.

Ich habe von TYPO3 9.5.4 auf 9.5.15 und die DCE Extension von 1.6.0 auf 2.3.1 aktualisiert.

Gleichschenkliges Dreieck auf Gerade um Punkt (Pfeil)

Erstellt in Sonstiges am 25. März 2020

Mit folgender Funktion kann man ein gleichschenkliges Dreieck mit BC = hc auf ein Canvas zeichnen. Dei Position des Dreieckes ist durch die zwei Punkte A und D bestimmt, die die Strecke von A nach D definieren.

Die Funktion kann rechts getestet werden. Der Javascript Code folgt hier:

let canvas = document.getElementById('canvas');
        
function arrow(Ex, Ey, Tx, Ty) {

    let ctx = canvas.getContext('2d'); 

    let ET = Math.sqrt(Math.pow(Tx - Ex, 2) + Math.pow(Ey - Ty, 2));
    let EL = Math.sqrt(Math.pow(ET / 2, 2) + Math.pow(ET, 2));
    let Alpha = Math.acos(ET / EL);
    let Alpha2 = Math.asin((Ey - Ty) / ET);

    let x_L = EL * Math.cos(Alpha + Alpha2);
    let y_L = EL * Math.sin(Alpha + Alpha2);

    let x_R = EL * Math.cos(Alpha - Alpha2);
    let y_R = EL * Math.sin(Alpha - Alpha2);

    let Rx = Ex + ((Tx > Ex)?1:-1) * x_R;
    let Ry = Ey + y_R;

    let Lx = Ex + ((Tx > Ex)?1:-1) * x_L;
    let Ly = Ey - y_L; 

    ctx.clearRect(0, 0, 300, 300);

    ctx.beginPath();
    ctx.moveTo(Ex, Ey);
    ctx.lineTo(Rx, Ry);
    ctx.lineTo(Lx, Ly);
    ctx.lineTo(Ex, Ey);
    ctx.stroke(); 

}

canvas.addEventListener('mousemove', function(e) { 
    
    arrow(150, 150, e.offsetX, e.offsetY);

});