WillSquire
6/6/2016 - 2:31 PM

drupal7_development.md

Modules

  • media: Allows media to be selected once uploaded rather than repetatively re-uploaded for each piece of content (like Wordpress). Read https://www.drupal.org/node/1699054 for setup and change widget type. Also does other nifty things, checkout https://www.drupal.org/project/media and http://www.paulrowell.com/my-thoughts/drupal-images-why-they-suck-and-what-you-can-do-about-it for other useful modules
  • media_library: Adds media library for media module.
  • jquery_update: Updates drupal's core jQuery to higher versions (to stop conflicts if a higher version is needed)
  • panels - Think of as an alternative to blocks (also see "panels everywhere" to remove blocks). Place nodes in nodes and build a module site. See to take this further: http://chipcullen.com/an-overview-of-the-drupal-panels-ecosystem/
  • panelizer - Control content types displays like panels by changing field positions and adding other nodes to the display, etc
  • webform: Have a well thought out way to create forms in Drupal backend.
  • webform_uuid: Export webforms across different sites and have them be referencable.
  • postcode: For webforms. Adds postcode field
  • admin_menu: Changes Drupal's backend to use dropdowns over it's normal interface for increased useability
  • path_breadcrumbs: Customise breadcrumbs based on current path
  • ckeditor: CKEditor WYSIWYG field.
  • ckeditor_link: Adds easy internal linking for CKEditor. Rememeber to enable CKEditor Link Filter by configuring text formats at /admin/config/content/formats
  • ckeditor_link_file: Add download links via CKEditor.
  • fences: Cleans up field markup outputted by Drupal and allows backend choice of markup to 'wrap' field data in.
  • ckeditor_image: (WARNING - Doesn't seem to work very well) Adds more options for CKEditor image insert, such as adding a title attribute to images.
  • module_filter: Better interface for modules page (i.e. search capability, etc)
  • features: Saves entities in a file rather than database and can save server settings, etc (for this to work with panelizer, strongarm module is required)
  • strongarm: Allows Drupal to export variables with features module (NOTE: This module is required for features to work with panelizer)
  • views_bulk_operations: Allows bulk operations to be carried out and customised via views in the nodes list screen.
  • node_convert: Convert existing node instances from one node type to another.
  • captcha: Test and validate users entering forms. Note: select "Add CAPTCHA administration links to forms" in 'admin/config/people/captcha' to easily enable on webforms (rather than manually finding & entering webform ID).
  • recaptcha: Add's Google's ReCaptcha test to captcha module.
  • ctools: Includes Views Content Planes for using Views inside Panels.
  • globalredirect: Redirects content with multiple url aliases to one alias to improve SEO.
  • nodequeue: (Note: Should this be replace with entityqueue?) Choose what nodes should be rendered via views and their initial order.
  • mimemail: Used to extend email functionality, such as sending email attachments. Note this nneds to be configured to be used once installed and enabled, go to admin/config/system/mailsystem and select (i.e. change "Site-wide default MailSystemInterface class" to mimemail).
  • xautoload: Adds autoloading support for libraries (good for extremely large libraries)
  • advagg: Aggregates CSS and JS files (concantanates). Enable advagg_css_compress and advagg_js_compress submodules too for compression and minification.
  • field_collection: Groups fields, this means multiple fields can also be repeated together to form a data object (use this when data won't be used seperately, otherwise built a seperate content type and link with node reference). There are problems with theming this at the moment... wrapper code outputted. Revise usage (even though it is nice to use)

  • references_dialog: This modules allows creation of other content types within a different type (speed up workflow) with entity reference module, etc. Doesn't currently work with dropdown. See: https://www.drupal.org/node/2019505

  • viewfield: Views reference field.

  • ajax_throbber: Add loading overlay for things like views, webform pages, etc.

  • references: Adds node reference field (NOTE: This doesn't appear to work on multi-lingual sites. Entity reference + Translated Entity Reference does and does the same thing. Be sure to base the language on the parent when following Translated Entity Reference instructions to select of the same language content as the current node)

OR

  • entity_reference

  • multiple_selects: Adds drag and drop interface plus re-ordering for multiple fields (such as node referencing)

  • svgimg: Allows addition of svg images to image field

  • link: Adds link field (can also add url module for external links)

  • redirect: Standard module for SEO in Drupal (i.e. creating redirects to pages that no longer exist)

Optional

  • block_machine_name: Allows for cleaner templating using names (rather than the block's index)
  • features_extra: Add block machine names and export blocks via features (plus other things). Alternate module 'block_machine_name' also adds machine names, but does not export via features. Styling can be done using block CSS field with this module instead.
  • blockify: "exposes a number of core Drupal elements as blocks"
  • colour-field: Define colour or select from predefined list controlled in field settings.
  • webform_optionsmarkup: Adds additional functionality to selection lists in webforms (can add in images etc and seems better than webform_select_image)

To try

  • multiple_selects: For improved UI on multiple selection fields.
  • inline_entity_form: For creating or referencing other entities (simular to paragraphs module, but allows referencing existing content. Choose this when the same content is needed to be shown multiple places). Use with eck module to create entities via the backend (i.e. content that doesn't need it's own page, etc)
  • paragraphs: For creating pages with module layouts (simular to inline_entity_form, but only reuses the layout and not the content)
  • paragraphs_defaults: Choose default paragraphs setup for entities
  • optimizedb: Large sites or those running for a long time can accumilate large database tables and become unstable (such as Drupal's cache_form table). This can flush them
  • replicate: To replace the node clone functionality (as it's limited and clunky). Also install replicate_ui
  • elements: Added to Drupal 8 core. Uses HTML 5 elements and adds additional inputs.
  • entity: Entity API. Soon to be added to core.
  • field_group: Group fields together and add tabs, etc.
  • node_export: Export content nodes from one Drupal install to another (good for exporting content, but for configuration use features). Also integrates with features to add export to module package (NOTE: Doesn't play nice with panelizer! Export via JSON to prevent panelizer error. Also limits nodes shown in features by default, change this in Home/Administration/Configuration/Content authoring/Node).
  • uuid_features: Exports content nodes as well as content structure via features. (NOTE: Doesn't play nicely with field_collection)
  • diff: Gives further details on Drupal revision history for content (also works well with features module if a feature changes)
  • clean_markup: Cleans the code outputted by core Drupal and populaur modules (i.e. Panels)
  • vefl: Create layouts for views exposed form elements using panels.
  • advanced_link: Added autocomplete to link field and other ways to validate the link inputted
  • deploy: Depolys content from one Drupal install to another via and API. Could be good in future
  • ds: Display Suite vs Panels?
  • mefibs: More exposed forms in blocks exposes views exposed filters in individual blocks rather than one block. NOTE: Tried this and it isn't very graceful, try vefl instead.
  • masquerade: View the site as users with other permissions would see it
  • profiler_builder: Build and make permissions exportable
  • webform_add_existing: Allows fields made in webforms to be reused in other webforms (like standard fields in Drupal)
  • webform_default_fields: Allows setting default webforms fields for content types that have webforms attached to them (to save reproducing each time)
  • minifyhtml: Minify the page HTML.

Theming

Notes

Panels

To have precision widths usings the Panels flexible layout, click "Show layout designer" > Canvas > Canvas settings and uncheck "Scale fluid widths for IE6". Also remove padding between items if needed.

When to use

Make a page that is to be produced in the same format multiple times: Use a specific content type

Make a page that is to be produced in the same format once: Use a general content type with a paragraphs field to custumise layout on a per node basis.