Alex' Blog http://blog.alexander-fischer.org Blog von Alexander Fischer über Dinge, die mich interessieren, wie Erfahrungsberichte, Webprogrammierung, Wordpress, jQuery uvm. Thu, 09 Jul 2015 08:22:57 +0000 de-DE hourly 1 http://wordpress.org/?v=4.2.4 Zählt der Aufruf eines Youtube-Videos als View, wenn das Video mit autoplay embedded ist? http://blog.alexander-fischer.org/tipps-und-tricks/zaehlt-der-aufruf-eines-youtube-videos-als-view-wenn-das-video-mit-autoplay-embedded-ist/ http://blog.alexander-fischer.org/tipps-und-tricks/zaehlt-der-aufruf-eines-youtube-videos-als-view-wenn-das-video-mit-autoplay-embedded-ist/#comments Tue, 16 Jun 2015 13:24:46 +0000 http://blog.alexander-fischer.org/?p=590 Nein.

„Beachte, dass nur aktive Aufrufe und keine Aufrufe von Videos gezählt werden, die auf Autoplay gestellt sind.“

Quelle: https://support.google.com/youtube/answer/1714329?hl=de

]]>
http://blog.alexander-fischer.org/tipps-und-tricks/zaehlt-der-aufruf-eines-youtube-videos-als-view-wenn-das-video-mit-autoplay-embedded-ist/feed/ 0
Der neue Trend – heißt „unfriend“? http://blog.alexander-fischer.org/facebook/der-neue-trend-heisst-unfriend/ http://blog.alexander-fischer.org/facebook/der-neue-trend-heisst-unfriend/#comments Thu, 18 Dec 2014 17:53:18 +0000 http://blog.alexander-fischer.org/?p=571 Der neue Trend – heißt „unfriend“? weiterlesen]]> Plötzlich fangen alle an und „unfrienden“ ihre „Freunde“ bei Facebook aufgrund verschiedener Likes! Wow. Ich bin beeindruckt welche Wellen geschlagen werden. Wellen, die vermutlich PEGIDA & die AfD angetrieben haben – behaupte ich.

Ich werde mich gar nicht weiter zu dem Thema äußern – wer aber gerne ein bisschen hinter die Kulissen gucken will, der kann das hier mal tun. Die Seite testspiel.de ist eine von vielen Seiten, die ein paar Links verteilt hat unter denen man nachschauen kann, welcher der eigenen Freunde eine bestimmte Seite geliked hat. Sie haben das mit dem URL-Shortener bit.ly gemacht – die wiederum zeigen, wer diesen Shortlink verbreitet und wie oft der Shortlink so im letzten Jahr aufgerufen wurde – und darum geht es mir hier im Artikel.

Zum jetzigen Zeitpunkt (18.12.2014, 18:12 Uhr) wollten 92.807 Leute wissen, wieviele ihrer Freunde die Pegida-Facebook-Seite geliked haben:

bit.ly/unfriend-pegida+ Klickstatistiken 18.12.2014, 18:12 Uhr
bit.ly/unfriend-pegida+ Klickstatistiken 18.12.2014, 18:12 Uhr

Guckt einfach selber mal rein:

Und gleich noch ein paar eigene Vorschläge von mir:
Und ein paar direkt mit „Gegenpol“ :):
 (Schon lustig, wieviele doch eigentliche Gegenpole geliked haben)

Das Prinzip bei bit.ly – Links ist recht simpel: An den Shortlink (nicht draufklicken, sondern kopieren) einfach ein + angehängt und schon kommt man zu den öffentlichen Statistiken zu diesem Link und kann dort sehen:

  • wieviele Klicks auf diesen Link erfolgt sind
  • wieviele andere Shortlinks auf den Ziellink erstellt wurden (natürlich nur via bit.ly)
  • wer diesen Shortlink verlinkt (sofern er einen bit.ly-Account hat)
  • seit wann dieser Link aktiv ist
Ihr werdet feststellen, dass es einige Links schon deutlich länger gibt – im April 2014 war schonmal ein kleiner Hype ums „Unfrienden“ ;).

Zum Schluss schließe ich mich noch dem Abschlusswort der testspiel.de – Seite an:

