Instructions for the editors of EFFI’s Drupal CMS

Instructions in using EFFI’s Drupal CMS

Drupal is rather fond of using browser caches. For site visitors this is a big benefit, but for editors and authors this might seem a little frustrating. Refreshing the screen with the reload buttong (F5 or CTRL-R) is a good idea, when you feel that the stuff you are reading is not up-to-date.

Support requests and bug reports are best sent vial the `EFFICMS project page `_. You can also ask for help by `emailing the webmaster `_.

There are 4 user access levels (= roles) at the moment:
– Authenticated user = Can read and comment on drafts, but cannot create or edit anything
– Vieraskynä = Can write blog entries, but nothing else
– Editor = Full access to content
– Administrator = Full access to everything, including user management

A page/article (Node in Drupal jargon) is published by selecting “published”. To the current web pages it can be taken (with a delay of max 30 seconds) by checking “Promoted to front page”

Node types

When you create a node, selecting its type is important. The types are, in order of importance:

Most flexible (and complex) content type.

Features: summary field, published by default (not on front page), version control, attachment files

**NOTE:** Unlike other node types, the title of a page is *NOT* automatically appended
to the body, but instead it is assumed to be written in the body. (Like e.g. in **a press release**).
Even though the title is shown twice in *preview*, after publishing it behaves like this.

blog article
Quite self-descriptive. Short article

Features: summary field, published by default AND on the front page. Attachment files. No version control

**NOTE:** The author and the date is shown automatically after the title. Nodes in this category
are autoaliased as ‘blog/YYYY-MM-DD-.html’.

A picture can be published as is on its own page (rarely), or it can be attached to other nodes.

Features: none

news flash
Not surprisingly, fit for publishing news.

Features: Like *a blog article*.

