Exercise 1: Include a JavaScript resource TTW#
Warning
This exercise requires a working buildout using a fork of the collective.jstraining
package.
For this exercise, we are going to include a JavaScript using the resource registry through the web.
You will be working in the exercise1
directory of the collective.jstraining
package.
Create your browser view#
Warning
This might be redundant with other documentation. Skip ahead if you know how to create browser views.
Let us add a basic new page view. This is only needed for calling our Javascript file.
Add this into your exercise1/page.pt
file:
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"
xmlns:tal="http://xml.zope.org/namespaces/tal"
xmlns:metal="http://xml.zope.org/namespaces/metal"
xmlns:i18n="http://xml.zope.org/namespaces/i18n"
lang="en"
metal:use-macro="context/main_template/macros/master"
i18n:domain="plone">
<body>
</body>
</html>
And wire it up with ZCML registration in the exercise1/configure.zcml
file:
<browser:page
name="exercise1"
for="*"
template="page.pt"
permission="zope2.View"
/>
Add your JavaScript file#
Go to the Site Setup, then to the Resource Registries.
Under the Overrides
tab, click Add file
When it asks to give it a name, enter ++plone++static/exercise1.js
Inside the new editor that comes up, enter the following:
require([
'jquery'
], function($){
var cycle = function(){
$('h1').animate({
left: '250px',
opacity: '0.5',
'font-size': '30px'
}, function(){
$('h1').animate({
left: '0',
opacity: '1',
'font-size': '20px'
}, function(){
setTimeout(function(){
cycle();
}, 2000);
});
});
};
$(document).ready(function(){
cycle();
});
});
Click Save
You can verify that the resource works by going to http://localhost:8080/Plone/++plone++static/exercise1.js
Use the Javascript in your template#
Now, you just need to edit your exercise1/page.pt
file, so it would look like this:
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"
xmlns:tal="http://xml.zope.org/namespaces/tal"
xmlns:metal="http://xml.zope.org/namespaces/metal"
xmlns:i18n="http://xml.zope.org/namespaces/i18n"
lang="en"
metal:use-macro="context/main_template/macros/master"
i18n:domain="plone">
<metal:block fill-slot="javascript_head_slot">
<script type="text/javascript" src="//localhost:8080/Plone/++plone++static/exercise1.js"></script>
</metal:block>
<body>
</body>
</html>
Installation#
Start up your Plone instance
Then, visit the URL: http://localhost:8080/Plone/front-page/@@exercise1
.
This is assuming your Plone is located at the URL http://localhost:8080/Plone
.
Production#
In this exercise, there is no special distinction between development and production builds. The JavaScript is developed without any build process.