PPS: Immer locker bleiben.

 

]]>
http://blog.alexander-fischer.org/facebook/der-neue-trend-heisst-unfriend/feed/ 2
Eigene Dateitypen in Netbeans einbinden für die Spracherkennung http://blog.alexander-fischer.org/programmierung/eigene-dateitypen-in-netbeans-einbinden-fur-die-spracherkennung/ http://blog.alexander-fischer.org/programmierung/eigene-dateitypen-in-netbeans-einbinden-fur-die-spracherkennung/#comments Wed, 22 Oct 2014 08:49:54 +0000 http://blog.alexander-fischer.org/?p=559 Eigene Dateitypen in Netbeans einbinden für die Spracherkennung weiterlesen]]> Ich muss derzeit mit einem uralten Template-System arbeiten, welches Dateien pro Sprache mit eigener Endung versieht. Dadurch geht mir in Netbeans der Komfort des Syntax-Highlighting und der Auto-Completion für Funktionen leider komplett verloren. Die Datei-Erweiterungen enden auf .cs für Tschechisch, .en für Englisch, .de für Deutsch und so weiter – es gibt auch .tpl und .llt – Dateien in diesem System.

Um diese Dateien nun als PHP-Dateien oder HTML-Dateien (je nach Endung) erkennen zu lassen muss man in Netbeans folgende Schritte befolgen:

Unter Tools –> Options befindet sich im sich öffnenden Dialog der Menüpunkt „Miscellaneous“. Dort im Tab „Files“ lassen sich alle Dateierweiterungen einstellen.

Netbeans: eigene Dateierweiterungen hinzufügen für Syntax-Highlighting: Tools --> Options auswählen
Netbeans: eigene Dateierweiterungen hinzufügen für Syntax-Highlighting: Tools –> Options auswählen

Neben „File Extensions“ auf „New“ drücken, die Dateiendung eingeben:

Netbeans: eigene Dateierweiterungen hinzufügen: Dateiendung eingeben
Netbeans: eigene Dateierweiterungen hinzufügen: Dateiendung eingeben

Und dann unter „Associated File Type (MIME):“ für PHP-Dateien „text/x-php5″ auswählen.

Netbeans: eigene Dateierweiterungen hinzufügen: MIME-Type für Dateiendung auswählen
Netbeans: eigene Dateierweiterungen hinzufügen: MIME-Type für Dateiendung auswählen – hier für PHP

Der Klick auf „Apply“ bestätigt die Eingaben und sofort erkennt Netbeans diese Dateien als PHP-Dateien und alles geht wieder wie gewohnt :).

Unterhalb des MIME-Auswahlfeldes befindet sich auch ein Hinweis, welche Dateitypen bereits erkannt werden für den ausgewählten MIME-Typ:

Netbeans: eigene Dateierweiterungen hinzufügen: bereits hinzugefügte Dateiendung für den ausgewählten MIME-Typ
Netbeans: eigene Dateierweiterungen hinzufügen: bereits hinzugefügte Dateiendung für den ausgewählten MIME-Typ

Weitere Tipps und Hinweise willkommen!

]]>
http://blog.alexander-fischer.org/programmierung/eigene-dateitypen-in-netbeans-einbinden-fur-die-spracherkennung/feed/ 0
Elemente mit TypoScript anhand eines gesetzten GET-Parameters verbergen http://blog.alexander-fischer.org/programmierung/webprogrammierung/typo3/elemente-mit-typoscript-anhand-eines-gesetzten-get-parameters-verbergen/ http://blog.alexander-fischer.org/programmierung/webprogrammierung/typo3/elemente-mit-typoscript-anhand-eines-gesetzten-get-parameters-verbergen/#comments Wed, 24 Sep 2014 19:50:52 +0000 http://blog.alexander-fischer.org/?p=549 Elemente mit TypoScript anhand eines gesetzten GET-Parameters verbergen weiterlesen]]> Ich hatte ja schon vor einem halben Jahr nach einer Möglichkeit gesucht mit TypoScript ein Element bei einer bestimmten Sprache zu verstecken, diesmal aber habe ich nach einem Weg gesucht um bei einem bestimmten via GET übergebenen Parameter egal welchen Wertes ein Element nicht zu rendern – und siehe da, auch hier gibt es einen Weg:

