Kategorien
PHP Webdeveloper Tools

Mantis Benachrichtigungs Emails Inhalt reduzieren

Mantis als PM Tool versendet bei konfigurierbaren Events an bestimmte User Benachrichtigungs E-Mails, die sehr viele Informationen beinhalten und schnell lang werden können.

Um nicht immer die gesamte History in der E-Mail zu sehen, kann man folgenden Code ändern:

core/bugnote_api.php l.372:

$t_bugnote_count = 1;// vorher: count( $t_all_bugnotes );

Damit wird nur die letzte Note versendet.

Oder man konfiguriert diesen Wert bei jedem User einzeln: My Account->Preferences->E-mail Notes Limit = 1

Ticket Informationen kürzen

Kategorien
WebGL

Three.js Tween Übersicht Animationen Möglichkeiten

Hier gibt es eine sehr gut Abbildung der möglichen Animation (Tweens) in Three.js:

http://www.grasshopper3d.com/profiles/blogs/port-of-robert-penner-s-easing-equations?xg_source=activity (siehe sehr gute Abbildung in den Kommentaren)

Zum Einbinden ist das sehr hilfreich: Tutorial Tween three.js

 

Ein kleines Beispiel für einen Tween:

new TWEEN.Tween( cube.rotation )
        .to( { y: (cube.rotation.y + Math.PI/2)}, 1500 )
        .easing( TWEEN.Easing.Back.EaseInOut).start();
Kategorien
PHP Zend Framework

ZF2 Zend Form Validierung: User Text-Eingaben

Um Text sicher zu Filtern kann man mit dem Zend Framwork 2 Validator und einem HTML-Filter wie HTML Purifier eine Validierung des Inhaltes durchführen:

Kategorien
PHP Zend Framework

ZF2 Zend Form Validierung: Email-Adressen

Mit Zend_Validator lässt sich eine sehr anspruchsvolle und sichere E-Mail Validierung durchführen, die man mit passenden Fehlermeldungen für den User bei Bedarf versehen kann:

    <?php

    use Zend\Form\Element;
    use Zend\InputFilter\InputProviderInterface;
    use Zend\Validator;

    class EmailElement extends Element implements InputProviderInterface
    {
        protected $attributes = array(
            'type' => 'email',
        );
        private  $wrongEmailMessage = 'Bitte geben Sie eine gültige E-Mail-Adresse an.';

        public function getInputSpecification()
        {
            return array(

                'name' => $this->getName(),
                'filters' => array(
                    array('name' => 'Zend\Filter\StringTrim'),
                ),
                'attributes' => array(
                    'type' => 'email'
                ),

                'validators' => array(
                    array(
                        'name' => 'NotEmpty',
                        'options' => array(
                            'messages' => array(
                                \Zend\Validator\NotEmpty::IS_EMPTY => $this->wrongEmailMessage
                            ),
                        ),
                    ),

                    array(
                        'name' => 'EmailAddress',
                        'options' => array(
                            'hostnameValidator' => null,
                            'messages' => array(
                                \Zend\Validator\EmailAddress::INVALID => $this->wrongEmailMessage,
                                \Zend\Validator\EmailAddress::INVALID_FORMAT => $this->wrongEmailMessage,
                                \Zend\Validator\EmailAddress::INVALID_HOSTNAME => $this->wrongEmailMessage,
                                \Zend\Validator\Hostname::CANNOT_DECODE_PUNYCODE  => $this->wrongEmailMessag,
                                \Zend\Validator\Hostname::INVALID  => $this->wrongEmailMessage,
                                \Zend\Validator\Hostname::INVALID_DASH  => $this->wrongEmailMessage,
                                \Zend\Validator\Hostname::INVALID_HOSTNAME  => $this->wrongEmailMessage,
                                \Zend\Validator\Hostname::INVALID_HOSTNAME_SCHEMA  => $this->wrongEmailMessage,
                                \Zend\Validator\Hostname::INVALID_LOCAL_NAME  => $this->wrongEmailMessage,
                                \Zend\Validator\Hostname::INVALID_URI  => $this->wrongEmailMessage,
                                \Zend\Validator\Hostname::IP_ADDRESS_NOT_ALLOWED  => $this->wrongEmailMessage,
                                \Zend\Validator\Hostname::UNDECIPHERABLE_TLD  => $this->wrongEmailMessage,
                                \Zend\Validator\Hostname::UNKNOWN_TLD  => $this->wrongEmailMessage,
                                \Zend\Validator\Hostname::LOCAL_NAME_NOT_ALLOWED  => $this->wrongEmailMessage,
                                \Zend\Validator\EmailAddress::INVALID_LOCAL_PART => $this->wrongEmailMessage,
                                \Zend\Validator\EmailAddress::INVALID_MX_RECORD => $this->wrongEmailMessage,
                                \Zend\Validator\EmailAddress::INVALID_SEGMENT => $this->wrongEmailMessage,
                                \Zend\Validator\EmailAddress::DOT_ATOM => $this->wrongEmailMessage,
                                \Zend\Validator\EmailAddress::QUOTED_STRING => $this->wrongEmailMessage,
                                \Zend\Validator\EmailAddress::INVALID_LOCAL_PART => $this->wrongEmailMessage,
                            )
                        )
                    )
                )
            );
        }
    }
