<?php
/**
 * Les fonctions helpers des modèles
 *
 * @package Evarisk\Plugin
 */

namespace digi;

if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * Transforme le contenu d'un point (html) en chaîne standard
 *
 * @param string $element L'action corrective
 *
 * @author: bilponse
 * @author_uri: https://github.com/bilponse
 *
 * @since 6.2.10
 * @version 6.3.1
 */
function point_to_string( $element ) {
	$content = $element->data['content'];
	$content = str_replace( "<br/>","\r\n", $content );
	$content = str_replace( "<div>","\r\n", $content );
	$content = str_replace( "</div>","", $content );
	$content = html_entity_decode( $content );
	$content = strip_tags( $content );
	$content = $element->data['date']['rendered']['date_human_readable'] . ': ' . $content . "\r";
	return $content;
}

function crypt_apr1_md5($plainpasswd)
{
	$tmp = '';
    $salt = substr(str_shuffle("abcdefghijklmnopqrstuvwxyz0123456789"), 0, 8);
    $len = strlen($plainpasswd);
    $text = $plainpasswd.'$apr1$'.$salt;
    $bin = pack("H32", md5($plainpasswd.$salt.$plainpasswd));
    for($i = $len; $i > 0; $i -= 16) { $text .= substr($bin, 0, min(16, $i)); }
    for($i = $len; $i > 0; $i >>= 1) { $text .= ($i & 1) ? chr(0) : $plainpasswd{0}; }
    $bin = pack("H32", md5($text));
    for($i = 0; $i < 1000; $i++)
    {
        $new = ($i & 1) ? $plainpasswd : $bin;
        if ($i % 3) $new .= $salt;
        if ($i % 7) $new .= $plainpasswd;
        $new .= ($i & 1) ? $bin : $plainpasswd;
        $bin = pack("H32", md5($new));
    }
    for ($i = 0; $i < 5; $i++)
    {
        $k = $i + 6;
        $j = $i + 12;
        if ($j == 16) $j = 5;
        $tmp = $bin[$i].$bin[$k].$bin[$j].$tmp;
    }
    $tmp = chr(0).chr(0).$bin[11].$tmp;
    $tmp = strtr(strrev(substr(base64_encode($tmp), 2)),
    "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",
    "./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz");

    return "$"."apr1"."$".$salt."$".$tmp;
}