page.10.marks.CONTENT.10.renderObj.stdWrap.if {
  #isTrue.data checks if my-custom-param has a value and is greater zero
  isTrue.data = GP:my-custom-param
  isInList.field = uid
  #select content elements with the following ids
  value = 2793,2797
  #hide them
  negate = 1
}

Das Template rendert den Inhalt in den ###CONTENT### – Marker hinein, unter 10 wird der zu modifizierende Content eingebaut, in meinem Fall wird unter 20 (nicht im Snippet zu sehen) dann weiterer Content eingebaut und dazwischen sitzen 2 Elemente mit der uid 2793 und 2797. Diese Elemente werden jetzt nicht mehr ausgegeben, sobald in der URL der Parameter „my-custom-param“ einen Wert hat, wobei „“ und 0 als FALSE gewertet werden, in meinem Beispiel würden die Elemente also bei example.com/index.php?my-custom-param=0 gerendert werden, bei jedem anderen Beispiel wie example.com/index.php?my-custom-param=customValue wären sie versteckt. Man beachte, dass die Notation hier für GET- und POST-Variablen gilt.
Tipps, Tricks? Verbesserungsvorschläge? Her damit!

]]>
http://blog.alexander-fischer.org/programmierung/webprogrammierung/typo3/elemente-mit-typoscript-anhand-eines-gesetzten-get-parameters-verbergen/feed/ 0
Europawahl – der Tag danach und die Parteien in den sozialen Medien http://blog.alexander-fischer.org/politik/europawahl-der-tag-danach-und-die-parteien-in-den-sozialen-medien/ http://blog.alexander-fischer.org/politik/europawahl-der-tag-danach-und-die-parteien-in-den-sozialen-medien/#comments Mon, 26 May 2014 18:40:06 +0000 http://blog.alexander-fischer.org/?p=527 Europawahl – der Tag danach und die Parteien in den sozialen Medien weiterlesen]]> Ohne auch nur die Ergebnisse der Europawahl zu kennen hat mir mein S.M.A.R.T.-Tool direkt gezeigt, wer die großen Sieger der Europawahl in der Parteienlandschaft in Deutschland waren:

Grafik über Facebook Talking abouts - Kennzahlen der Parteien: CDU, SPD, Die Grünen, Die Llinken, Alternative für Deutschland, NPD, Piratenpartei und Die PARTEI

Die Alternative für Deutschland (AfD) und DIE PARTEI. Verrückt, oder? :) Bei den Likes hat DIE PARTEI sogar die bis gestern (25.05.2014) führende AfD überholt! Im Vergleich zum Vortag ist die AfD der klare Sieger. Die Kurve zeigt, dass während der Europawahl sehr viel über die Alternative für Deutschland gesprochen wurde: Waren es am 25.05. noch 33.507 Erwähnungen, so sind es heute abend (26.05.2014) schon 53.975.

Google+ eignet sich da wohl nicht so als guter Messwert: Dort blieben die Kurven relativ flach, einzig auch hier hat DIE PARTEI einen Anstieg nach oben verzeichnet und hat die NPD bei den Followern überholt.

Ich werde wohl demnächst relative Statistiken mit einbauen, um An- und Abstiege besser verdeutlichen zu können. Gerade bei den Views der Beiträge auf Google+, bei welchem die Piratenpartei um Längen führt lohnt es sich dann wohl mal, genauer hinzuschauen. Bei Facebook ist die Kurve sogar abfallend für die „Talking abouts“.

Wer ein paar andere Vergleiche ziehen will braucht nur die gewünschten Parteien auswählen und dann auf „Draw custom graphs“ klicken auf der S.M.A.R.T. – Tool – Seite. (Das Wording werde ich hier noch eindeutschen :) ).

]]>
http://blog.alexander-fischer.org/politik/europawahl-der-tag-danach-und-die-parteien-in-den-sozialen-medien/feed/ 0
Content-Element mit TypoScript für spezielle Sprache nicht rendern http://blog.alexander-fischer.org/programmierung/webprogrammierung/typo3/content-element-mit-typoscript-fur-spezielle-sprache-nicht-rendern/ http://blog.alexander-fischer.org/programmierung/webprogrammierung/typo3/content-element-mit-typoscript-fur-spezielle-sprache-nicht-rendern/#comments Mon, 24 Mar 2014 17:00:37 +0000 http://blog.alexander-fischer.org/?p=484 Content-Element mit TypoScript für spezielle Sprache nicht rendern weiterlesen]]> Ist-Situation: Ein Content-Element wird für alle Sprachen ausgegeben

