Drupal

From Infogalactic: the planetary knowledge core
Jump to: navigation, search
Drupal
Drupal logo
<templatestyles src="Template:Hidden begin/styles.css"/>
Screenshot
Drupal 8 quickedit.png
Drupal 8 in action. Showing in-context editing and previews (WYSIWYG).
Original author(s) Dries Buytaert
Initial release January 2001 (2001-01)
Stable release 8.0.2 [1] / 6 January 2016; 8 years ago (2016-01-06)
Development status Active
Written in PHP
Operating system Cross-platform
Size 64.9 MB (uncompressed Drupal 8 core) [1]
Available in Multilingual
Type Content management framework, Content management system, Community and Blog software
License GPLv2 or later[2]
Website drupal.org

Drupal /ˈdrpəl/[3] is a free and open-source content-management framework written in PHP and distributed under the GNU General Public License.[2][4][5] It is used as a back-end framework for at least 2.1% of all Web sites worldwide[6][7] ranging from personal blogs to corporate, political, and government sites.[8] It is also used for knowledge management and business collaboration.[9]

The standard release of Drupal, known as Drupal core, contains basic features common to content management systems. These include user account registration and maintenance, menu management, RSS feeds, taxonomy, page layout customization, and system administration. The Drupal core installation can serve as a simple Web site, a single- or multi-user blog, an Internet forum, or a community Web site providing for user-generated content.

As of April 2015, the Drupal community has provided more than 31,000 contributed modules.[10] Such modules alter and extend the core capabilities, behavior, and appearance of a Drupal site. The Drupal community comprises more than one million members[11] (as of October 2013) and 31,000 Developers[12] (as of February 2014). "The Drupal Overview", a feature of the project web site, describes it as a content management framework.[4] Drupal also describes itself [13] as a Web application framework, as it meets the generally accepted[by whom?] feature requirements for such frameworks.[citation needed]

Although Drupal offers a sophisticated application programming interface for developers, basic Web site installation and administration of the framework require no programming skills.[14]

Drupal runs on any computing platform that supports both a Web server capable of running PHP and a database to store content and configuration.

History

Latest Major Releases
Version Release Date
8.0.2 January 06, 2016 [1]
7.41 October 21, 2015 [15]
6.37 August 19, 2015 [16]
5.23 August 11, 2010 [17]
Drupal version 1-6 release history timeline

Originally written by Dries Buytaert as a message board, Drupal became an open source project in 2001.[18] The name Drupal represents an English rendering of the Dutch word "druppel", which means "drop" (as in "a water droplet").[19] The name came from the now-defunct Drop.org Web site, whose code slowly evolved into Drupal. Buytaert wanted to call the site "dorp" (Dutch for "village") for its community aspects, but mistyped it when checking the domain name and thought the error sounded better.[18]

Interest in Drupal got a significant boost in 2003 when it helped build "DeanSpace" for Howard Dean, one of the candidates in the U.S. Democratic Party's primary campaign for the 2004 U.S. presidential election. DeanSpace used open-source sharing of Drupal to support a decentralized network of approximately 50 disparate, unofficial pro-Dean websites that allowed users to communicate directly with one another as well as with the campaign.[20] After Dean ended his campaign, members of his Web team continued to pursue their interest in developing a Web platform that could aid political activism by launching CivicSpace Labs in July 2004, "the first company with full-time employees that was developing and distributing Drupal technology".[21] Other companies began to also specialize in Drupal development.[22][23] By 2013 the Drupal Web site listed hundreds of vendors that offered Drupal-related services.[24]

As of 2014 Drupal is developed by a community,[25] and its popularity is growing rapidly.[citation needed] From July 2007 to June 2008 the Drupal.org site provided more than 1.4 million downloads of Drupal software, an increase of approximately 125% from the previous year.[26][27]

As of February 2014 more than 1,015,000 sites used Drupal.[28] These include hundreds of well-known organizations,[29] including corporations, media and publishing companies, governments, non-profits,[30] schools, and individuals. Drupal has won several Packt Open Source CMS Awards[31] and won the Webware 100 three times in a row.[32][33]

