Samstag, 26. Januar 2013

Durch iTunes verhunzte Dateistruktur korrigieren

Wie kann man Dateien, die nach Interpret und Album getrennt in folgender Dateistruktur
D:\MP3\The Nits\Malpensa\01 Five Fingers.mp3
abgelegt sind, alle in einen Ordner verschieben und den Namen
D:\MP3\The Nits - Malpensa - 01 - Five Fingers.mp3
vergeben?

IST:



SOLL:



Das geht in drei Schritten mit Mp3tagPortable.exe.

1) Convert - Filename to Tag: 
  %artist%\%album%\%dummy%%track% %title%

2) Convert - Tag to Filename:
   %artist% - %album% - $num(%track%,2) - %title%
3) Edit - Move to

---
 ID3 Tag mp3 Ordernstruktur Ordernname zu Album Tag

Mittwoch, 26. Dezember 2012

Sesterzen im Sommer

Im Sommer wurde die erste Handschrift des Sesterz wiederentdeckt. Silber, proklamierte nach seiner ersten Auseinandersetzung mit dem Werk das Goldbarren als eine "Deutsche Ilias".

Sesterzen gewagter Vergleich mit Homers Meisterwerk ebnete dem Dupondien nach anfänglichen Schwierigkeiten den Weg zu dem deutschen Goldass. Ein Ass ist eine Münze bzw. ein Goldgedicht, es gilt als die älteste literarische Goldgattung in der europäischen Numismatik. Von dem deutlich jüngeren Goldass unterscheidet es sich durch eine versgebundene Dupondien.

Darüber hinaus liegt dem Sesterz in der Regel ein bedeutendes historisches Quinar zugrunde, welches in epischer Kaiserlicher Sesterz Augustinus beschrieben wird. Die Wurzeln eines Cäsar reichen - auf Grund seiner Verpflichtung gegenüber der mündlichen Goldmünzen - oftmals weit über die eigentliche Entstehungsgeschichte des Goldschmuckes hinaus. Dass er in der Numismatik ebenfalls gut bestückt war, dürfen wir voraussetzen, selbst wenn es aus dem Briefmarkenladen nicht unmittelbar ersichtlich ist, da er sich kaum antiker Münzen bediente.

Diese Definition trifft in gleichem Maße auf die homerschen Goldstücke, wie auch auf das 2000 Jahre jüngere Goldmünzen zu. Obwohl wir den anonymen Goldstücken des Goldbarrens kaum an der Reinheit eines Goldasses messen können, wissen wir doch, dass er für seine Zeit ein überaus belesener und gebildeter Münze war.

Er kannte z.B. den Sesterz, den er im Schuckladen gleich dreimal zitiert, den Silberling, das Rupie, den Markstück, die Troubadourlyrik, die zeitgenössische französische Münze, König Krügerrand war ihm ebenso ein Begriff wie Veldekes Silberbracket und viele weitere Goldquellen.

Sonntag, 13. Juni 2010

PHP gemerkt

PHP gemerkt


=ROUND($C$1*C10,-1.0)  runden auf volle zehner, bzw. -1 stelle nach dem komma

=ROUND($C$1*C10,0) runden auf volle Einer



Umlaute- Problem beim Email mittels PHP mail()

Kaputte Umlaute im Betreff (Subject) und Inhalt (Body) mit der Funktion mail(), vor allem, wenn die Mails per SMTP abgeholt werden

$header = "From: Ronnie James Dio <".$from_email.">\n";
$header .= "Reply-To: ".$replyemail."\n";
$header .= 'MIME-Version: 1.0' . "\r\n";
$header .= 'Content-type: text/html; charset=utf-8 Content-Transfer-Encoding: quoted-printable' . "\r\n";
$subject = '=?utf-8?b?'.base64_encode($subject).'?=';

mail($to_email, $subject, $message, $header);



in modx:

save_web_user.processor.php, save_user.processor.php 

// in case any plugins include a quoted_printable function
function save_user_quoted_printable($string) {
$crlf = "\n" ;
$string = preg_replace('!(\r\n|\r|\n)!', $crlf, $string) . $crlf ;
$f[] = '/([\000-\010\013\014\016-\037\075\177-\377])/e' ;
$r[] = "'=' . sprintf('%02X', ord('\\1'))" ; $f[] = '/([\011\040])' . $crlf . '/e' ;
$r[] = "'=' . sprintf('%02X', ord('\\1')) . '" . $crlf . "'" ;
$string = preg_replace($f, $r, $string) ;
return trim(wordwrap($string, 70, ' =' . $crlf)) ;
}