… enthält jedoch Inhalte, die in zwei Sprachen ausgeschlossen werden sollen. Das Content-Element wird immer am Ende jeder Seite gerendert. Folgendes TypoScript lädt den Inhalt:

page.20 = CONTENT
page.20 {
  table = tt_content
  select.orderBy = sorting
  select.languageField = sys_language_uid
  select.where = colPos = 6
  slide = -1
  slide.collect = 0
  collectReverse = 1
}

„colPost = 6″ zeigt, dass hier ein 7-spaltiges Backend-Layout ist und das Content-Element aus der letzten Spalte genommen wird :).

Soll: Der Inhalt des Content-Elements soll für die zwei Sprachen nicht ausgegeben werden

Dazu setze ich die Bedingung für die Sprache und habe mir ein TypoScript-Snippet aus der Doku zunutze gemacht und angepasst:

[globalVar = GP:L = 1] || [globalVar = GP:L = 2]
page.20.renderObj.stdWrap.if {
isInList.field = uid
value = 328
negate = 1
}
[global]

Da für beide Sprachen der Inhalt nicht gerendert werden soll kann man prima mittels einer ODER-Verknüpfung (||) dafür sorgen, dass man das TypoScript nur einmal schreiben muss. Etwas ungewohnt erscheint mir jedoch der Code innerhalb der Bedingung, der soviel sagt wie: Wenn die uid mit dem Value „328“ vorhanden ist, dann nicht (negate = 1) rendern. Das Snippet stammt von hier: http://typo3.org/documentation/snippets/sd/100/.
Alternative Lösungsvorschläge? Her damit!

PS: Die UID des Content-Elements erhält man übrigens recht einfach, wenn man mit der Maus über den Typ des Content-Feldes fährt:
Typo3 Content-UID eines Elements herausfinden per Mouseover

]]>
http://blog.alexander-fischer.org/programmierung/webprogrammierung/typo3/content-element-mit-typoscript-fur-spezielle-sprache-nicht-rendern/feed/ 1
Typo3 – Lokale Installation unter Windows7 / 8 – Randnotizen http://blog.alexander-fischer.org/programmierung/webprogrammierung/typo3/typo3-lokale-installation-unter-windows7-8-randnotizen/ http://blog.alexander-fischer.org/programmierung/webprogrammierung/typo3/typo3-lokale-installation-unter-windows7-8-randnotizen/#comments Tue, 07 Jan 2014 11:06:45 +0000 http://blog.alexander-fischer.org/?p=450 Typo3 – Lokale Installation unter Windows7 / 8 – Randnotizen weiterlesen]]> Dieser Artikel hält ein paar Dinge fest, die mir wiederholt bei lokalen Installationen von Typo3 mit xampp aufgefallen sind.

Situation: Typo3-Umzug von PC A zu PC B

Kurznavigation

Fehler: Alle Bilder werden nicht angezeigt.

Unter Typo3 Version 6.x wird auch folgender Fehler geworfen:

Uncaught TYPO3 Exception #1329821485: File has been deleted.

Je nach Fehlereinstellungen folgt dann z.B.:

RuntimeException thrown in file
D:\xampp\typo3_sources\typo3_src-6.1.3\typo3\sysext\core\Classes\Resource\AbstractFile.php in line 527.

mit ähnlichem Pfad und weiteren Fehlerdetails. Kommt keine Fehlermeldung (mehr, da z.B. durch mehrfachren Reload der Seite alle Bilder durchgegangen werden bis keines mehr einen Fehler werfen kann :) ), wird meist kein Bild mehr angezeigt. Im Quelltext sieht man, dass die Bilder korrekt kopiert wurden, jedoch werden sie alle mit 0x0 Pixeln angezeigt.

