{"id":6660,"date":"2012-06-30T18:26:45","date_gmt":"2012-06-30T16:26:45","guid":{"rendered":"http:\/\/tuxproject.de\/blog\/?p=6660"},"modified":"2019-05-23T11:40:21","modified_gmt":"2019-05-23T09:40:21","slug":"ein-wenig-javascript-nostalgie-clippy-js-und-wordpress","status":"publish","type":"post","link":"https:\/\/tuxproject.de\/blog\/2012\/06\/ein-wenig-javascript-nostalgie-clippy-js-und-wordpress\/","title":{"rendered":"Ein wenig JavaScript-Nostalgie: clippy.js und WordPress"},"content":{"rendered":"<p>\u00c4ltere, win\u00addowser\u00adfahrene Anwen\u00adder oder solche, die (etwa im \u00f6ffentlichen Dienst) mit betagter Soft\u00adware arbeit\u00aden d\u00fcr\u00adfen (\u201cm\u00fcssen\u201d w\u00e4re zu viel gesagt, die aktuellen Office-Pakete von Microsoft sind eine Her\u00adaus\u00adforderung f\u00fcr die Ner\u00adven jedes einiger\u00adma\u00dfen anspruchsvollen Anwen\u00adders), sind sich\u00ader bere\u00adits mit Microsofts \u201cAgen\u00adten\u201d \u2014 etwa dem Such\u00adhund Rover aus Win\u00addows XP, der seine Urspr\u00fcnge noch in Microsofts exper\u00adi\u00admenteller Windows\u20113.1\u2011Oberfl\u00e4che Bob hat, oder dem l\u00e4ngst leg\u00adend\u00e4ren, schreck\u00adlich auf\u00addringlichen Karl Klam\u00admer aus Microsoft Office \u2014 bekan\u00adnt gemacht wor\u00adden.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-6661\" title=\"Karl Klammer\" src=\"https:\/\/tuxproject.de\/blog\/wp-content\/uploads\/2012\/06\/Karl-Klammer.jpg\" alt width=\"210\" height=\"218\" srcset=\"https:\/\/tuxproject.de\/blog\/wp-content\/uploads\/2012\/06\/Karl-Klammer.jpg 210w, https:\/\/tuxproject.de\/blog\/wp-content\/uploads\/2012\/06\/Karl-Klammer-115x120.jpg 115w\" sizes=\"auto, (max-width: 210px) 100vw, 210px\"><\/p>\n<p>Einige dieser \u201cAgen\u00adten\u201d waren seit Win\u00addows 2000 unter der Pro\u00adduk\u00adt\u00adbeze\u00adich\u00adnung \u201cMicrosoft Agent\u201d sep\u00ada\u00adrat lauf\u00adf\u00e4hig und sog\u00adar dazu in der Lage, Texte auf Web\u00adseit\u00aden und sog\u00adar aus dem IRC \u2014 mIRC etwa bietet eine Schnittstelle hier\u00adf\u00fcr an \u2014 vorzule\u00adsen. Mit der Neugestal\u00adtung von Office 2007 (Office 12) wurde dieser Office-Assis\u00adtent <a href=\"http:\/\/www.zdnet.com.au\/microsoft-office-120-pre-beta-1-139212421.htm\">von Anfang an<\/a> durch ein neues Hil\u00adfesys\u00adtem erset\u00adzt, das Pro\u00addukt Microsoft Agent wird zuk\u00fcn\u00adftig <a href=\"http:\/\/www.microsoft.com\/products\/msagent\/main.aspx\">nicht mehr gepflegt<\/a>.<\/p>\n<p>Das ist schade. Zum Gl\u00fcck kann man zumin\u00add\u00adest auf sein\u00ader Web\u00adsite die \u201cAgen\u00adten\u201d wieder\u00adbeleben, <a href=\"http:\/\/www.smore.com\/clippy-js\">clippy.js<\/a> macht es m\u00f6glich. Hier\u00adf\u00fcr ben\u00f6tigt man lediglich die jQuery-Bib\u00adlio\u00adthek \u2014 in Word\u00adPress bere\u00adits enthal\u00adten \u2014 und die Dateien <tt>clippy.min.js<\/tt> und <tt>clippy.css<\/tt> aus dem Verze\u00adich\u00adnis \u201cbuild\u201d des <a href=\"https:\/\/github.com\/smore-inc\/clippy.js\">\u00f6ffentlichen GitHub-<em>repos\u00adi\u00adto\u00adrys<\/em><\/a>. Das Ein\u00adbinden in Word\u00adPress bedarf jedoch ein wenig Han\u00addar\u00adbeit, da Word\u00adPress jQuery im Kom\u00adpat\u00adi\u00adbil\u00adit\u00e4tsmodus betreibt und der Oper\u00ada\u00adtor <tt>$<\/tt> somit nicht funk\u00adtion\u00adst\u00fcchtig ist. In der Datei <tt>clippy.min.js<\/tt> ist daher zun\u00e4chst mit einem Texte\u00add\u00adi\u00adtor jedes \u201c$\u201d durch \u201cjQuery\u201d zu erset\u00adzen.<\/p>\n<p>Nun k\u00f6n\u00adnen die bei\u00adden Dateien in ein beliebiges Verze\u00adich\u00adnis, bevorzugt inner\u00adhalb des Word\u00adPress-Stam\u00admverze\u00adich\u00adniss\u00ades, hochge\u00adladen wer\u00adden. Im Fol\u00adgen\u00adden wird davon aus\u00adge\u00adgan\u00adgen, dass clippy.js im Verze\u00adich\u00adnis <tt>\/wordpress\/clippy.js\/<\/tt> auf dem Serv\u00ader liegt.<\/p>\n<p>Zun\u00e4chst sollte das Stylesheet einge\u00adbun\u00adden wer\u00adden. Dies erledigt man bevorzugt \u00fcber den Word\u00adPress-Theme-Edi\u00adtor in der \u201cKopfzeile\u201d (<tt>header.php<\/tt>):<\/p>\n<pre lang=\"html4strict\" escaped=\"true\">&lt;link rel=\"stylesheet\" href=\"&lt;?php bloginfo('url'); ?&gt;\/clippy.js\/clippy.css\" type=\"text\/css\" media=\"screen\" \/&gt;<\/pre>\n<p>Sollte der \u201cAgent\u201d auf jed\u00ader Word\u00adPress-Seite erscheinen k\u00f6n\u00adnen, so ist es empfehlenswert, das JavaScript entwed\u00ader eben\u00adfalls hier oder in der Fu\u00dfzeile (<tt>footer.php<\/tt>) einzu\u00adbinden, anson\u00adsten kann dies auch an geeigneter Stelle (etwa in der Datei <tt>single.php<\/tt>) erfol\u00adgen:<\/p>\n<pre lang=\"html4strict\" escaped=\"true\">&lt;script src=\"&lt;?php bloginfo('url'); ?&gt;\/clippy.js\/clippy.min.js\"&gt;&lt;\/script&gt;<\/pre>\n<p>Der Aufruf des \u201cAgen\u00adten\u201d und eine Durch\u00adf\u00fchrung von Aktio\u00adnen erfol\u00adgt anschlie\u00dfend per JavaScript im <tt>body<\/tt> der Seite. Ich habe Karl Klam\u00admer (\u201cClip\u00adpy\u201d) hier auf der Suchergeb\u00adnis-Seite einge\u00adbun\u00adden. Der entsprechende Code im Erfol\u00adgs\u00adfall sieht so aus:<\/p>\n<pre lang=\"html4strict\" escaped=\"true\">&lt;script type=\"text\/javascript\"&gt;\nclippy.load('Clippy', function(agent){\n  agent.show();\n  agent.speak('Offensichtlich suchen Sie nach \"&lt;?php echo $_GET['s'] ?&gt;\". Hier Ihre Ergebnisse.');\n  \/\/agent.hide();\n});\n&lt;\/script&gt;<\/pre>\n<p>Das \u201cVer\u00adsteck\u00aden\u201d des Agen\u00adten ist hier auskom\u00admen\u00adtiert, da es unter Umst\u00e4n\u00adden sofort erfol\u00adgt und somit nicht viel zu sehen ist. Eine voll\u00adst\u00e4ndi\u00adge Doku\u00admen\u00adta\u00adtion ist der Web\u00adsite zu ent\u00adnehmen.<\/p>\n<p>Zu beacht\u00aden ist, dass die Datei <tt>clippy.min.js<\/tt> die Agen\u00adten und die ben\u00f6tigten JavaScript- und CSS-Dateien stan\u00addard\u00adm\u00e4\u00dfig von Ama\u00adzon S3 bezieht, das <a href=\"http:\/\/aws.amazon.com\/de\/s3\/faqs\/#Can_I_comply_with_EU_data_privacy_regulations_using_Amazon_S3?tag=hirnfi20-21\" rel=\"nofollow\" target=\"_blank\">die Daten\u00adschutzbes\u00adtim\u00admungen der EU zwar ber\u00fcck\u00adsichtigt<\/a>, was den\u00adnoch unter Umst\u00e4n\u00adden zu Mis\u00adstrauen f\u00fchren kann. Als Alter\u00adna\u00adtive ist es m\u00f6glich, die entsprechen\u00adden Dateien (eben\u00adfalls im GitHub-<em>repos\u00adi\u00adto\u00adry<\/em> zu find\u00aden) auf seinem eige\u00adnen Serv\u00ader zu spe\u00adich\u00adern und die Pfade in der Datei <tt>clippy.min.js<\/tt> anzu\u00adpassen.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u00c4ltere, win\u00addowser\u00adfahrene Anwen\u00adder oder solche, die (etwa im \u00f6ffentlichen Dienst) mit betagter Soft\u00adware arbeit\u00aden d\u00fcr\u00adfen (\u201cm\u00fcssen\u201d w\u00e4re zu viel gesagt, die aktuellen Office-Pakete von Microsoft sind eine Her\u00adaus\u00adforderung f\u00fcr die Ner\u00adven jedes einiger\u00adma\u00dfen anspruchsvollen Anwen\u00adders), sind sich\u00ader bere\u00adits mit Microsofts \u201cAgen\u00adten\u201d \u2014 etwa dem Such\u00adhund Rover aus Win\u00addows XP, der seine Urspr\u00fcnge noch in Microsofts \u2026<\/p>\n<p><a href=\"https:\/\/tuxproject.de\/blog\/2012\/06\/ein-wenig-javascript-nostalgie-clippy-js-und-wordpress\/\" class=\"more-link\">\u2018Ein wenig JavaScript-Nos\u00adtal\u00adgie: clippy.js und Word\u00adPress\u2019 weit\u00ader\u00adlesen \u00bb<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"wp_typography_post_enhancements_disabled":false,"footnotes":""},"categories":[19,28],"tags":[],"series":[],"class_list":["post-6660","post","type-post","status-publish","format-standard","hentry","category-nerdkrams","category-internes"],"share_on_mastodon":{"url":"","error":""},"wp-worthy-pixel":{"ignored":false,"public":null,"server":null,"url":null},"wp-worthy-type":"normal","_links":{"self":[{"href":"https:\/\/tuxproject.de\/blog\/wp-json\/wp\/v2\/posts\/6660","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tuxproject.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tuxproject.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tuxproject.de\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/tuxproject.de\/blog\/wp-json\/wp\/v2\/comments?post=6660"}],"version-history":[{"count":0,"href":"https:\/\/tuxproject.de\/blog\/wp-json\/wp\/v2\/posts\/6660\/revisions"}],"wp:attachment":[{"href":"https:\/\/tuxproject.de\/blog\/wp-json\/wp\/v2\/media?parent=6660"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tuxproject.de\/blog\/wp-json\/wp\/v2\/categories?post=6660"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tuxproject.de\/blog\/wp-json\/wp\/v2\/tags?post=6660"},{"taxonomy":"series","embeddable":true,"href":"https:\/\/tuxproject.de\/blog\/wp-json\/wp\/v2\/series?post=6660"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}