On March 5, 2009 Buytaert announced a code freeze for Drupal 7 for September 1, 2009.[34] Drupal 7 was released on January 5, 2011, with release parties in several countries.[35] After that, maintenance on Drupal 5 stopped, with only Drupal 7 and Drupal 6 maintained.[36] Drupal 7 series maintenance updates are released regularly.[37]

On January 15, 2015 a Drupal fork called Backdrop was released.[38]

On December 1, 2012, Drupal 8 started its feature completion.[39] About three years later, on October 7, 2015 Drupal 8 first release candidate (rc1) was announced.[40] Drupal 8 includes new features and improvements for both users and developers, including: a revamped user interface; WYSIWYG and in-place editing; improved mobile support; added and improved key contributed modules including Views, Date, and Entity Reference; introduced a new object-oriented backend leveraging Symfony components; revamped configuration management; and improved multilingual support. Drupal 8 rc1 is the collective work of over 3,200 core contributors.[41]

Drupal 8.0.0 was released on November 19, 2015.[42]

Core

In the Drupal community, the term "core" refers to the collaboratively built codebase that can be extended through contributory modules and for versions prior to Drupal 8 is kept outside of the "sites" folder of a Drupal installation.[43] (Starting with version 8, core is kept in its own 'core' sub-directory.) Drupal core is the stock element of Drupal. Bootstrap and Common libraries are defined as Drupal core and all other functionalites are defined as Drupal modules including the system module itself.

In a Drupal website's default configuration, content can be contributed by either registered or anonymous users (at the discretion of the administrator) and is made accessible to web visitors by a variety of selectable criteria. As of Drupal 8, Drupal has adopted some Symfony libraries into Drupal core.

Core modules also includes a hierarchical taxonomy system, which allows content to be categorized or tagged with key words for easier access.[14]

Drupal maintains a detailed changelog of core feature updates by version.[44]

Core modules

Drupal core includes optional modules that can be enabled by the administrator to extend the functionality of the core website.[45]

The core Drupal distribution provides a number of features, including:[45]

<templatestyles src="Div col/styles.css"/>

3

Core themes

Drupal includes core themes, which customize the "look and feel" of Drupal sites,[47] for example, Garland and Bartik.

The Color Module, introduced in Drupal core 5.0, allows administrators to change the color scheme of certain themes via a browser interface.[48]

Localization

As of August 2013, Drupal had been made available in 110 languages and English (the default).[49] Support is included for right-to-left languages such as Arabic, Persian, and Hebrew.[50]

Drupal localization is built on top of gettext, the GNU internationalization and localization (i18n) library.

Auto-update notification

Drupal can automatically notify the administrator about new versions of modules, themes, or the Drupal core.[50] It's important to update quickly after security updates are released. On October 15, 2014, a sql injection vulnerability was announced and update released.[51] Two weeks later the Drupal security team released an advisory explaining that everyone should act under the assumption that any site not updated within 7 hours of the announcement are infected.[52] Thus, it can be extremely important to apply these updates quickly and usage of a tool to make this process easier like drush is highly recommended.

Database abstraction

Prior to version 7, Drupal had functions that performed tasks related to databases, such as SQL query cleansing, multi-site table name prefixing, and generating proper SQL queries. In particular, Drupal 6 introduced an abstraction layer that allowed programmers to create SQL queries without writing SQL.

Drupal 7 extends the data abstraction layer so that a programmer no longer needs to write SQL queries as text strings. It uses PHP Data Objects to abstract the database. Microsoft has written a database driver for their SQL Server.[53] Drupal 7 supports the file-based SQLite database engine, which is part of the standard PHP distribution.

Embracing Windows developers

With Drupal 7's new database abstraction layer and ability to run on the Windows web server IIS, it is now easier for Windows developers to participate in the Drupal community. A group on Drupal.org is dedicated to Windows issues.[54]

Accessibility