Lösung: ImageMagick installieren. Vermutlich fehlt hier ImageMagick. Hatte diesen Fall sowohl bei Windows 7 wie auch bei Windows 8. Zu beachten ist hier:
Binary Release downloaden und installieren, empfohlenerweise jedoch nicht im vorgegebenen Standard-Pfad, sondern beispielsweise unter „D:\ImageMagick\“. Nach der Installation ins Install Tool von Typo3 wechseln und dort unter „Basic Configuration“ den genauen Pfad eintragen, für Windows mit Backslashes (\) statt „/“ innerhalb eines Pfades ohne den letzten Slash. In meinem Fall sieht das dann so aus:

Typo3 ImageMagick unter Windows 8 installieren und unter Basic Configuration den Pfad setzen

Nach Klick auf  „Send“ sollte ImageMagick erkannt werden und unter „Basic Configuration“ folgendes stehen:

Typo3 ImageMagick unter Windows 8 installieren: Pfad korrekt gesetzt

Man darf sich nicht verwirren lassen von der Pfadangabe, die hier mit \ und / angegeben werden – ist so funktionstüchtig. Gibt man im vorherigen Schritt den Pfad mit \ am Ende an, würde der Pfad hier letztendlich auch so aussehen: „D:\ImageMagick-6.8.8-Q16\/“ – Typo3 fügt automatisch einen Slash hinten an :).

Fehler: Symbolische Links (Symlinks) gehen beim Kopieren verloren.
Lösung:
Windows 7 oder 8 bieten mit dem Befehl „mklink“ in der Eingabeaufforderung bereits das notwendige Tool um symbolische Links zu setzen. Alte symbolische Links (sind nach dem Kopieren meist normale Ordner bzw. Dateien ohne Endung) löschen.
Zuerst die Konsole ALS ADMINISTRATOR (wichtig!) starten:

Windows 8: Eingabeaufforderung als Administrator starten

Um zu der oben abgebildeten Ansicht zu kommen einfach die Windows-Taste drücken (oder ab Windows 8.1 auf den „Start“-Button) und dann direkt „cmd“ in die Tastatur tippen (ohne irgendeine App zu suchen!), Windows startet dann automatisch den Such-Charm. Rechte Maustaste auf die Eingabeaufforderung zeigt dann das abgebildete Kontext-Menü. Dort „Als Adminstrator ausführen“ auswählen und die Konsole öffnet sich.

In folgender Reihenfolge die Befehle ausführen:

Typo3 Symlinks setzen unter Windows 8

Gehighlighted hier:

Grün umrandet: Konsole als Administrator gestartet
Rot umrandet: Fehler: Die Datei „index.php“ war bereits vorhanden. Nach diesem Schritt habe ich die index.php gelöscht, damit ich einen symbolischen Link auf diese Datei setzen konnte.
Blau umrandet: Ändern des Typo3-Source – Ordners auf ein anderes Source-Verzeichnis.