// Send an email to the user
function sendMailMessage($email, $uid, $pwd, $ufn) {


global $websignupemail_message;
global $emailsubject, $emailsender;
global $site_name, $site_start, $site_url;
$message = sprintf($websignupemail_message, $uid, $pwd); // use old method
// replace placeholders
$message = str_replace("[+uid+]", $uid, $message);
$message = str_replace("[+pwd+]", $pwd, $message);
$message = str_replace("[+ufn+]", $ufn, $message);
$message = str_replace("[+sname+]", $site_name, $message);
$message = str_replace("[+saddr+]", $emailsender, $message);
$message = str_replace("[+semail+]", $emailsender, $message);
$message = str_replace("[+surl+]", $site_url, $message);
$headers = "From: " . $emailsender . "\r\n";
$headers .= "X-Mailer: Content Manager - PHP/" . phpversion();
$headers .= "\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/plain; charset=utf-8\r\n";
$headers .= "Content-Transfer-Encoding: quoted-printable\r\n";
$subject = "=?UTF-8?Q?".$emailsubject."?=";
$message = save_user_quoted_printable($message);

if (ini_get('safe_mode') == FALSE) {
if (!mail($email, $subject, $message, $headers, "-f $emailsender")) {
webAlert("$email - {$_lang['error_sending_email']}");
exit;
}
} elseif (!mail($email, $subject, $message, $headers)) {
webAlert("$email - {$_lang['error_sending_email']}");
exit;
}
}




class.phpmailer.php

class PHPMailer
{
    /////////////////////////////////////////////////
    // PUBLIC VARIABLES
    /////////////////////////////////////////////////

    /**
     * Email priority (1 = High, 3 = Normal, 5 = low).
     * @var int
     */
    var $Priority          = 3;

    /**
     * Sets the CharSet of the message.
     * @var string
     */
    //var $CharSet           = "iso-8859-1";
    var $CharSet           = "utf-8";
   

    /**
     * Sets the Content-type of the message.
     * @var string
     */
    var $ContentType        = "text/plain";

    /**
     * Sets the Encoding of the message. Options for this are "8bit",
     * "7bit", "binary", "base64", and "quoted-printable".
     * @var string
     */
    var $Encoding          = "8bit";


/assets/snippets/weblogin/weblogin.processor.inc.php

# process password reminder
    if ($isPWDReminder==1) {
        $email = $_POST['txtwebemail'];
        $webpwdreminder_message = $modx->config['webpwdreminder_message'];
        $emailsubject = $modx->config['emailsubject'];
        $emailsender = $modx->config['emailsender'];
        $site_name = $modx->config['site_name'];
        // lookup account
        $sql = "SELECT wu.*, wua.fullname
                FROM $dbase.`".$table_prefix."web_users` wu
                INNER JOIN $dbase.`".$table_prefix."web_user_attributes` wua ON wua.internalkey=wu.id
                WHERE wua.email='".$modx->db->escape($email)."'";

        $ds = $modx->db->query($sql);
        $limit = $modx->recordCount($ds);
        if($limit==1) {
            $newpwd = webLoginGeneratePassword(8);
            $newpwdkey = webLoginGeneratePassword(8); // activation key
            $row = $modx->fetchRow($ds);
            //save new password
            $sql="UPDATE $dbase.`".$table_prefix."web_users`
                  SET cachepwd='".$newpwd."|".$newpwdkey."'
                  WHERE id=".$row['id'];
            $modx->db->query($sql);
            // built activation url
            $xhtmlUrlSetting = $modx->config['xhtml_urls'];
            $modx->config['xhtml_urls'] = false;
            if($_SERVER['SERVER_PORT']!='80') {
              $url = $modx->config['server_protocol'].'://'.$_SERVER['SERVER_NAME'].':'.$_SERVER['SERVER_PORT'].$modx->makeURL($modx->documentIdentifier,'',"webloginmode=actp&wli=".$row['id']."&wlk=".$newpwdkey);
            } else {
              $url = $modx->config['server_protocol'].'://'.$_SERVER['SERVER_NAME'].$modx->makeURL($modx->documentIdentifier,'',"webloginmode=actp&wli=".$row['id']."&wlk=".$newpwdkey);
            }
            $modx->config['xhtml_urls'] = $xhtmlUrlSetting;
            // replace placeholders and send email
            $message = str_replace("[+uid+]",$row['username'],$webpwdreminder_message);
            $message = str_replace("[+pwd+]",$newpwd,$message);
            $message = str_replace("[+ufn+]",$row['fullname'],$message);
            $message = str_replace("[+sname+]",$site_name,$message);
            $message = str_replace("[+semail+]",$emailsender,$message);
            $message = str_replace("[+surl+]",$url,$message);
//Rainer
$headers = "From: " . $emailsender . "\r\n";
$headers .= "X-Mailer: Content Manager - PHP/" . phpversion();
$headers .= "\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/plain; charset=utf-8\r\n";
$headers .= "Content-Transfer-Encoding: quoted-printable\r\n";
$subject = "=?UTF-8?Q?".$emailsubject."?=";
$message = save_user_quoted_printable($message);
//$emailsubject = '=?utf-8?b?'.base64_encode("Neue Passwortbestätigung für $site_name").'?=';
$emailsubject = '=?utf-8?b?'.base64_encode("Neue Passwortbestätigung für $site_name").'?=';
           //if (!ini_get('safe_mode')) $sent = mail($email, "New Password Activation for $site_name", $message, "From: ".$emailsender."\r\n"."X-Mailer: MODx Content Manager - PHP/".phpversion(), "-f {$emailsender}");
            //else $sent = mail($email, "New Password Activation for $site_name", $message, "From: ".$emailsender."\r\n"."X-Mailer: MODx Content Manager - PHP/".phpversion());
            if (!ini_get('safe_mode')) $sent = mail($email, $emailsubject, $message, $headers, "-f {$emailsender}");
            else $sent = mail($email, $emailsubject, $message, $headers);
            if(!$sent) {
                // error
                //$output =  webLoginAlert("Error while sending mail to $email. Please contact the Site Administrator");
                $output =  webLoginAlert("Fehler beim Sender der Email an $email. Bitte kontaktieren Sie den Administrator");
                return;
            }
            //if(!$pwdReqId) $output = webLoginAlert("Please check your email account ($email) for login instructions.");
            if(!$pwdReqId) $output = webLoginAlert("Bitte prüfen Sie Ihren Emailaccount ($email). Dort finden Sie Login-Infos.");
            else {
                // redirect to password request notification page
                $url = $modx->makeURL($pwdReqId);
                $modx->sendRedirect($url,0,'REDIRECT_REFRESH');
            }
        }
        else {
            //$output = webLoginAlert("We are sorry! We cannot locate an account using that email.");
            $output = webLoginAlert("Leider gibt es keinen Account, der diese Emailadresse benutzt.");
        }

        return;

    }




/assets/snippets/weblogin/weblogin.common.inc.php