With the release of Drupal 7, Web accessibility has been greatly improved by the Drupal community.[55] Drupal is a good framework for building sites accessible to people with disabilities, because many of the best practices have been incorporated into the program code Core. The accessibility team is carrying on the work of identifying and resolving accessibility barriers and raising awareness within the community. Drupal 7 started the adoption of WAI-ARIA support for Rich Internet Applications and this has been carried further in Drupal 8. There have been many improvements to both the visitor and administrator sides of Drupal, especially:

  • Drag and drop functionality
  • Improved color contrast and intensity
  • Adding skip navigation to Core themes
  • Adding labels by default for input forms
  • Fixing CSS display:none with consistent methods for hiding and exposing text onfocus.

The community also added an accessibility gate for Core issues in Drupal 8.[56]

Extending the core

Drupal core is modular, defining a system of hooks and callbacks, which are accessed internally via an API.[57] This design allows third-party contributed modules and themes to extend or override Drupal's default behaviors without changing Drupal core's code.

Drupal isolates core files from contributed modules and themes. This increases flexibility and security and allows administrators to cleanly upgrade to new releases without overwriting their site's customizations.[58] The Drupal community has the saying "Never hack core", a strong recommendation that site developers do not change core files.[43]

Modules

Contributed modules offer such additional or alternate features as image galleries, custom content types and content listings, WYSIWYG editors, private messaging, third-party integration tools,[59] and more. As of September 2015 the Drupal website lists more than 31,800 free modules.[10]

Some of the most commonly used contributed modules include:[60]

  • Content Construction Kit (CCK): allows site administrators to dynamically create content types by extending the database schema. "Content type" describes the kind of information. Content types include, but are not limited to, events, invitations, reviews, articles, and products. The CCK Fields API is in Drupal core in Drupal 7.[61][62]
  • Views: facilitates the retrieval and presentation, through a database abstraction system, of content to site visitors. Basic views functionality has been added to core in Drupal 8.[63]
  • Panels: drag and drop layout manager that allows site administrators to visually design their site.
  • Rules: conditionally executed actions based on recurring events.
  • Features: enables the capture and management of features (entities, views, fields, configuration, etc.) into custom modules.
  • Context: allows definition of sections of site where Drupal features can be conditionally activated
  • Media: makes photo uploading and media management easier
  • Services: provides an API for Drupal.

Themes

As of February 2015, there are more than 2,000[10] free community-contributed themes. Themes adapt or replace a Drupal site's default look and feel.

Drupal themes use standardized formats that may be generated by common third-party theme design engines. Many are written in the PHPTemplate engine[64] or, to a lesser extent, the XTemplate engine.[65] Some templates use hard-coded PHP. Drupal 8 will integrate the Twig templating engine.

The inclusion of the PHPTemplate and XTemplate engines in Drupal addressed user concerns about flexibility and complexity.[66] The Drupal theming system utilizes a template engine to further separate HTML/CSS from PHP. A popular Drupal contributed module called 'Devel' provides GUI information to developers and themers about the page build.

Community-contributed themes[67] at the Drupal website are released under a free GPL license,[68] and most of them are demonstrated at the Drupal Theme Garden.[69]

Distributions

In the past, those wanting a fully customized installation of Drupal had to download a pre-tailored version separately from the official Drupal core. Today, however, a distribution defines a packaged version of Drupal that upon installation, provides a website or application built for a specific purpose.

The distributions offer the benefit of a new Drupal site without having to manually seek out and install third-party contributed modules or adjust configuration settings.[70] They are collections of modules, themes, and associated configuration settings that prepare Drupal for custom operation. For example, a distribution could configure Drupal as a "brochureware" site rather than a "news" site or an "online store".

Architecture

Drupal is based on the Presentation Abstraction Control architecture, or PAC. The menu system acts as the Controller. It accepts input via a single source (HTTP GET and POST), routes requests to the appropriate helper functions, pulls data out of the Abstraction (nodes and, from Drupal 5 onwards, forms), and then pushes it through a filter to get a Presentation of it (the theme system). It even has multiple, parallel PAC agents in the form of blocks that push data out to a common canvas (page.tpl.php).[71]

Community