Zum Copy&Paste hier nochmal die Reihenfolge:

  1. Wechseln zum Installations-Verzeichnis, in meinem Fall „D:\xampp\htdocs\“. (Anmerkung: Dieser Pfad ist nicht wirklich ideal gewählt, besser wäre es, ein extra Verzeichnis unterhalb von „htdocs“ oder ein ganz anderes Verzeichnis für die Typo3-Installation zu nehmen).Hier liegen dann unter anderem folgende Ordner:
    „D:\xampp\htdocs\fileadmin“
    „D:\xampp\htdocs\typo3conf“
    „D:\xampp\htdocs\typo3temp“
    und viele weitere zu Typo3 gehörende. Ich habe auf gleicher Ebene des htdocs-Ordners einen Ordner mit verschiedenen Typo3-Source-Versionen angelegt, so dass sich folgende Ordnerstruktur ergibt:
    „D:\xampp\typo3_sources\typo3_src-4.5.16″
    „D:\xampp\typo3_sources\typo3_src-4.5.29″
    „D:\xampp\typo3_sources\typo3_src-4.7.14″
    „D:\xampp\typo3_sources\typo3_src-6.0.0″
    „D:\xampp\typo3_sources\typo3_src-6.0.8″
    „D:\xampp\typo3_sources\typo3_src-6.1.0″
    „D:\xampp\typo3_sources\typo3_src-6.1.3″
    Dies bietet mir die Möglichkeit recht schnell von Version 4.5.16 auf 4.5.29 oder andere Versionen zu springen (oder im Fehlerfall zurück auf den alten Source zu gehen). In den Ordnern sind jeweils nur die Sources von Typo3 ohne Dummy-Dateien. Der Download älterer Typo3-Sources ist immernoch möglich, auch wenn es etwas fummelig ist: Man gehe auf http://typo3.org/download/#c1984 und kopiere sich den Link des Archives, beispielsweise http://prdownloads.sourceforge.net/typo3/typo3_src-4.5.32.zip?download für den derzeit aktuellen Download (Stand: 06.01.2014) der LTS-Version 4.5.32 und ändert die hinteren Zahlen zu den gewünschten. Wenn ich den Source für die Version 4.5.16 benötige, muss der Link so abgeändert werden: http://prdownloads.sourceforge.net/typo3/typo3_src-4.5.16.zip?download. Dann den modifizierten Link im Browser aufrufen und der Download des älteren Sources geht. (Gleiches Verfahren funktioniert natürlich auch für die anderen Daten mit Dummy-Package oder Introduction-Package).
  2. SymLink auf den Source-Ordner setzen:
    mklink /d typo3_src ..\typo3_sources\typo3_src-4.5.16

    Um sicher zu gehen kann man nach ..\ mit der ALT-Taste durch die dort vorhandenen Ordner durchschalten. Gibt man das „t“ bereits an, also „..\t“ und drückt dann die ALT-Taste werden alle Ordner und Dateien, die mit „t“ anfangen durchgeschaltet. Dieses Vorgehen funktioniert auch für Ordner, die mit mklink erstellt wurden, also für Symlinks!
    Weitere Symlinks setzen relativ zum aktuellen Source-Pfad:

    mklink /d typo3 typo3_src\typo3
    mklink /d t3lib typo3_src\t3lib
    mklink index.php typo3_src\index.php

    (Letzter Befehl ohne „/d“ – Parameter, da kein Verzeichnis!)

Danach sollte wieder alles funktionieren wie gewohnt – zumindest stimmen die Pfade wieder sofern man vorher auch mit externem Source-Ordner gearbeitet hat.

]]>
http://blog.alexander-fischer.org/programmierung/webprogrammierung/typo3/typo3-lokale-installation-unter-windows7-8-randnotizen/feed/ 0
tt_news – Alle Sprachparameter zum Übersetzen http://blog.alexander-fischer.org/programmierung/webprogrammierung/typo3/tt_news-alle-sprachparameter-zum-ubersetzen/ http://blog.alexander-fischer.org/programmierung/webprogrammierung/typo3/tt_news-alle-sprachparameter-zum-ubersetzen/#comments Fri, 08 Nov 2013 10:22:17 +0000 http://blog.alexander-fischer.org/?p=439 tt_news – Alle Sprachparameter zum Übersetzen weiterlesen]]> Da ich mich regelmäßig dumm und dusselig suche um alle (über)setzbaren Parameter für eine Extension wie z.B. tt_news zu finden schreib ichs jetzt auf:
Alle möglichen Parameter für Sprachvariablen findet man bei der tt_news-Extension in der Datei „typo3conf/ext/tt_news/pi/locallang.xml“ – nicht zu verwechselt mit der locallang.xml, die im Root-Ordner („typo3conf/ext/tt_news/“) der Extension liegt, welche für die backendseitige Übersetzung zuständig ist.

Standard-Werte für die tt_news-Übersetzung

Hier ein Auszug aus der XML-Datei, typische Key-Value-Pairs:

