Myra-pmMack Pexton v0.4


The Myra portal maker software was written to put a "web interface" on folders located in your Windows or Samba file shares.

The software makes it easy for the users to copy documents, spreadsheets, and pictures into folders that are linked to the web site and have them automatically appear in the web site. Users can copy pictures straight from their camera into folders and have a web picture gallery automatically set up as needed. Pictures can be viewed as thumbnails or as a slideshow that is dynamically set up as needed.

This work is licensed under the GNU General Public License version 3.0 (GPL-3.0).

What's New

  • New HTML templates. Any HTML file can be turned into a Myra document by simply adding one script at the beginning of the file.
    <script src="https://portal.example.com/myra/js/template.js?template=document"></script>
    When the document is rendered, the current web site's headers, footers, and navigation menus are "wrapped" around the document dynamically. Each document is associated with a specific template allowing great flexibility in how they are displayed, allowing them to be edited "in place", and being able to execute automated processes when they are created or saved. Being simple, standard HTML files without all of the web site framework included in them allows them to be easily edited by most people with any HTML editor. Interestingly, if a full url is used for the template script, the HTML file does not have to be located in the web site (however, it cannot be edited in place by the built in editor).
  • Added an image magnifier to the gallery slides.
  • Added accordion menu option to menus activated by simply adding the "accordion" class name to them.
  • Upgraded scripts to jQuery 1.8.2


  • Folder contents can be displayed as a list (which is a stylized version of Apache's mod-autoindex list).
  • Folders can also be displayed as a picture gallery.
  • Picture thumbnails are automatically created and cached (usually in a hidden folder placed in the folder being viewed).
  • Thumbnails can be rearranged on the page by dragging and dropping them in their new position.
  • Clicking on a thumbnail displays the picture as a slide.
  • Slides are also automatically created as needed and cached.
  • Slides can be rotated without changing the original picture.
  • An image magnifier can be shown over the slides.
  • Large pictures are handled so pictures from cameras can simply be copied to portal folders.
  • Original pictures are never altered but they can be deleted by editors.
  • Video files are played in a popup with their appropriate viewer.
  • Flash files are shown with flash, MP4 and 3GP videos with Quicktime, and WMF videos are played by the Windows Media Player.
  • Flash and Quicktime movies are streamed but the Microsoft movies need to be completely downloaded before they start to play at this time.
  • Multiple files can be uploaded at once from the web.
  • Editors can restrict which kind of files can be uploaded to a folder.
  • Emailed notifications can be sent when someone does upload a file to a folder.
  • The portal can be managed through the web by editors who are signed in users and who are members of the "editors" group.
  • Editors can be restricted to being only editors of specified subfolders.
  • Editors can annotate folders by adding headers and footers to the file list.
  • Editors can create new documents, and upload files, and remove documents.
  • Deleted documents and files altered from the web are archived so previous versions of a file can be retreived by a sysadmin (not by the user at this time).
  • Web documents are edited "in place" over the web by editors.
  • New web documents are created from site-specific templates.
  • The appearance of web documents and folders is determined by themes.
  • Themes define both CSS styles and optional JavaScript programs.
  • Themes can be chosen by the web user.


There are four primary pieces to the Myra-pm portal software.

The myra directory holds the web site programs. This is the main directory of the web programs.
The myra-local directory holds the local site's web programs and files. These are mostly templates and images that will not be touched when Myra-pm is updated.
This directory contains the support scripts for the web site programs in the myra directory. For security, this directory needs to be located outside of the web directory. Some of the scripts provide an interface to the Linix sudo facility allowing the web programs to escalate privileges if needed to maintain its database and gallery info.
The apache web server is listed here because there are settings that need to be installed. Its mod_autoindex facility is used to automatically list folder contents on the site and it's best to set up the site's security there.


Myra is a PHP application running on an Apache server with the mod_autoindex module, a standard module bundled with Apache. The added functionality to mod_autoindex is provided by JavaScript and AJAX programs using the jQuery library.

File, folder and command button icons are from Silk Icons, http://famfamfam.com/lab/icons/silk/.

Slides shows and dialog boxes are presented using Fancybox by Janis Skarnelis, http://fancybox.net/.

The functions used to reorder slides by dragging and dropping them on the page came from DragSort, http://dragsort.codeplex.com/.

Image slide and thumbnail sizing and rotation is provided by the ImageMagick library, http://imagemagick.org/.

In-page editing and fancy text editing is provided by TinyMCE by Moxiecode Systems AB. at http://tinymce.com/.

Form input fields are filtered using jquery.filter_input.js by Rudolf Naprstek at http://www.thimbleopensource.com/tutorials-snippets/jquery-plugin-filter-text-input/.

File uploads were derived from the Easy PHP Upload by Olaf Lederer at http://www.finalwebsites.com/snippets.php?id=7

In-place text field editing is provided by jquery.jeditable.js by Mika Tuupola and Dylan Verheul at http://www.appelsiini.net/projects/jeditable/.

Javascript cookie handling uses the jQuery Cookie plugin jquery.cookie.js by Klaus Hartl.de).