Drupal.org has a large community of users and developers, as of March 2015, over 1,167,000 user accounts[10] and over 37,000 developer accounts.[10] The semiannual DrupalCon conference alternates between North America, Europe and Asia.[72] Attendance at DrupalCon grew from 500 at Szeged in August 2008, to over 3,700 people at Austin, Texas in June, 2014.

Smaller events, known as "Drupal Camps" or DrupalCamp,[73] occur throughout the year all over the world. The annual Florida DrupalCamp brings users together for Coding for a Cause that benefits a local nonprofit organization, as does the annual GLADCamp (Greater Los Angeles Drupal Camp) event, Coders with a Cause.

The Drupal community also organizes professional and semi-professional gatherings called meetups at a large number of venues around the world. In July, 2013, Droplabs, a coworking space in Los Angeles, California, was recognized as the world's "Top Drupal Location[74]" (with 62 recorded events) when compared with other event venues over a 12-month period.

There are a number of active Drupal forums,[75] mailing lists[76] and discussion groups.[77] Drupal also maintains several IRC channels[78] on the Freenode network.

There are over 30 national communities[79] around drupal.org offering language-specific support.

Security

Drupal's policy is to announce the nature of each security vulnerability once the fix is released.[80][81]

Administrators of Drupal sites are automatically notified of these new releases via the Update Status module (Drupal 6) or via the Update Manager (Drupal 7).[82] Drupal maintains a security announcement mailing list, a history of all security advisories,[83] a security team home page,[84] and an RSS feed[85] with the most recent security advisories. In 2008, eleven security vulnerabilities were reported and fixed in the Drupal core.[83] Security holes were also found and fixed in 64 of the 2243 user-contributed modules.[83][86]

In 2014, Drupal issued a “highly critical” security advisory regarding an SQL injection bug in Drupal 7.[87] Downloading and installing an upgrade to Drupal 7.32 fixes the vulnerability, but does not remove any backdoor installed by hackers if the site has already been compromised.[88] Attacks began soon after the vulnerability was announced. According to the Drupal security team, where a site was not patched within hours of the announcement, it should be considered compromised and taken offline by being replaced with a static HTML page while the administrator of its server must be told that other sites on the same server may also have been compromised. To solve the problem, the site must be restored using backups from before October 15, be patched and manually updated, and anything merged from the site must be audited.[89]

Criticism