Kategorien
Adobe InDesign Script JavaScript

Praktische String Funktionen in Javascript für InDesign und Web

Entfernt führende und beendende Leerzeichen

function trim (str) 
{
  return str.replace (/^\s+/, '').replace (/\s+$/, '');
}

Check, ob ein String leer ist, findet auch z.B. “    “

function isBlank(str) 
{
    return str.replace(/\s/g,"") == ""  ;
}

Checkt, ob ein String enthalten z.B. ob script in javascript enthalten ist – true.

function stringContains(str, needle )
{
    return str.indexOf(needle) != -1    
}
Kategorien
Adobe InDesign Script

InDesgin Script – Text und ParagraphStyle exportieren nach Excel

Ich habe ein kleines Script geschrieben, welches seitenweise die Paragraphen ausliest und den Text sowie den ParagraphStyle in eine csv-Datei schreibt, die in Excel geöffnet werden kann, um so den Text dorthin zu exportieren und später zu übersetzen und zu reimportieren mittels InDesign’s DataMerge. Es wird für jede Seite des Dokuments eine csv-Datei angelegt:

#target InDesign
$.writeln ("extract Paragraph Text");

var allPages= app.activeDocument.pages;
for (i=0; i<allPages.length; i++)
{
    $.writeln (allPages[i].name);
    var allPageTextframes= allPages[i].textFrames;
    var csvPath = app.activeDocument.filePath + "/page" + i + ".csv";
    $.writeln (csvPath);
    var csv = File (csvPath);
    csv.encoding = "CP1252"; //Encoding for Windows/Excel    
    csv.open ("w");
    for (j=0; j<allPageTextframes.length; j++)
    {
        var allPageTextframeParagraphs= allPageTextframes[j].paragraphs;
        for (k=0; k<allPageTextframeParagraphs.length; k++)
        {
            var text = allPageTextframeParagraphs[k].contents;
            var paragraphStyleName = allPageTextframeParagraphs[k].appliedParagraphStyle.name;
            $.writeln (text);
            $.writeln (paragraphStyleName);
            if(text != "")
            {
                    var zeile = paragraphStyleName + " " + j + k + ";" + text;
                    csv.writeln (zeile);
             }
         }
     }
}
Kategorien
Adobe InDesign Script

Adobe InDesign Script – Sprache aller ParagraphStyles ändern

Mit diesem Skript kann man die Sprache aller Paragraph Styles einfach ändern und z.B. auf italienisch setzen:

