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/
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
modules/forum
modules/taxonomy
autoban
cas
draggableviews
drush/commands/core/drupal/site_install_7.inc
drush/commands/core/site_install.drush.inc
feeds/plugins/FeedsParser.inc
feeds_imagegrabber
https://www.drupal.org/project/feeds_imagegrabber/issues/2244833
Applied patch: patches/feeds_imagegrabber-update_processor_callback-2244833-45.patch
Fix _TypeError: mb_strrpos(): Argument #3 ($offset) must be of type int, string given in mb_strrpos() (line 126 of /var/www/htdocs/sites/all/modules/feeds_imagegrabber/libraries/url_toabsolute.inc). "Passing the encoding as the third argument instead of an offset has been removed."
google_analytics
honeypot
imce_rename.module
masquerade
memcache
NULL
to ''
menu_block
og_menu.module
options_element
override_node_options
picture
redirect
themekey
upload_replace.module
views_autorefresh
var view_name_id = response.view_name_id;
to var view_name_id = response.view_name;
views_infinite_scroll
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
workbench_access
workbench_moderation.module
wysiwyg/editors/js/tinymce-3.js
There are content types provided by Features located in sites/all/modules/custom/features. If a new content type is added the following should be done:
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:
Another developer will review your changes and merge in to the develop branch.