<languagekey index="default" type="array">
	<label index="latestHeader">Breaking News:</label>
	<label index="textCatLatest">Cat:</label>
	<label index="textCat">Category:</label>
	<label index="textNewsAge">Age:</label>
	<label index="more">[more]</label>
	<label index="preAuthor">By:</label>
	<label index="backToList">&lt;- Back to: %s</label>
	<label index="goToArchive">go to Archive -&gt;</label>
	<label index="archiveHeader">ARCHIVE:</label>
	<label index="archiveItems">items</label>
	<label index="archiveItem">item</label>
	<label index="archiveEmptyMsg">Sorry, Archive contains no items</label>
	<label index="noResultsMsg">nothing found</label>
	<label index="searchEmptyMsg">Please enter a searchword.</label>
	<label index="noNewsToListMsg">no news in this list.</label>
	<label index="versionPreviewMessage">Version preview !</label>
	<label index="versionPreviewMessageLinkToOriginal">(click here to see the public version of this record)</label>
	<label index="nonPlublicVersionMsg">Error! You requested a non-public version of a tt_news article.</label>
	<label index="noNewsIdMsg">no news_id given</label>
	<label index="noTranslMsg">Sorry, there is no translation for this news-article.</label>
	<label index="noNewsForArchPeriod">Sorry, there are no translated news-articles in this Archive period.</label>
	<label index="textRelated">Related News:</label>
	<label index="textLinks">Links:</label>
	<label index="textFiles">Files:</label>
	<label index="textRelatedByCategory">Other news from this category:</label>
	<label index="pi_list_browseresults_prev">&lt; Previous</label>
	<label index="pi_list_browseresults_page">Page</label>
	<label index="pi_list_browseresults_next">Next &gt;</label>
	<label index="pi_list_browseresults_first">&lt;&lt; First</label>
	<label index="pi_list_browseresults_last">Last &gt;&gt;</label>
	<label index="pi_list_browseresults_displays">Displaying results ###SPAN_BEGIN###%s to %s&lt;/span&gt; out of ###SPAN_BEGIN###%s&lt;/span&gt;</label>
	<label index="pi_list_browseresults_displays_advanced">Displaying results ###FROM### to ###TO### out of ###OUT_OF###</label>
	<label index="pi_list_browseresults_to">to</label>
	<label index="searchButtonLabel">Search</label>
	<label index="altTextCatSelector">Display only category:</label>
	<label index="altTextCatShortcut">Go to:</label>
	<label index="catmenuHeader">Select a category:</label>
	<label index="nextArticle">Next article</label>
	<label index="prevArticle">Previous article</label>
</languagekey>

Setzen eigener Sprachwerte im TypoScript

Alle Attribute „index“ des Knotens „label“ entsprechen der TypoScript-Eigenschaft, die gesetzt werden kann. Der Wert des „label“ – Knotens entspricht dem zu übersetzenden Text. Nachfolgend ein Beispiel, wie der Standard-Text für die related News („Weitere News in dieser Kategorie“) und der more-Link im TypoScript geändert werden können:

plugin.tt_news._LOCAL_LANG {
  de{
    more = weiterlesen
    textRelatedByCategory = Das könnte Sie auch interessieren
  }
  es.more = más
  fr.more = plus
  it.more = più
  pl.more = więcej
  cs.more = víc
  nl.more = meer
  ru.more = больше
}

Hier wird jetzt der Text für weitere News aus der gleichen Kategorie in der deutschen Sprache überschrieben. Alle weiteren Parameter lassen sich auf die gleiche Art und Weise überschreiben.

Fragen? Anregungen? Kritik? Über Kommentare freue ich mich stets!

]]>
http://blog.alexander-fischer.org/programmierung/webprogrammierung/typo3/tt_news-alle-sprachparameter-zum-ubersetzen/feed/ 0
jQuery – finde alle Links, die „type=0″ beinhalten http://blog.alexander-fischer.org/programmierung/webprogrammierung/javascript/jquery-finde-alle-links-die-type-gleich-0-beinhalten/ http://blog.alexander-fischer.org/programmierung/webprogrammierung/javascript/jquery-finde-alle-links-die-type-gleich-0-beinhalten/#comments Mon, 28 Oct 2013 12:15:17 +0000 http://blog.alexander-fischer.org/?p=432 Kurz notiert:
Alle Links, die einen bestimmten String wie zum Beispiel „type=0″ im href – Teil stehen haben findet man mit

