Code Monkey home page Code Monkey logo

islandora_xml_forms's Introduction

Islandora XML Forms Build Status

Introduction

XML Forms is a collection of Drupal modules that allow for the manipulation of XML documents though Drupal forms. The Islandora Form Builder (XML_Forms modules) makes it possible for users to create, copy, and edit ingest forms, and to affiliate them with Content Models in the repository.

The following Modules are installed as part of the XML Forms package. See inline documentation for additional details.

  • Objective Forms
  • Islandora XML Form API
  • Islandora XML Schema API
  • Islandora XML Form Elements
  • Islandora XML Form Builder
  • Islandora XML Forms

Objective Forms

This module allows for the creation of Object Based Drupal Forms. It provides a number of functions and class for processing/populating forms.

Some important notes.

  • Each Form Element is assigned a unique hash Form Property to identify it, #hash.
  • Each Form Element that is created is stored in a registry and it will persist though out the lifetime of the form even if it's removed from the form. Ancestry of Form Elements is stored so if a Form Element is cloned we will be able to determine the Form Element that it was cloned from.
  • Form Properties can be objects. To define new Form Properties implement the hook objectify_properties.
  • Forms will be auto-populated from $form_states[‘values’].
  • There is a FormStorage class that can be used to store any persistent data.

Islandora XML Form API

The core of the library this module provides functions for processing XML files through forms.

In essence this module models

  • The form to be processed.
  • The Form Properties needed to manipulate XML
  • The XML document to be manipulated
  • The actions required to generate repeating Form Elements (tabs,tags) from the XML document
  • The schema needed to determine the insert locations of elements and the validation requirements. (included via the Islandora XML Schema API)

Islandora XML Schema API

This module provides functions for processing Schema files. It's used to determine where to insert XML Nodes, and how to validate them.

Islandora XML Form Elements

This module defines custom Drupal Form Elements along with AHAH callbacks.

Requirements

This module requires the following modules/libraries:

Installation

Install as usual, see this for further information.

Configuration

Create and import forms at Administration » Form Builder (admin/islandora/xmlform).

image

You can also set whether a default DC XSLT will be enforced.

image

Documentation

Further documentation for this module is available at our wiki.

Troubleshooting/Issues

Having problems or solved a problem? Check out the Islandora google groups for a solution.

Known Issues

  • Creative Commons Form Element: Note that there seems to be a bug in the Creative Commons API triggered by certain combinations of License Jurisdiction and other parameters. Querying, e.g., "Yes, as long as others share alike" for Allow modifications of your work? and "Finland" for License Jurisdiction results in a CC-BY-SA, resp. CC-BY-NC-SA, 4.0 International license, instead of the corresponding 1.0 Finland version (which exists and is not deprecated). The only way to obtain the correct license in this case is to enter http://creativecommons.org/licenses/by-sa/1.0/fi/, resp. http://creativecommons.org/licenses/by-nc-sa/1.0/fi/, manually (choose "Manually select a license URI" for Select a license type). Also, this kind of licenses cannot be set by administrators in Form Builder as Default Value for the Creative Commons Form Element.

FAQ

Q. Can I convert an existing field to any form element type listed in the "Type" options under the "Common Form Controls" tab (or create new form elements using any form element type)?

A. No. The following element types are not supported for full CRUD (create/read/update/delete) operations:

  • checkbox
  • checkboxes
  • date
  • file
  • managed_file
  • password_confirm
  • radio
  • radios
  • tableselect
  • vertical_tabs
  • weight
  • button
  • image_button
  • submit

Maintainers/Sponsors

Current maintainers:

Development

If you would like to contribute to this module, please check out CONTRIBUTING.md. In addition, we have helpful Documentation for Developers info, as well as our Developers section on the Islandora.ca site.

License

GPLv3

islandora_xml_forms's People

Contributors

adam-vessey avatar ajstanley avatar bondjimbond avatar bwoodhead avatar d-r-p avatar daniel-dgi avatar dannyjoris avatar diegopino avatar dltj avatar donrichards avatar jimmychung98 avatar jonathangreen avatar jordandukart avatar knjackson30974 avatar manez avatar matthewperry avatar mitchmac avatar morgandawe avatar nhart avatar nigelgbanks avatar nmader avatar paulvanschayck avatar philsogadgi avatar rosiel avatar ruebot avatar rwincewicz avatar slangerx avatar whikloj avatar willtp87 avatar yqjiang avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

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.