{"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 Java\u00adScript-Nost\u00adal\u00adgie: clippy.js und Word\u00adPress"},"content":{"rendered":"<p>\u00c4lte\u00adre, win\u00addows\u00ader\u00adfah\u00adre\u00adne Anwen\u00adder oder sol\u00adche, die (etwa im \u00f6ffent\u00adli\u00adchen Dienst) mit betag\u00adter Soft\u00adware arbei\u00adten d\u00fcr\u00adfen (\u201em\u00fcs\u00adsen\u201c w\u00e4re zu viel gesagt, die aktu\u00adel\u00adlen Office-Pake\u00adte von Micro\u00adsoft sind eine Her\u00adaus\u00adfor\u00adde\u00adrung f\u00fcr die Ner\u00adven jedes eini\u00adger\u00adma\u00ad\u00dfen anspruchs\u00advol\u00adlen Anwen\u00adders), sind sicher bereits mit Micro\u00adsofts \u201eAgen\u00adten\u201c \u2013 etwa dem Such\u00adhund Rover aus Win\u00addows XP, der sei\u00adne Urspr\u00fcn\u00adge noch in Micro\u00adsofts expe\u00adri\u00admen\u00adtel\u00adler Windows\u20113.1\u2011Oberfl\u00e4che Bob hat, oder dem l\u00e4ngst legen\u00add\u00e4\u00adren, schreck\u00adlich auf\u00addring\u00adli\u00adchen Karl Klam\u00admer aus Micro\u00adsoft Office \u2013 bekannt 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>Eini\u00adge die\u00adser \u201eAgen\u00adten\u201c waren seit Win\u00addows 2000 unter der Pro\u00addukt\u00adbe\u00adzeich\u00adnung \u201eMicro\u00adsoft Agent\u201c sepa\u00adrat lauf\u00adf\u00e4\u00adhig und sogar dazu in der Lage, Tex\u00adte auf Web\u00adsei\u00adten und sogar aus dem IRC \u2013 mIRC etwa bie\u00adtet eine Schnitt\u00adstel\u00adle hier\u00adf\u00fcr an \u2013 vor\u00adzu\u00adle\u00adsen. Mit der Neu\u00adge\u00adstal\u00adtung von Office 2007 (Office 12) wur\u00adde die\u00adser Office-Assi\u00adstent <a href=\"http:\/\/www.zdnet.com.au\/microsoft-office-120-pre-beta-1-139212421.htm\">von Anfang an<\/a> durch ein neu\u00ades Hil\u00adfe\u00adsy\u00adstem ersetzt, das Pro\u00addukt Micro\u00adsoft Agent wird zuk\u00fcnf\u00adtig <a href=\"http:\/\/www.microsoft.com\/products\/msagent\/main.aspx\">nicht mehr gepflegt<\/a>.<\/p>\n<p>Das ist scha\u00adde. Zum Gl\u00fcck kann man zumin\u00addest auf sei\u00adner Web\u00adsite die \u201eAgen\u00adten\u201c wie\u00adder\u00adbe\u00adle\u00adben, <a href=\"http:\/\/www.smore.com\/clippy-js\">clippy.js<\/a> macht es m\u00f6g\u00adlich. Hier\u00adf\u00fcr ben\u00f6\u00adtigt man ledig\u00adlich die jQuery-Biblio\u00adthek \u2013 in Word\u00adPress bereits ent\u00adhal\u00adten \u2013 und die Datei\u00aden <tt>clippy.min.js<\/tt> und <tt>clippy.css<\/tt> aus dem Ver\u00adzeich\u00adnis \u201ebuild\u201c des <a href=\"https:\/\/github.com\/smore-inc\/clippy.js\">\u00f6ffent\u00adli\u00adchen Git\u00adHub-<em>repo\u00adsi\u00adto\u00adrys<\/em><\/a>. Das Ein\u00adbin\u00adden in Word\u00adPress bedarf jedoch ein wenig Hand\u00adar\u00adbeit, da Word\u00adPress jQuery im Kom\u00adpa\u00adti\u00adbi\u00adli\u00adt\u00e4ts\u00admo\u00addus betreibt und der Ope\u00adra\u00adtor <tt>$<\/tt> somit nicht funk\u00adti\u00adons\u00adt\u00fcch\u00adtig ist. In der Datei <tt>clippy.min.js<\/tt> ist daher zun\u00e4chst mit einem Text\u00adedi\u00adtor jedes \u201e$\u201c durch \u201ejQuery\u201c zu erset\u00adzen.<\/p>\n<p>Nun k\u00f6n\u00adnen die bei\u00adden Datei\u00aden in ein belie\u00adbi\u00adges Ver\u00adzeich\u00adnis, bevor\u00adzugt inner\u00adhalb des Word\u00adPress-Stamm\u00adver\u00adzeich\u00adnis\u00adses, hoch\u00adge\u00adla\u00adden wer\u00adden. Im Fol\u00adgen\u00adden wird davon aus\u00adge\u00adgan\u00adgen, dass clippy.js im Ver\u00adzeich\u00adnis <tt>\/wordpress\/clippy.js\/<\/tt> auf dem Ser\u00adver liegt.<\/p>\n<p>Zun\u00e4chst soll\u00adte das Style\u00adsheet ein\u00adge\u00adbun\u00adden wer\u00adden. Dies erle\u00addigt man bevor\u00adzugt \u00fcber den Word\u00adPress-The\u00adme-Edi\u00adtor in der \u201eKopf\u00adzei\u00adle\u201c (<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>Soll\u00adte der \u201eAgent\u201c auf jeder Word\u00adPress-Sei\u00adte erschei\u00adnen k\u00f6n\u00adnen, so ist es emp\u00adfeh\u00adlens\u00adwert, das Java\u00adScript ent\u00adwe\u00adder eben\u00adfalls hier oder in der Fu\u00df\u00adzei\u00adle (<tt>footer.php<\/tt>) ein\u00adzu\u00adbin\u00adden, anson\u00adsten kann dies auch an geeig\u00adne\u00adter Stel\u00adle (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 Auf\u00adruf des \u201eAgen\u00adten\u201c und eine Durch\u00adf\u00fch\u00adrung von Aktio\u00adnen erfolgt anschlie\u00ad\u00dfend per Java\u00adScript im <tt>body<\/tt> der Sei\u00adte. Ich habe Karl Klam\u00admer (\u201eClip\u00adpy\u201c) hier auf der Such\u00adergeb\u00adnis-Sei\u00adte ein\u00adge\u00adbun\u00adden. Der ent\u00adspre\u00adchen\u00adde Code im Erfolgs\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 \u201eVer\u00adstecken\u201c des Agen\u00adten ist hier aus\u00adkom\u00admen\u00adtiert, da es unter Umst\u00e4n\u00adden sofort erfolgt und somit nicht viel zu sehen ist. Eine voll\u00adst\u00e4n\u00addi\u00adge Doku\u00admen\u00adta\u00adti\u00adon ist der Web\u00adsite zu ent\u00adneh\u00admen.<\/p>\n<p>Zu beach\u00adten ist, dass die Datei <tt>clippy.min.js<\/tt> die Agen\u00adten und die ben\u00f6\u00adtig\u00adten Java\u00adScript- und CSS-Datei\u00aden stan\u00addard\u00adm\u00e4\u00ad\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\u00adschutz\u00adbe\u00adstim\u00admun\u00adgen der EU zwar ber\u00fcck\u00adsich\u00adtigt<\/a>, was den\u00adnoch unter Umst\u00e4n\u00adden zu Miss\u00adtrau\u00aden f\u00fch\u00adren kann. Als Alter\u00adna\u00adti\u00adve ist es m\u00f6g\u00adlich, die ent\u00adspre\u00adchen\u00adden Datei\u00aden (eben\u00adfalls im Git\u00adHub-<em>repo\u00adsi\u00adto\u00adry<\/em> zu fin\u00adden) auf sei\u00adnem eige\u00adnen Ser\u00adver zu spei\u00adchern und die Pfa\u00adde in der Datei <tt>clippy.min.js<\/tt> anzu\u00adpas\u00adsen.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u00c4lte\u00adre, win\u00addows\u00ader\u00adfah\u00adre\u00adne Anwen\u00adder oder sol\u00adche, die (etwa im \u00f6ffent\u00adli\u00adchen Dienst) mit betag\u00adter Soft\u00adware arbei\u00adten d\u00fcr\u00adfen (\u201em\u00fcs\u00adsen\u201c w\u00e4re zu viel gesagt, die aktu\u00adel\u00adlen Office-Pake\u00adte von Micro\u00adsoft sind eine Her\u00adaus\u00adfor\u00adde\u00adrung f\u00fcr die Ner\u00adven jedes eini\u00adger\u00adma\u00ad\u00dfen anspruchs\u00advol\u00adlen Anwen\u00adders), sind sicher bereits mit Micro\u00adsofts \u201eAgen\u00adten\u201c \u2013 etwa dem Such\u00adhund Rover aus Win\u00addows XP, der sei\u00adne Urspr\u00fcn\u00adge noch in Micro\u00adsofts \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 Java\u00ad\u00adScript-Nost\u00adal\u00ad\u00adgie: clippy.js und Word\u00adPress\u2019 wei\u00adter\u00adle\u00adsen \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,"activitypub_content_warning":"","activitypub_content_visibility":"","activitypub_max_image_attachments":3,"activitypub_interaction_policy_quote":"anyone","activitypub_status":"","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}]}}