- Core drupal requirements
- PHP LDAP Extension
- PHP Tidy Extension (for migration tool)
In this example the web root is /Library/WebServer/Documents and Apache runs as _www - modify the instructions below according to your setup
-
Fork 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
Download the current version (drupal-7.a) being used in this repo and the latest version (drupal-7.b) from https://drupal.org/project/drupal
diff -ruNa drupal-7.a drupal-7.b > drupal_patch.diff
git checkout -b drupal-7.b-update master
git apply —-check drupal_patch.diff
git apply drupal_patch.diff
git add .
git commit -m "Upgrade Drupal Core to 7.b"
git push yourfork drupal-7.b-update
Once that is complete, open a Pull Request against develop in unlcms/UNL-CMS.
-
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
-
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
-
-
includes/database/database.inc
Add support for a "db_select_only" config option that prevents drupal from issuing non-select queries to that database. This can be used to allow Drupal to function during a FLUSH TABLES WITH READ LOCK;
-
includes/install.inc
Add primary key to drupal_install_test https://www.drupal.org/project/drupal/issues/2856362
-
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
-
modules/forum
- Removed completely because its table doesn't have a primary key. (unlcms#942)
-
modules/taxonomy
- Add a primary key to the {taxonomy_index} table. https://www.drupal.org/files/issues/drupal-n610076-75.patch
-
autoban
- A "Forced mode" ban doesn't take effect until another IP triggers a watchdog message. https://www.drupal.org/project/autoban/issues/2969670
- Applied patch: 2969670-2-autoban-forced-mode.diff
-
draggableviews
- Anonymous view displays an empty form with no submit button which fails webaudit.unl.edu testing. Applied draggableviews-add_hidden_submit_button_to_form-867.patch
-
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
-
feeds
-
feeds_imagegrabber.module
-
honeypot
- Applied patch: https://www.drupal.org/project/honeypot/issues/2943526
-
imce_rename.module
-
masquerade
- Applied patch: patches/masquerade-remove_masquerade_table_and_rely_on_session-d7-1926074-31.patch.txt
- Removed login/logout hooks calls that were added in https://www.drupal.org/project/masquerade/issues/1364574 because they break SSO
-
menu_block
- Added additional classes to menu_block_get_title() in menu_block.module
-
og_menu.module
- Fix permission problem for editor that is only the author of the page with no other permissions.
-
picture
- Remove height/width attributes for validity. See https://drupal.org/node/2115513
-
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
-
views
- RSS feed double-encodes HTML-Entity (in Feed titles) https://www.drupal.org/node/1424096 patch: views.feed-displays.1424096-10.patch
-
viewreference.module
-
Lock down access to "Allow PHP code." under "Contextual filter arguments". See https://drupal.org/node/2014723#comment-7878825 Patch applied: https://drupal.org/files/viewreference-php_perm-2014723-1.patch
-
Fix label and settings var notices. See https://drupal.org/node/1790304#comment-7395496 Patch applied: https://drupal.org/files/viewreference-1790304-03-complex-entity-form.patch
-
-
webform/components/number.inc
-
Use type='number' for number elements.
-
https://www.drupal.org/node/2290029, override: https://git.drupalcode.org/project/webform/commit/92fa0fc
-
-
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
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.