Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • rklusman2/UNL-CMS
  • yzha1/UNL-CMS
  • pear/UNL-CMS
  • bbieber2/UNL-CMS
  • tsteiner2/UNL-CMS
  • erasmussen2/UNL-CMS
  • UNL-Information-Services/UNL-CMS
7 results
Show changes
Commits on Source (675)
.htaccess
.htaccess-subsite-map.txt
sites/sites.php
sites/*/
!sites/all/
!sites/default/
sites/all/settings.php
sites/default/files
sites/default/settings.php
.buildpath
.project
.settings
.settings/*
/sites/all/themes/explore_center
/resetunlcms.sh
/UNL_CMS.sublime-project
/UNL_CMS.sublime-workspace
\ No newline at end of file
[submodule "vendor/WDN-TinyMCE"]
path = vendor/WDN-TinyMCE
url = git@github.unl.edu:iim/TinyMCE.git
[submodule "vendor/NmcFramework"]
path = vendor/NmcFramework
url = git@github.unl.edu:UNL-Information-Services/NMC-PHP-Framework.git
[submodule "sites/all/modules/diff"]
path = sites/all/modules/diff
url = http://git.drupal.org/project/diff.git
[submodule "sites/all/modules/tims"]
path = sites/all/modules/tims
url = https://github.com/unlcms/tims.git
[submodule "vendor/Twig"]
path = vendor/Twig
url = https://github.com/fabpot/Twig.git
[submodule "sites/all/themes/unl_og"]
path = sites/all/themes/unl_og
url = git@github.com:unlcms/unl_og.git
# This file is automatically generated.
# Do not edit it unless you know what you are doing!
# %UNL_CREATION_TOOL_STUB%
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
# #
# Protect files and directories from prying eyes. # Protect files and directories from prying eyes.
<FilesMatch "\.(engine|inc|info|install|make|module|profile|test|po|sh|.*sql|theme|tpl(\.php)?|xtmpl)$|^(\..*|Entries.*|Repository|Root|Tag|Template)$"> <FilesMatch "\.(engine|inc|info|install|make|module|profile|test|po|sh|.*sql|theme|tpl(\.php)?|xtmpl)(|~|\.sw[op]|\.bak|\.orig|\.save)?$|^(\..*|Entries.*|Repository|Root|Tag|Template)$|^#.*#$|\.php(~|\.sw[op]|\.bak|\.orig\.save)$">
Order allow,deny Order allow,deny
</FilesMatch> </FilesMatch>
...@@ -16,12 +16,6 @@ Options +FollowSymLinks ...@@ -16,12 +16,6 @@ Options +FollowSymLinks
# Make Drupal handle any 404 errors. # Make Drupal handle any 404 errors.
ErrorDocument 404 /index.php ErrorDocument 404 /index.php
# Force simple error message for requests for non-existent favicon.ico.
<Files favicon.ico>
# There is no end quote below, for compatibility with Apache 1.3.
ErrorDocument 404 "The requested file favicon.ico was not found.
</Files>
# Set the default handler. # Set the default handler.
DirectoryIndex index.php index.html index.htm DirectoryIndex index.php index.html index.htm
...@@ -62,16 +56,30 @@ DirectoryIndex index.php index.html index.htm ...@@ -62,16 +56,30 @@ DirectoryIndex index.php index.html index.htm
<IfModule mod_rewrite.c> <IfModule mod_rewrite.c>
RewriteEngine on RewriteEngine on
# THIS SECTION IS AUTOMATICALY GENERATED. # Set "protossl" to "s" if we were accessed via https://. This is used later
# if you enable "www." stripping or enforcement, in order to ensure that
# you don't bounce between http and https.
RewriteRule ^ - [E=protossl]
RewriteCond %{HTTPS} on
RewriteRule ^ - [E=protossl:s]
# THIS SECTION IS FOR UNL SUBSITES
# DO NOT EDIT!!!! # DO NOT EDIT!!!!
# Add the following line to your httpd.conf
# RewriteMap drupal_subsites txt:<DRUPAL_ROOT>/.htaccess-subsite-map.txt
# Do not uncomment the previous line.
RewriteRule .*/cron.php cron.php RewriteRule .*/cron.php cron.php
RewriteRule .*/update.php update.php RewriteRule .*/update.php update.php
RewriteRule ^(.*?/(misc|modules|sites|themes))(.*) ${drupal_subsites:$1|$1}$3
# %UNL_CREATION_TOOL_STUB%
RewriteCond ${drupal_subsites://%{HTTP_HOST}%{REQUEST_URI}|NOT_FOUND} !^NOT_FOUND$
# END AUTOMATICALLY GENERATED AREA. RewriteRule (.*) ${drupal_subsites://%{HTTP_HOST}%{REQUEST_URI}|$1} [R,L]
# END SUBSITE AREA.
# Block access to "hidden" directories whose names begin with a period. This # Block access to "hidden" directories whose names begin with a period. This
# includes directories used by version control systems such as Subversion or # includes directories used by version control systems such as Subversion or
# Git to store control files. Files whose names begin with a period, as well # Git to store control files. Files whose names begin with a period, as well
...@@ -94,14 +102,15 @@ DirectoryIndex index.php index.html index.htm ...@@ -94,14 +102,15 @@ DirectoryIndex index.php index.html index.htm
# To redirect all users to access the site WITH the 'www.' prefix, # To redirect all users to access the site WITH the 'www.' prefix,
# (http://example.com/... will be redirected to http://www.example.com/...) # (http://example.com/... will be redirected to http://www.example.com/...)
# uncomment the following: # uncomment the following:
# RewriteCond %{HTTP_HOST} .
# RewriteCond %{HTTP_HOST} !^www\. [NC] # RewriteCond %{HTTP_HOST} !^www\. [NC]
# RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301] # RewriteRule ^ http%{ENV:protossl}://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# #
# To redirect all users to access the site WITHOUT the 'www.' prefix, # To redirect all users to access the site WITHOUT the 'www.' prefix,
# (http://www.example.com/... will be redirected to http://example.com/...) # (http://www.example.com/... will be redirected to http://example.com/...)
# uncomment the following: # uncomment the following:
# RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] # RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
# RewriteRule ^ http://%1%{REQUEST_URI} [L,R=301] # RewriteRule ^ http%{ENV:protossl}://%1%{REQUEST_URI} [L,R=301]
# Modify the RewriteBase if you are using Drupal in a subdirectory or in a # Modify the RewriteBase if you are using Drupal in a subdirectory or in a
# VirtualDocumentRoot and the rewrite rules are not working properly. # VirtualDocumentRoot and the rewrite rules are not working properly.
...@@ -146,7 +155,7 @@ DirectoryIndex index.php index.html index.htm ...@@ -146,7 +155,7 @@ DirectoryIndex index.php index.html index.htm
<FilesMatch "(\.js\.gz|\.css\.gz)$"> <FilesMatch "(\.js\.gz|\.css\.gz)$">
# Serve correct encoding type. # Serve correct encoding type.
Header append Content-Encoding gzip Header set Content-Encoding gzip
# Force proxies to cache gzipped & non-gzipped css/js files separately. # Force proxies to cache gzipped & non-gzipped css/js files separately.
Header append Vary Accept-Encoding Header append Vary Accept-Encoding
</FilesMatch> </FilesMatch>
......
Drupal 7.22, 2013-04-03
-----------------------
- Allowed the drupal_http_request() function to be overridden so that
additional HTTP request capabilities can be added by contributed modules.
- Changed the Simpletest module to allow PSR-0 test classes to be used in
Drupal 7.
- Removed an unnecessary "Content-Disposition" header from private file
downloads; it prevented many private files from being viewed inline in a web
browser.
- Changed various field API functions to allow them to optionally act on a
single field within an entity (API addition: http://drupal.org/node/1825844).
- Fixed a bug which prevented Drupal's file transfer functionality from working
on some PHP 5.4 systems.
- Fixed incorrect log message when theme() is called for a theme hook that does
not exist (minor string change).
- Fixed Drupal's token-replacement system to allow spaces in the token value.
- Changed the default behavior after a user creates a node they do not have
access to view. The user will now be redirected to the front page rather than
an access denied page.
- Fixed a bug which prevented empty HTTP headers (such as "0") from being set.
(Minor behavior change: Callers of drupal_add_http_header() must now set
FALSE explicitly to prevent a header from being sent at all; this was already
indicated in the function's documentation.)
- Fixed OpenID errors when more than one module implements hook_openid(). The
behavior is now changed so that if more than one module tries to set the same
parameter, the last module's change takes effect.
- Fixed a serious documentation bug: The $name variable in the
taxonomy-term.tpl.php theme template was incorrectly documented as being
sanitized when in fact it is not.
- Fixed a bug which prevented Drupal 6 to Drupal 7 upgrades on sites which had
duplicate permission names in the User module's database tables.
- Added an empty "datatype" attribute to taxonomy term and username links to
make the RDFa markup upward compatible with RDFa 1.1 (minor markup addition).
- Fixed a bug which caused the denial-of-service protection added in Drupal
7.20 to break certain valid image URLs that had an extra slash in them.
- Fixed a bug with update queries in the SQLite database driver that prevented
Drupal from being installed with SQLite on PHP 5.4.
- Fixed enforced dependencies errors updating to recent versions of Drupal 7 on
certain non-MySQL databases.
- Refactored the Field module's caching behavior to obtain large improvements
in memory usage for sites with many fields and instances (API addition:
http://drupal.org/node/1915646).
- Fixed entity argument not being passed to implementations of
hook_file_download_access_alter(). The fix adds an additional context
parameter that can be passed when calling drupal_alter() for any hook (API
change: http://drupal.org/node/1882722).
- Fixed broken support for translatable comment fields (API change:
http://drupal.org/node/1874724).
- Added an assertThemeOutput() method to Simpletest to allow tests to check
that themed output matches an expected HTML string (API addition).
- Added a link to "Install another module" after a module has been successfully
downloaded via the Update Manager (UI change).
- Added an optional "exclusive" flag to installation profile .info files which
allows Drupal distributions to force a profile to be selected during
installation (API addition).
- Fixed a bug which caused the database API to not properly close database
connections.
- Added a link to the URL for running cron from outside the site to the Cron
settings page (UI change).
- Fixed a bug which prevented image styles from being reverted on PHP 5.4.
- Made the default .htaccess rules protocol sensitive to improve security for
sites which use HTTPS and redirect between "www" and non-"www" versions of
the page.
- Numerous small bug fixes.
- Numerous API documentation improvements.
- Additional automated test coverage.
Drupal 7.21, 2013-03-06
-----------------------
- Allowed sites using the 'image_allow_insecure_derivatives' variable to still
have partial protection from the security issues fixed in Drupal 7.20.
Drupal 7.20, 2013-02-20
-----------------------
- Fixed security issues (denial of service). See SA-CORE-2013-002.
Drupal 7.19, 2013-01-16
-----------------------
- Fixed security issues (multiple vulnerabilities). See SA-CORE-2013-001.
Drupal 7.18, 2012-12-19
-----------------------
- Fixed security issues (multiple vulnerabilities). See SA-CORE-2012-004.
Drupal 7.17, 2012-11-07
-----------------------
- Changed the default value of the '404_fast_html' variable to have a DOCTYPE
declaration.
- Made it possible to use associative arrays for the 'items' variable in
theme_item_list().
- Fixed a bug which prevented required form elements without a title from being
given an "error" class when the form fails validation.
- Prevented duplicate HTML IDs from appearing when two forms are displayed on
the same page and one of them is submitted with invalid data (minor markup
change).
- Fixed a bug which prevented Drupal 6 to Drupal 7 upgrades on sites which had
stale data in the Upload module's database tables.
- Fixed a bug in the States API which prevented certain types of form elements
from being disabled when requested.
- Allowed aggregator feed items with author names longer than 255 characters to
have a truncated version saved to the database (rather than causing a fatal
error).
- Allowed aggregator feed items to have URLs longer than 255 characters
(schema change which results in several columns in the Aggregator module's
database tables changing from VARCHAR to TEXT fields).
- Added hook_taxonomy_term_view() and standardized the process for rendering
taxonomy terms to invoke hook_entity_view() and otherwise make it consistent
with other entities (API change: http://drupal.org/node/1808870).
- Added hook_entity_view_mode_alter() to allow modules to change entity view
modes on display (API addition: http://drupal.org/node/1833086).
- Fixed a bug which made database queries running a "LIKE" query on blob fields
fail on PostgreSQL databases. This caused errors during the Drupal 6 to
Drupal 7 upgrade.
- Changed the hook_menu() entry for Drupal's rss.xml page to prevent extra path
components from being accidentally passed to the page callback function (data
structure change).
- Removed a non-standard "name" attribute from Drupal's default Content-Type
header for file downloads.
- Fixed the theme settings form to properly clean up submitted values in
$form_state['values'] when the form is submitted (data structure change).
- Fixed an inconsistency by removing the colon from the end of the label on
multi-valued form fields (minor string change).
- Added support for 'weight' in hook_field_widget_info() to allow modules to
control the order in which widgets are displayed in the Field UI.
- Updated various tables in the OpenID and Book modules to use the default
"empty table" text pattern (string change).
- Added proxy server support to drupal_http_request().
- Added "lang" attributes to language links, to better support screen readers.
- Fixed double occurrence of a "ul" HTML tag on secondary local tasks in the
Seven theme (markup change).
- Fixed bugs which caused taxonomy vocabulary and shortcut set titles to be
double-escaped. The fix replaces the taxonomy vocabulary overview page and
"Edit shortcuts" menu items' title callback entries in hook_menu() with new
functions that do not escape HTML characters (data structure change).
- Modified the Update manager module to allow drupal.org to collect usage
statistics for individual modules and themes, rather than only for entire
projects.
- Modified the node listing database query on Drupal's default front page to
add table aliases for better query altering (this is a data structure change
affecting code which implements hook_query_alter() on this query).
- Improved the translatability of the "Field type(s) in use" message on the
modules page (admin-facing string change).
- Fixed a regression which caused a "call to undefined function
drupal_find_base_themes()" fatal error under rare circumstances.
- Numerous API documentation improvements.
- Additional automated test coverage.
Drupal 7.16, 2012-10-17
-----------------------
- Fixed security issues (Arbitrary PHP code execution and information
disclosure). See SA-CORE-2012-003.
Drupal 7.15, 2012-08-01
-----------------------
- Introduced a 'user_password_reset_timeout' variable to allow the 24-hour
expiration for user password reset links to be adjusted (API addition).
- Fixed database errors due to ambiguous column names that occurred when
EntityFieldQuery was used in certain situations.
- Changed the drupal_array_get_nested_value() function to return a reference
(API addition).
- Changed the System module's hook_block_info() implementation to assign the
"Main page content" and "System help" blocks to appropriate regions by
default and prevent error messages on the block administration page (data
structure change).
- Fixed regression: Non-node entities couldn't be accessed with
EntityFieldQuery.
- Fixed regression: Optional radio buttons with an empty, non-NULL default
value led to an illegal choice error when none were selected.
- Reorganized the testing framework to split setUp() into specific sub-methods
and fix several regressions in the process.
- Fixed bug which made it impossible to search for strings that have not been
translated into a particular language.
- Renamed the "Field" column on the Manage Fields screen to "Field type", since
the former was confusing and inaccurate (UI change).
- Performance improvement: Removed needless call to system_rebuild_module_data()
in field_sync_field_status(), greatly speeding up bulk module enable/disable.
- Fixed bug which prevented notifications from being sent when core, module, and
theme updates are available.
- Fixed bug which prevented sub-themes from inheriting the default values of
theme settings defined by the base theme.
- Fixed bug which prevented the jQuery UI Datepicker from being localized.
- Made Ajax alert dialogs respect error reporting settings.
- Fixed bug which prevented image styles from being deleted on PHP 5.4.
- Fixed bug: Language detection by domain only worked on port 80.
- Fixed regression: The first plural index on a page was not calculated
correctly.
- Introduced generic entity language support. Entities may now declare their
language property in hook_entity_info(), and modules working with entities
may access the language using entity_language() (API change:
http://drupal.org/node/1626346).
- Added EntityFieldQuery support for taxonomy bundles.
- Fixed issue where field form structure was incomplete if field_access()
returned FALSE. Instead of being incomplete, the form structure now has
#access set to FALSE and field form validation is skipped (data structure
change: http://drupal.org/node/1663020).
- Fixed data loss issue due to field_has_data() returning inconsistent results.
The fix adds an optional DANGEROUS_ACCESS_CHECK_OPT_OUT tag to entity field
queries which field storage engines can respond to (API addition:
http://drupal.org/node/1597378).
- Fixed notice: Undefined index: default_image in image_field_prepare_view()
- Numerous API documentation improvements.
- Additional automated test coverage.
Drupal 7.14 2012-05-02
----------------------
- Fixed "integrity constraint" fatal errors when rebuilding registry.
- Fixed custom logo and favicon functionality referencing incorrect paths.
- Fixed DB Case Sensitivity: Allow BINARY attribute in MySQL.
- Split field_bundle_settings out per bundle.
- Improve UX for machine names for fields (UI change).
- Fixed User pictures are not removed properly.
- Fixed HTTPS sessions not working in all cases.
- Fixed Regression: Required radios throw illegal choice error when none
selected.
- Fixed allow autocompletion requests to include slashes.
- Eliminate $user->cache and {session}.cache in favor of
$_SESSION['cache_expiration'][$bin] (Performance).
- Fixed focus jumps to tab when pressing enter on a form element within tab.
- Fixed race condition in locale() - duplicates in {locales_source}.
- Fixed Missing "Default image" per field instance.
- Quit clobbering people's work when they click the filter tips link
- Form API #states: Fix conditionals to allow OR and XOR constructions.
- Fixed Focus jumps to tab when pressing enter on a form element within tab.
(Accessibility)
- Improved performance of node_access queries.
- Fixed Fieldsets inside vertical tabs have no title and can't be collapsed.
- Reduce size of cache_menu table (Performance).
- Fixed unnecessary aggregation of CSS/JS (Performance).
- Fixed taxonomy_autocomplete() produces SQL error for nonexistent field.
- Fixed HTML filter is not run first by default, despite default weight.
- Fixed Overlay does not work with prefixed URL paths.
- Better debug info for field errors (string change).
- Fixed Data corruption in comment IDs (results in broken threading on
PostgreSQL).
- Fixed machine name not editable if every character is replaced.
- Fixed user picture not appearing in comment preview (Markup change).
- Added optional vid argument for taxonomy_get_term_by_name().
- Fixed Invalid Unicode code range in PREG_CLASS_UNICODE_WORD_BOUNDARY fails
with PCRE 8.30.
- Fixed {trigger_assignments()}.hook has only 32 characters, is too short.
- Numerous fixes to run-tests.sh.
- Fixed Tests in profiles/[name]/modules cannot be run and cannot use a
different profile for running tests.
- Numerous JavaScript performance fixes.
- Numerous documentation fixes.
- Fixed All pager links have an 'active' CSS class.
- Numerous upgrade path fixes; notably:
- system_update_7061() fails on inserting files with same name but different
case.
- system_update_7061() converts filepaths too aggressively.
- Trigger upgrade path: Node triggers removed when upgrading to 7-x from 6.25.
Drupal 7.13 2012-05-02
----------------------
- Fixed security issues (Multiple vulnerabilities), see SA-CORE-2012-002.
Drupal 7.12, 2012-02-01
----------------------
- Fixed bug preventing custom menus from receiving an active trail.
- Fixed hook_field_delete() no longer invoked during field_purge_data().
- Fixed bug causing entity info cache to not be cleared with the rest of caches.
- Fixed file_unmanaged_copy() fails with Drupal 7.7+ and safe_mode() or
open_basedir().
- Fixed Nested transactions throw exceptions when they got out of scope.
- Fixed bugs with the Return-Path when sending mail on both Windows and
non-Windows systems.
- Fixed bug with DrupalCacheArray property visibility preventing others from
extending it (API change: http://drupal.org/node/1422264).
- Fixed bug with handling of non-ASCII characters in file names (API change:
http://drupal.org/node/1424840).
- Reconciled field maximum length with database column size in image and
aggregator modules.
- Fixes to various core JavaScript files to allow for minification and
aggregation.
- Fixed Prevent tests from deleting main installation's tables when
parent::setUp() is not called.
- Fixed several Poll module bugs.
- Fixed several Shortcut module bugs.
- Added new hook_system_theme_info() to provide ability for contributed modules
to test theme functionality.
- Added ability to cancel mail sending from hook_mail_alter().
- Added support for configurable PDO connection options, enabling master-master
database replication.
- Numerous improvements to tests and test runner to pave the way for faster test
runs.
- Expanded test coverage.
- Numerous API documentation improvements.
- Numerous performance improvements, including token replacement and render
cache.
Drupal 7.11, 2012-02-01
----------------------
- Fixed security issues (Multiple vulnerabilities), see SA-CORE-2012-001.
Drupal 7.10, 2011-12-05
----------------------
- Fixed Content-Language HTTP header to not cause issues with Drush 5.x.
- Reduce memory usage of theme registry (performance).
- Fixed PECL upload progress bar for FileField
- Fixed running update.php doesn't always clear the cache.
- Fixed PDO exceptions on long titles.
- Fixed Overlay redirect does not include query string.
- Fixed D6 modules satisfy D7 module dependencies.
- Fixed the ordering of module hooks when using module_implements_alter().
- Fixed "floating" submit buttons during AJAX requests.
- Fixed timezone selected on install not propogating to admin account.
- Added msgctx context to JS translation functions, for feature parity with t().
- Profiles' .install files now available during hook_install_tasks().
- Added test coverage of 7.0 -> 7.x upgrade path.
- Numerous notice fixes.
- Numerous documentation improvements.
- Additional automated test coverage.
Drupal 7.9, 2011-10-26
----------------------
- Critical fixes to OpenID to spec violations that could allow for
impersonation in certain scenarios. Existing OpenID users should see
http://drupal.org/node/1120290#comment-5092796 for more information on
transitioning.
- Fixed files getting lost when adding multiple files to multiple file fields
at the same time.
- Improved usability of the clean URL test screens.
- Restored height/width attributes on images run through the theme system.
- Fixed usability bug with first password field being pre-filled by certain
browser plugins.
- Fixed file_usage_list() so that it can return more than one result.
- Fixed bug preventing preview of private images on node form.
- Fixed PDO error when inserting an aggregator title longer than 255 characters.
- Spelled out what TRADITIONAL means in MySQL sql_mode.
- Deprecated "!=" operator for DBTNG; should be "<>".
- Added two new API functions (menu_tree_set_path()/menu_tree_get_path()) were
added in order to enable setting the active menu trail for dynamically
generated menu paths.
- Added new "fast 404" capability in settings.php to bypass Drupal bootstrap
when serving 404 pages for certain file types.
- Added format_string() function which can perform string munging ala the t()
function without the overhead of the translation system.
- Numerous #states system fixes.
- Numerous EntityFieldQuery, DBTNG, and SQLite fixes.
- Numerous Shortcut module fixes.
- Numerous language system fixes.
- Numerous token fixes.
- Numerous CSS fixes.
- Numerous upgrade path fixes.
- Numerous minor string fixes.
- Numerous notice fixes.
Drupal 7.8, 2011-08-31 Drupal 7.8, 2011-08-31
---------------------- ----------------------
- Fixed critical upgrade path issue with multilingual sites, leading to lost - Fixed critical upgrade path issue with multilingual sites, leading to lost
...@@ -115,8 +462,8 @@ Drupal 7.0, 2011-01-05 ...@@ -115,8 +462,8 @@ Drupal 7.0, 2011-01-05
order can now be customized using the Views module. order can now be customized using the Views module.
* Removed the 'related terms' feature from taxonomy module since this can * Removed the 'related terms' feature from taxonomy module since this can
now be achieved with Field API. now be achieved with Field API.
* Added additional features to the default install profile, and implemented * Added additional features to the default installation profile, and
a "slimmed down" install profile designed for developers. implemented a "slimmed down" profile designed for developers.
* Added a built-in, automated cron run feature, which is triggered by site * Added a built-in, automated cron run feature, which is triggered by site
visitors. visitors.
* Added an administrator role which is assigned all permissions for * Added an administrator role which is assigned all permissions for
...@@ -343,7 +690,7 @@ Drupal 6.16, 2010-03-03 ...@@ -343,7 +690,7 @@ Drupal 6.16, 2010-03-03
see SA-CORE-2010-001. see SA-CORE-2010-001.
- Better support for updated jQuery versions. - Better support for updated jQuery versions.
- Reduced resource usage of update.module. - Reduced resource usage of update.module.
- Fixed several issues relating to support of install profiles and - Fixed several issues relating to support of installation profiles and
distributions. distributions.
- Added a locking framework to avoid data corruption on long operations. - Added a locking framework to avoid data corruption on long operations.
- Fixed a variety of other bugs. - Fixed a variety of other bugs.
...@@ -461,7 +808,7 @@ Drupal 6.0, 2008-02-13 ...@@ -461,7 +808,7 @@ Drupal 6.0, 2008-02-13
* Expands the severity levels from 3 (Error, Warning, Notice) to the 8 * Expands the severity levels from 3 (Error, Warning, Notice) to the 8
levels defined in RFC 3164. levels defined in RFC 3164.
* The watchdog module is now called dblog, and is optional, but enabled by * The watchdog module is now called dblog, and is optional, but enabled by
default in the default install profile. default in the default installation profile.
* Extended the database log module so log messages can be filtered. * Extended the database log module so log messages can be filtered.
* Added syslog module: useful for monitoring large Drupal installations. * Added syslog module: useful for monitoring large Drupal installations.
- Added optional e-mail notifications when users are approved, blocked, or - Added optional e-mail notifications when users are approved, blocked, or
...@@ -516,7 +863,7 @@ Drupal 6.0, 2008-02-13 ...@@ -516,7 +863,7 @@ Drupal 6.0, 2008-02-13
* Themed the installer with the Garland theme. * Themed the installer with the Garland theme.
* Added form to provide initial site information during installation. * Added form to provide initial site information during installation.
* Added ability to provide extra installation steps programmatically. * Added ability to provide extra installation steps programmatically.
* Made it possible to import interface translations at install time. * Made it possible to import interface translations during installation.
- Added the HTML corrector filter: - Added the HTML corrector filter:
* Fixes faulty and chopped off HTML in postings. * Fixes faulty and chopped off HTML in postings.
* Tags are now automatically closed at the end of the teaser. * Tags are now automatically closed at the end of the teaser.
...@@ -695,7 +1042,7 @@ Drupal 5.0, 2007-01-15 ...@@ -695,7 +1042,7 @@ Drupal 5.0, 2007-01-15
- Added web-based installer which can: - Added web-based installer which can:
* Check installation and run-time requirements * Check installation and run-time requirements
* Automatically generate the database configuration file * Automatically generate the database configuration file
* Install pre-made 'install profiles' or distributions * Install pre-made installation profiles or distributions
* Import the database structure with automatic table prefixing * Import the database structure with automatic table prefixing
* Be localized * Be localized
- Added new default Garland theme - Added new default Garland theme
...@@ -755,7 +1102,7 @@ Drupal 5.0, 2007-01-15 ...@@ -755,7 +1102,7 @@ Drupal 5.0, 2007-01-15
- Removed the archive module. - Removed the archive module.
- Upgrade system: - Upgrade system:
* Created space for update branches. * Created space for update branches.
- Forms API: - Form API:
* Made it possible to programmatically submit forms. * Made it possible to programmatically submit forms.
* Improved api for multistep forms. * Improved api for multistep forms.
- Theme system: - Theme system:
...@@ -1059,7 +1406,7 @@ Drupal 4.5.0, 2004-10-18 ...@@ -1059,7 +1406,7 @@ Drupal 4.5.0, 2004-10-18
- Filter system: - Filter system:
* Added support for using multiple input formats on the site * Added support for using multiple input formats on the site
* Expanded the embedded PHP-code feature so it can be used everywhere * Expanded the embedded PHP-code feature so it can be used everywhere
* Added support for role-dependant filtering, through input formats * Added support for role-dependent filtering, through input formats
- UI translation: - UI translation:
* Managing translations is now completely done through the administration interface * Managing translations is now completely done through the administration interface
* Added support for importing/exporting gettext .po files * Added support for importing/exporting gettext .po files
......
All Drupal code is Copyright 2001 - 2012 by the original authors.
All Drupal code is Copyright 2001 - 2010 by the original authors.
This program is free software; you can redistribute it and/or modify This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
...@@ -21,5 +20,25 @@ Drupal includes works under other copyright notices and distributed ...@@ -21,5 +20,25 @@ Drupal includes works under other copyright notices and distributed
according to the terms of the GNU General Public License or a compatible according to the terms of the GNU General Public License or a compatible
license, including: license, including:
jQuery - Copyright (c) 2008 - 2009 John Resig Javascript
Farbtastic - Copyright (c) 2010 Matt Farina
jQuery - Copyright (c) 2010 John Resig
jQuery BBQ - Copyright (c) 2010 "Cowboy" Ben Alman
jQuery Cookie - Copyright (c) 2006 Klaus Hartl
jQuery Form - Copyright (c) 2010 Mike Alsup
jQuery Once - Copyright (c) 2009 Konstantin K�fer
jQuery UI - Copyright (c) 2010 by the original authors
(http://jqueryui.com/about)
Sizzle.js - Copyright (c) 2010 The Dojo Foundation (http://sizzlejs.com/)
PHP
ArchiveTar - Copyright (c) 1997 - 2008 Vincent Blavet
...@@ -18,7 +18,7 @@ initial database files. Next you must log in and set the access database rights: ...@@ -18,7 +18,7 @@ initial database files. Next you must log in and set the access database rights:
mysql -u username -p mysql -u username -p
Again, you will be asked for the 'username' database password. At the MySQL Again, you will be asked for the 'username' database password. At the MySQL
prompt, enter following command: prompt, enter the following command:
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER
ON databasename.* ON databasename.*
......
...@@ -89,8 +89,8 @@ INSTALLATION ...@@ -89,8 +89,8 @@ INSTALLATION
- Download a translation file for the correct Drupal version and language - Download a translation file for the correct Drupal version and language
from the translation server: http://localize.drupal.org/translate/downloads from the translation server: http://localize.drupal.org/translate/downloads
- Place the file into your installation profile's translations - Place the file into your installation profile's translations directory.
directory. For instance, if you are using the Standard install profile, For instance, if you are using the Standard installation profile,
move the .po file into the directory: move the .po file into the directory:
profiles/standard/translations/ profiles/standard/translations/
......
GNU GENERAL PUBLIC LICENSE GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
Copyright (C) 1989, 1991 Free Software Foundation, Inc. 675 Mass Ave, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Cambridge, MA 02139, USA. Everyone is permitted to copy and distribute Everyone is permitted to copy and distribute verbatim copies
verbatim copies of this license document, but changing it is not allowed. of this license document, but changing it is not allowed.
Preamble Preamble
The licenses for most software are designed to take away your freedom to The licenses for most software are designed to take away your
share and change it. By contrast, the GNU General Public License is freedom to share and change it. By contrast, the GNU General Public
intended to guarantee your freedom to share and change free software--to License is intended to guarantee your freedom to share and change free
make sure the software is free for all its users. This General Public License software--to make sure the software is free for all its users. This
applies to most of the Free Software Foundation's software and to any other General Public License applies to most of the Free Software
program whose authors commit to using it. (Some other Free Software Foundation's software and to any other program whose authors commit to
Foundation software is covered by the GNU Library General Public License using it. (Some other Free Software Foundation software is covered by
instead.) You can apply it to your programs, too. the GNU Lesser General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not price. Our
General Public Licenses are designed to make sure that you have the When we speak of free software, we are referring to freedom, not
freedom to distribute copies of free software (and charge for this service if price. Our General Public Licenses are designed to make sure that you
you wish), that you receive source code or can get it if you want it, that you have the freedom to distribute copies of free software (and charge for
can change the software or use pieces of it in new free programs; and that this service if you wish), that you receive source code or can get it
you know you can do these things. if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid anyone to
deny you these rights or to ask you to surrender the rights. These restrictions To protect your rights, we need to make restrictions that forbid
translate to certain responsibilities for you if you distribute copies of the anyone to deny you these rights or to ask you to surrender the rights.
software, or if you modify it. These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether gratis or for
a fee, you must give the recipients all the rights that you have. You must make For example, if you distribute copies of such a program, whether
sure that they, too, receive or can get the source code. And you must show gratis or for a fee, you must give the recipients all the rights that
them these terms so they know their rights. you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
We protect your rights with two steps: (1) copyright the software, and (2) rights.
offer you this license which gives you legal permission to copy, distribute
and/or modify the software. We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
Also, for each author's protection and ours, we want to make certain that distribute and/or modify the software.
everyone understands that there is no warranty for this free software. If the
software is modified by someone else and passed on, we want its recipients Also, for each author's protection and ours, we want to make certain
to know that what they have is not the original, so that any problems that everyone understands that there is no warranty for this free
introduced by others will not reflect on the original authors' reputations. software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
Finally, any free program is threatened constantly by software patents. We that any problems introduced by others will not reflect on the original
wish to avoid the danger that redistributors of a free program will individually authors' reputations.
obtain patent licenses, in effect making the program proprietary. To prevent
this, we have made it clear that any patent must be licensed for everyone's Finally, any free program is threatened constantly by software
free use or not licensed at all. patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
The precise terms and conditions for copying, distribution and modification program proprietary. To prevent this, we have made it clear that any
follow. patent must be licensed for everyone's free use or not licensed at all.
GNU GENERAL PUBLIC LICENSE The precise terms and conditions for copying, distribution and
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND modification follow.
MODIFICATION
GNU GENERAL PUBLIC LICENSE
0. This License applies to any program or other work which contains a notice TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
placed by the copyright holder saying it may be distributed under the terms
of this General Public License. The "Program", below, refers to any such 0. This License applies to any program or other work which contains
program or work, and a "work based on the Program" means either the a notice placed by the copyright holder saying it may be distributed
Program or any derivative work under copyright law: that is to say, a work under the terms of this General Public License. The "Program", below,
containing the Program or a portion of it, either verbatim or with refers to any such program or work, and a "work based on the Program"
modifications and/or translated into another language. (Hereinafter, translation means either the Program or any derivative work under copyright law:
is included without limitation in the term "modification".) Each licensee is that is to say, a work containing the Program or a portion of it,
addressed as "you". either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
Activities other than copying, distribution and modification are not covered the term "modification".) Each licensee is addressed as "you".
by this License; they are outside its scope. The act of running the Program is
not restricted, and the output from the Program is covered only if its contents Activities other than copying, distribution and modification are not
constitute a work based on the Program (independent of having been made covered by this License; they are outside its scope. The act of
by running the Program). Whether that is true depends on what the Program running the Program is not restricted, and the output from the Program
does. is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
1. You may copy and distribute verbatim copies of the Program's source Whether that is true depends on what the Program does.
code as you receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice and 1. You may copy and distribute verbatim copies of the Program's
disclaimer of warranty; keep intact all the notices that refer to this License source code as you receive it, in any medium, provided that you
and to the absence of any warranty; and give any other recipients of the conspicuously and appropriately publish on each copy an appropriate
Program a copy of this License along with the Program. copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
You may charge a fee for the physical act of transferring a copy, and you and give any other recipients of the Program a copy of this License
may at your option offer warranty protection in exchange for a fee. along with the Program.
2. You may modify your copy or copies of the Program or any portion of it, You may charge a fee for the physical act of transferring a copy, and
thus forming a work based on the Program, and copy and distribute such you may at your option offer warranty protection in exchange for a fee.
modifications or work under the terms of Section 1 above, provided that you
also meet all of these conditions: 2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
a) You must cause the modified files to carry prominent notices stating that distribute such modifications or work under the terms of Section 1
you changed the files and the date of any change. above, provided that you also meet all of these conditions:
b) You must cause any work that you distribute or publish, that in whole or in a) You must cause the modified files to carry prominent notices
part contains or is derived from the Program or any part thereof, to be stating that you changed the files and the date of any change.
licensed as a whole at no charge to all third parties under the terms of this
License. b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
c) If the modified program normally reads commands interactively when run, part thereof, to be licensed as a whole at no charge to all third
you must cause it, when started running for such interactive use in the most parties under the terms of this License.
ordinary way, to print or display an announcement including an appropriate
copyright notice and a notice that there is no warranty (or else, saying that c) If the modified program normally reads commands interactively
you provide a warranty) and that users may redistribute the program under when run, you must cause it, when started running for such
these conditions, and telling the user how to view a copy of this License. interactive use in the most ordinary way, to print or display an
(Exception: if the Program itself is interactive but does not normally print such announcement including an appropriate copyright notice and a
an announcement, your work based on the Program is not required to print notice that there is no warranty (or else, saying that you provide
an announcement.) a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
These requirements apply to the modified work as a whole. If identifiable License. (Exception: if the Program itself is interactive but
sections of that work are not derived from the Program, and can be does not normally print such an announcement, your work based on
reasonably considered independent and separate works in themselves, then the Program is not required to print an announcement.)
this License, and its terms, do not apply to those sections when you distribute
them as separate works. But when you distribute the same sections as part These requirements apply to the modified work as a whole. If
of a whole which is a work based on the Program, the distribution of the identifiable sections of that work are not derived from the Program,
whole must be on the terms of this License, whose permissions for other and can be reasonably considered independent and separate works in
licensees extend to the entire whole, and thus to each and every part themselves, then this License, and its terms, do not apply to those
regardless of who wrote it. sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
Thus, it is not the intent of this section to claim rights or contest your rights to on the Program, the distribution of the whole must be on the terms of
work written entirely by you; rather, the intent is to exercise the right to this License, whose permissions for other licensees extend to the
control the distribution of derivative or collective works based on the entire whole, and thus to each and every part regardless of who wrote it.
Program.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of a with the Program (or with a work based on the Program) on a volume of
storage or distribution medium does not bring the other work under the scope a storage or distribution medium does not bring the other work under
of this License. the scope of this License.
3. You may copy and distribute the Program (or a work based on it, under 3. You may copy and distribute the Program (or a work based on it,
Section 2) in object code or executable form under the terms of Sections 1 under Section 2) in object code or executable form under the terms of
and 2 above provided that you also do one of the following: Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable source a) Accompany it with the complete corresponding machine-readable
code, which must be distributed under the terms of Sections 1 and 2 above source code, which must be distributed under the terms of Sections
on a medium customarily used for software interchange; or, 1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three years, to give b) Accompany it with a written offer, valid for at least three
any third party, for a charge no more than your cost of physically performing years, to give any third party, for a charge no more than your
source distribution, a complete machine-readable copy of the corresponding cost of physically performing source distribution, a complete
source code, to be distributed under the terms of Sections 1 and 2 above on machine-readable copy of the corresponding source code, to be
a medium customarily used for software interchange; or, distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer to distribute
corresponding source code. (This alternative is allowed only for c) Accompany it with the information you received as to the offer
noncommercial distribution and only if you received the program in object to distribute corresponding source code. (This alternative is
code or executable form with such an offer, in accord with Subsection b allowed only for noncommercial distribution and only if you
above.) received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source code making modifications to it. For an executable work, complete source
means all the source code for all modules it contains, plus any associated code means all the source code for all modules it contains, plus any
interface definition files, plus the scripts used to control compilation and associated interface definition files, plus the scripts used to
installation of the executable. However, as a special exception, the source control compilation and installation of the executable. However, as a
code distributed need not include anything that is normally distributed (in special exception, the source code distributed need not include
either source or binary form) with the major components (compiler, kernel, anything that is normally distributed (in either source or binary
and so on) of the operating system on which the executable runs, unless that form) with the major components (compiler, kernel, and so on) of the
component itself accompanies the executable. operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering access to
copy from a designated place, then offering equivalent access to copy the If distribution of executable or object code is made by offering
source code from the same place counts as distribution of the source code, access to copy from a designated place, then offering equivalent
even though third parties are not compelled to copy the source along with the access to copy the source code from the same place counts as
object code. distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program except as
expressly provided under this License. Any attempt otherwise to copy, 4. You may not copy, modify, sublicense, or distribute the Program
modify, sublicense or distribute the Program is void, and will automatically except as expressly provided under this License. Any attempt
terminate your rights under this License. However, parties who have received otherwise to copy, modify, sublicense or distribute the Program is
copies, or rights, from you under this License will not have their licenses void, and will automatically terminate your rights under this License.
terminated so long as such parties remain in full compliance. However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
5. You are not required to accept this License, since you have not signed it. parties remain in full compliance.
However, nothing else grants you permission to modify or distribute the
Program or its derivative works. These actions are prohibited by law if you 5. You are not required to accept this License, since you have not
do not accept this License. Therefore, by modifying or distributing the signed it. However, nothing else grants you permission to modify or
Program (or any work based on the Program), you indicate your acceptance distribute the Program or its derivative works. These actions are
of this License to do so, and all its terms and conditions for copying, prohibited by law if you do not accept this License. Therefore, by
distributing or modifying the Program or works based on it. modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
6. Each time you redistribute the Program (or any work based on the all its terms and conditions for copying, distributing or modifying
Program), the recipient automatically receives a license from the original the Program or works based on it.
licensor to copy, distribute or modify the Program subject to these terms and
conditions. You may not impose any further restrictions on the recipients' 6. Each time you redistribute the Program (or any work based on the
exercise of the rights granted herein. You are not responsible for enforcing Program), the recipient automatically receives a license from the
compliance by third parties to this License. original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
7. If, as a consequence of a court judgment or allegation of patent restrictions on the recipients' exercise of the rights granted herein.
infringement or for any other reason (not limited to patent issues), conditions You are not responsible for enforcing compliance by third parties to
are imposed on you (whether by court order, agreement or otherwise) that this License.
contradict the conditions of this License, they do not excuse you from the
conditions of this License. If you cannot distribute so as to satisfy 7. If, as a consequence of a court judgment or allegation of patent
simultaneously your obligations under this License and any other pertinent infringement or for any other reason (not limited to patent issues),
obligations, then as a consequence you may not distribute the Program at all. conditions are imposed on you (whether by court order, agreement or
For example, if a patent license would not permit royalty-free redistribution otherwise) that contradict the conditions of this License, they do not
of the Program by all those who receive copies directly or indirectly through excuse you from the conditions of this License. If you cannot
you, then the only way you could satisfy both it and this License would be to distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program. refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under any If any portion of this section is held invalid or unenforceable under
particular circumstance, the balance of the section is intended to apply and any particular circumstance, the balance of the section is intended to
the section as a whole is intended to apply in other circumstances. apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any patents or
other property right claims or to contest validity of any such claims; this It is not the purpose of this section to induce you to infringe any
section has the sole purpose of protecting the integrity of the free software patents or other property right claims or to contest validity of any
distribution system, which is implemented by public license practices. Many such claims; this section has the sole purpose of protecting the
people have made generous contributions to the wide range of software integrity of the free software distribution system, which is
distributed through that system in reliance on consistent application of that implemented by public license practices. Many people have made
system; it is up to the author/donor to decide if he or she is willing to generous contributions to the wide range of software distributed
distribute software through any other system and a licensee cannot impose through that system in reliance on consistent application of that
that choice. system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
This section is intended to make thoroughly clear what is believed to be a impose that choice.
consequence of the rest of this License.
This section is intended to make thoroughly clear what is believed to
8. If the distribution and/or use of the Program is restricted in certain be a consequence of the rest of this License.
countries either by patents or by copyrighted interfaces, the original copyright
holder who places the Program under this License may add an explicit 8. If the distribution and/or use of the Program is restricted in
geographical distribution limitation excluding those countries, so that certain countries either by patents or by copyrighted interfaces, the
distribution is permitted only in or among countries not thus excluded. In such original copyright holder who places the Program under this License
case, this License incorporates the limitation as if written in the body of this may add an explicit geographical distribution limitation excluding
License. those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
9. The Free Software Foundation may publish revised and/or new versions the limitation as if written in the body of this License.
of the General Public License from time to time. Such new versions will be
similar in spirit to the present version, but may differ in detail to address new 9. The Free Software Foundation may publish revised and/or new versions
problems or concerns. of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
Each version is given a distinguishing version number. If the Program specifies address new problems or concerns.
a version number of this License which applies to it and "any later version",
you have the option of following the terms and conditions either of that Each version is given a distinguishing version number. If the Program
version or of any later version published by the Free Software Foundation. If specifies a version number of this License which applies to it and "any
the Program does not specify a version number of this License, you may later version", you have the option of following the terms and conditions
choose any version ever published by the Free Software Foundation. either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
10. If you wish to incorporate parts of the Program into other free programs this License, you may choose any version ever published by the Free Software
whose distribution conditions are different, write to the author to ask for Foundation.
permission. For software which is copyrighted by the Free Software
Foundation, write to the Free Software Foundation; we sometimes make 10. If you wish to incorporate parts of the Program into other free
exceptions for this. Our decision will be guided by the two goals of programs whose distribution conditions are different, write to the author
preserving the free status of all derivatives of our free software and of to ask for permission. For software which is copyrighted by the Free
promoting the sharing and reuse of software generally. Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
NO WARRANTY of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE,
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT NO WARRANTY
PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE
STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
NECESSARY SERVICING, REPAIR OR CORRECTION. REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
ARISING OUT OF THE USE OR INABILITY TO USE THE YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
OR DATA BEING RENDERED INACCURATE OR LOSSES POSSIBILITY OF SUCH DAMAGES.
SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE
PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN END OF TERMS AND CONDITIONS
IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF
THE POSSIBILITY OF SUCH DAMAGES. How to Apply These Terms to Your New Programs
END OF TERMS AND CONDITIONS If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program 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 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY 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 this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License.
Drupal core is maintained by the community. To participate, go to Drupal core is built and maintained by the Drupal project community. Everyone is
encouraged to submit issues and changes (patches) to improve Drupal, and to
http://drupal.org/contribute contribute in other ways -- see http://drupal.org/contribute to find out how.
The people listed here have agreed to do more quality assurance work for
particular areas of Drupal. All of them are subject to change.
Branch maintainers Branch maintainers
------------------ ------------------
Drupal 7 The Drupal Core branch maintainers oversee the development of Drupal as a whole.
- Dries Buytaert 'dries' <http://drupal.org/user/1> The branch maintainers for Drupal 7 are:
- Angela Byron 'webchick' <http://drupal.org/user/24967>
- Dries Buytaert 'dries' http://drupal.org/user/1
- Angela Byron 'webchick' http://drupal.org/user/24967
- David Rothstein 'David_Rothstein' http://drupal.org/user/124982
Component maintainers Component maintainers
--------------------- ---------------------
The Drupal Core component maintainers oversee the development of Drupal
subsystems. See http://drupal.org/contribute/core-maintainers for more
information on their responsibilities, and to find out how to become a component
maintainer. Current component maintainers for Drupal 7:
Ajax system Ajax system
- Alex Bronstein 'effulgentsia' <http://drupal.org/user/78040> - Alex Bronstein 'effulgentsia' http://drupal.org/user/78040
- Randy Fay 'rfay' <http://drupal.org/user/30906> - Earl Miles 'merlinofchaos' http://drupal.org/user/26979
- Earl Miles 'merlinofchaos' <http://drupal.org/user/26979>
Base system Base system
- Károly Négyesi 'chx' <http://drupal.org/user/9446> - Károly Négyesi 'chx' http://drupal.org/user/9446
- Damien Tournoud 'DamZ' <http://drupal.org/user/22211> - Damien Tournoud 'DamZ' http://drupal.org/user/22211
- Moshe Weitzman 'moshe weitzman' <http://drupal.org/user/23> - Moshe Weitzman 'moshe weitzman' http://drupal.org/user/23
Batch system Batch system
- Yves Chedemois 'yched' <http://drupal.org/user/39567> - Yves Chedemois 'yched' http://drupal.org/user/39567
Cache system Cache system
- Damien Tournoud 'DamZ' <http://drupal.org/user/22211> - Damien Tournoud 'DamZ' http://drupal.org/user/22211
- Nathaniel Catchpole 'catch' http://drupal.org/user/35733
Cron system Cron system
- Károly Négyesi 'chx' <http://drupal.org/user/9446> - Károly Négyesi 'chx' http://drupal.org/user/9446
- Derek Wright 'dww' <http://drupal.org/user/46549> - Derek Wright 'dww' http://drupal.org/user/46549
Database system Database system
- Larry Garfield 'Crell' <http://drupal.org/user/26398> - Larry Garfield 'Crell' http://drupal.org/user/26398
- MySQL driver - MySQL driver
- Larry Garfield 'Crell' <http://drupal.org/user/26398> - Larry Garfield 'Crell' http://drupal.org/user/26398
- David Strauss 'David Strauss' <http://drupal.org/user/93254> - David Strauss 'David Strauss' http://drupal.org/user/93254
- PostgreSQL driver - PostgreSQL driver
- Damien Tournoud 'DamZ' <http://drupal.org/user/22211> - Damien Tournoud 'DamZ' http://drupal.org/user/22211
- Josh Waihi 'fiasco' <http://drupal.org/user/188162> - Josh Waihi 'fiasco' http://drupal.org/user/188162
- Sqlite driver - Sqlite driver
- Damien Tournoud 'DamZ' <http://drupal.org/user/22211> - Damien Tournoud 'DamZ' http://drupal.org/user/22211
- Károly Négyesi 'chx' <http://drupal.org/user/9446> - Károly Négyesi 'chx' http://drupal.org/user/9446
Database update system Database update system
- Károly Négyesi 'chx' <http://drupal.org/user/9446> - Károly Négyesi 'chx' http://drupal.org/user/9446
- Ashok Modi 'BTMash' http://drupal.org/user/60422
Entity system Entity system
- Nathaniel Catchpole 'catch' <http://drupal.org/user/35733> - Wolfgang Ziegler 'fago' http://drupal.org/user/16747
- Franz Heinzmann 'Frando' <http://drupal.org/user/21850> - Nathaniel Catchpole 'catch' http://drupal.org/user/35733
- Franz Heinzmann 'Frando' http://drupal.org/user/21850
File system File system
- Andrew Morton 'drewish' <http://drupal.org/user/34869> - Andrew Morton 'drewish' http://drupal.org/user/34869
- Aaron Winborn 'aaron' <http://drupal.org/user/33420> - Aaron Winborn 'aaron' http://drupal.org/user/33420
Form system Form system
- Károly Négyesi 'chx' <http://drupal.org/user/9446> - Károly Négyesi 'chx' http://drupal.org/user/9446
- Alex Bronstein 'effulgentsia' <http://drupal.org/user/78040> - Alex Bronstein 'effulgentsia' http://drupal.org/user/78040
- Wolfgang Ziegler 'fago' <http://drupal.org/user/16747> - Wolfgang Ziegler 'fago' http://drupal.org/user/16747
- Daniel F. Kudwien 'sun' <http://drupal.org/user/54136> - Daniel F. Kudwien 'sun' http://drupal.org/user/54136
- Franz Heinzmann 'Frando' <http://drupal.org/user/21850> - Franz Heinzmann 'Frando' http://drupal.org/user/21850
Image system Image system
- Andrew Morton 'drewish' <http://drupal.org/user/34869> - Andrew Morton 'drewish' http://drupal.org/user/34869
- Nathan Haug 'quicksketch' <http://drupal.org/user/35821> - Nathan Haug 'quicksketch' http://drupal.org/user/35821
Install system Install system
- David Rothstein 'David_Rothstein' <http://drupal.org/user/124982> - David Rothstein 'David_Rothstein' http://drupal.org/user/124982
JavaScript JavaScript
- ? - Théodore Biadala 'nod_' http://drupal.org/user/598310
- Steve De Jonghe 'seutje' http://drupal.org/user/264148
- Jesse Renée Beach 'jessebeach' http://drupal.org/user/748566
Language system Language system
- Francesco Placella 'plach' <http://drupal.org/user/183211> - Francesco Placella 'plach' http://drupal.org/user/183211
- Daniel F. Kudwien 'sun' <http://drupal.org/user/54136> - Daniel F. Kudwien 'sun' http://drupal.org/user/54136
Lock system Lock system
- Damien Tournoud 'DamZ' <http://drupal.org/user/22211> - Damien Tournoud 'DamZ' http://drupal.org/user/22211
Mail system Mail system
- ? - ?
Markup Markup
- Jacine Luisi 'Jacine' <http://drupal.org/user/88931> - Jacine Luisi 'Jacine' http://drupal.org/user/88931
- Daniel F. Kudwien 'sun' <http://drupal.org/user/54136> - Daniel F. Kudwien 'sun' http://drupal.org/user/54136
Menu system Menu system
- Peter Wolanin 'pwolanin' <http://drupal.org/user/49851> - Peter Wolanin 'pwolanin' http://drupal.org/user/49851
- Károly Négyesi 'chx' <http://drupal.org/user/9446> - Károly Négyesi 'chx' http://drupal.org/user/9446
Path system Path system
- Dave Reid 'davereid' <http://drupal.org/user/53892> - Dave Reid 'davereid' http://drupal.org/user/53892
- Nathaniel Catchpole 'catch' <http://drupal.org/user/35733> - Nathaniel Catchpole 'catch' http://drupal.org/user/35733
Render system Render system
- Moshe Weitzman 'moshe weitzman' <http://drupal.org/user/23> - Moshe Weitzman 'moshe weitzman' http://drupal.org/user/23
- Alex Bronstein 'effulgentsia' <http://drupal.org/user/78040> - Alex Bronstein 'effulgentsia' http://drupal.org/user/78040
- Franz Heinzmann 'Frando' <http://drupal.org/user/21850> - Franz Heinzmann 'Frando' http://drupal.org/user/21850
Theme system Theme system
- Earl Miles 'merlinofchaos' <http://drupal.org/user/26979> - Earl Miles 'merlinofchaos' http://drupal.org/user/26979
- Alex Bronstein 'effulgentsia' <http://drupal.org/user/78040> - Alex Bronstein 'effulgentsia' http://drupal.org/user/78040
- Joon Park 'dvessel' <http://drupal.org/user/56782> - Joon Park 'dvessel' http://drupal.org/user/56782
- John Albin Wilkins 'JohnAlbin' <http://drupal.org/user/32095> - John Albin Wilkins 'JohnAlbin' http://drupal.org/user/32095
Token system Token system
- Dave Reid 'davereid' <http://drupal.org/user/53892> - Dave Reid 'davereid' http://drupal.org/user/53892
XML-RPC system XML-RPC system
- Frederic G. Marand 'fgm' <http://drupal.org/user/27985> - Frederic G. Marand 'fgm' http://drupal.org/user/27985
Topic coordinators Topic coordinators
------------------ ------------------
Accessibility Accessibility
- Everett Zufelt 'Everett Zufelt' <http://drupal.org/user/406552> - Everett Zufelt 'Everett Zufelt' http://drupal.org/user/406552
- Brandon Bowersox 'brandonojc' <http://drupal.org/user/186415> - Brandon Bowersox-Johnson 'bowersox' http://drupal.org/user/186415
Documentation Documentation
- Ariane Khachatourians 'arianek' <http://drupal.org/user/158886> - Jennifer Hodgdon 'jhodgdon' http://drupal.org/user/155601
- Jennifer Hodgdon 'jhodgdon' <http://drupal.org/user/155601>
Security Security
- Heine Deelstra 'Heine' <http://drupal.org/user/17943> - Greg Knaddison 'greggles' http://drupal.org/user/36762
Translations Translations
- Gerhard Killesreiter 'killes' <http://drupal.org/user/83> - Gerhard Killesreiter 'killes' http://drupal.org/user/83
User experience and usability User experience and usability
- Roy Scholten 'yoroy' <http://drupal.org/user/41502> - Roy Scholten 'yoroy' http://drupal.org/user/41502
- Bojhan Somers 'Bojhan' <http://drupal.org/user/87969> - Bojhan Somers 'Bojhan' http://drupal.org/user/87969
Node Access
- Moshe Weitzman 'moshe weitzman' http://drupal.org/user/23
- Ken Rickard 'agentrickard' http://drupal.org/user/20975
- Jess Myrbo 'xjm' http://drupal.org/user/65776
Module maintainers Module maintainers
------------------ ------------------
...@@ -150,144 +161,143 @@ Aggregator module ...@@ -150,144 +161,143 @@ Aggregator module
- ? - ?
Block module Block module
- John Albin Wilkins 'JohnAlbin' <http://drupal.org/user/32095> - John Albin Wilkins 'JohnAlbin' http://drupal.org/user/32095
Blog module Blog module
- ? - ?
Book module Book module
- Peter Wolanin 'pwolanin' <http://drupal.org/user/49851> - Peter Wolanin 'pwolanin' http://drupal.org/user/49851
Color module Color module
- ? - ?
Comment module Comment module
- Nathaniel Catchpole 'catch' <http://drupal.org/user/35733> - Nathaniel Catchpole 'catch' http://drupal.org/user/35733
Contact module Contact module
- Dave Reid 'davereid' <http://drupal.org/user/53892> - Dave Reid 'davereid' http://drupal.org/user/53892
Contextual module Contextual module
- Daniel F. Kudwien 'sun' <http://drupal.org/user/54136> - Daniel F. Kudwien 'sun' http://drupal.org/user/54136
Dashboard module Dashboard module
- ? - ?
Database logging module Database logging module
- Khalid Baheyeldin 'kbahey' <http://drupal.org/user/4063> - Khalid Baheyeldin 'kbahey' http://drupal.org/user/4063
Field module Field module
- Yves Chedemois 'yched' <http://drupal.org/user/39567> - Yves Chedemois 'yched' http://drupal.org/user/39567
- Barry Jaspan 'bjaspan' <http://drupal.org/user/46413> - Barry Jaspan 'bjaspan' http://drupal.org/user/46413
Field UI module Field UI module
- Yves Chedemois 'yched' <http://drupal.org/user/39567> - Yves Chedemois 'yched' http://drupal.org/user/39567
File module File module
- Aaron Winborn 'aaron' <http://drupal.org/user/33420> - Aaron Winborn 'aaron' http://drupal.org/user/33420
Filter module Filter module
- Daniel F. Kudwien 'sun' <http://drupal.org/user/54136> - Daniel F. Kudwien 'sun' http://drupal.org/user/54136
Forum module Forum module
- Lee Rowlands 'larowlan' <http://drupal.org/user/395439> - Lee Rowlands 'larowlan' http://drupal.org/user/395439
Help module Help module
- ? - ?
Image module Image module
- Nathan Haug 'quicksketch' <http://drupal.org/user/35821> - Nathan Haug 'quicksketch' http://drupal.org/user/35821
Locale module Locale module
- Gábor Hojtsy 'Gábor Hojtsy' <http://drupal.org/user/4166> - Gábor Hojtsy 'Gábor Hojtsy' http://drupal.org/user/4166
Menu module Menu module
- ? - ?
Node module Node module
- Moshe Weitzman 'moshe weitzman' <http://drupal.org/user/23> - Moshe Weitzman 'moshe weitzman' http://drupal.org/user/23
- David Strauss 'David Strauss' <http://drupal.org/user/93254> - David Strauss 'David Strauss' http://drupal.org/user/93254
OpenID module OpenID module
- Vojtech Kusy 'wojtha' <http://drupal.org/user/56154> - Vojtech Kusy 'wojtha' http://drupal.org/user/56154
- Heine Deelstra 'Heine' <http://drupal.org/user/17943> - Christian Schmidt 'c960657' http://drupal.org/user/216078
- Christian Schmidt 'c960657' <http://drupal.org/user/216078> - Damien Tournoud 'DamZ' http://drupal.org/user/22211
- Damien Tournoud 'DamZ' <http://drupal.org/user/22211>
Overlay module Overlay module
- Katherine Senzee 'ksenzee' <http://drupal.org/user/139855> - Katherine Senzee 'ksenzee' http://drupal.org/user/139855
Path module Path module
- Dave Reid 'davereid' <http://drupal.org/user/53892> - Dave Reid 'davereid' http://drupal.org/user/53892
PHP module PHP module
- ? - ?
Poll module Poll module
- ? - Andrei Mateescu 'amateescu' http://drupal.org/user/729614
Profile module Profile module
- ? - ?
RDF module RDF module
- Stéphane Corlosquet 'scor' <http://drupal.org/user/52142> - Stéphane Corlosquet 'scor' http://drupal.org/user/52142
Search module Search module
- Doug Green 'douggreen' <http://drupal.org/user/29191> - Doug Green 'douggreen' http://drupal.org/user/29191
Shortcut module Shortcut module
- David Rothstein 'David_Rothstein' <http://drupal.org/user/124982> - David Rothstein 'David_Rothstein' http://drupal.org/user/124982
- Kristof De Jaeger 'swentel' <http://drupal.org/user/107403>
Simpletest module Simpletest module
- Jimmy Berry 'boombatower' <http://drupal.org/user/214218> - Jimmy Berry 'boombatower' http://drupal.org/user/214218
- Károly Négyesi 'chx' <http://drupal.org/user/9446> - Károly Négyesi 'chx' http://drupal.org/user/9446
Statistics module Statistics module
- Dave Reid 'davereid' <http://drupal.org/user/53892> - Tim Millwood 'timmillwood' http://drupal.org/user/227849
Syslog module Syslog module
- Khalid Baheyeldin 'kbahey' <http://drupal.org/user/4063> - Khalid Baheyeldin 'kbahey' http://drupal.org/user/4063
System module System module
- ? - ?
Taxonomy module Taxonomy module
- Nathaniel Catchpole 'catch' <http://drupal.org/user/35733> - Jess Myrbo 'xjm' http://drupal.org/user/65776
- Benjamin Doherty 'bangpound' <http://drupal.org/user/100456> - Nathaniel Catchpole 'catch' http://drupal.org/user/35733
- Benjamin Doherty 'bangpound' http://drupal.org/user/100456
Toolbar module Toolbar module
- ? - ?
Tracker module Tracker module
- David Strauss 'David Strauss' <http://drupal.org/user/93254> - David Strauss 'David Strauss' http://drupal.org/user/93254
Translation module Translation module
- Francesco Placella 'plach' <http://drupal.org/user/183211> - Francesco Placella 'plach' http://drupal.org/user/183211
Trigger module Trigger module
- ? - ?
Update module Update module
- Derek Wright 'dww' <http://drupal.org/user/46549> - Derek Wright 'dww' http://drupal.org/user/46549
User module User module
- Moshe Weitzman 'moshe weitzman' <http://drupal.org/user/23> - Moshe Weitzman 'moshe weitzman' http://drupal.org/user/23
- David Strauss 'David Strauss' <http://drupal.org/user/93254> - David Strauss 'David Strauss' http://drupal.org/user/93254
Theme maintainers Theme maintainers
----------------- -----------------
Bartik theme Bartik theme
- Jen Simmons 'jensimmons' <http://drupal.org/user/140882> - Jen Simmons 'jensimmons' http://drupal.org/user/140882
- Jeff Burns 'Jeff Burnz' <http://drupal.org/user/61393> - Jeff Burns 'Jeff Burnz' http://drupal.org/user/61393
Garland theme Garland theme
- John Albin Wilkins 'JohnAlbin' <http://drupal.org/user/32095> - John Albin Wilkins 'JohnAlbin' http://drupal.org/user/32095
Seven theme Seven theme
- Jeff Burns 'Jeff Burnz' <http://drupal.org/user/61393> - Jeff Burns 'Jeff Burnz' http://drupal.org/user/61393
Stark theme Stark theme
- John Albin Wilkins 'JohnAlbin' <http://drupal.org/user/32095> - John Albin Wilkins 'JohnAlbin' http://drupal.org/user/32095
Hacks of Core:
includes/bootstrap.inc
function drupal_settings_initialize()
* UNL change: include a "global" settings file that applies to all sites.
function conf_path()
* UNL change: Add $default_domains array support for sites.php to list which domains are ok to use with 'unl.edu.*' site_dirs.
If no $default_domains array is defined in sites.php, this code will do nothing.
------------------------------------
sites/all/modules/drush/commands/core/drupal/site_install_7.inc
function drush_core_site_install_version()
* UNL change! Setting this to FALSE because we don't want them and they're hard coded.
------------------------------------
rewrite.php
used to allow public files to be accessed without the sites/<site_dir>/files prefix
------------------------------------
modules/image/image.field.inc
* theme_image_formatter ignores attributes so classes can't be added to an image in a theme (needed for photo frame)
* http://drupal.org/node/1025796#comment-4298698
* http://drupal.org/files/issues/1025796.patch
------------------------------------
sites/sites.php
* Added support for $default_domains array. See includes/bootstrap.inc conf_path().
------------------------------------
sites/example.sites.php
* Added an example of the $default_domains array.
## Requirements:
* [Core drupal requirements](http://drupal.org/requirements)
* PHP LDAP Extension
* PHP Tidy Extension (for migration tool)
## Get Started:
In this example the web root is /Library/WebServer/Documents and Apache runs as _www - modify the instructions below according to your setup
* Fork UNL-Information-Services/UNL-CMS and clone your fork into /Library/WebServer/Documents/workspace/UNL-CMS
* Create a local database (example name: unlcms)
* From /Library/WebServer/Documents/workspace/UNL-CMS run:
git submodule init
git submodule update
* Create this file in your home directory with a name like resetunlcms.sh
echo 'Resetting UNL-CMS... Get ready for action!'
mysqldump -uYOURUSERNAME -pYOURPASS --add-drop-table --no-data unlcms | grep ^DROP | mysql -uYOURUSERNAME -pYOURPASS unlcms
echo 'unlcms database emptied....'
cd /Library/WebServer/Documents/workspace/UNL-CMS/sites/default
rm -rf files
rm settings.php
mkdir files
chown _www files
cp default.settings.php settings.php
chown _www settings.php
cd /Library/WebServer/Documents/workspace/UNL-CMS/sites
sudo rm -rf localhost.*
sudo rm -rf MYDEVMACHINE.unl.edu.*
sudo rm -rf unl.edu.*
sudo rm sites.php
cp example.sites.php sites.php
echo 'Resetting .htaccess'
cd /Library/WebServer/Documents/workspace/UNL-CMS
sudo rm .htaccess
sudo rm .htaccess-subsite-map.txt
cp .htaccess.sample .htaccess
cp .htaccess-subsite-map.txt.sample .htaccess-subsite-map.txt
sudo chown YOURUSER .htaccess
sudo chown YOURUSER .htaccess-subsite-map.txt
sed -i "" 's/# RewriteBase \/drupal\//RewriteBase \/workspace\/UNL-CMS\//' ".htaccess"
echo 'Done.'
echo 'Note: If you want clean urls you need to look at the .htaccess file where it says "Allow public files to be accessed without the sites/<site_dir>/files prefix"';
* Run that script. (Can also be run whenever you want to reset your dev environment.)
sudo sh ~/resetunlcms.sh
* Go to http://localhost/workspace/UNL-CMS and go through the install process
## Install Issues:
* Can't create a new site with Drush/UNL Cron if pdo_pgsql is enabled
If pdo_pgsql is enabled on the php install that is running drush/unl cron then it will fail without modification.
Adding the following junk values for pgsql solves the problem at line 414 (D7.10) of install_run_task inside install.core.inc
$form_state['values']['pgsql']['username'] = 'xxxx'; //add this
$form_state['values']['pgsql']['database'] = 'xxxx'; //add this
drupal_form_submit($function, $form_state); //existing code
$errors = form_get_errors(); //existing code
## Hacks of Core:
* includes/bootstrap.inc
- function drupal_settings_initialize(). UNL change: include a "global" settings file that applies to all sites.
- function conf_path(). UNL change: Add $default_domains array support for sites.php to list which domains are ok to use with 'unl.edu.*' site_dirs.
If no $default_domains array is defined in sites.php, this code will do nothing.
- Fix so that drupal_serve_page_from_cache() won't override a cached Vary header. http://drupal.org/node/1321086
* rewrite.php
This custom file is used to allow public files to be accessed without the sites/<site_dir>/files prefix.
* sites/sites.php
Added support for $default_domains array. See conf_path() in includes/bootstrap.inc
* sites/example.sites.php
Added an example of the $default_domains array. Added the stub record needed for creating site aliases.
* modules/field/modules/text/text.module
- Add nl2br() on Plain Text processor. See http://drupal.org/node/1152216#comment-7174876
## Hacks of Contrib modules:
* drush/commands/core/drupal/site_install.inc
- function drush_core_site_install_version(). UNL change: Setting this to FALSE because we don't want them and they're hard coded.
* drush/commands/core/site_install.drush.inc
- function drush_core_pre_site_install(). UNL change: Inserted a return before code that would otherwise drop the entire database.
* drush/includes/environment.inc
- Fix so that drush pulls in the correct uri parameter. See http://drupal.org/node/1331106
* entity/entity.module, entity/modules/callbacks.inc
- Add 'uri callback' for file entities. See http://drupal.org/node/1481372#comment-6529650
* media/includes/media.variables.inc
- Convert FILE_ENTITY_DEFAULT_ALLOWED_EXTENSIONS to the new variable. See http://drupal.org/node/1846674#comment-6760286
* og_menu
- Applied og_menu-jquery_selector.patch. See:http://drupal.org/node/1051542
* redirect
- Merge global redirect functions into Redirect module. See http://drupal.org/node/905914
* upload_replace.module
- Drupal 7 bug fixes. See http://drupal.org/node/1115484#comment-5646558
* webform.module
- Make Safe Key values accessible via tokens. See http://drupal.org/node/1340010#comment-6709520 Patch applied: http://drupal.org/files/webform-1340010-19.patch
* workbench_moderation.module
- Fix broken books in workbench_moderation_node_presave(). See http://drupal.org/node/1505060
* wysiwyg/editors/js/tinymce-3.js
- Comment out the part that switches wrappers from table-based to div. We need the original TinyMCE code for the PDW toggle plugin to work
## How to Contribute
Development is handled through GitHub
All code changes must be committed via git to a local fork and contributed back to the project via a pull request.
Ideally each developer should have a fork of the project on GitHub where they can push changes.
In your local clone:
* git pull origin develop
* git checkout -b topics/whatever-you-work-on (or bugfix/NUM — for bugs)
* write code and commit
* git push origin topics/whatever-you-work-on
* on github open a pull request from your branch to develop
* have someone else review
Another developer will review your changes and merge in to the develop branch.
...@@ -4,6 +4,7 @@ CONTENTS OF THIS FILE ...@@ -4,6 +4,7 @@ CONTENTS OF THIS FILE
* About Drupal * About Drupal
* Configuration and features * Configuration and features
* Installation profiles
* Appearance * Appearance
* Developing for Drupal * Developing for Drupal
...@@ -43,6 +44,40 @@ More about configuration: ...@@ -43,6 +44,40 @@ More about configuration:
http://drupal.org/project/modules http://drupal.org/project/modules
* See also: "Developing for Drupal" for writing your own modules, below. * See also: "Developing for Drupal" for writing your own modules, below.
INSTALLATION PROFILES
---------------------
Installation profiles define additional steps (such as enabling modules,
defining content types, etc.) that run after the base installation provided
by core when Drupal is first installed. There are two basic installation
profiles provided with Drupal core.
Installation profiles from the Drupal community modify the installation process
to provide a website for a specific use case, such as a CMS for media
publishers, a web-based project tracking tool, or a full-fledged CRM for
non-profit organizations raising money and accepting donations. They can be
distributed as bare installation profiles or as "distributions". Distributions
include Drupal core, the installation profile, and all other required
extensions, such as contributed and custom modules, themes, and third-party
libraries. Bare installation profiles require you to download Drupal Core and
the required extensions separately; place the downloaded profile in the
/profiles directory before you start the installation process. Note that the
contents of this directory may be overwritten during updates of Drupal core;
it is advised to keep code backups or use a version control system.
Additionally, modules and themes may be placed inside subdirectories in a
specific installation profile such as profiles/your_site_profile/modules and
profiles/your_site_profile/themes respectively to restrict their usage to only
sites that were installed with that specific profile.
More about installation profiles and distributions:
* Read about the difference between installation profiles and distributions:
http://drupal.org/node/1089736
* Download contributed installation profiles and distributions:
http://drupal.org/project/distributions
* Develop your own installation profile or distribution:
http://drupal.org/developing/distributions
APPEARANCE APPEARANCE
---------- ----------
......
INTRODUCTION INTRODUCTION
------------ ------------
This document describes how to: This document describes how to:
...@@ -25,6 +24,11 @@ First steps and definitions: ...@@ -25,6 +24,11 @@ First steps and definitions:
applying it to your live site. Even minor updates can cause your site's applying it to your live site. Even minor updates can cause your site's
behavior to change. behavior to change.
* Each new release of Drupal has release notes, which explain the changes made
since the previous version and any special instructions needed to update or
upgrade to the new version. You can find a link to the release notes for the
version you are upgrading or updating to on the Drupal project page
(http://drupal.org/project/drupal).
UPGRADE PROBLEMS UPGRADE PROBLEMS
---------------- ----------------
...@@ -40,7 +44,6 @@ If you encounter errors during this process, ...@@ -40,7 +44,6 @@ If you encounter errors during this process,
More in-depth information on upgrading can be found at http://drupal.org/upgrade More in-depth information on upgrading can be found at http://drupal.org/upgrade
MINOR VERSION UPDATES MINOR VERSION UPDATES
--------------------- ---------------------
To update from one minor 7.x version of Drupal to any later 7.x version, after To update from one minor 7.x version of Drupal to any later 7.x version, after
...@@ -58,11 +61,18 @@ following the instructions in the INTRODUCTION section at the top of this file: ...@@ -58,11 +61,18 @@ following the instructions in the INTRODUCTION section at the top of this file:
If you made modifications to files like .htaccess or robots.txt, you will If you made modifications to files like .htaccess or robots.txt, you will
need to re-apply them from your backup, after the new files are in place. need to re-apply them from your backup, after the new files are in place.
Sometimes an update includes changes to settings.php (this will be noted in Sometimes an update includes changes to default.settings.php (this will be
the release announcement). If that's the case, replace your old settings.php noted in the release notes). If that's the case, follow these steps:
with the new one, and copy the site-specific entries (especially the lines
giving the database name, user, and password) from the old settings.php to - Make a backup copy of your settings.php file, with a different file name.
the new settings.php.
- Make a copy of the new default.settings.php file, and name the copy
settings.php (overwriting your previous settings.php file).
- Copy the custom and site-specific entries from the backup you made into the
new settings.php file. You will definitely need the lines giving the
database information, and you will also want to copy in any other
customizations you have added.
4. Download the latest Drupal 7.x release from http://drupal.org to a 4. Download the latest Drupal 7.x release from http://drupal.org to a
directory outside of your web root. Extract the archive and copy the files directory outside of your web root. Extract the archive and copy the files
...@@ -110,7 +120,6 @@ following the instructions in the INTRODUCTION section at the top of this file: ...@@ -110,7 +120,6 @@ following the instructions in the INTRODUCTION section at the top of this file:
Disable the "Put site into maintenance mode" checkbox and save the Disable the "Put site into maintenance mode" checkbox and save the
configuration. configuration.
MAJOR VERSION UPGRADE MAJOR VERSION UPGRADE
--------------------- ---------------------
To upgrade from a previous major version of Drupal to Drupal 7.x, after To upgrade from a previous major version of Drupal to Drupal 7.x, after
...@@ -132,15 +141,19 @@ following the instructions in the INTRODUCTION section at the top of this file: ...@@ -132,15 +141,19 @@ following the instructions in the INTRODUCTION section at the top of this file:
download Drupal 6.x and follow the instructions in its UPGRADE.txt. This download Drupal 6.x and follow the instructions in its UPGRADE.txt. This
document only applies for upgrades from 6.x to 7.x. document only applies for upgrades from 6.x to 7.x.
3. Log in as user ID 1 (the site maintenance user). 3. In addition to updating to the latest available version of Drupal 6.x core,
you must also upgrade all of your contributed modules for Drupal to their
latest Drupal 6.x versions.
4. Go to Administer > Site configuration > Site maintenance. Select 4. Log in as user ID 1 (the site maintenance user).
5. Go to Administer > Site configuration > Site maintenance. Select
"Off-line" and save the configuration. "Off-line" and save the configuration.
5. Go to Administer > Site building > Themes. Enable "Garland" and select it as 6. Go to Administer > Site building > Themes. Enable "Garland" and select it as
the default theme. the default theme.
6. Go to Administer > Site building > Modules. Disable all modules that are not 7. Go to Administer > Site building > Modules. Disable all modules that are not
listed under "Core - required" or "Core - optional". It is possible that some listed under "Core - required" or "Core - optional". It is possible that some
modules cannot be disabled, because others depend on them. Repeat this step modules cannot be disabled, because others depend on them. Repeat this step
until all non-core modules are disabled. until all non-core modules are disabled.
...@@ -149,21 +162,21 @@ following the instructions in the INTRODUCTION section at the top of this file: ...@@ -149,21 +162,21 @@ following the instructions in the INTRODUCTION section at the top of this file:
no longer need their data, then you can uninstall them under the Uninstall no longer need their data, then you can uninstall them under the Uninstall
tab after disabling them. tab after disabling them.
7. On the command line or in your FTP client, remove the file 8. On the command line or in your FTP client, remove the file
sites/default/default.settings.php sites/default/default.settings.php
8. Remove all old core files and directories, except for the 'sites' directory 9. Remove all old core files and directories, except for the 'sites' directory
and any custom files you added elsewhere. and any custom files you added elsewhere.
If you made modifications to files like .htaccess or robots.txt, you will If you made modifications to files like .htaccess or robots.txt, you will
need to re-apply them from your backup, after the new files are in place. need to re-apply them from your backup, after the new files are in place.
9. If you uninstalled any modules, remove them from the sites/all/modules and 10. If you uninstalled any modules, remove them from the sites/all/modules and
other sites/*/modules directories. Leave other modules in place, even though other sites/*/modules directories. Leave other modules in place, even though
they are incompatible with Drupal 7.x. they are incompatible with Drupal 7.x.
10. Download the latest Drupal 7.x release from http://drupal.org to a 11. Download the latest Drupal 7.x release from http://drupal.org to a
directory outside of your web root. Extract the archive and copy the files directory outside of your web root. Extract the archive and copy the files
into your Drupal directory. into your Drupal directory.
...@@ -182,14 +195,14 @@ following the instructions in the INTRODUCTION section at the top of this file: ...@@ -182,14 +195,14 @@ following the instructions in the INTRODUCTION section at the top of this file:
from http://drupal.org using your web browser, extract it, and then use an from http://drupal.org using your web browser, extract it, and then use an
FTP client to upload the files to your web root. FTP client to upload the files to your web root.
11. Re-apply any modifications to files such as .htaccess or robots.txt. 12. Re-apply any modifications to files such as .htaccess or robots.txt.
12. Make your settings.php file writeable, so that the update process can 13. Make your settings.php file writeable, so that the update process can
convert it to the format of Drupal 7.x. settings.php is usually located in convert it to the format of Drupal 7.x. settings.php is usually located in
sites/default/settings.php sites/default/settings.php
13. Run update.php by visiting http://www.example.com/update.php (replace 14. Run update.php by visiting http://www.example.com/update.php (replace
www.example.com with your domain name). This will update the core database www.example.com with your domain name). This will update the core database
tables. tables.
...@@ -205,20 +218,19 @@ following the instructions in the INTRODUCTION section at the top of this file: ...@@ -205,20 +218,19 @@ following the instructions in the INTRODUCTION section at the top of this file:
- Once the upgrade is done, $update_free_access must be reverted to FALSE. - Once the upgrade is done, $update_free_access must be reverted to FALSE.
14. Backup your database after the core upgrade has run. 15. Backup your database after the core upgrade has run.
15. Replace and update your non-core modules and themes, following the 16. Replace and update your non-core modules and themes, following the
procedures at http://drupal.org/node/948216 procedures at http://drupal.org/node/948216
16. Go to Administration > Reports > Status report. Verify that everything is 17. Go to Administration > Reports > Status report. Verify that everything is
working as expected. working as expected.
17. Ensure that $update_free_access is FALSE in settings.php. 18. Ensure that $update_free_access is FALSE in settings.php.
18. Go to Administration > Configuration > Development > Maintenance mode. 19. Go to Administration > Configuration > Development > Maintenance mode.
Disable the "Put site into maintenance mode" checkbox and save the Disable the "Put site into maintenance mode" checkbox and save the
configuration. configuration.
To get started with Drupal 7 administration, visit To get started with Drupal 7 administration, visit
http://drupal.org/getting-started/7/admin http://drupal.org/getting-started/7/admin
...@@ -4,16 +4,16 @@ ...@@ -4,16 +4,16 @@
* @file * @file
* Administrative script for running authorized file operations. * Administrative script for running authorized file operations.
* *
* Using this script, the site owner (the user actually owning the files on * Using this script, the site owner (the user actually owning the files on the
* the webserver) can authorize certain file-related operations to proceed * webserver) can authorize certain file-related operations to proceed with
* with elevated privileges, for example to deploy and upgrade modules or * elevated privileges, for example to deploy and upgrade modules or themes.
* themes. Users should not visit this page directly, but instead use an * Users should not visit this page directly, but instead use an administrative
* administrative user interface which knows how to redirect the user to this * user interface which knows how to redirect the user to this script as part of
* script as part of a multistep process. This script actually performs the * a multistep process. This script actually performs the selected operations
* selected operations without loading all of Drupal, to be able to more * without loading all of Drupal, to be able to more gracefully recover from
* gracefully recover from errors. Access to the script is controlled by a * errors. Access to the script is controlled by a global killswitch in
* global killswitch in settings.php ('allow_authorize_operations') and via * settings.php ('allow_authorize_operations') and via the 'administer software
* the 'administer software updates' permission. * updates' permission.
* *
* There are helper functions for setting up an operation to run via this * There are helper functions for setting up an operation to run via this
* system in modules/system/system.module. For more information, see: * system in modules/system/system.module. For more information, see:
...@@ -21,21 +21,22 @@ ...@@ -21,21 +21,22 @@
*/ */
/** /**
* Root directory of Drupal installation. * Defines the root directory of the Drupal installation.
*/ */
define('DRUPAL_ROOT', getcwd()); define('DRUPAL_ROOT', getcwd());
/** /**
* Global flag to identify update.php and authorize.php runs, and so * Global flag to identify update.php and authorize.php runs.
* avoid various unwanted operations, such as hook_init() and *
* hook_exit() invokes, css/js preprocessing and translation, and * Identifies update.php and authorize.php runs, avoiding unwanted operations
* solve some theming issues. This flag is checked on several places * such as hook_init() and hook_exit() invokes, css/js preprocessing and
* in Drupal code (not just authorize.php). * translation, and solves some theming issues. The flag is checked in other
* places in Drupal code (not just authorize.php).
*/ */
define('MAINTENANCE_MODE', 'update'); define('MAINTENANCE_MODE', 'update');
/** /**
* Render a 403 access denied page for authorize.php * Renders a 403 access denied page for authorize.php.
*/ */
function authorize_access_denied_page() { function authorize_access_denied_page() {
drupal_add_http_header('Status', '403 Forbidden'); drupal_add_http_header('Status', '403 Forbidden');
...@@ -45,13 +46,13 @@ function authorize_access_denied_page() { ...@@ -45,13 +46,13 @@ function authorize_access_denied_page() {
} }
/** /**
* Determine if the current user is allowed to run authorize.php. * Determines if the current user is allowed to run authorize.php.
* *
* The killswitch in settings.php overrides all else, otherwise, the user must * The killswitch in settings.php overrides all else, otherwise, the user must
* have access to the 'administer software updates' permission. * have access to the 'administer software updates' permission.
* *
* @return * @return
* TRUE if the current user can run authorize.php, otherwise FALSE. * TRUE if the current user can run authorize.php, and FALSE if not.
*/ */
function authorize_access_allowed() { function authorize_access_allowed() {
return variable_get('allow_authorize_operations', TRUE) && user_access('administer software updates'); return variable_get('allow_authorize_operations', TRUE) && user_access('administer software updates');
...@@ -60,7 +61,6 @@ function authorize_access_allowed() { ...@@ -60,7 +61,6 @@ function authorize_access_allowed() {
// *** Real work of the script begins here. *** // *** Real work of the script begins here. ***
require_once DRUPAL_ROOT . '/includes/bootstrap.inc'; require_once DRUPAL_ROOT . '/includes/bootstrap.inc';
require_once DRUPAL_ROOT . '/includes/session.inc';
require_once DRUPAL_ROOT . '/includes/common.inc'; require_once DRUPAL_ROOT . '/includes/common.inc';
require_once DRUPAL_ROOT . '/includes/file.inc'; require_once DRUPAL_ROOT . '/includes/file.inc';
require_once DRUPAL_ROOT . '/includes/module.inc'; require_once DRUPAL_ROOT . '/includes/module.inc';
...@@ -74,7 +74,7 @@ drupal_bootstrap(DRUPAL_BOOTSTRAP_SESSION); ...@@ -74,7 +74,7 @@ drupal_bootstrap(DRUPAL_BOOTSTRAP_SESSION);
global $conf; global $conf;
// We have to enable the user and system modules, even to check access and // We have to enable the user and system modules, even to check access and
// display errors via the maintainence theme. // display errors via the maintenance theme.
$module_list['system']['filename'] = 'modules/system/system.module'; $module_list['system']['filename'] = 'modules/system/system.module';
$module_list['user']['filename'] = 'modules/user/user.module'; $module_list['user']['filename'] = 'modules/user/user.module';
module_list(TRUE, FALSE, FALSE, $module_list); module_list(TRUE, FALSE, FALSE, $module_list);
...@@ -145,7 +145,7 @@ if (authorize_access_allowed()) { ...@@ -145,7 +145,7 @@ if (authorize_access_allowed()) {
l(t('Front page'), '<front>'), l(t('Front page'), '<front>'),
)); ));
} }
$output .= theme('item_list', array('items' => $links, 'title' => t('Next steps'))); $output .= theme('item_list', array('items' => $links, 'title' => t('Next steps')));
} }
// If a batch is running, let it run. // If a batch is running, let it run.
...@@ -172,4 +172,3 @@ else { ...@@ -172,4 +172,3 @@ else {
if (!empty($output)) { if (!empty($output)) {
print theme('update_page', array('content' => $output, 'show_messages' => $show_messages)); print theme('update_page', array('content' => $output, 'show_messages' => $show_messages));
} }
#
# robots.txt
#
# This file is to prevent the crawling and indexing of certain parts
# of your site by web crawlers and spiders run by sites like Yahoo!
# and Google. By telling these "robots" where not to go on your site,
# you save bandwidth and server resources.
#
# This file will be ignored unless it is at the root of your host:
# Used: http://example.com/robots.txt
# Ignored: http://example.com/site/robots.txt
#
# For more information about the robots.txt standard, see:
# http://www.robotstxt.org/wc/robots.html
#
# For syntax checking, see:
# http://www.sxw.org.uk/computing/robots/check.html
User-agent: *
Crawl-delay: 10
# Directories
Disallow: /includes/
Disallow: /misc/
Disallow: /modules/
Disallow: /profiles/
Disallow: /scripts/
Disallow: /themes/
# Files
Disallow: /CHANGELOG.txt
Disallow: /cron.php
Disallow: /INSTALL.mysql.txt
Disallow: /INSTALL.pgsql.txt
Disallow: /INSTALL.sqlite.txt
Disallow: /install.php
Disallow: /INSTALL.txt
Disallow: /LICENSE.txt
Disallow: /MAINTAINERS.txt
Disallow: /update.php
Disallow: /UPGRADE.txt
Disallow: /xmlrpc.php
# Paths (clean URLs)
Disallow: /admin/
Disallow: /comment/reply/
Disallow: /filter/tips/
Disallow: /node/add/
Disallow: /search/
Disallow: /user/register/
Disallow: /user/password/
Disallow: /user/login/
Disallow: /user/logout/
# Paths (no clean URLs)
Disallow: /?q=admin/
Disallow: /?q=comment/reply/
Disallow: /?q=filter/tips/
Disallow: /?q=node/add/
Disallow: /?q=search/
Disallow: /?q=user/password/
Disallow: /?q=user/register/
Disallow: /?q=user/login/
Disallow: /?q=user/logout/
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
* - $a1, $a2: Optional additional information, which can be passed into * - $a1, $a2: Optional additional information, which can be passed into
* actions_do() and will be passed along to the action function. * actions_do() and will be passed along to the action function.
* *
* @} End of "defgroup actions". * @}
*/ */
/** /**
...@@ -48,6 +48,7 @@ ...@@ -48,6 +48,7 @@
* Passed along to the callback. * Passed along to the callback.
* @param $a2 * @param $a2
* Passed along to the callback. * Passed along to the callback.
*
* @return * @return
* An associative array containing the results of the functions that * An associative array containing the results of the functions that
* perform the actions, keyed on action ID. * perform the actions, keyed on action ID.
...@@ -149,6 +150,7 @@ function actions_do($action_ids, $object = NULL, $context = NULL, $a1 = NULL, $a ...@@ -149,6 +150,7 @@ function actions_do($action_ids, $object = NULL, $context = NULL, $a1 = NULL, $a
* *
* @param $reset * @param $reset
* Reset the action info static cache. * Reset the action info static cache.
*
* @return * @return
* An associative array keyed on action function name, with the same format * An associative array keyed on action function name, with the same format
* as the return value of hook_action_info(), containing all * as the return value of hook_action_info(), containing all
...@@ -176,9 +178,9 @@ function actions_list($reset = FALSE) { ...@@ -176,9 +178,9 @@ function actions_list($reset = FALSE) {
* function and the actions returned by actions_list() are partially * function and the actions returned by actions_list() are partially
* synchronized. Non-configurable actions from hook_action_info() * synchronized. Non-configurable actions from hook_action_info()
* implementations are put into the database when actions_synchronize() is * implementations are put into the database when actions_synchronize() is
* called, which happens when admin/config/system/actions is visited. Configurable * called, which happens when admin/config/system/actions is visited.
* actions are not added to the database until they are configured in the * Configurable actions are not added to the database until they are configured
* user interface, in which case a database row is created for each * in the user interface, in which case a database row is created for each
* configuration of each action. * configuration of each action.
* *
* @return * @return
...@@ -205,6 +207,7 @@ function actions_get_all_actions() { ...@@ -205,6 +207,7 @@ function actions_get_all_actions() {
* An associative array with function names or action IDs as keys * An associative array with function names or action IDs as keys
* and associative arrays with keys 'label', 'type', etc. as values. * and associative arrays with keys 'label', 'type', etc. as values.
* This is usually the output of actions_list() or actions_get_all_actions(). * This is usually the output of actions_list() or actions_get_all_actions().
*
* @return * @return
* An associative array whose keys are hashes of the input array keys, and * An associative array whose keys are hashes of the input array keys, and
* whose corresponding values are associative arrays with components * whose corresponding values are associative arrays with components
...@@ -223,7 +226,7 @@ function actions_actions_map($actions) { ...@@ -223,7 +226,7 @@ function actions_actions_map($actions) {
} }
/** /**
* Given a hash of an action array key, returns the key (function or ID). * Returns an action array key (function or ID), given its hash.
* *
* Faster than actions_actions_map() when you only need the function name or ID. * Faster than actions_actions_map() when you only need the function name or ID.
* *
...@@ -231,6 +234,7 @@ function actions_actions_map($actions) { ...@@ -231,6 +234,7 @@ function actions_actions_map($actions) {
* Hash of a function name or action ID array key. The array key * Hash of a function name or action ID array key. The array key
* is a key into the return value of actions_list() (array key is the action * is a key into the return value of actions_list() (array key is the action
* function name) or actions_get_all_actions() (array key is the action ID). * function name) or actions_get_all_actions() (array key is the action ID).
*
* @return * @return
* The corresponding array key, or FALSE if no match is found. * The corresponding array key, or FALSE if no match is found.
*/ */
...@@ -311,7 +315,7 @@ function actions_synchronize($delete_orphans = FALSE) { ...@@ -311,7 +315,7 @@ function actions_synchronize($delete_orphans = FALSE) {
$link = l(t('Remove orphaned actions'), 'admin/config/system/actions/orphan'); $link = l(t('Remove orphaned actions'), 'admin/config/system/actions/orphan');
$count = count($actions_in_db); $count = count($actions_in_db);
$orphans = implode(', ', $orphaned); $orphans = implode(', ', $orphaned);
watchdog('actions', '@count orphaned actions (%orphans) exist in the actions table. !link', array('@count' => $count, '%orphans' => $orphans, '!link' => $link), WATCHDOG_WARNING); watchdog('actions', '@count orphaned actions (%orphans) exist in the actions table. !link', array('@count' => $count, '%orphans' => $orphans, '!link' => $link), WATCHDOG_INFO);
} }
} }
} }
...@@ -332,6 +336,7 @@ function actions_synchronize($delete_orphans = FALSE) { ...@@ -332,6 +336,7 @@ function actions_synchronize($delete_orphans = FALSE) {
* to Jim'. * to Jim'.
* @param $aid * @param $aid
* The ID of this action. If omitted, a new action is created. * The ID of this action. If omitted, a new action is created.
*
* @return * @return
* The ID of the action. * The ID of the action.
*/ */
...@@ -361,6 +366,7 @@ function actions_save($function, $type, $params, $label, $aid = NULL) { ...@@ -361,6 +366,7 @@ function actions_save($function, $type, $params, $label, $aid = NULL) {
* *
* @param $aid * @param $aid
* The ID of the action to retrieve. * The ID of the action to retrieve.
*
* @return * @return
* The appropriate action row from the database as an object. * The appropriate action row from the database as an object.
*/ */
...@@ -380,4 +386,3 @@ function actions_delete($aid) { ...@@ -380,4 +386,3 @@ function actions_delete($aid) {
->execute(); ->execute();
module_invoke_all('actions_delete', $aid); module_invoke_all('actions_delete', $aid);
} }
...@@ -24,7 +24,8 @@ ...@@ -24,7 +24,8 @@
* ajax_form_callback() and a defined #ajax['callback'] function. * ajax_form_callback() and a defined #ajax['callback'] function.
* However, you may optionally specify a different path to request or a * However, you may optionally specify a different path to request or a
* different callback function to invoke, which can return updated HTML or can * different callback function to invoke, which can return updated HTML or can
* also return a richer set of @link ajax_commands Ajax framework commands @endlink. * also return a richer set of
* @link ajax_commands Ajax framework commands @endlink.
* *
* Standard form handling is as follows: * Standard form handling is as follows:
* - A form element has a #ajax property that includes #ajax['callback'] and * - A form element has a #ajax property that includes #ajax['callback'] and
...@@ -101,7 +102,7 @@ ...@@ -101,7 +102,7 @@
* In the above example, the 'changethis' element is Ajax-enabled. The default * In the above example, the 'changethis' element is Ajax-enabled. The default
* #ajax['event'] is 'change', so when the 'changethis' element changes, * #ajax['event'] is 'change', so when the 'changethis' element changes,
* an Ajax call is made. The form is submitted and reprocessed, and then the * an Ajax call is made. The form is submitted and reprocessed, and then the
* callback is called. In this case, the form has been automatically * callback is called. In this case, the form has been automatically
* built changing $form['replace_textfield']['#description'], so the callback * built changing $form['replace_textfield']['#description'], so the callback
* just returns that part of the form. * just returns that part of the form.
* *
...@@ -167,7 +168,7 @@ ...@@ -167,7 +168,7 @@
* displayed while awaiting a response from the callback, and add an optional * displayed while awaiting a response from the callback, and add an optional
* message. Possible keys: 'type', 'message', 'url', 'interval'. * message. Possible keys: 'type', 'message', 'url', 'interval'.
* More information is available in the * More information is available in the
* @link http://api.drupal.org/api/drupal/developer--topics--forms_api_reference.html/7 Form API Reference @endlink * @link forms_api_reference.html Form API Reference @endlink
* *
* In addition to using Form API for doing in-form modification, Ajax may be * In addition to using Form API for doing in-form modification, Ajax may be
* enabled by adding classes to buttons and links. By adding the 'use-ajax' * enabled by adding classes to buttons and links. By adding the 'use-ajax'
...@@ -188,11 +189,11 @@ ...@@ -188,11 +189,11 @@
* be converted to a JSON object and returned to the client, which will then * be converted to a JSON object and returned to the client, which will then
* iterate over the array and process it like a macro language. * iterate over the array and process it like a macro language.
* *
* Each command item is an associative array which will be converted to a command * Each command item is an associative array which will be converted to a
* object on the JavaScript side. $command_item['command'] is the type of * command object on the JavaScript side. $command_item['command'] is the type
* command, e.g. 'alert' or 'replace', and will correspond to a method in the * of command, e.g. 'alert' or 'replace', and will correspond to a method in the
* Drupal.ajax[command] space. The command array may contain any other data * Drupal.ajax[command] space. The command array may contain any other data that
* that the command needs to process, e.g. 'method', 'selector', 'settings', etc. * the command needs to process, e.g. 'method', 'selector', 'settings', etc.
* *
* Commands are usually created with a couple of helper functions, so they * Commands are usually created with a couple of helper functions, so they
* look like this: * look like this:
...@@ -222,7 +223,7 @@ ...@@ -222,7 +223,7 @@
*/ */
/** /**
* Render a commands array into JSON. * Renders a commands array into JSON.
* *
* @param $commands * @param $commands
* A list of macro commands generated by the use of ajax_command_*() * A list of macro commands generated by the use of ajax_command_*()
...@@ -250,8 +251,8 @@ function ajax_render($commands = array()) { ...@@ -250,8 +251,8 @@ function ajax_render($commands = array()) {
// reliably diffed with array_diff_key(), since the number can change // reliably diffed with array_diff_key(), since the number can change
// due to factors unrelated to the inline content, so for now, we strip // due to factors unrelated to the inline content, so for now, we strip
// the inline items from Ajax responses, and can add support for them // the inline items from Ajax responses, and can add support for them
// when drupal_add_css() and drupal_add_js() are changed to using md5() // when drupal_add_css() and drupal_add_js() are changed to use a hash
// or some other hash of the inline content. // of the inline content as the array key.
foreach ($items[$type] as $key => $item) { foreach ($items[$type] as $key => $item) {
if (is_numeric($key)) { if (is_numeric($key)) {
unset($items[$type][$key]); unset($items[$type][$key]);
...@@ -262,19 +263,13 @@ function ajax_render($commands = array()) { ...@@ -262,19 +263,13 @@ function ajax_render($commands = array()) {
} }
} }
// Settings are handled separately, later in this function, so that changes to // Render the HTML to load these files, and add AJAX commands to insert this
// the ajaxPageState setting that occur during drupal_get_css() and // HTML in the page. We pass TRUE as the $skip_alter argument to prevent the
// drupal_get_js() get included, and because the jQuery.extend() code produced // data from being altered again, as we already altered it above. Settings are
// by drupal_get_js() for adding settings isn't appropriate during an Ajax // handled separately, afterwards.
// response, because it does not pass TRUE for the "deep" parameter, and
// therefore, can clobber existing settings on the page.
if (isset($items['js']['settings'])) { if (isset($items['js']['settings'])) {
unset($items['js']['settings']); unset($items['js']['settings']);
} }
// Render the HTML to load these files, and add Ajax commands to insert this
// HTML in the page. We pass TRUE as the $skip_alter argument to prevent the
// data from being altered again, as we already altered it above.
$styles = drupal_get_css($items['css'], TRUE); $styles = drupal_get_css($items['css'], TRUE);
$scripts_footer = drupal_get_js('footer', $items['js'], TRUE); $scripts_footer = drupal_get_js('footer', $items['js'], TRUE);
$scripts_header = drupal_get_js('header', $items['js'], TRUE); $scripts_header = drupal_get_js('header', $items['js'], TRUE);
...@@ -293,11 +288,10 @@ function ajax_render($commands = array()) { ...@@ -293,11 +288,10 @@ function ajax_render($commands = array()) {
$commands = array_merge($extra_commands, $commands); $commands = array_merge($extra_commands, $commands);
} }
// Now add a command to merge changes and additions to Drupal.settings.
$scripts = drupal_add_js(); $scripts = drupal_add_js();
if (!empty($scripts['settings'])) { if (!empty($scripts['settings'])) {
$settings = $scripts['settings']; $settings = $scripts['settings'];
// Automatically extract any settings added via drupal_add_js() and make
// them the first command.
array_unshift($commands, ajax_command_settings(call_user_func_array('array_merge_recursive', $settings['data']), TRUE)); array_unshift($commands, ajax_command_settings(call_user_func_array('array_merge_recursive', $settings['data']), TRUE));
} }
...@@ -308,7 +302,7 @@ function ajax_render($commands = array()) { ...@@ -308,7 +302,7 @@ function ajax_render($commands = array()) {
} }
/** /**
* Get a form submitted via #ajax during an Ajax callback. * Gets a form submitted via #ajax during an Ajax callback.
* *
* This will load a form from the form cache used during Ajax operations. It * This will load a form from the form cache used during Ajax operations. It
* pulls the form info from $_POST. * pulls the form info from $_POST.
...@@ -368,6 +362,8 @@ function ajax_get_form() { ...@@ -368,6 +362,8 @@ function ajax_get_form() {
* #ajax['path']. If processing is required that cannot be accomplished with * #ajax['path']. If processing is required that cannot be accomplished with
* a callback, re-implement this function and set #ajax['path'] to the * a callback, re-implement this function and set #ajax['path'] to the
* enhanced function. * enhanced function.
*
* @see system_menu()
*/ */
function ajax_form_callback() { function ajax_form_callback() {
list($form, $form_state) = ajax_get_form(); list($form, $form_state) = ajax_get_form();
...@@ -403,6 +399,9 @@ function ajax_form_callback() { ...@@ -403,6 +399,9 @@ function ajax_form_callback() {
* of the page. Therefore, system_menu() sets the 'theme callback' for * of the page. Therefore, system_menu() sets the 'theme callback' for
* 'system/ajax' to this function, and it is recommended that modules * 'system/ajax' to this function, and it is recommended that modules
* implementing other generic Ajax paths do the same. * implementing other generic Ajax paths do the same.
*
* @see system_menu()
* @see file_menu()
*/ */
function ajax_base_page_theme() { function ajax_base_page_theme() {
if (!empty($_POST['ajax_page_state']['theme']) && !empty($_POST['ajax_page_state']['theme_token'])) { if (!empty($_POST['ajax_page_state']['theme']) && !empty($_POST['ajax_page_state']['theme_token'])) {
...@@ -421,7 +420,7 @@ function ajax_base_page_theme() { ...@@ -421,7 +420,7 @@ function ajax_base_page_theme() {
} }
/** /**
* Package and send the result of a page callback to the browser as an Ajax response. * Packages and sends the result of a page callback as an Ajax response.
* *
* This function is the equivalent of drupal_deliver_html_page(), but for Ajax * This function is the equivalent of drupal_deliver_html_page(), but for Ajax
* requests. Like that function, it: * requests. Like that function, it:
...@@ -554,7 +553,7 @@ function ajax_prepare_response($page_callback_result) { ...@@ -554,7 +553,7 @@ function ajax_prepare_response($page_callback_result) {
} }
/** /**
* Perform end-of-Ajax-request tasks. * Performs end-of-Ajax-request tasks.
* *
* This function is the equivalent of drupal_page_footer(), but for Ajax * This function is the equivalent of drupal_page_footer(), but for Ajax
* requests. * requests.
...@@ -577,7 +576,7 @@ function ajax_footer() { ...@@ -577,7 +576,7 @@ function ajax_footer() {
} }
/** /**
* Form element process callback to handle #ajax. * Form element processing handler for the #ajax form property.
* *
* @param $element * @param $element
* An associative array containing the properties of the element. * An associative array containing the properties of the element.
...@@ -596,7 +595,7 @@ function ajax_process_form($element, &$form_state) { ...@@ -596,7 +595,7 @@ function ajax_process_form($element, &$form_state) {
} }
/** /**
* Add Ajax information about an element to the page to communicate with JavaScript. * Adds Ajax information about an element to communicate with JavaScript.
* *
* If #ajax['path'] is set on an element, this additional JavaScript is added * If #ajax['path'] is set on an element, this additional JavaScript is added
* to the page header to attach the Ajax behaviors. See ajax.js for more * to the page header to attach the Ajax behaviors. See ajax.js for more
...@@ -837,7 +836,8 @@ function ajax_command_insert($selector, $html, $settings = NULL) { ...@@ -837,7 +836,8 @@ function ajax_command_insert($selector, $html, $settings = NULL) {
* @return * @return
* An array suitable for use with the ajax_render() function. * An array suitable for use with the ajax_render() function.
* *
* See @link http://docs.jquery.com/Manipulation/replaceWith#content jQuery replaceWith command @endlink * See
* @link http://docs.jquery.com/Manipulation/replaceWith#content jQuery replaceWith command @endlink
*/ */
function ajax_command_replace($selector, $html, $settings = NULL) { function ajax_command_replace($selector, $html, $settings = NULL) {
return array( return array(
...@@ -1210,4 +1210,3 @@ function ajax_command_restripe($selector) { ...@@ -1210,4 +1210,3 @@ function ajax_command_restripe($selector) {
'selector' => $selector, 'selector' => $selector,
); );
} }
...@@ -6,61 +6,63 @@ ...@@ -6,61 +6,63 @@
*/ */
/** /**
* Common interface for all Archiver classes. * Defines the common interface for all Archiver classes.
*/ */
interface ArchiverInterface { interface ArchiverInterface {
/** /**
* Constructor for a new archiver instance. * Constructs a new archiver instance.
* *
* @param $file_path * @param $file_path
* The full system path of the archive to manipulate. Only local files * The full system path of the archive to manipulate. Only local files
* are supported. If the file does not yet exist, it will be created if * are supported. If the file does not yet exist, it will be created if
* appropriate. * appropriate.
*/ */
public function __construct($file_path); public function __construct($file_path);
/** /**
* Add the specified file or directory to the archive. * Adds the specified file or directory to the archive.
* *
* @param $file_path * @param $file_path
* The full system path of the file or directory to add. Only local files * The full system path of the file or directory to add. Only local files
* and directories are supported. * and directories are supported.
*
* @return ArchiverInterface * @return ArchiverInterface
* The called object. * The called object.
*/ */
public function add($file_path); public function add($file_path);
/** /**
* Remove the specified file from the archive. * Removes the specified file from the archive.
* *
* @param $path * @param $path
* The file name relative to the root of the archive to remove. * The file name relative to the root of the archive to remove.
*
* @return ArchiverInterface * @return ArchiverInterface
* The called object. * The called object.
*/ */
public function remove($path); public function remove($path);
/** /**
* Extract multiple files in the archive to the specified path. * Extracts multiple files in the archive to the specified path.
* *
* @param $path * @param $path
* A full system path of the directory to which to extract files. * A full system path of the directory to which to extract files.
* @param $files * @param $files
* Optionally specify a list of files to be extracted. Files are * Optionally specify a list of files to be extracted. Files are
* relative to the root of the archive. If not specified, all files * relative to the root of the archive. If not specified, all files
* in the archive will be extracted * in the archive will be extracted.
*
* @return ArchiverInterface * @return ArchiverInterface
* The called object. * The called object.
*/ */
public function extract($path, Array $files = array()); public function extract($path, array $files = array());
/** /**
* List all files in the archive. * Lists all files in the archive.
* *
* @return * @return
* An array of file names relative to the root of the archive. * An array of file names relative to the root of the archive.
*/ */
public function listContents(); public function listContents();
} }
...@@ -6,13 +6,19 @@ ...@@ -6,13 +6,19 @@
*/ */
/** /**
* Build the form for choosing a FileTransfer type and supplying credentials. * Form constructor for the file transfer authorization form.
*
* Allows the user to choose a FileTransfer type and supply credentials.
*
* @see authorize_filetransfer_form_validate()
* @see authorize_filetransfer_form_submit()
* @ingroup forms
*/ */
function authorize_filetransfer_form($form, &$form_state) { function authorize_filetransfer_form($form, &$form_state) {
global $base_url, $is_https; global $base_url, $is_https;
$form = array(); $form = array();
// If possible, we want to post this form securely via https. // If possible, we want to post this form securely via HTTPS.
$form['#https'] = TRUE; $form['#https'] = TRUE;
// CSS we depend on lives in modules/system/maintenance.css, which is loaded // CSS we depend on lives in modules/system/maintenance.css, which is loaded
...@@ -127,10 +133,11 @@ function authorize_filetransfer_form($form, &$form_state) { ...@@ -127,10 +133,11 @@ function authorize_filetransfer_form($form, &$form_state) {
} }
/** /**
* Generate the Form API array for the settings for a given connection backend. * Generates the Form API array for a given connection backend's settings.
* *
* @param $backend * @param $backend
* The name of the backend (e.g. 'ftp', 'ssh', etc). * The name of the backend (e.g. 'ftp', 'ssh', etc).
*
* @return * @return
* Form API array of connection settings for the given backend. * Form API array of connection settings for the given backend.
* *
...@@ -151,7 +158,7 @@ function _authorize_filetransfer_connection_settings($backend) { ...@@ -151,7 +158,7 @@ function _authorize_filetransfer_connection_settings($backend) {
} }
/** /**
* Recursively fill in the default settings on a file transfer connection form. * Sets the default settings on a file transfer connection form recursively.
* *
* The default settings for the file transfer connection forms are saved in * The default settings for the file transfer connection forms are saved in
* the database. The settings are stored as a nested array in the case of a * the database. The settings are stored as a nested array in the case of a
...@@ -165,8 +172,6 @@ function _authorize_filetransfer_connection_settings($backend) { ...@@ -165,8 +172,6 @@ function _authorize_filetransfer_connection_settings($backend) {
* The key for our current form element, if any. * The key for our current form element, if any.
* @param array $defaults * @param array $defaults
* The default settings for the file transfer backend we're operating on. * The default settings for the file transfer backend we're operating on.
* @return
* Nothing, this function just sets $element['#default_value'] if needed.
*/ */
function _authorize_filetransfer_connection_settings_set_defaults(&$element, $key, array $defaults) { function _authorize_filetransfer_connection_settings_set_defaults(&$element, $key, array $defaults) {
// If we're operating on a form element which isn't a fieldset, and we have // If we're operating on a form element which isn't a fieldset, and we have
...@@ -186,9 +191,10 @@ function _authorize_filetransfer_connection_settings_set_defaults(&$element, $ke ...@@ -186,9 +191,10 @@ function _authorize_filetransfer_connection_settings_set_defaults(&$element, $ke
} }
/** /**
* Validate callback for the filetransfer authorization form. * Form validation handler for authorize_filetransfer_form().
* *
* @see authorize_filetransfer_form() * @see authorize_filetransfer_form()
* @see authorize_filetransfer_submit()
*/ */
function authorize_filetransfer_form_validate($form, &$form_state) { function authorize_filetransfer_form_validate($form, &$form_state) {
// Only validate the form if we have collected all of the user input and are // Only validate the form if we have collected all of the user input and are
...@@ -218,9 +224,10 @@ function authorize_filetransfer_form_validate($form, &$form_state) { ...@@ -218,9 +224,10 @@ function authorize_filetransfer_form_validate($form, &$form_state) {
} }
/** /**
* Submit callback when a file transfer is being authorized. * Form submission handler for authorize_filetransfer_form().
* *
* @see authorize_filetransfer_form() * @see authorize_filetransfer_form()
* @see authorize_filetransfer_validate()
*/ */
function authorize_filetransfer_form_submit($form, &$form_state) { function authorize_filetransfer_form_submit($form, &$form_state) {
global $base_url; global $base_url;
...@@ -280,7 +287,7 @@ function authorize_filetransfer_form_submit($form, &$form_state) { ...@@ -280,7 +287,7 @@ function authorize_filetransfer_form_submit($form, &$form_state) {
} }
/** /**
* Run the operation specified in $_SESSION['authorize_operation'] * Runs the operation specified in $_SESSION['authorize_operation'].
* *
* @param $filetransfer * @param $filetransfer
* The FileTransfer object to use for running the operation. * The FileTransfer object to use for running the operation.
...@@ -298,12 +305,13 @@ function authorize_run_operation($filetransfer) { ...@@ -298,12 +305,13 @@ function authorize_run_operation($filetransfer) {
} }
/** /**
* Get a FileTransfer class for a specific transfer method and settings. * Gets a FileTransfer class for a specific transfer method and settings.
* *
* @param $backend * @param $backend
* The FileTransfer backend to get the class for. * The FileTransfer backend to get the class for.
* @param $settings * @param $settings
* Array of settings for the FileTransfer. * Array of settings for the FileTransfer.
*
* @return * @return
* An instantiated FileTransfer object for the requested method and settings, * An instantiated FileTransfer object for the requested method and settings,
* or FALSE if there was an error finding or instantiating it. * or FALSE if there was an error finding or instantiating it.
......