Giter Site home page Giter Site logo

schedule_xh's Introduction

Schedule_XH

Schedule_XH facilitates the coordination of meetings for members (registered through Register_XH or Memberpages of your CMSimple_XH site. It is similar to the Doodle service, but as the appointment dates have no semantic meaning to Schedule_XH, it can be used for other votings as well.

Requirements

Schedule_XH is a plugin for CMSimple_XH. It requires CMSimple_XH ≥ 1.7.0 and PHP ≥ 7.1.0.

Download

The lastest release is available for download on Github.

Installation

The installation is done as with many other CMSimple_XH plugins. See the CMSimple_XH wiki for further details.

  1. Backup the data on your server.
  2. Unzip the distribution on your computer.
  3. Upload the whole directory schedule/ to your server into the plugins/ directory of CMSimple_XH.
  4. Set write permissions to the subdirectories config/, css/, languages/ and the data directory of the plugin.
  5. Switch to Schedule in the back-end to check if all requirements are fulfilled.

Settings

The configuration of the plugin is done as with many other CMSimple_XH plugins in the back-end of the website. Select PluginsSchedule.

You can change the default settings of Schedule_XH under Config. Hints for the options will be displayed when hovering over the help icons with your mouse.

Localization is done under Language. You can translate the character strings to your own language if there is no appropriate language file available, or customize them according to your needs.

The look of Schedule_XH can be customized under Stylesheet.

Usage

To set up a planning/voting on a CMSimple_XH page, use the following plugin call:

{{{schedule('%NAME%', %SHOW_TOTALS%, %READ_ONLY%, %MULTI%, '%OPTION_1%', '%OPTION_2%', '%OPTION_N%')}}}

The parameters have the following meaning:

  • %NAME%: The name of the event or other voting. This is used as basename of the CSV file in which the results are stored, so it may contain lowercase letters (a-z), digits (0-9) and dashes (-) only.
  • %SHOW_TOTALS%: Whether the totals should be displayed: true (means yes) or false (means no). It is important to write this parameter without quotes. If you want to use the default value from the plugin configuration, you can omit this parameter, if you also omit the %READ_ONLY% and the %MULTI% parameter.
  • %READ_ONLY%: Whether the planner should be read only: true (means yes) or false (means no). It is important to write this parameter without quotes. If you want to use the default value from the plugin configuration, you can omit this parameter, if you also omit the %MULTI% parameter.
  • %MULTI%: Whether multiple options may be chosen for a single planner: true (means yes) or false (means no). It is important to write this parameter without quotes. If you want to use the default value from the plugin configuration, simply omit this parameter.
  • %OPTION_X%: The name of the option, which will be displayed as heading of the respective table column. This is typically a date, but as it has no semantic meaning to Schedule_XH, it can actually be any string. Basically you can have as many options as you like.

It is not necessary to restrict access to this page to members; if visitors of your site are not logged in, they will just see the current results, without being able to vote. So you can even place the planner in the template:

<?=schedule('%NAME%', %SHOW_TOTALS%, %READ_ONLY%, %MULTI%, '%OPTION_1%', '%OPTION_2%', '%OPTION_N%');?>

However, if you want to restrict the voting to a certain user group or access level, you have to place the planner on a page, which can only be accessed by members with the respective authorization.

Examples

To schedule a Christmas staff party:

{{{schedule('christmas', 'Dec. 18th', 'Dec. 19th', 'Dec. 22nd')}}}

Screenshot of the voting widget

After the voting for the party date, you want to keep the planer, so everybody can see the results. In this case you want to set it read only. To use the %READ_ONLY% parameter, you also have to specify the %SHOW_TOTALS% parameter:

{{{schedule('christmas', false, true, 'Dec. 18th', 'Dec. 19th', 'Dec. 22nd')}}}

To set up a voting about the color of the new team shirts, that displays the voting totals below the table regardless of the respective configuration option:

{{{schedule('shirts', true, 'red', 'green', 'blue')}}}

Notes

  • You can have as many planners as you like; just give them different names.
  • You can place the same planner on different pages; just use the same name.
  • Your members can change their votes as often as they like.
  • You can change the options even after some members have already voted. As the votes are assigned to the name of the option (not by position), this should work reasonably well.

Troubleshooting

Report bugs and ask for support either on Github or in the CMSimple_XH Forum.

License

Schedule_XH is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

Schedule_XH is distributed in the hope that it will be useful, but without any warranty; without even the implied warranty of merchantibility or fitness for a particular purpose. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with Schedule_XH. If not, see https://www.gnu.org/licenses/.

Copyright © Christoph M. Becker

Slovak translation © Dr. Martin Sereday

Credits

The plugin was inspired by Roymcavoy.

The plugin icon is designed by schollidesign. Many thanks for publishing this icon under GPL.

Many thanks to the community at the CMSimple_XH Forum for tips, suggestions and testing. Particularly I want to thank Ele for beta testing and suggesting improvements.

And last but not least many thanks to Peter Harteg, the “father” of CMSimple, and all developers of CMSimple_XH without whom this amazing CMS would not exist.

schedule_xh's People

Contributors

cmb69 avatar

Stargazers

 avatar  avatar

Watchers

 avatar

schedule_xh's Issues

Improve detection of current user

As is, this is simply done by looking up the respective element in the session. Besides that this relies on implementation detail (at least in theory, that should be an implementation detail; in practice, a couple of other plugins use this as well), it is brittle because the session might not have been started (in practice this is not a problem, since plugins are loaded in alphabetic order, i.e. memberpages, register, schedule).

Anyhow, it would be better to rely on some published interface of the user management plugins; see cmb69/register_xh#8.

Store plugin data in content folder

This way the data are protected without manual intervention. This is more important than being able to put them in some arbitrary place. Furthermore, just backing up the content/ folder is so simple. The fact that data files may remain after deinstallation of the plugin isn't a real problem (maybe on the contrary, if users decide to reinstall the plugin later).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.