#target InDesign
$.writeln ("Change Language");
var allParagraphStyles = app.activeDocument.paragraphStyles;
for (i=1; i<allParagraphStyles.length; i++)
{
    $.writeln (allParagraphStyles[i].appliedLanguage.name);
    allParagraphStyles[i].appliedLanguage = "Italian";
    $.writeln (allParagraphStyles[i].appliedLanguage.name);
}

 

Kategorien
Adobe InDesign Script Buch Empfehlungen

Adobe InDesign Scripten mit Javascript Tutorial

Adobe Indesign sowie Photoshop lassen sich mit Javascript plattformübergreifend auf MAC und PC skripten mit der Javascript Erweiterung ExtendScript von Adobe.

Über das Menü Fenster->Hilfsprogramme->Skripte werden die bereits mit gelieferten Skripte angezeigt. Eigene Skripte gehören in den Ordner Benutzer und haben die Endung .jsx. Um im Dateibrowser in das Verzeichnis zu gelangen, wo die Skripte zu finden sind, muss man einfach mit der rechten Maustaste auf das Skript und dann auf „Im Finder öffnen“ klicken, so gelangt man am einfachsten zu den sehr tief verstecktem Ordner. Dort kann man dann neue eigene Skripte anlegen.

Zum testen kann die Datei „changeLanguage.jsx“ im selben Ordner (bei mir /…/Library/Preferences/Adobe InDesign/Version 7.0/en_GB/Scripts/Scripts Panel) angelegt werden. Diese erscheint dann autotmatisch auch in InDesign.

Um die Dati zu bearbeiten, muss man einfach in InDesign rechter Maustaste auf die Datei und Skript bearbeiten auswählen und es öffnet sich der Editor/Light IDE von Adobe: ExtendScript Toolkit.

Wichtig ist, als erstes einzustellen, für welches Programm das Skript laufen soll, in unserem Fall: Adobe InDesign CS5 auswählen im Dropdown oben rechts.

Außerdem sollte die Autovervollständigung aktiviert werden: ExtendScript Toolkit->Voreinstellungen->Hilfe->Autom. Vervollständigung aktivieren.

Beispiel 1: Hallo Welt

Das Hallo Welt ist schnell geschrieben und beinhaltet vorher noch eine Direktive auf InDesign, damit klar ist, für welches Programm das Skript laufen soll:

#target InDesign
alert("Hallo Welt");

Das ganze kann mit F5 oder Apfel+R ausgeführt werden.

Debuggen lässt sehr gut mit der Funktion writln für Strings, die im Fenster Javascript-Konsole ausgegeben wird:

#target InDesign
//alert("Hallo Welt");
$.writeln ("Konsole log");

Ich hatte das Problem, dass Kommentare ausgeblendet wurde, das lag daran, dass die Schriftart für Kommentare nicht installiert war. Einfach Schriftart ändern: ExtendScript Toolkit->Voreinstellungen->Schriften und Farben:

  • alle Anzeigeelemente entkreuzen
  • Comment /**/ ->Schrift: Verdana auswählen
  • Comment // ->Schrift: Verdana auswählen

Eine Referenz/Übersicht über das Objekt Model von InDesign findet man hier.

Kategorien
Amazon MWS PHP

Products API gibt keine richtigen Fehlermledungen nur Fatal Error

Um aus Amazon die richtigen Fehlermeldungen heraus zu kitzeln, müssen die Fatals gefangen werden und ausgegeben, sonst kann man lange suchen:

                try
                {
                    $this->getListMatchingProductsForEanOrQueryData($ean, $country);
                }
                catch(MarketplaceWebServiceProducts_Exception $e)
                {
                    var_dump($e);
                    die();
                }
Kategorien
PHP

Führende Nullen oder Komma am Ende entfernen

Mit den Funktionen ltrim und rtrim lassen sich Leerzeichen und bestimmte störende Buchstaben am Anfang oder am Ende von Strings entfernen.

Bsp. Entfernen von führenden Nullen:

$string = "03423452";
$string = ltrim($string,'0');
//03423452

oder Komma am Ende entfernen

$string = "bla, bla,bla,";
$string = rtrim($string,',');
//bla, bla,bla