1 = GMENU
1 {
wrap =
NO {
wrap = |
XY=[70.w]+17,20
25=IMAGE
25.file=fileadmin/templates/img/turkis.png
20 = BOX
20.dimensions = 0,0,[25.w],[25.h]
20.color = #33bcad
30 = IMAGE
30.file = fileadmin/templates/img/cornermask_tl.gif
30.align = l,t
40 = IMAGE
40.file = fileadmin/templates/img/cornermask_tr.gif
40.align = r,t
50 = IMAGE
50.file = fileadmin/templates/img/cornermask_bl.gif
50.align = l,b
60 = IMAGE
60.file = fileadmin/templates/img/cornermask_br.gif
60.align = r,b
70=TEXT
70 {
text.field=title
offset=5,14
fontColor=#ffffff
fontFile=t3lib/fonts/vera.ttf
fontSize=13
niceText=1
}
}
RO < .NO
RO=1
RO.5.file=fileadmin/templates/img/rot.png
RO.10.fontColor= #ffffff
ACT < .RO
ACT=1
}
Freitag, 11. Juni 2010
Mittwoch, 24. März 2010
iframe border im IE sichtbar
<iframe frameborder="0" ...
danach nicht mehr
danke für das Relikt aus alten Zeiten
danach nicht mehr
danke für das Relikt aus alten Zeiten
flash getUrl funktioniert erst beim zweiten Aufruf des swf
folgendne Parameter prüfen: 'allowScriptAccess','always',
sameDomain -> erst beim zweiten Anlauf :-(
sameDomain -> erst beim zweiten Anlauf :-(
Mittwoch, 10. Februar 2010
Permanentes Rotieren eines Bildes mit Hilfe von dynamisch erzeugten CSS und ohne jQuery
var j = 0;
var i = 0;
function getRandom( min, max ) {
if( min > max ) {
return( -1 );
}
if( min == max ) {
return( min );
}
return min + parseInt( Math.random() * ( max-min+1 ) );
}
function langsamRotieren() {
if( document.styleSheets[0].cssRules ) {
if (j == 0) {
j = getRandom(0,3600);
}
j++;
document.getElementById("rotatingImage").className = 'rot' + j % 3600 ;
window.setTimeout("langsamRotieren()",1);
} else if ( document.styleSheets[0].rules ) {
j = getRandom(0,4);
document.getElementById("rotatingImage").className = 'rot' + j ;
}
}
function init() {
if( document.styleSheets ) {
var myStyle = document.createElement("style");
var styles = document.styleSheets.length;
myStyle.setAttribute( "type", "text/css" );
document.getElementsByTagName("head")[0].appendChild(myStyle);
myStyle = document.styleSheets[styles-1];
if( document.styleSheets[0].cssRules ) {
while (i < 3600) {
i++;
myStyle.insertRule(".rot" + i + " { -moz-transform: rotate(" + (i/10)*1 + "deg);-webkit-transform: rotate(" + (i/10)*1 + "deg); }", 0);
}
} else if ( document.styleSheets[0].rules ) {
while (i < 4) {
i++;
myStyle.addRule(".rot" + i , "filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=" + i + ");");
}
}
}
langsamRotieren ();
}
init();
</script>
var i = 0;
function getRandom( min, max ) {
if( min > max ) {
return( -1 );
}
if( min == max ) {
return( min );
}
return min + parseInt( Math.random() * ( max-min+1 ) );
}
function langsamRotieren() {
if( document.styleSheets[0].cssRules ) {
if (j == 0) {
j = getRandom(0,3600);
}
j++;
document.getElementById("rotatingImage").className = 'rot' + j % 3600 ;
window.setTimeout("langsamRotieren()",1);
} else if ( document.styleSheets[0].rules ) {
j = getRandom(0,4);
document.getElementById("rotatingImage").className = 'rot' + j ;
}
}
function init() {
if( document.styleSheets ) {
var myStyle = document.createElement("style");
var styles = document.styleSheets.length;
myStyle.setAttribute( "type", "text/css" );
document.getElementsByTagName("head")[0].appendChild(myStyle);
myStyle = document.styleSheets[styles-1];
if( document.styleSheets[0].cssRules ) {
while (i < 3600) {
i++;
myStyle.insertRule(".rot" + i + " { -moz-transform: rotate(" + (i/10)*1 + "deg);-webkit-transform: rotate(" + (i/10)*1 + "deg); }", 0);
}
} else if ( document.styleSheets[0].rules ) {
while (i < 4) {
i++;
myStyle.addRule(".rot" + i , "filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=" + i + ");");
}
}
}
langsamRotieren ();
}
init();
</script>
Montag, 8. Februar 2010
Flash liefert unvollständiges XML
Damit das XML, das von Flash geliefert wird, von PHP simpleXML geparst
werden kann,
einfach mal die $HTTP_RAW_POST_DATA auslesen und entsprechend ergänzen..
werden kann,
einfach mal die $HTTP_RAW_POST_DATA auslesen und entsprechend ergänzen..
Wordpress cron job anstossen
wenn in wordpress ein 'cron-job' eines Plugins angestossen werden soll, dann kann man das plugin kurz deaktiveren und wieder aktivieren. Dabei wird der job einmal ausgeführt.
Freitag, 5. Februar 2010
virtualbox mit DHCP-Adresse versorgen
wenn man schon so alleine ist, dass man eine virtualbox braucht,
kann man wenigstens mit ihr sprechen, als ob sie ein anderer rechner ist, wenn man im Menu Netzwerkadapter 'Netzwerkbrücke' auswählt.
Fertig.
die Instanz holt sich dann vom DHCP Server eine eigene Adresse, auf dass man dann auch von einem weiteren Rechner im Netzwerk auf die virtualbox zugreifen kann.
Wie das jetzt auf einer ISO-Ebene weiter unten aussieht, will ich gar nicht wissen.
kann man wenigstens mit ihr sprechen, als ob sie ein anderer rechner ist, wenn man im Menu Netzwerkadapter 'Netzwerkbrücke' auswählt.
Fertig.
die Instanz holt sich dann vom DHCP Server eine eigene Adresse, auf dass man dann auch von einem weiteren Rechner im Netzwerk auf die virtualbox zugreifen kann.
Wie das jetzt auf einer ISO-Ebene weiter unten aussieht, will ich gar nicht wissen.
logo links unten - aber bitte nicht über die navigation
Fürs JavaScript:
function getScrollWidth() {
var w = window.pageXOffset || document.body.scrollLeft;
return w ? w : 0;
}
function getScrollHeight() {
var h = window.pageYOffset || document.body.scrollTop || document.documentElement.scrollTop;
return h ? h : 0;
}
function showLogo() {
var naviHeight= window.document.getElementById('navigation').offsetHeight;
var bodyHeight = document.body.clientHeight;
var vertiScroll = getScrollWidth();
var spaceForLogo = bodyHeight - naviHeight ;
var whiteSpaceLogo = 140;
if ((spaceForLogo < whiteSpaceLogo) || (vertiScroll > 50)) {
window.document.getElementById('leftDown').style.display = 'none';
}
if ((whiteSpaceLogo < getScrollHeight() || spaceForLogo > whiteSpaceLogo) && (vertiScroll < 50) ){
window.document.getElementById('leftDown').style.display = 'block';
}
return true;
}
showLogo();
Im CSS
.leftDown {
bottom:10px;
position:fixed;
}
Für den body-Tag
onResize="showLogo();" onscroll="showLogo();"
Na dann, allzeit angstfreies scrollen
function getScrollWidth() {
var w = window.pageXOffset || document.body.scrollLeft;
return w ? w : 0;
}
function getScrollHeight() {
var h = window.pageYOffset || document.body.scrollTop || document.documentElement.scrollTop;
return h ? h : 0;
}
function showLogo() {
var naviHeight= window.document.getElementById('navigation').offsetHeight;
var bodyHeight = document.body.clientHeight;
var vertiScroll = getScrollWidth();
var spaceForLogo = bodyHeight - naviHeight ;
var whiteSpaceLogo = 140;
if ((spaceForLogo < whiteSpaceLogo) || (vertiScroll > 50)) {
window.document.getElementById('leftDown').style.display = 'none';
}
if ((whiteSpaceLogo < getScrollHeight() || spaceForLogo > whiteSpaceLogo) && (vertiScroll < 50) ){
window.document.getElementById('leftDown').style.display = 'block';
}
return true;
}
showLogo();
Im CSS
.leftDown {
bottom:10px;
position:fixed;
}
Für den body-Tag
onResize="showLogo();" onscroll="showLogo();"
Na dann, allzeit angstfreies scrollen
sprites rulez!
http://spritegen.website-performance.org/
Das in bold fehlt erstmal :-)
.sprite-google {
float:left;padding: 3px;
background: url(images/sprite.png) no-repeat top left;
background-position: 0 -493px;
width: 20px;
height: 20px; }
....also hat ja nicht jeder den gleichen Seitenaufbau für die Seiten - aber die gleiche sprite-Datei ...
Das in bold fehlt erstmal :-)
.sprite-google {
float:left;padding: 3px;
background: url(images/sprite.png) no-repeat top left;
background-position: 0 -493px;
width: 20px;
height: 20px; }
....also hat ja nicht jeder den gleichen Seitenaufbau für die Seiten - aber die gleiche sprite-Datei ...
bread crumb unterdrücken - wenn kein eigener unterpunkt da
# brot krumen
MENU2 = HMENU
MENU2{
special = rootline
entryLevel = 2
special.value = 3
special.range = 1|-1
MENU2 = HMENU
MENU2{
special = rootline
entryLevel = 2
special.value = 3
special.range = 1|-1
typoscript - leeres resultset vom sql-statement -> keine anzeige
ist nichts auf der colPos = 4
dann wird auch das wrap nicht gemacht
MEINMARKER = CONTENT
MEINMARKER {
stdWrap.required = 1
stdWrap.wrap = <div id="meineBox">|</div>
table = tt_content
select {
where = colPos = 4
orderBy = sorting
languageField = sys_language_uid
}
}
dann wird auch das wrap nicht gemacht
MEINMARKER = CONTENT
MEINMARKER {
stdWrap.required = 1
stdWrap.wrap = <div id="meineBox">|</div>
table = tt_content
select {
where = colPos = 4
orderBy = sorting
languageField = sys_language_uid
}
}
.htaccess für zum Glücklichmachen von YSlow
Kann man auch hübscher machen -
aber kaum schneller :-)
ExpiresActive On
ExpiresByType image/gif A2592000
ExpiresByType image/png A2592000
ExpiresByType image/jpeg A2592000
ExpiresByType image/x-icon A2592000
ExpiresByType application/x-shockwave-flash A2592000
ExpiresByType text/css A2592000
ExpiresByType text/javascript A2592000
ExpiresByType application/x-javascript A2592000
FileETag none
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/x-shockwave-flash
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE image/svg+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/atom_xml
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/x-httpd-php
AddOutputFilterByType DEFLATE application/x-httpd-fastphp
AddOutputFilterByType DEFLATE application/x-httpd-eruby
AddOutputFilterByType DEFLATE text/html
aber kaum schneller :-)
ExpiresActive On
ExpiresByType image/gif A2592000
ExpiresByType image/png A2592000
ExpiresByType image/jpeg A2592000
ExpiresByType image/x-icon A2592000
ExpiresByType application/x-shockwave-flash A2592000
ExpiresByType text/css A2592000
ExpiresByType text/javascript A2592000
ExpiresByType application/x-javascript A2592000
FileETag none
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/x-shockwave-flash
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE image/svg+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/atom_xml
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/x-httpd-php
AddOutputFilterByType DEFLATE application/x-httpd-fastphp
AddOutputFilterByType DEFLATE application/x-httpd-eruby
AddOutputFilterByType DEFLATE text/html
hotfix:imagemagick bei xampp auf win im safe_mode = on
.. da kommen dann auch Thumbnails,
wenn man mit
if(!$path){ $path = $gfxConf['im_path']; }
if ((TYPO3_OS == 'WIN') and (ini_get('safe_mode') == 1) ) {
$path = '';
}
die t3lib/class.t3lib_div.php die Methode imageMagickCommand(
erweitert.
It's a bug - not a feature
wenn man mit
if(!$path){ $path = $gfxConf['im_path']; }
if ((TYPO3_OS == 'WIN') and (ini_get('safe_mode') == 1) ) {
$path = '';
}
die t3lib/class.t3lib_div.php die Methode imageMagickCommand(
erweitert.
It's a bug - not a feature
Banner werden nicht angezeigt
Hurra - man arbeitet in einer Agentur - und da muss man auch mal Werbebanner plazieren.
Fein, wenn die auch angezeigt werden.
1.) Banner-Dateien nicht in einem Ordner 'banner' ablegen
2.) Banner-Dateien nicht sinnvoll benennen z.B. fluffi_120x600.jpg
Böse:
/fileadmin/banner/fluffi.jpg
Gut:
/fileadmin/KrautUndRueben/fluffi.jpg
Kaspersky filtert solche Dateien bei aktiviertem 'Anti-Spy'-'Anti-Banner' aus.
Fein, wenn die auch angezeigt werden.
1.) Banner-Dateien nicht in einem Ordner 'banner' ablegen
2.) Banner-Dateien nicht sinnvoll benennen z.B. fluffi_120x600.jpg
Böse:
/fileadmin/banner/fluffi.jpg
Gut:
/fileadmin/KrautUndRueben/fluffi.jpg
Kaspersky filtert solche Dateien bei aktiviertem 'Anti-Spy'-'Anti-Banner' aus.
notepad++ unter vista typoscript beibringen
Herunterladen der Datei userDefineLang.xml von z.B. http://moodle.shs-imst.tsn.at...userDefineLang.xml
und in /Users/XXXX/AppData/Roaming/Notepad++ legen.
Für die Autovervollständigung
Die Datei
http://moodle.shs-imst.tsn.at...typoscript.api
frisieren, in dem
'\r\n'
durch
'"/>\n\t\t<KeyWord name="'
ersetzt wird - oder diesen XML Code als TypoScript.xml
unter /Program Files/Notepad++/plugins/APIs/TypoScript.xml ablegen.
Administratorenrechte vorausgesetzt.
<?xml version="1.0" encoding="Windows-1252" ? >
<notepadplus >
<autocomplete >
<keyword name="ACT" />
<keyword name="ACTIFSUB" />
<keyword name="addHeight" />
<keyword name="addWidth" />
<keyword name="admPanel" />
<keyword name="allWrap" />
<keyword name="ATagParams" />
<keyword name="bodyTag" />
<keyword name="CASE" />
<keyword name="case" />
<keyword name="COA" />
<keyword name="cObject" />
<keyword name="code" />
<keyword name="collapse" />
<keyword name="config" />
<keyword name="CONTENT" />
<keyword name="content" />
<keyword name="content_from_pid_allowOutsideDomain" />
<keyword name="CR_" />
<keyword name="crop" />
<keyword name="CUR" />
<keyword name="data" />
<keyword name="DB" />
<keyword name="defaultTemplateObjectMain" />
<keyword name="defaultTemplateObjectSub" />
<keyword name="directory" />
<keyword name="disablePrefixComment" />
<keyword name="displayActiveOnLoad" />
<keyword name="dontHideOnMouseUp" />
<keyword name="entryLevel" />
<keyword name="expAll" />
<keyword name="external" />
<keyword name="extTarget" />
<keyword name="field" />
<keyword name="FILE" />
<keyword name="file" />
<keyword name="fileadmin/" />
<keyword name="fontColor" />
<keyword name="fontFile" />
<keyword name="fontSize" />
<keyword name="freezeMouseover" />
<keyword name="global" />
<keyword name="GMENU" />
<keyword name="GMENU_LAYERS" />
<keyword name="gmenu_layers" />
<keyword name="headerComment" />
<keyword name="headerData" />
<keyword name="hideMenuWhenNotOver" />
<keyword name="HMENU" />
<keyword name="HTML" />
<keyword name="if" />
<keyword name="IFSUB" />
<keyword name="IMAGE" />
<keyword name="Image" />
<keyword name="imgParams" />
<keyword name="includeLibs" />
<keyword name="index_enable" />
<keyword name="index_externals" />
<keyword name="inheritMainTemplates" />
<keyword name="inheritSubTemplates" />
<keyword name="inlineStyle2TempFile" />
<keyword name="intTarget" />
<keyword name="isTrue" />
<keyword name="key" />
<keyword name="layerStyle" />
<keyword name="linkWrap" />
<keyword name="lockPosition" />
<keyword name="lockPosition_addSelf" />
<keyword name="main" />
<keyword name="marks" />
<keyword name="meta" />
<keyword name="mode" />
<keyword name="niceText" />
<keyword name="NO" />
<keyword name="noBlur" />
<keyword name="obj" />
<keyword name="offset" />
<keyword name="PAGE" />
<keyword name="PAGE_TARGET" />
<keyword name="placement" />
<keyword name="plugin" />
<keyword name="range" />
<keyword name="relativeToParentLayer" />
<keyword name="relativeToTriggerItem" />
<keyword name="removeDefaultJS" />
<keyword name="required" />
<keyword name="RO" />
<keyword name="rootline" />
<keyword name="special" />
<keyword name="shortcutIcon" />
<keyword name="simulateStaticDocuments_noTypeIfNoTitle" />
<keyword name="spamProtectEmailAddresses" />
<keyword name="spamProtectEmailAddresses_atSubst" />
<keyword name="stdWrap" />
<keyword name="stylesheet" />
<keyword name="sub" />
<keyword name="target" />
<keyword name="temp" />
<keyword name="TEMPLATE" />
<keyword name="template" />
<keyword name="templateObjects" />
<keyword name="templateType" />
<keyword name="TEXT" />
<keyword name="text" />
<keyword name="textMaxLength" />
<keyword name="TMENU" />
<keyword name="TMENU_LAYERS" />
<keyword name="tmenu_layers" />
<keyword name="topOffset" />
<keyword name="transparentBackground" />
<keyword name="typeNumupper" />
<keyword name="user_" />
<keyword name="value" />
<keyword name="workOnSubpart" />
<keyword name="wrap" />
<keyword name="XY" />
<keyword name="ypMenu" />
</autocomplete>
</notepadplus>
Getestet mit Notepad++ 5.5.1
und in /Users/XXXX/AppData/Roaming/Notepad++ legen.
Für die Autovervollständigung
Die Datei
http://moodle.shs-imst.tsn.at...typoscript.api
frisieren, in dem
'\r\n'
durch
'"/>\n\t\t<KeyWord name="'
ersetzt wird - oder diesen XML Code als TypoScript.xml
unter /Program Files/Notepad++/plugins/APIs/TypoScript.xml ablegen.
Administratorenrechte vorausgesetzt.
<?xml version="1.0" encoding="Windows-1252" ? >
<notepadplus >
<autocomplete >
<keyword name="ACT" />
<keyword name="ACTIFSUB" />
<keyword name="addHeight" />
<keyword name="addWidth" />
<keyword name="admPanel" />
<keyword name="allWrap" />
<keyword name="ATagParams" />
<keyword name="bodyTag" />
<keyword name="CASE" />
<keyword name="case" />
<keyword name="COA" />
<keyword name="cObject" />
<keyword name="code" />
<keyword name="collapse" />
<keyword name="config" />
<keyword name="CONTENT" />
<keyword name="content" />
<keyword name="content_from_pid_allowOutsideDomain" />
<keyword name="CR_" />
<keyword name="crop" />
<keyword name="CUR" />
<keyword name="data" />
<keyword name="DB" />
<keyword name="defaultTemplateObjectMain" />
<keyword name="defaultTemplateObjectSub" />
<keyword name="directory" />
<keyword name="disablePrefixComment" />
<keyword name="displayActiveOnLoad" />
<keyword name="dontHideOnMouseUp" />
<keyword name="entryLevel" />
<keyword name="expAll" />
<keyword name="external" />
<keyword name="extTarget" />
<keyword name="field" />
<keyword name="FILE" />
<keyword name="file" />
<keyword name="fileadmin/" />
<keyword name="fontColor" />
<keyword name="fontFile" />
<keyword name="fontSize" />
<keyword name="freezeMouseover" />
<keyword name="global" />
<keyword name="GMENU" />
<keyword name="GMENU_LAYERS" />
<keyword name="gmenu_layers" />
<keyword name="headerComment" />
<keyword name="headerData" />
<keyword name="hideMenuWhenNotOver" />
<keyword name="HMENU" />
<keyword name="HTML" />
<keyword name="if" />
<keyword name="IFSUB" />
<keyword name="IMAGE" />
<keyword name="Image" />
<keyword name="imgParams" />
<keyword name="includeLibs" />
<keyword name="index_enable" />
<keyword name="index_externals" />
<keyword name="inheritMainTemplates" />
<keyword name="inheritSubTemplates" />
<keyword name="inlineStyle2TempFile" />
<keyword name="intTarget" />
<keyword name="isTrue" />
<keyword name="key" />
<keyword name="layerStyle" />
<keyword name="linkWrap" />
<keyword name="lockPosition" />
<keyword name="lockPosition_addSelf" />
<keyword name="main" />
<keyword name="marks" />
<keyword name="meta" />
<keyword name="mode" />
<keyword name="niceText" />
<keyword name="NO" />
<keyword name="noBlur" />
<keyword name="obj" />
<keyword name="offset" />
<keyword name="PAGE" />
<keyword name="PAGE_TARGET" />
<keyword name="placement" />
<keyword name="plugin" />
<keyword name="range" />
<keyword name="relativeToParentLayer" />
<keyword name="relativeToTriggerItem" />
<keyword name="removeDefaultJS" />
<keyword name="required" />
<keyword name="RO" />
<keyword name="rootline" />
<keyword name="special" />
<keyword name="shortcutIcon" />
<keyword name="simulateStaticDocuments_noTypeIfNoTitle" />
<keyword name="spamProtectEmailAddresses" />
<keyword name="spamProtectEmailAddresses_atSubst" />
<keyword name="stdWrap" />
<keyword name="stylesheet" />
<keyword name="sub" />
<keyword name="target" />
<keyword name="temp" />
<keyword name="TEMPLATE" />
<keyword name="template" />
<keyword name="templateObjects" />
<keyword name="templateType" />
<keyword name="TEXT" />
<keyword name="text" />
<keyword name="textMaxLength" />
<keyword name="TMENU" />
<keyword name="TMENU_LAYERS" />
<keyword name="tmenu_layers" />
<keyword name="topOffset" />
<keyword name="transparentBackground" />
<keyword name="typeNumupper" />
<keyword name="user_" />
<keyword name="value" />
<keyword name="workOnSubpart" />
<keyword name="wrap" />
<keyword name="XY" />
<keyword name="ypMenu" />
</autocomplete>
</notepadplus>
Getestet mit Notepad++ 5.5.1
Abonnieren
Posts (Atom)