DAM4 provides a uniquely powerful Digital Asset Management (DAM) framework by wrapping the legacy ResourceSpace (RS) codebase in a Zend2 Framework wrapper layer. ResourceSpaace is a feature-rich DAM tool, but the procedural codebase makes it difficult to extend using off-the-shelf modules. DAM4's wrapper layer makes it possible to extend ResourceSpace with the many OO modules available through the Zend2 Framework.
Initial priorities include:
- Provide transparent access to ResourceSpace pages despite the ZF2 wrapper layer (implemented in LegacyRS module)
- Pageview Tracking - Capture and record legacy page requests as they pass through the Zend layer (implemented in LegacyRS module)
- Provide a framework to hijack legacy URLs and substitute ZF2 pages (implemented in LegacyRS module)
- Add the entire legacy URL tree to prepare for future expansions of ZF2 layer (taking over additional legacy functionality)
- Authentication (using ZfcUser) - Bridge Zend\Authentication to the RS codebase so Zend modules can be used for site-wide authentication
- Reset password experience
- User Administration (using ZfcUserAdmin) - Shift user administration responsibilities to ZF2 (important to enforce ZF2 password policy)
- Hijack legacy URLs so links in legacy interface work
- Branding - Make it easy to brand aspects of the system including the logo, page titles, and other descriptions
- Ensure branding extends to ZfcUser
- Ensure branding extends to ZfcUserAdmin
- Ensure branding extends to future ZF2 modules
- Enhanced Settings Experience:
- ZF2 Config - Manage legacy
config.php
settings using ZF2 config files - Database - Combine DAM4 and RS database settings (if ZF2 Config file is used)
- GUI - Convert settings experience to a GUI
- ZF2 Config - Manage legacy
- Installation - Implement an appropriate installation process addressing the needs of both the RS and DAM4 layers
- Migration - Implement a migration script for existing RS users to upgrade to DAM4
- Enhanced Page Tracking
- Support for tracking geographic search (currently
!geo...
keyword gets tracked like any search term) - Track dynamic search results in advanced search (currently tracked only when user clicks through to the actual result set)
- Support for tracking geographic search (currently
Aquiring all of the DAM4 dependencies is now fully managed by composer!
git clone git://github.com/claytondaley/DAM4.git
cd DAM4
curl -s https://getcomposer.org/installer | php --
php composer.phar install
Once installed, basic DAM4 settings need to be configured:
# Rename the config file to create a local version
cp config/autoload/dam4.local.php.dist config/autoload/dam4.local.php
# Modify the config file using your favorite text editor, e.g.
vi config/autoload/dam4.local.php
Setup a website (domain or subdomain) using the /public folder as the root of your website
The simplest way to get started if you are using PHP 5.4 or above is to start the internal PHP cli-server in the root directory:
php -S 0.0.0.0:8080 -t / public/index.php
This will start the cli-server on port 8080, and bind it to all network interfaces.
**Note: ** The built-in CLI server is for development only.
To setup apache, setup a virtual host to point to the public/ directory of the project and you should be ready to go! It should look something like below:
<VirtualHost *:80>
ServerName zf2-tutorial.localhost
DocumentRoot /path/to/DAM4/public
SetEnv APPLICATION_ENV "development"
<Directory /path/to/DAM4/public>
DirectoryIndex index.php
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
NOTE: DAM4 is does not have a full installation script yet. You need to have an existing RS database and follow the instructions in the Migration section.
During installation, DAM4 will import a copy of the legacy RS codebase that starts uninitialized. To maximize forward-compatibility, DAM4 (via LegacyRS) still delegates installation activities to the legacy codebase. Navigate to the root of this installation and follow the standard RS installation instructions.
Once you've installed the program, open /vendor/resourcespace/resourcespace/include/config.php
and ensure that spider_password
, scramble_key
, and api_key
are all set to random values. This is critical to ensure that your installation is secure.
This same config.php
file can be used to extensively customize the behavior of RS. See the corporate.config.php
discussion (below) for some additional information.
To convert an existing RS installation to DAM4, (at least) the following is required:
- Install DAM4 using the Installation instructions
- Copy your old config.php file to
/vendor/resourcespace/resourcespace/include
(the usual place in the RS file structure)- Optionally, following the LegacyRS instructions to delegate configuration to ZF2 config files
- Tweak your RS database (all changes are transparent to RS)
- Extend the
password
column on theuser
table to 128 characters - Add
user
to the comma delineated list of permissions for all Usergroups (which function as ZF2 roles) - Ensure you have a usergroup named
guest
and add the permissionguest
- If you don't have a usergroup named
guest
, we recommend creating one withid = -1
- If you don't have a usergroup named
- Extend the
- Add the password reset table by running the script found in
\data\schema\goalio-forgotpassword.sql
against your database
The only major catch at this point is that legacy RS passwords won't work out-of-the-box. Users will need to reset their passwords using the reset password option on the login screen.
You have the option to use ZF2 to manage legacy RS configurations. The LegacyRS module includes helper config files to simplify this process. After completing the install process,
- Inside
/vendor/resourcespace/resourcespace/include
, renameconfig.php
tolegacy.config.php
- Copy
config.php.dist
fromvendor/claytondaley/legacyrs/config/resourcespace
to the/vendor/resourcespace/resourcespace/include
and remove the "dist" extension. - Edit the LegacyRS section inside
/config/autoload/dam4.logcal.php
. All values put here will be injected into the legacyconfig.php
The LegacyRS module also includes a sample configuration for a corporate (hybrid internal-external) DAM deployment. This file also includes styling tweaks to help RS and DAM4 look more interchangeable so even migrations should consider reviewing this file.
- The file is found at
/vendor/claytondaley/legacyrs/config/resourcespace/corporate.config.php
- There are at least two ways to take advantage of these settings
- (recommended) Move all your custom settings from your
legacy.config.php
intodam4.local.php
and replacelegacy.config.php
withcorporate.config.php
- Manually move settings from
corporate.config.php
into yourlegacy.config.php
. Best to put thecorporate
stuff above yourlegacy
stuff so your legacy stuff takes priority.
- (recommended) Move all your custom settings from your