Daschmi's Notitzblog

30 Nov

Alle UIViews von einem UIView entfernen

Erstellt in IPhone SDK am 30.11.11

Um alle Views von einem anderen View zu entfernen kann folgender Code verwendet werde:

for (UIView *view in sImageView.subviews)
{
  [view removeFromSuperview];
}

Keine Kommentar »

28 Nov

Längen- und Breitengrade mittels der Google API aus der Adresse bestimmen

Erstellt in Sonstiges am 28.11.11

Mit php und curl kann man mit folgender Funktion einfach die Längen- und Breitengrade einer Klartextadresse bestimmen:

function getLatLong($plz, $ort, $street, $nr)
	{

		$google_api_key = '';
		$query = $street.' '.$nr.', '.$plz.' '.$ort; 

		$str = array('Accept-Language: '.$_SERVER["HTTP_ACCEPT_LANGUAGE"]);

		$curl_req = curl_init();

		curl_setopt($curl_req, CURLOPT_URL, 'http://maps.google.com/maps/geo?q='.rawurlencode($query).'&output=csv&key='.$google_api_key);
		curl_setopt($curl_req, CURLOPT_HTTPHEADER, $str);
		curl_setopt($curl_req, CURLOPT_CONNECTTIMEOUT, 4);
		curl_setopt($curl_req, CURLOPT_RETURNTRANSFER, TRUE);

		$curl_res = curl_exec($curl_req);
		$ret = explode(',', $curl_res);

		return array($ret[2], $ret[3]);

	} // function getLatLong($plz, $ort, $street, $nr)

Keine Kommentar »

25 Nov

Automatische Höhe eines UILabels

Erstellt in IPhone SDK am 25.11.11

Um ein UILabel automatisch so hoch zu machen wie es der Inhalt erfordert kann folgender Code verwendet werden:

UILabel *lTitel = [[UILabel alloc] initWithFrame:CGRectMake(120, 0, 190, 0)];
NSString *text = @"Laanger Text mit vielen vielen Wörtern der nicht in das Label passt";
[lTitel setText:text];
[lTitel setBackgroundColor:[UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.0]];
[lTitel setNumberOfLines:0];
[lTitel setFont:[UIFont fontWithName:@"Helvetica-Bold" size:11]];
CGSize labelsize = 1;
lTitel.frame = CGRectMake(120, 10, 190, labelsize.height);

Keine Kommentar »

20 Nov

XML Verarbeitung mit dem IPhone

Erstellt in IPhone SDK am 20.11.11

Um eine XML Datei mit dem IPhone SDK zu verarbeiten kann der NSXMLParser in Verbingung mit dem Interface NSXMLParserDelegate verwendet werden. Möchte man beispielsweise eine XML Datei aus dem Web verarbeiten so kann folgender Aufruf verwendet werden:

dataParser = [[NSXMLParser alloc] initWithContentsOfURL:[NSURL URLWithString:strURL]];
[dataParser setDelegate:self];
[dataParser parse];
[dataParser release];

In dem Beispiel implementiert die Klasse des aufrufenden Objekts das Interface NSXMLParserDelegate.

Mit folgenden Funktionen kann man Textinhalte aus den XML Knoten verarbeiten:


- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName attributes:(NSDictionary *)attributeDict
{

 if ([elementName isEqualToString:@"immobilie"])
 {

 immobilie = [[Immobilie alloc] init];

 }

 strPath = [strPath stringByAppendingPathComponent:elementName];

}

- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string {

 if ([strPath isEqualToString:@"openimmo/immobilie/geo/plz"])
 {
 NSLog(string);
 }

}

- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
{

 strPath = [strPath stringByDeletingLastPathComponent];

}

Im Beispiel wird in der Variable strPath der Pfad innerhalb des XML gespeichert.


Keine Kommentar »

19 Nov

urlencode/urldecode in ObjectivC

Erstellt in IPhone SDK am 19.11.11

Um einen String per GET zu übergeben muss er codiert werden. Dies kann folgende Funktion erledigen:

- (NSString *)urlencode:(NSString *)value {

    return (NSString *)CFURLCreateStringByAddingPercentEscapes(
        nil,
        (CFStringRef)value,
        nil,
        (CFStringRef)@"!*'();:@&=+$,/?%#[]",
        kCFStringEncodingUTF8
    );

}

In iOS5:

- (NSString *)urlencode:(NSString *)value {

    NSString *strReturn = (__bridge NSString *)CFURLCreateStringByAddingPercentEscapes(
                                                                              nil,
                                                                              (__bridge CFStringRef)value,
                                                                              nil,
                                                                              (CFStringRef)@"!*'();:@&=+$,/?%#[]",
                                                                              kCFStringEncodingUTF8
                                                                              );

    return strReturn; 

}

Das decodieren kann man mit folgender Funktion erreichen:

- (NSString *)urldecode:(NSString *) value {

 NSString *result = [(NSString *)value stringByReplacingOccurrencesOfString:@"+" withString:@" "];
 result = [result stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

 return result;

}

Keine Kommentar »

19 Nov

UIPickerView in einem UIActionSheet

Erstellt in IPhone SDK am 19.11.11

Um ein Pickerview zum Beispiel als Modalen Dialog zur Auswahl eines Wertes zu nutzen kann ein UIActionSheet verwendet werden.

Zu erst muss das ActionSheet und den UIPickerView instanziieren:

UIActionSheet *pickerActionSheet = [[UIActionSheet alloc]
  initWithTitle:nil
  delegate:self
  cancelButtonTitlte:nil
  destructiveButtonTitle:nil
  otherButtonTitles:nil];

UIPickerView *pickerView = [[UIPickerView alloc] initWithFrame:CGRectMake(0, 244, 320, 216)];

In meinem Beispiel verwende ich noch eine UINavigationBar um das ActionSheet zu schließen und die Auswahl zu übernehmen, diese werden wie folgt instanziiert:

UINavigationBar *navBar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0, 200, 320, 44)];
UIBarButtonItem *closeButton = [[UIBarButtonItem alloc] initWithTitle:@"Fertig" style:UIBarButtonSystemItemDone target:self action:@selector(closePickerAction:)];
UINavigationItem *item = [[UINavigationItem alloc] initWithTitle:@""];
item.rightBarButtonItem = closeButton;
item.hidesBackButton = YES;

Im Beispiel sieht man auch wie man den @selector verwendet um ein Event auf einen Button zu legen. Target ist dabei das Objekt wo die Methode closePickerAction aufgerufen wird.

Die Elemente müssen nun noch auf das ActionSheet gelegt werden und das ActionSheet zur Anzeige gebracht werden:

[pickerAction addSubview:navBar];
[pickerAction addSubview:pickerView];

[pickerAction showInView:self.view];
[pickerAction setFrame:CGRectMake(0, 0, 320, 480)];

[navBar release];
[closeButton release];
[item release];
[pickerView release];
[pickerAction release];

Keine Kommentar »

26 Oct

Icon für Verzeichnis im direct_mail Modul

Erstellt in TS Schnipsel, TYPO3 am 26.10.11

Sollte das Verzeichnis Icon im Bereich direct_mail nicht angezeigt werden, so kann dies mit folgender Zeile in der Datei /typo3conf/ext/direct_mail/ext_tables.php behoben werden:

$ICON_TYPES['dmail'] = array('icon' => t3lib_extMgm::extRelPath($_EXTKEY).'ext_icon.gif');

Keine Kommentar »

12 Oct

Button in Actionscript3 verlinken und URL im Browser öffnen anhand von Parametern

Erstellt in Flash am 12.10.11

Um mit Flash einen Button zu verlinken und dabei eine URL zu öffnen kann folgender Code verwendet werden:

import flash.events.MouseEvent;
import flash.net.URLRequest;
import flash.display.Loader;
import flash.display.LoaderInfo;
import flash.events.*;
import flash.net.*;