//returns an array with all Links having "type=0" within the  
//href="someDomain.tld/param1=1&type=0&anotherParam=3"
jQuery('a[href*="type=0"]');
]]>
http://blog.alexander-fischer.org/programmierung/webprogrammierung/javascript/jquery-finde-alle-links-die-type-gleich-0-beinhalten/feed/ 0
JavaScript-Mysterien: Teil 1: Warum haben manche (jQuery-)Libraries ein führendes Semikolon? http://blog.alexander-fischer.org/programmierung/webprogrammierung/javascript/javascript-mysterien-teil-1-warum-haben-manche-jquery-libraries-ein-fuhrendes-semikolon/ http://blog.alexander-fischer.org/programmierung/webprogrammierung/javascript/javascript-mysterien-teil-1-warum-haben-manche-jquery-libraries-ein-fuhrendes-semikolon/#comments Mon, 14 Oct 2013 08:27:31 +0000 http://blog.alexander-fischer.org/?p=420 JavaScript-Mysterien: Teil 1: Warum haben manche (jQuery-)Libraries ein führendes Semikolon? weiterlesen]]> Dem ein oder anderen ist es vielleicht schon aufgefallen: Manche Libraries (nicht ausschließlich jQuery bezogen) haben ein führendes „;“, bevor der eigentliche Code losgeht. Das sieht dann so aus:

//Plugin Code WITH leading ;
;(function () {
console.log("plugin function called");
//source code
})();

Aber warum ist da ein führendes Semikolon? Oder wie mein Cousin letztens fragte:

ist dir eigentl aufgefallen das dein code mit einem traurigen smiley beginnt, ist dass n programmiererwitz?

Der gleiche Code würde auch ohne ; funktionieren und wäre einwandfrei. Das führende Semikolon hat den Sinn, um Code, der VORHER ausgeführt wird und möglicherweise kein abschließendes Semikolon hat, abzuschließen, damit der Plugin-Code selber ausgeführt wird. Gewöhnlich kennt man den Code nicht, den andere Entwickler schreiben :-).
Würde das Semikolon da nicht stehen und Code vorher kein abschließendes ; haben, so würde der Plugin-Code einen Fehler werfen.

Beispiel gefällig? Plugin-Code ohne führendes Semikolon

Dieser Code wirft einen Fehler, da der Code vor dem Plugin-Code kein abschließendes Semikolon hat:

//some source code WITHOUT trailing ;
console.log("test")
 
//Plugin Code WITHOUT leading ;
(function () {
console.log("plugin function called");
//source code
})();

Zum Überprüfen den Code einfach mit Copy&Paste in die Konsole packen und ausführen. Als Resultat folgt ein TypeError:

Plugin-Code mit führendem Semikolon

Führt man den gleichen Code nochmal aus, nur mit führendem Semikolon läuft der Code durch:

//some source code
console.log("test")
 
//Plugin Code WITH leading ;
;(function () {
console.log("plugin function called");
//source code
})();

Kein Wunder, der „fremde“ Code, der vorher ausgeführt wird, wird jetzt ordnungsgemäß mit einem Semikolon abgeschlossen.

Doppeltes Semikolon

Was passiert aber, wenn der vorherige Code bereits durch ein Semikolon abgeschlossen wird? Dann fügt der Plugin-Code ein weiteres Semikolon hinzu! Das ist doch unnötig! Ja, ist es – aber es führt zu keinem Fehler. Ein Semikolon schließt ein Statement in JavaScipt ab. Steht nichts davor, ist es ein leeres Statement:

//some source code WITH trailing ;
console.log("test");
 
//Plugin Code WITH leading ;
;(function () {
console.log("plugin function called");
//source code
})();

That’s it! JavaScript ermöglicht (leider) das Schreiben und Ausführen von Code ohne Semikolon – davon ist jedoch „strict“ abzuraten.

Weiterführende Literatur

Wer ein wenig mehr dazu lesen will, beispielsweise einen satirischen Artikel über Semikolon-Vermeidung, bitteschön: http://benalman.com/news/2013/01/advice-javascript-semicolon-haters/

]]>
http://blog.alexander-fischer.org/programmierung/webprogrammierung/javascript/javascript-mysterien-teil-1-warum-haben-manche-jquery-libraries-ein-fuhrendes-semikolon/feed/ 0