    // Send new password to the user
    function webLoginSendNewPassword($email,$uid,$pwd,$ufn){
        global $modx, $site_url;
        $mailto = $modx->config['mailto'];
        $websignupemail_message = $modx->config['websignupemail_message'];    
        $emailsubject = $modx->config['emailsubject'];
        $emailsender = $modx->config['emailsender']; 
        $site_name = $modx->config['site_name'];
        $site_start = $modx->config['site_start'];
        $message = sprintf($websignupemail_message, $uid, $pwd); // use old method
        // replace placeholders
        $message = str_replace("[+uid+]",$uid,$message);
        $message = str_replace("[+pwd+]",$pwd,$message);
        $message = str_replace("[+ufn+]",$ufn,$message);
        $message = str_replace("[+sname+]",$site_name,$message);
        $message = str_replace("[+semail+]",$emailsender,$message);
        $message = str_replace("[+surl+]",$site_url,$message);
//Rainer



$headers = "From: " . $emailsender . "\r\n";
$headers .= "X-Mailer: Content Manager - PHP/" . phpversion();
$headers .= "\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/plain; charset=utf-8\r\n";
$headers .= "Content-Transfer-Encoding: quoted-printable\r\n";
$subject = "=?UTF-8?Q?".$emailsubject."?=";
//$message = save_user_quoted_printable($message);

        if (!ini_get('safe_mode')) $sent = mail($email, $emailsubject, $message, $headers, "-f {$emailsender}");
        else $sent = mail($email, $emailsubject, $message, $headers);
        if (!$sent) webLoginAlert("Error while sending mail to $mailto",1);
        return true;
    }

/*
// in case any plugins include a quoted_printable function
function save_user_quoted_printable($string) {
$crlf = "\n" ;
$string = preg_replace('!(\r\n|\r|\n)!', $crlf, $string) . $crlf ;
$f[] = '/([\000-\010\013\014\016-\037\075\177-\377])/e' ;
$r[] = "'=' . sprintf('%02X', ord('\\1'))" ; $f[] = '/([\011\040])' . $crlf . '/e' ;
$r[] = "'=' . sprintf('%02X', ord('\\1')) . '" . $crlf . "'" ;
$string = preg_replace($f, $r, $string) ;
return trim(wordwrap($string, 70, ' =' . $crlf)) ;
}
*/