Lua error in package.lua at line 80: module 'strict' not found. In an article[90] about the adoption of Drupal by the Whitehouse.gov site, Slate associate editor Chris Wilson[91] lists some common criticisms of Drupal. Other criticisms have included:

  • Usability: Aspects of the Drupal 6 administration interface were seen to be confusing and intimidating to some, particularly for new administrators.[92][93][94] According to Dries Buytaert, Drupal 7 addressed 90% of the problems identified by Usability tests conducted at the Universities of Minnesota and Baltimore.[95][96] To achieve this, Acquia (the company founded by the project lead of Drupal) hired user experience designer Mark Boulton to work with the Drupal community to design an improved user interface for Drupal's administration interface.[97] The majority of his team's design work has been implemented by the community in Drupal 7. The 2011 usability test results from the University of Minnesota Office of Information Technology show that all of the major usability problems identified in Drupal 6 are either vastly improved or non-existent in Drupal 7. However, some new usability problems were identified.[98][99] Since the release of Drupal 7 there are now various distributions and applications to enhance the Back-end Usability of Drupal such as Drupal Gardens,[100] Open Enterprise[101] and Mitkom Builder.[102]
  • Learning curve: Some users describe Drupal as being difficult to master.[103][104] Drupal's many contributed modules can have overlapping functionality and have been reported as overwhelming to new users.[105]
  • Backward compatibility (for software development): Drupal does not commit to backward compatibility across major revisions.[106] This means that module and theme developers may have to rework their code to be compatible. However, Drupal's policy is to not change how it uses one's data. This means that data from previous versions will still be usable without alteration in the new release.[107][108] Drupal documents any incompatibilities, allowing the user to make informed decisions about when and whether to upgrade.
  • Performance/scalability: In 2008, performance tests between Drupal 6.1 and Joomla 1.5 demonstrated that Drupal's pages were delivered "significantly faster" than those of Joomla.[109] Despite this, arguments over speed persist.[110] Drupal is likely to be slower than a special-purpose application for a given task. For example, WordPress typically outperforms Drupal as a single-user blogging tool. Drupal positions itself for broader applications requirements that are outside the scope of more narrowly focused applications.[111] Drupal offers caching to store various page elements, the use of which resulted in a 508% improvement in one benchmark.[112] When using Drupal's default Page Cache mechanism, the cached pages are delivered only to anonymous users, so contributed modules must be installed to allow caching content for logged in users.[113][114] Like performance, scalability (the ability to add servers to handle growing numbers of visitors with consistent response) can become a concern on large, interactive sites. MySQL's query caching can help reduce the load on the database server caused by Drupal's high query rate.[115][116] Drupal caches database schema metadata as well as elements such as blocks, forms and menus.[117] Drupal 7 increases performance in database queries and reduces PHP code usage.[118]
  • Integrability with hosting structures: Because of Drupal's demanding query requirements, Drupal-based websites can quickly become very taxing to hosts whose databases reside on a machine separate from their HTTP server. While the issue can normally be addressed by implementing aggressive caching as described above, such methods may be unimplementable in cases where the host does not offer access to PHP accelerators like XCache or APC. Drupal has plugins that facilitate similar caching without requiring special PHP extensions.[119][120]
  • The Drupal core search is ineffective at searching content:[citation needed] There are contributed modules that will greatly improve the search functionality on a Drupal website, but they are not easily accessible due to a high learning curve and the difficulty users have in general of finding the right module.[citation needed] One of the faceted search options is Apache Solr Search Integration module, however, the module requires a dedicated server or virtual private server (VPS) to operate because Solr must run on a servlet container, e.g. Tomcat, Jetty or Resin. These requirements make it harder for a Drupal website to have a functional search feature. In response some companies have created Apache Solr SaaS products.
  • Many published, yet incomplete or outdated modules[121] While Drupal's site boasts over 30,000 downloadable modules, searching the Drupal module directory finds many that are incomplete abandoned projects and do not work at all, only work for an outdated version due to lack of backward compatibility, or are unusable due to serious bugs. This is due to the open source nature of Drupal, and the fact that anyone is free to start a module and publish it on drupal.org. Modules which have an active maintenance team are often highly polished, secure, and nearly bug free.

As of 12/7/2015 there were 32,628 modules posted on drupal.org. 14,606 are "sandbox" modules which are described as "experimental code for developer use only." 18,021 modules are considered "full projects." Of these full projectes, 10,771 (57%) are "Under Active Development," This is the best scenario. 2,690 (15%) are "Maintenance fixes only" where the maintainer is no longer interested in developing new features but has committed to address any security vulnerability which might be discovered. These modules should also be considered safe to use. 1,344 (7%) are marked "No further development," while 1,043 (6%) are considered "obsolete," often because this functionality has been better addressed through another module. 2,173 (12%) full project modules have not had their development status set. The Drupal web site includes a page with instructions for developers on taking over maintenance of unmaintained projects.

  • Difficult to unit test:[122] Drupal 7 doesn't follow MVC framework and stores all of its configurations in database and as a result, unit testing the code without touching the database becomes extremely difficult. As a result, developers have resorted to using integration testing frameworks such as Red Test or behavior driven development framework such as Behat and Codeception. Drupal 8 has taken a great stride in making it easier for developers to write unit testable code.

See also