**NOTE:** The author and the date are *not* shown after the title. Nodes in this category are
autoaliased as ‘uutiset/YYMMDD-.html’.</p> <p> webform<br /> E-mail form. Relatively complex to use. Seems to work fine.</p> <p> Example page: `e-mail the webmaster </node/27>`_,</p> <p> project<br /> Bug/Issue/Support request system.</p> <p> Can be used to coordinate different projects, or as e.g. a TODO list.<br /> Please let the webmaster know before creating a new project.</p> <p> issue<br /> A bug report form, tied closely with the project type nodes.</p> <p> Please don’t create these with the “create content”-page, but instead<br /> by going to the correct project, and selecting “submit issue” (Or something like that).</p> <p>Classification<br /> ————–<br /> Please remember to classify your writing carefully! The whole system is based on the assumption, that the content is properly classified. At the moment, there are 4 classes, or “Dictionaries” in Drupal jargon. For one reason or another, they are not localized, at least on the edit page 🙁</p> <p> | Julkaisutyyppi (Type)<br /> | Toiminta-alue (Field of activity)<br /> | Multimedia<br /> | Erityistila (Special)</p> <p>The first 2 are extremely important, because the aliases of the content (URLs, see below) are created automatically based on them. “Multimedia” is meant to indicate pages that contain pictures, videos, and so on. The Special category contains only one term at the moment. If it is set, authenticated users can comment the page.</p> <p>NOTE: In creating index or compilation pages (Such as “tekijanoikeus/“ , “yksityisyys/“ and FAQs) you do *NOT* select any Type or Field. Otherwise they are shown as just one of the pages.</p> <p>Aliases<br /> ——-<br /> The internal identification of nodes in Drupal is based on numbers. For example, Ville’s piece ‘Tekijänoikeus kääntynyt kulttuuria vastaan’ internal URL is, but because it has a defined *alias*, users see it as</p> <p>Janne has created a pretty good set of rules, with which the system can automatically generate sane URLs. Even the previous example was created automatically, based on the classification, title, and date.</p> <p>Of course, you can define an alias by hand also. This is done by filling the “Path alias” field in the content edit page, or by editing the alias list by hand afterwards. This is something you must do when moving pages from the old EFFI site to Drupal. (Instructions left out, all current editors probably know Finnish 😉</p> <p>If your page has PHP code, `ask the webmaster </node/27>`_ to take care of it.</p> </div><!-- .entry-content .clear --> </div> </article><!-- #post-## --> <nav class="navigation post-navigation" role="navigation" aria-label="Post navigation"> <span class="screen-reader-text">Post navigation</span> <div class="nav-links"><div class="nav-previous"><a title="EFFI: Ohjelmistopatenttien kohtalo taas parlamentin käsissä"href="" rel="prev"><span class="ast-left-arrow">←</span> Previous Post</a></div><div class="nav-next"><a title="Perustuslakivaliokunnan lausunto 7/2005 vp"href="" rel="next">Next Post <span class="ast-right-arrow">→</span></a></div></div> </nav> </main><!-- #main --> </div><!-- #primary --> <div class="widget-area secondary" id="secondary" itemtype="" itemscope="itemscope"> <div class="sidebar-main" > <aside id="search-2" class="widget widget_search"><form role="search" method="get" class="search-form" action=""> <label for="search-field"> <span class="screen-reader-text">Search for:</span> <input type="search" id="search-field" class="search-field" placeholder="Search..." value="" name="s" tabindex="-1"> </label> <input type="submit" class="search-submit" value="Search"> </form> </aside> <aside id="recent-posts-2" class="widget widget_recent_entries"> <h2 class="widget-title">Recent Posts</h2><nav aria-label="Recent Posts"> <ul> <li> <a href="">Säädelläänkö tekoälyä älykkäästi?</a> </li> <li> <a href="">Lausunto rajavartiolain muuttamisesta</a> </li> <li> <a href="">Noudattaako eduskunnan kanslia tietosuojalainsäädäntöä?</a> </li> <li> <a href="">Vuoden 2024 jäsenmaksulaskut lähetetty</a> </li> <li> <a href="">Kokouskutsu: Effin syyskokous 16.12.2023 Helsingissä</a> </li> </ul> </nav></aside><aside id="recent-comments-2" class="widget widget_recent_comments"><h2 class="widget-title">Recent Comments</h2><nav aria-label="Recent Comments"><ul id="recentcomments"><li class="recentcomments"><span class="comment-author-link">Elias Aarnio</span> on <a href="">Epilogi: miksi henkilön sijaintitieto on henkilötietoa?</a></li><li class="recentcomments"><span class="comment-author-link">Jarno</span> on <a href="">Epilogi: miksi henkilön sijaintitieto on henkilötietoa?</a></li><li class="recentcomments"><span class="comment-author-link">Tapani Tarvainen</span> on <a href="">Oikeuskansleri: puolueeton on jos itsestä siltä tuntuu</a></li><li class="recentcomments"><span class="comment-author-link">Nick Nolan</span> on <a href="">Oikeuskansleri: puolueeton on jos itsestä siltä tuntuu</a></li><li class="recentcomments"><span class="comment-author-link">Whack-a-</span> on <a href="">Effi kanteli oikeuskanslerille: tekijänoikeuslain asiantuntijat puolueellisia</a></li></ul></nav></aside><aside id="annual_archive_widget-2" class="widget Annual_Archive_Widget"><h2 class="widget-title">Arkistot</h2> <ul> <li><a href=''>2024</a></li> <li><a href=''>2023</a></li> <li><a href=''>2022</a></li> <li><a href=''>2021</a></li> <li><a href=''>2020</a></li> <li><a href=''>2019</a></li> <li><a href=''>2018</a></li> <li><a href=''>2017</a></li> <li><a href=''>2016</a></li> <li><a href=''>2015</a></li> <li><a href=''>2014</a></li> <li><a href=''>2013</a></li> <li><a href=''>2012</a></li> <li><a href=''>2011</a></li> <li><a href=''>2010</a></li> <li><a href=''>2009</a></li> <li><a href=''>2008</a></li> <li><a href=''>2007</a></li> <li><a href=''>2006</a></li> <li><a href=''>2005</a></li> <li><a href=''>2004</a></li> <li><a href=''>2003</a></li> <li><a href=''>2002</a></li> <li><a href=''>2001</a></li> </ul> </aside><aside id="categories-2" class="widget widget_categories"><h2 class="widget-title">Categories</h2><nav aria-label="Categories"> <ul> <li class="cat-item cat-item-18"><a href="">Blogi</a> </li> <li class="cat-item cat-item-22"><a href="">Effialert</a> </li> <li class="cat-item cat-item-13"><a href="">Kirjeet</a> </li> <li class="cat-item cat-item-19"><a href="">Kokoukset</a> </li> <li class="cat-item cat-item-30"><a href="">Konferenssit</a> </li> <li class="cat-item cat-item-25"><a href="">Lausunnot</a> </li> <li class="cat-item cat-item-14"><a href="">Puheet</a> </li> <li class="cat-item cat-item-29"><a href="">Pöytäkirjat</a> </li> <li class="cat-item cat-item-59"><a href="">Rahankeräys</a> </li> <li class="cat-item cat-item-32"><a href="">Sananvapaus</a> </li> <li class="cat-item cat-item-21"><a href="">Tapahtumat</a> </li> <li class="cat-item cat-item-33"><a href="">Tekijänoikeus</a> </li> <li class="cat-item cat-item-16"><a href="">Tekijänoikeus, muut</a> </li> <li class="cat-item cat-item-17"><a href="">Tekijänoikeus, äänitteet</a> </li> <li class="cat-item cat-item-64"><a href="">Tekoäly</a> </li> <li class="cat-item cat-item-26"><a href="">Tiedotteet</a> </li> <li class="cat-item cat-item-31"><a href="">Tietosuoja</a> </li> <li class="cat-item cat-item-57"><a href="">Tietoturva</a> </li> <li class="cat-item cat-item-20"><a href="">Toimintasuunnitelmat</a> </li> <li class="cat-item cat-item-36"><a href="">Tor</a> </li> <li class="cat-item cat-item-35"><a href="">Yksityisyydensuoja</a> </li> <li class="cat-item cat-item-1"><a href="">Yleinen</a> </li> </ul> </nav></aside> </div><!-- .sidebar-main --> </div><!-- #secondary --> </div> <!-- ast-container --> </div><!-- #content --> <footer class="site-footer" id="colophon" itemtype="" itemscope="itemscope" itemid="#colophon" > <div class="ast-small-footer footer-sml-layout-1"> <div class="ast-footer-overlay"> <div class="ast-container"> <div class="ast-small-footer-wrap" > <div class="ast-small-footer-section ast-small-footer-section-1" > Copyright © 2024 <span class="ast-footer-site-title">Electronic Frontier Finland - Effi ry</span> | Powered by <a href="">Astra WordPress Theme</a> </div> </div><!-- .ast-row .ast-small-footer-wrap --> </div><!-- .ast-container --> </div><!-- .ast-footer-overlay --> </div><!-- .ast-small-footer--> </footer><!-- #colophon --> </div><!-- #page --> <script id="astra-theme-js-js-extra"> var astra = {"break_point":"921","isRtl":"","is_scroll_to_id":"","is_scroll_to_top":"","is_header_footer_builder_active":""}; </script> <script src="" id="astra-theme-js-js"></script> <script src="" id="swv-js"></script> <script id="contact-form-7-js-extra"> var wpcf7 = {"api":{"root":"https:\/\/\/wp-json\/","namespace":"contact-form-7\/v1"}}; </script> <script src="" id="contact-form-7-js"></script> <script src="" id="wp-polyfill-inert-js"></script> <script src="" id="regenerator-runtime-js"></script> <script src="" id="wp-polyfill-js"></script> <script src="" id="wp-hooks-js"></script> <script src="" id="wp-i18n-js"></script> <script id="wp-i18n-js-after"> wp.i18n.setLocaleData( { 'text direction\u0004ltr': [ 'ltr' ] } ); </script> <script src="" id="wp-url-js"></script> <script src="" id="wp-api-fetch-js"></script> <script id="wp-api-fetch-js-after"> wp.apiFetch.use( wp.apiFetch.createRootURLMiddleware( "" ) ); wp.apiFetch.nonceMiddleware = wp.apiFetch.createNonceMiddleware( "ba7a0f989a" ); wp.apiFetch.use( wp.apiFetch.nonceMiddleware ); wp.apiFetch.use( wp.apiFetch.mediaUploadMiddleware ); wp.apiFetch.nonceEndpoint = ""; </script> <script src="" id="react-js"></script> <script src="" id="react-dom-js"></script> <script src="" id="wp-dom-ready-js"></script> <script src="" id="wp-a11y-js"></script> <script src="" id="wp-deprecated-js"></script> <script src="" id="wp-dom-js"></script> <script src="" id="wp-escape-html-js"></script> <script src="" id="wp-element-js"></script> <script src="" id="wp-is-shallow-equal-js"></script> <script src="" id="wp-keycodes-js"></script> <script src="" id="wp-priority-queue-js"></script> <script src="" id="wp-compose-js"></script> <script src="" id="moment-js"></script> <script id="moment-js-after"> moment.updateLocale( 'en_US', {"months":["January","February","March","April","May","June","July","August","September","October","November","December"],"monthsShort":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"weekdays":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"weekdaysShort":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"week":{"dow":1},"longDateFormat":{"LT":"H:i","LTS":null,"L":null,"LL":"j.n.Y","LLL":"F j, Y g:i a","LLLL":null}} ); </script> <script src="" id="wp-date-js"></script> <script id="wp-date-js-after"> {"l10n":{"locale":"en_US","months":["January","February","March","April","May","June","July","August","September","October","November","December"],"monthsShort":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"weekdays":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"weekdaysShort":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"meridiem":{"am":"am","pm":"pm","AM":"AM","PM":"PM"},"relative":{"future":"%s from now","past":"%s ago","s":"a second","ss":"%d seconds","m":"a minute","mm":"%d minutes","h":"an hour","hh":"%d hours","d":"a day","dd":"%d days","M":"a month","MM":"%d months","y":"a year","yy":"%d years"},"startOfWeek":1},"formats":{"time":"H:i","date":"j.n.Y","datetime":"F j, Y g:i a","datetimeAbbreviated":"M j, Y g:i a"},"timezone":{"offset":3,"offsetFormatted":"3","string":"Europe\/Helsinki","abbr":"EEST"}} ); </script> <script src="" id="wp-html-entities-js"></script> <script src="" id="wp-primitives-js"></script> <script src="" id="wp-private-apis-js"></script> <script src="" id="wp-redux-routine-js"></script> <script src="" id="wp-data-js"></script> <script id="wp-data-js-after"> ( function() { var userId = 0; var storageKey = "WP_DATA_USER_" + userId; .use(, { storageKey: storageKey } ); } )(); </script> <script src="" id="wp-rich-text-js"></script> <script src="" id="wp-warning-js"></script> <script src="" id="wp-components-js"></script> <script id="activitypub-remote-reply-js-before"> var _activityPubOptions = {"namespace":"activitypub\/1.0"}; </script> <script src="" id="activitypub-remote-reply-js"></script> <script> /(trident|msie)/i.test(navigator.userAgent)&&document.getElementById&&window.addEventListener&&window.addEventListener("hashchange",function(){var t,e=location.hash.substring(1);/^[A-z0-9_-]+$/.test(e)&&(t=document.getElementById(e))&&(/^(?:a|select|input|button|textarea)$/i.test(t.tagName)||(t.tabIndex=-1),t.focus())},!1); </script> </body> </html>