function rClick(event:MouseEvent):void {

	var clickTag = root.loaderInfo.parameters['clickTag'];
	var clicktarget = root.loaderInfo.parameters['clicktarget'];

	navigateToURL(new URLRequest(clickTag), clicktarget); 

}

buttonlayer.addEventListener(MouseEvent.CLICK, rClick);

Die Url und das Target werden dabei als GET Parameter in folgender Form übergeben:

<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" id="hwh_100923_Skyscraper" align="middle" height="600" width="200">
				<param name="movie" value="hwh_111010_Skyscraper_2.swf?clickTag=http%3A%2F%2Fwww.hwh.de%2Findex.php%3Ffilter_id%3D8%26cat%3D354%26cPath%3D642_354&clicktarget=_blank">
				<param name="quality" value="high">
				<param name="bgcolor" value="#ffffff">
				<param name="play" value="true">

				<!--[if !IE]>-->
				<object type="application/x-shockwave-flash" data="hwh_111010_Skyscraper_2.swf?clickTag=http%3A%2F%2Fwww.hwh.de%2Findex.php%3Ffilter_id%3D8%26cat%3D354%26cPath%3D642_354&clicktarget=_blank" height="600" width="200">
					<param name="movie" value="hwh_111010_Skyscraper_2.swf?clickTag=http%3A%2F%2Fwww.hwh.de%2Findex.php%3Ffilter_id%3D8%26cat%3D354%26cPath%3D642_354&clicktarget=_blank">
					<param name="quality" value="high">
					<param name="bgcolor" value="#ffffff">
					<param name="play" value="true">
				<!--<![endif]-->
					<a href="http://www.adobe.com/go/getflash">
						<img src="hwh_100923_Skyscraper-Dateien/get_flash_player.gif" alt="Get Adobe Flash Player">

					</a>
				<!--[if !IE]>-->
				</object>
				<!--<![endif]-->
			</object>

Keine Kommentar »

03 Oct

Billsafe Integration mit PHP

Erstellt in Sonstiges am 03.10.11

Billsafe ermöglicht die Zahlungsart “Rechnung” auch für kleinere Händler.

Für die Integration von Billsafe mit PHP gibt es von Billsafe ein SDK, mit der dies auf einfachem Wege möglich ist. Das SDK kann direkt von Billsafe hier bezogen werden.

Damit die API funktioniert muss PHP über SSL kommunizieren können. Dafür muss die Extension php_openssl geladen sein. Unter Windows kann dies durch folgenden Eintrag in der php.ini erreicht werden:

extension=php_openssl.dll

Bedingungen für die Zahlungsart Billsafe:

  • Die Zahlungsart kann nur solchen Kunden angeboten werden bei denen Liefer- und Rechnungsanschrift gleich ist.
  • Aufschläge für die Zahlungsart müssen mit Billsafe abgestimmt werden.

Keine Kommentar »

20 Sep

Magento Notitzen

Erstellt in Magento am 20.09.11

Formatierte Ausgabe des Warenkorb Gesamtpreises:

<?php echo $this->helper('checkout')->formatPrice(Mage::getSingleton('checkout/cart')->getQuote()->getGrandTotal()) ?>

Anzahl an Produkten im Warenkorb:

<?php echo Mage::helper('checkout/cart')->getItemsQty(); ?>

Anzahl an Artikeln im Warenkorb:

<?php echo Mage::helper('checkout/cart')->getItemsCount(); ?>

URL zum Warenkorb:

<?php $url_basket = $this->getUrl('checkout/cart'); ?>

Ausgabe eines statischen Blockes im Template über den Seitenbezeichner:

<?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('block_footer_mitte_links')->toHTML(); ?>

Ausgabe eines statischen Blockes im CMS Block:

{{block type="cms/block" block_id="block_footer_mitte_links" template="cms/content.phtml"}}

Pfad zum Media Ordner:

$dir = Mage::getBaseDir('media');

Mehrwertsteuer eines Produktes (Mage_Catalog_Model_Product)

$product->getTaxPercent();

Keine Kommentar »