References

  1. 1.0 1.1 1.2 Drupal 8 release history; drupal.org
  2. 2.0 2.1 Lua error in package.lua at line 80: module 'strict' not found.
  3. A query on Drupal's official website on March 2009: How does one pronounce "Drupal"? (accessed 19 June 2013)
  4. 4.0 4.1 Lua error in package.lua at line 80: module 'strict' not found.
  5. Lua error in package.lua at line 80: module 'strict' not found.
  6. Lua error in package.lua at line 80: module 'strict' not found.
  7. Lua error in package.lua at line 80: module 'strict' not found.
  8. Lua error in package.lua at line 80: module 'strict' not found.
  9. Lua error in package.lua at line 80: module 'strict' not found.
  10. 10.0 10.1 10.2 10.3 10.4 Lua error in package.lua at line 80: module 'strict' not found.
  11. Lua error in package.lua at line 80: module 'strict' not found.
  12. https://drupal.org/node/2133153
  13. Lua error in package.lua at line 80: module 'strict' not found.
  14. 14.0 14.1 Lua error in package.lua at line 80: module 'strict' not found.
  15. Drupal 7 release history; drupal.org
  16. Drupal 6 release history; drupal.org
  17. Drupal 5 release history; drupal.org
  18. 18.0 18.1 Lua error in package.lua at line 80: module 'strict' not found.
  19. Lua error in package.lua at line 80: module 'strict' not found.
  20. Lua error in package.lua at line 80: module 'strict' not found.
  21. Lua error in package.lua at line 80: module 'strict' not found.
  22. Lua error in package.lua at line 80: module 'strict' not found.
  23. Samantha M. Shapiro, "The Dean Connection", The New York Times December 7, 2003, accessed May 27, 2012.
  24. Lua error in package.lua at line 80: module 'strict' not found.
  25. Lua error in package.lua at line 80: module 'strict' not found.
  26. Lua error in package.lua at line 80: module 'strict' not found.
  27. Lua error in package.lua at line 80: module 'strict' not found.
  28. Lua error in package.lua at line 80: module 'strict' not found.
  29. Lua error in package.lua at line 80: module 'strict' not found.
  30. Lua error in package.lua at line 80: module 'strict' not found.
  31. Lua error in package.lua at line 80: module 'strict' not found.
  32. Lua error in package.lua at line 80: module 'strict' not found.
  33. Lua error in package.lua at line 80: module 'strict' not found.
  34. Lua error in package.lua at line 80: module 'strict' not found.
  35. Lua error in package.lua at line 80: module 'strict' not found.
  36. Lua error in package.lua at line 80: module 'strict' not found.
  37. Lua error in package.lua at line 80: module 'strict' not found.
  38. Lua error in package.lua at line 80: module 'strict' not found.
  39. Lua error in package.lua at line 80: module 'strict' not found.
  40. Lua error in package.lua at line 80: module 'strict' not found.
  41. Lua error in package.lua at line 80: module 'strict' not found.
  42. Lua error in package.lua at line 80: module 'strict' not found.
  43. 43.0 43.1 Lua error in package.lua at line 80: module 'strict' not found.
  44. Lua error in package.lua at line 80: module 'strict' not found.
  45. 45.0 45.1 Lua error in package.lua at line 80: module 'strict' not found.
  46. Lua error in package.lua at line 80: module 'strict' not found.
  47. Lua error in package.lua at line 80: module 'strict' not found.
  48. Lua error in package.lua at line 80: module 'strict' not found.
  49. Lua error in package.lua at line 80: module 'strict' not found.
  50. 50.0 50.1 Lua error in package.lua at line 80: module 'strict' not found.
  51. Lua error in package.lua at line 80: module 'strict' not found.
  52. Lua error in package.lua at line 80: module 'strict' not found.
  53. Lua error in package.lua at line 80: module 'strict' not found.
  54. Lua error in package.lua at line 80: module 'strict' not found.
  55. Lua error in package.lua at line 80: module 'strict' not found.
  56. Lua error in package.lua at line 80: module 'strict' not found.
  57. Lua error in package.lua at line 80: module 'strict' not found.
  58. Lua error in package.lua at line 80: module 'strict' not found.
  59. Lua error in package.lua at line 80: module 'strict' not found.
  60. Lua error in package.lua at line 80: module 'strict' not found.
  61. Lua error in package.lua at line 80: module 'strict' not found.
  62. Lua error in package.lua at line 80: module 'strict' not found.
  63. Lua error in package.lua at line 80: module 'strict' not found.
  64. Lua error in package.lua at line 80: module 'strict' not found.
  65. Lua error in package.lua at line 80: module 'strict' not found.
  66. Lua error in package.lua at line 80: module 'strict' not found.
  67. Lua error in package.lua at line 80: module 'strict' not found.
  68. Lua error in package.lua at line 80: module 'strict' not found.
  69. Lua error in package.lua at line 80: module 'strict' not found.
  70. Lua error in package.lua at line 80: module 'strict' not found.
  71. Lua error in package.lua at line 80: module 'strict' not found.
  72. Lua error in package.lua at line 80: module 'strict' not found.
  73. Lua error in package.lua at line 80: module 'strict' not found.
  74. Lua error in package.lua at line 80: module 'strict' not found.
  75. Lua error in package.lua at line 80: module 'strict' not found.
  76. Lua error in package.lua at line 80: module 'strict' not found.
  77. Lua error in package.lua at line 80: module 'strict' not found.
  78. Lua error in package.lua at line 80: module 'strict' not found.
  79. Lua error in package.lua at line 80: module 'strict' not found.
  80. Lua error in package.lua at line 80: module 'strict' not found.
  81. Lua error in package.lua at line 80: module 'strict' not found.
  82. Lua error in package.lua at line 80: module 'strict' not found.
  83. 83.0 83.1 83.2 Lua error in package.lua at line 80: module 'strict' not found.
  84. Lua error in package.lua at line 80: module 'strict' not found.
  85. Lua error in package.lua at line 80: module 'strict' not found.
  86. Lua error in package.lua at line 80: module 'strict' not found.
  87. Lua error in package.lua at line 80: module 'strict' not found.
  88. Lua error in package.lua at line 80: module 'strict' not found.
  89. Brian Robinson, "Attacks on Open Source Call for Better Software Design", GCN, 2014 November 7, [1].
  90. Why running the White House Web site on Drupal is a political disaster waiting to happen.
  91. Message Error, Why running the White House Web site on Drupal is a political disaster waiting to happen Chris Wilson. Slate (magazine) October 27, 2009
  92. Lua error in package.lua at line 80: module 'strict' not found.
  93. Lua error in package.lua at line 80: module 'strict' not found.
  94. Lua error in package.lua at line 80: module 'strict' not found.
  95. Lua error in package.lua at line 80: module 'strict' not found.
  96. Lua error in package.lua at line 80: module 'strict' not found.
  97. Lua error in package.lua at line 80: module 'strict' not found.
  98. Lua error in package.lua at line 80: module 'strict' not found.
  99. Lua error in package.lua at line 80: module 'strict' not found.
  100. Lua error in package.lua at line 80: module 'strict' not found.
  101. Lua error in package.lua at line 80: module 'strict' not found.
  102. Lua error in package.lua at line 80: module 'strict' not found.
  103. Lua error in package.lua at line 80: module 'strict' not found.
  104. Lua error in package.lua at line 80: module 'strict' not found.
  105. Lua error in package.lua at line 80: module 'strict' not found.
  106. Lua error in package.lua at line 80: module 'strict' not found.
  107. Lua error in package.lua at line 80: module 'strict' not found.
  108. Lua error in package.lua at line 80: module 'strict' not found.
  109. Lua error in package.lua at line 80: module 'strict' not found.
  110. Lua error in package.lua at line 80: module 'strict' not found.
  111. Lua error in package.lua at line 80: module 'strict' not found.
  112. Lua error in package.lua at line 80: module 'strict' not found.
  113. Lua error in package.lua at line 80: module 'strict' not found.
  114. Lua error in package.lua at line 80: module 'strict' not found.
  115. Lua error in package.lua at line 80: module 'strict' not found.
  116. Lua error in package.lua at line 80: module 'strict' not found.
  117. Lua error in package.lua at line 80: module 'strict' not found.
  118. Lua error in package.lua at line 80: module 'strict' not found.
  119. Lua error in package.lua at line 80: module 'strict' not found.
  120. Lua error in package.lua at line 80: module 'strict' not found.
  121. Lua error in package.lua at line 80: module 'strict' not found.
  122. Lua error in package.lua at line 80: module 'strict' not found.

Further reading

  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.

External links