- (UIImage *)imageWithImage: (UIImage *)sourceImage { i_width = 640; // Neue Breite für das Bild float oldWidth = sourceImage.size.width; float scaleFactor = i_width / oldWidth; float newHeight = sourceImage.size.height * scaleFactor; float newWidth = oldWidth * scaleFactor; UIGraphicsBeginImageContext(CGSizeMake(newWidth, newHeight)); [sourceImage drawInRect:CGRectMake(0, 0, newWidth, newHeight)]; UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return newImage; }
Mit PHPExcel den Spaltenindex anhand des Spaltenbuchstabens bestimmen
Erstellt in PHP am 25. September 2013 vom Daschmi
In Excel werden die Spalten als Buchstaben dargestellt. Um die Buchstaben in die Nummer der Spalte umzuwandeln kann folgende PHPExcel Funktion verwendet werden:
function getNumberFromName($name) { return PHPExcel_Cell::columnIndexFromString($name); }
Anderes Template für Extbase Action verwenden
Erstellt in Extension Entwicklung, TS Schnipsel, TYPO3 am 29. August 2013 vom Daschmi
Möchte man ein anderes Template als für die action vorgesehen verwenden, so kann man folgenden Aufruf verwenden:
$this->view->setTemplatePathAndFilename(\TYPO3\CMS\Core\Utility\GeneralUtility::getFileAbsFileName( ‚typo3conf/ext/‘. $this->request->getControllerExtensionKey(). ‚/Resources/Private/Templates/Frage/login_user.html‘ ));
Möchte man diesen Aufruf in der loginAction() des FrageControllers verwenden, so musste in TYPO3 6.1.3 ein leeres Template login.html existieren. Sonst kam ein Fehler auch wenn man das Template login.html gar nicht verwendet.
Rechtssichere Präsentation von Staffelpreisen im Online Shop wpShopGermany
Erstellt in Wordpress am 1. August 2013 vom Daschmi
Da es in der Vergangenheit immer wieder Probleme mit der Anzeige von Staffelpreisen gab und dies oft zu kostenpflichtigen Abmahnungen führte, wird in der Anzeige der Staffelpreise im wpShopGermany Online Shop von Anfang an auf Rechtssicherheit gesetzt. Dabei wurden zum Beispiel auch die Ausweisung von Grundpreisen und Füllmengen beachtet. Mit den mitgelieferten Templates sieht das Ganze wie folgt aus:
wpShopGermany ist ein deutsches WordPress Shop Plugin und kann hier bezogen werden.
Römische Zahl aus einer arabischen Zahl ermitteln
Erstellt in PHP am 14. Juli 2013 vom Daschmi
Wer eine römische Zahl ausgeben möchte, kann diese mit folgender Funktion ermitteln:
/** * Gibt die römische Zahl einer arabischen Zahl zurück */ function getRoemischeZahl($arabische_zahl) { $ar_number = array(1000, 900, 500, 400,100, 90, 50, 40, 10, 9, 5, 4, 1); $ar_char = array(‚M‘, ‚CM‘, ‚D‘, ‚CD‘, ‚C‘, ‚XC‘, ‚L‘, ‚XL‘, ‚X‘, ‚IX‘, ‚V‘, ‚IV‘, ‚I‘); $roemische_zahl = “; for ($count = 0; $count < count($ar_number); $count++) { while ($arabische_zahl >= $ar_number[$count]) { $roemische_zahl .= $ar_char[$count]; $arabische_zahl -= $ar_number[$count]; } } return $roemische_zahl; } // function getRoemischeZahl($arabische_zahl)
Die Anwendung erfolgt dann einfach mittels:
echo getRoemischeZahl(100);
Formhandler verwenden mit simplem SPAM Schutz
Erstellt in TS Schnipsel, TYPO3 am 13. Juli 2013 vom Daschmi
Formular mit dem Formhandler einbinden
Um den Formhandler einzusetzen muss die Extension aus dem TER installiert werden. Anschließend muss es auf einer Seite eingebunden werden. Im TS der Seite genügt dann folgender Code:
plugin.Tx_Formhandler.settings { debug = 0 templateFile = fileadmin/templates/kontakt.html langFile = fileadmin/templates/kontakt.xml formValuesPrefix = fh additionalIncludePaths.1 = fileadmin/templates/ validators { 1 { class = Tx_Formhandler_Validator_Default config { fieldConf { homepage.errorCheck.1 = simpleantispam text.errorCheck.1 = simpleantispam name.errorCheck.1 = simpleantispam NameS.errorCheck.1 = required TextS.errorCheck.1 = required } } } } finishers { 1 { class = Tx_Formhandler_Finisher_Mail } 24 { class = Tx_Formhandler_Finisher_Redirect } } singleErrorTemplate { totalWrap = | singleWrap = | } errorListTemplate { totalWrap = <p class="error">Folgende Fehler sind aufgetreten</p><ul class="error">|</ul><br /> singleWrap = <li>|</li> } }
Im Beispiel sind die Felder NameS und TestS als Pflichtfelder definiert und müssen angegeben werden. Die Felder homepage, text und name sind mit dem ErrorCheck „simpleantispam“ definiert.
Einfacher SPAM Schutz
Der einfache SPAM Schutz basiert auf der Tatsache das Bots die Formulare meist komplett ausfüllen. Wir prüfen also einfach ob Felder die für den User nicht sichtbar sind ausgefüllt wurden. Wenn ja, kann davon ausgegangen werden das es sich um einen automatischen Eintrag handelt. Damit das ganze funktioniert müssen die Felder homepage, text und name im Formular verbaut werden aber dürfen nicht angezeigt werden.
Hier ein Muster Template:
fileadmin/templates/kontakt.html6
<!– ###TEMPLATE_FORM1### begin –> ###ERROR### <form id="mailform" name="mailform" method="post" action="#" enctype="multipart/form-data" style="padding-left:20px;"> ###HIDDEN_FIELDS### <div class="form-row"> <div class="field-label">Name:</div> <div class="field-widget"><input type="text" name="fh[NameS]" class="required" value="###value_NameS###" title="Bitte einen Namen angeben !" onblur="pkon(1)" /></div> </div> <div class="form-row"> <div class="field-label">eMail:</div> <div class="field-widget"><input name="fh[EMail_Adresse]" class="required validate-email" value = "###value_EMail_Adresse###" title="Bitte E-Mail Addresse eingeben !" onblur="pkon(2)" /></div> </div> <div class="form-row"> <div class="field-label">Ort:</div> <div class="field-widget"><input name="fh[Ort]" class="normal" value = "###value_Ort###" title="Bitte Wohnort eingeben !" onblur="pkon(3)" /></div> </div> <div class="form-row"> <div class="field-label">Straße:</div> <div class="field-widget"><input name="fh[Strasse]" class="normal" value = "###value_Strasse###" title="Bitte die Straße eingeben !" onblur="pkon(3)" /></div> </div> <div class="form-row"> <div class="field-label">Telefon:</div> <div class="field-widget"><input name="fh[Telefon]" class="normal" value = "###value_Telefon###" title="Bitte eine Telefonnummer eingeben !" onblur="pkon(3)" /></div> </div> <div class="form-row"> <div class="field-label">Frage:</div> <div class="field-widget"><textarea name="fh[TextS]" class="required" cols="40" rows="10">###value_SText###</textarea></div> </div> <div style="position:absolute; left:-1000px; top:-1000px;"> <input type="text" name="fh[homepage]" value="" tabindex="50" class="formulartext"/> <input type="text" name="fh[text]" value="" tabindex="50" class="formulartext"/> <input type="text" name="fh[name]" value="" tabindex="50" class="formulartext"/> </div> <div style = "clear:both;"></div> <br/> <div style="margin:0px; padding:0px;"> <div style = "clear:both;"></div> <br/> <input type="submit" value="Anfrage senden" ###submit_nextStep### /> </div> <br/> </form> <!– ###TEMPLATE_FORM1### end –>
Damit der errorChecvk „simpleantispam“ auch funktioniert muss das folgende Script geladen sein. Es funktioniert im Prinzip umgekehrt wie der required Error Check:
fileadmin/templates/Tx_Formhandler_ErrorCheck_Simpleantispam.php
<?php class Tx_Formhandler_ErrorCheck_Simpleantispam extends Tx_Formhandler_AbstractErrorCheck { public function check() { $checkFailed = “; if (!empty($this->gp[$this->formFieldName])) { $checkFailed = $this->getCheckFailed(); } return $checkFailed; } // public function check() } // class Tx_Formhandler_ErrorCheck_Simpleantispam extends Tx_Formhandler_AbstractErrorCheck ?>
Damit die Fehler noch korrekt angezeigt werden muss die Sprachdatei noch hinterlegt werden.
fileadmin/templates/kontakt.xml
<?xml version="1.0" encoding="utf-8" standalone="yes" ?> <T3locallang> <meta type="array"> <description>Language labels for my form</description> </meta> <data type="array"> <languageKey index="default" type="array"> <label index="error_homepage_simpleantispam"></label> <label index="error_text_simpleantispam"></label> <label index="error_name_simpleantispam"></label> <label index="error_NameS_required">Bitte einen Namen angeben</label> <label index="error_TextS_required">Bitte einen Text angeben</label> </languageKey> </data> </T3locallang>
Die Empfänger der Kunden- und Admin Mail lassen sich einfach im Flexform einstellen. Die Inhalte der Mail müssen dann im Template noch definiert werden:
fileadmin/templates/kontakt.html
<!– ###TEMPLATE_SUBMITTEDOK### begin OPTIONAL – will be shown if form was submitted and all required fields were filled out –> <p>Vielen Dank für ihre Anfrage, wir werden sie so schnell wie möglich bearbeiten</p> <!– ###TEMPLATE_SUBMITTEDOK### end –> <!– ###TEMPLATE_EMAIL_USER_PLAIN### begin OPTIONAL – this will be the email text that is sent to the user (plaintext!) –> Hallo ###value_NameS###, Wir werden ihre Anfrage so schnell wie möglich bearbeiten M.f.G. <!– ###TEMPLATE_EMAIL_USER_PLAIN### end –> <!– ###TEMPLATE_EMAIL_ADMIN_PLAIN### begin OPTIONAL – this will be the email text that is sent to the admin (plaintext!) (admin-email = the email you can specify in the mailformplus plugin) –> Hallo, ein Nutzer schrieb folgendes : Name: ###value_NameS### Email: ###value_EMail_Adresse### Text: ###value_TextS### <!– ###TEMPLATE_EMAIL_ADMIN_PLAIN### end –>
DERPRINZ – Professionelle WordPress Themes
Erstellt in Allgemein am 30. Juni 2013 vom Daschmi
Auf der-prinz.de gibt es viele professionelle WordPress Themes, viele davon für den wpShopGermany geeignet.
Alle PRiNZ WordPress Themes haben eine vielzahl von nützlichen und teils individuellen Funktionen. Folgende Funktionen gehören zum Standard jedes PRiNZ WordPress Themes:
- Immer auf der aktuellsten WordPress Version getestet.
- Rasterlayout nach dem 960er Rastersystem (960 Grid)
- W3C validierter Code, der in allen modernen Browser funktioniert
- PRiNZ Shortcode Collection Plugin
- Options Seite für vereinfachte Anpassung und Individualisierung
- Mehrere Widget-Bereiche
- Individuelle Widgets (PRiNZ Widget Factory)
- WordPress 3 Funktionen (individueller Kopfbereich/Logo, – Hintergrund und -Menüssystem)
- Automatisiertes Handling von Vorschaubildern
- Vollständig lokalisiert und für die Übersetzung vorbereitet (Deutsche und Englische Version immer enthalten)
- Mobile device ready: Themes funktionieren problemlos auf mobilen Geräten wie iPhone oder iPad
Android: Das individuelle Betriebssystem für unterwegs
Erstellt in Allgemein am 25. Juni 2013 vom Daschmi
Wer sich ein neues Smartphone kaufen möchte, hat zwischen zwei Betriebssystemen die Wahl: Während Apple seine iPhone-Modelle mit dem firmeigenen iOS ausliefert, setzen alle anderen Hersteller auf Googles mobiles Betriebssystem Android. Doch wodurch zeichnet sich dieses aus?
Individuelle Strukturierung des Hauptmenüs
Jegliche Anwendungen, Einstellungsfunktionen und Spiele, die auf einem Android-Smartphone gespeichert sind, sind über das Hauptmenü erreichbar. Der Benutzer kann dabei selbst festlegen, wie die einzelnen Verknüpfungen zu den Programmen angeordnet sein sollen, die er heruntergeladen hat. Das macht insbesondere dann Sinn, wenn besonders viele Apps auf dem mobilen Gerät gespeichert sind. Die am häufigsten genutzten Apps und Spiele sollten im Idealfall auf der ersten Seite des Hauptmenüs untergebracht sein, damit sie schnell erreichbar sind. Durch Launcher lässt sich der Startbildschirm besonders stark dem individuellen Geschmack anpassen. Weitere Infos dazu: www.mobilhelden.de.
Seit 2008 hat sich Android stetig weiterentwickelt
2008 kam Android auf den Markt. Seitdem sind immer wieder neue und überarbeitete Versionen des Betriebssystems erschienen, die neue Funktionen mit sich bringen. So unterstützt Android beispielsweise seit der Version 2.3 (die unter der Bezeichnung „Gingerbread“ firmiert) die Technik der Near Field Communication (NFC), die im Bereich des Micro-Payment eine zunehmend wichtige Rolle spielt. Auch Android Flash Anwendungen, wie der Flash Player von Adobe, maximieren den Funktionsumfang von Googles Betriebssystem.
Überwachung des Datenverkehrs
Im Einstellungsmenü von Android lässt sich unter anderem einsehen, wie viele Daten in einem gewissen Zeitraum bereits verbraucht wurden. Dies ist insbesondere für Smartphone-Besitzer mit Handyvertrag wichtig, die keine Datenflatrate besitzen. So können diese jederzeit überprüfen, wie viel Datenspielraum im jeweiligen Monat noch vorhanden ist und dementsprechend die Nutzung von Internetdiensten und Apps handhaben.
Ressourcen anhand dynamischer ID finden
Erstellt in Android SDK am 30. Mai 2013 vom Daschmi
Um Elemente wie Bilder oder Buttons in einer Android Anwendung anzusprechen muss die ID bekannt sein. Zum Beispiel:
... ImageButton ib = (ImageButton)findViewById(R.id.button1); ...
Wenn man jetzt aber mehrere Elemente mittels einer Schleife ansprechen will kann man so vorgehen:
for (int index = 1; index <= 6; index ++) { ImageButton ib = (ImageButton)findViewById(getResources().getIdentifier("button" + index, "id", getPackageName())); ib.setImageResource(R.drawable.caro_blau); }
border=“0″ aus TYPO3 Bildelementen entfernen
Erstellt in TS Schnipsel, TYPO3 am 3. Mai 2013 vom Daschmi
TYPO3 fügt den Bilder standardmäßig border=“0″ hinzu, was bei neueren Doctypes im Validator zu Warnungen führt.
Die Fehlermeldung im Validator lautet:
[text]… there is no attribute <code>"border" …</code>[/text]
Um das Border Attribute zu entfernen, genügt es im TypoScript der Seite folgenden Code einzubinden:
config.disableImgBorderAttr = 1