Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/amcgowanca/drupal-modules-contrib-features_override
https://github.com/amcgowanca/drupal-modules-contrib-features_override
Last synced: 1 day ago
JSON representation
- Host: GitHub
- URL: https://github.com/amcgowanca/drupal-modules-contrib-features_override
- Owner: amcgowanca
- Created: 2013-10-08T23:51:05.000Z (about 11 years ago)
- Default Branch: bugfix/php_notice_array_to_string
- Last Pushed: 2013-10-09T14:01:01.000Z (about 11 years ago)
- Last Synced: 2023-03-30T13:18:02.856Z (over 1 year ago)
- Language: PHP
- Size: 148 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.txt
Awesome Lists containing this project
README
Features Override (Drupal 7-2.x)
--------------------------------This module add a new Features exportable called "Feature Overrides" that
are used to export overridden changes to other Features. It requires at
least the 7.x-1.0-rc1 release of Features.To use, install this module and enable it. When you create a new feature from
the Structure/Features page, two new exportables called "Feature Overrides"
will be displayed in the drop-down list. The first one allows you to override
all of the changes of a specific component. The second "Individual Advanced"
allows you to select exactly which line-by-line changes are exported.
Select the Overrode exportable and then select which components you wish to
export overrides for. Only components that are currently overridden will be
shown as checkboxes.Maintainers
-----------
- mpotter (Mike Potter)Basic Usage
-----------
1) Create normal features and enable them.2) Make changes to the site using the normal Drupal UI.
3) Go to the admin/structure/features page and you should see some of your
Features marked as "Overridden"4) Click the "Create Feature" tab.
5) Enter a name for your Override feature.
6) Click the "Edit components" drop-down and select "Feature Overrides".
A list of overridden components will be shown. For example, if you changed a
field in a content type, that field name will be shown in the list of
overrides. If you changed something in a view, that view name will be in the
list. Check the boxes next to the overrides you wish to save.7) Click the "Download Feature" button at the bottom of the screen. This will
create your Override Feature module code and save it to a local file. Upload
that file to your server and place it into your normal sites/all/modules
directory.8) Go to the Modules page and Enable your new override module.
9) Clear the Drupal cache.
10) Now when you visit the admin/structure/features you should see your new
override feature and the original features should no longer be marked as
"Overridden".Merging new changes into an existing Override
---------------------------------------------
Once you have created an Override feature, it's easy to add additional changes
to it:1) Make changes to the site via the Drupal UI
2) Visit admin/structure/features and you should see both the original code
feature marked as "Overridden" as well as the Override feature marked as
"Overridden"3) Click the Recreate link for the Override feature.
4) Select any new overrides from the Component dropdown list as needed.
Download your new feature.You can accomplish this same task using Drush:
drush features-update override-feature
5) Now visit the Features admin page and nothing should be marked as Overridden
again.NOTE: You want to update/recreate the Override feature and NOT the original
feature. If you recreate the original feature, then ALL of the overrides (the
existing ones in the Override module and the new changes) will be written to
the original feature. Probably not what you wanted (see next section)Rebuilding the Original Feature without the Overrides
-----------------------------------------------------
Sometimes you want to make a change and have that change saved with the
original feature and not with the Override. Here are the steps to accomplish
this:1) Make the changes you need to the site via the Drupal UI
2) Visit admin/structure/features and you should see both the original code
feature marked as "Overridden" as well as the Override feature marked as
"Overridden"3) Click the "Create Feature" tab to create a new feature
4) Create a new Override feature by entering a name and description, then
select the overrides you want to save from the Feature Override section of the
Components drop-down menu5) Click Download Feature and install this new module on your site. Let's
call it "New Changes". So now we have the "Original Feature", the first
"Override Feature", and the new "New Changes" feature. All three should
display in the Features Admin page in their Default state.6) From the Features Admin page, uncheck the "New Changes" feature you created
in step 5, then click Save. This will undo the recent changes.7) From the Features Admin page, uncheck the box next to the "Override Feature"
that you originally created (NOT the New one you made in step 5) and click
Save. This will undo the changes made by the first Override module.8) If the original feature shows as "Overridden" or "Needs Review", click on
it and click the Revert button to ensure it is in it's original state.9) From the Features Admin page, check the box next to the "New Changes"
feature you created in step 5 to enable is and click Save. Now the database
reflects the original feature plus the new changes.10) Click the Recreate link for the original Feature. Click the Download link
and install the updated feature. Or use the drush command:
"drush features-update original-feature". This will export the original
feature code along with the New Changes code.11) You no longer need the New Changes feature. You can disable it and remove
it from your site if you wish. If you don't remove it completely, at least
ensure that it is disabled in the Feature Admin page.12) Finally, check the box next to the Override feature to re-enable that
feature. Now you have the original code plus the New changes stored in the
original feature, but you still have the additional Overrides in the seperate
Override module.Once you understand the above steps you will also realize that there are other
ways to accomplish this same task. For example, you could have disabled the
Override module first, then made your changes and just recreated the original
feature directly. However, the above procedure is the most complete and
reflects the real-life situation where the changes have already been made to
the site and you need to somehow capture those changes back into the original
feature.Adding or Removing specific Override lines
------------------------------------------
An Override feature is simply a list of code changes that need to be made to
the current configuration. Only code *differences* are stored in the Override
feature.To view these specific line-by-line code differences, click the Default link
next to your Override module from the Features admin page, then click the
Review Overrides tab. This will show the Overrides currently exported as
individual lines (along with the normal "diff" listing below).To change which specific lines are exported, click the Recreate tab, then
open the Components dropdown. Select the "Features Overrides Individual"
(advanced) tab. Then click the "Refine" link next to the component you want
to adjust. Each specific override line will be shown as a checkbox. Simply
check or uncheck the lines desired. Then click the Download button to create
a new version of your Override feature.In the main Features Admin page there is also a new Review Overrides tab.
This will show a list of any new overrides no matter which module that relate
to. This is a very useful debugging tool for determining where changes have
been made to your site. The Overrides tab will tell you the exact Component
being overridden. The normal "Review Overrides" tab in Features only shows the
raw code "diffs" and sometimes cannot show the full context of the change. The
new Review Overrides tab can show you exactly what the change is and where it
is made (which View changed, which field changed, etc).