support embedding in application/xhtml+xml pages
authorChristian Weiske <cweiske@cweiske.de>
Tue, 3 Feb 2015 19:34:29 +0000 (20:34 +0100)
committerChristian Weiske <cweiske@cweiske.de>
Tue, 3 Feb 2015 19:34:29 +0000 (20:34 +0100)
data/templates/display-sidebar-urls.htm
data/templates/embed.htm
src/phorkie/HtmlHelper.php

index 446810c..101f2dd 100644 (file)
@@ -1,5 +1,5 @@
 <label id="url-embed" for="url-embed-input"><b>Embed</b> HTML code</label>
-<input id="url-embed-input" type="text" class="fullwidthtext" value='&lt;script src="{{repo.getLink('embed', null, true)}}" type="text/javascript"&gt;&lt;/script&gt;'/>
+<input id="url-embed-input" type="text" class="fullwidthtext" value="{{htmlhelper.getRepositoryEmbedCode(repo)}}"/>
 
 {% if repo.getCloneURL(true) %}
 <label id="url-public" for="url-public-input"><b>Public</b> clone URL</label>
index 0334c22..22c9b19 100644 (file)
@@ -1,6 +1,7 @@
 /* embedding all files of {{repo.getLink('display', null, true)}} */
-document.write('<link rel="stylesheet" href="{{htmlhelper.fullUrl('css/embed.css')}}"/>');
-document.write(
+var me = document.getElementById('phork-script-{{repo.id}}');
+me.insertAdjacentHTML('afterend', '<link rel="stylesheet" href="{{htmlhelper.fullUrl('css/embed.css')}}"/>');
+me.insertAdjacentHTML('afterend',
     '<div class="phork" id="{{repo.id}}">'
 {% for file in repo.getFiles %}
     + {% filter json_encode(constant('JSON_UNESCAPED_SLASHES'))|raw -%}{% include 'embed-part-file.htm' %}{%- endfilter %}
index 7a991e4..0a8b926 100644 (file)
@@ -74,6 +74,13 @@ class HtmlHelper
 
         return $logged_in;
     }
+
+    public function getRepositoryEmbedCode(Repository $repo)
+    {
+        return '<script src="' . $repo->getLink('embed', null, true) . '"'
+            . ' id="phork-script-' . $repo->id . '"'
+            . ' type="text/javascript"></script>';
+    }
 }
 
 ?>