This project integrates a Drupal site with the Brandfolder Digital Asset Management system.
There is currently no other module providing this integration.
Project Page
https://www.drupal.org/project/brandfolder
Git Instructions
git clone --branch 8.x-1.x https://git.drupalcode.org/project/brandfolder.git
cd brandfolderStatic Code Analysis
You can use PHP_CodeSniffer to scan the module code for standards compliance and best practice usage.
- Install the necessary PHP_CodeSniffer/Drupal Coder items as described here, if necessary.
- From the repository root (after cloning as noted above), run
phpcs -s ./ --ignore=./vendor --standard=Drupal --extensions=php,module,inc,install,test,profile,theme,css,info,txt,md,ymlto check for Drupal coding standards compliance. - Run
phpcs -s ./ --ignore=./vendor --standard=DrupalPractice --extensions=php,module,inc,install,test,profile,theme,css,info,txt,md,ymlto check for Drupal best practices usage.
Unit Testing
You can run the included tests/src/Functional/ConfigurationTest.php test using PHPUnit or Simpletest.
Manual/User Testing
The module includes temporary credentials providing read-only access to a Brandfolder account that has been populated with images. This is used to verify the basic functionality of the module, which is to employ the Brandfolder PHP SDK and establish a connection to a Brandfolder account.
You can test on https://simplytest.me as follows:
- Go to https://simplytest.me/project/brandfolder/8.x-1.x
- Click "Launch sandbox"
- Once the test site is built and you are redirected to its homepage, click the "log in" link
- Log in with the default credentials: admin/admin
- In the admin menu, navigate to "Configuration > Media > Brandfolder"
- Observe that an API key has been pre-populated
- If there is no value specified for "Default Brandfolder," choose an item and submit the form
- If there is no value specified for "Default Collection," choose an item and submit the form
- If the module is able to connect to Brandfolder, it will retrieve a set of sample images and display them in a simple thumbnail list
If you create your own local testing site, you can observe the module's usage of the Brandfolder PHP SDK and perform your own basic usage thereof (limited to read/fetch operations).
Screenshots



Manual reviews of other projects
| Comment | File | Size | Author |
|---|---|---|---|
| #17 | Screen Recording 2020-09-15 at 7.10.42 PM.mov | 40.42 MB | ndewhurst |
| #16 | 2020-09-14_brandfolder_module_d8_admin_ux.mp4 | 20.95 MB | ndewhurst |
| #15 | Screenshot 2020-09-14 233012.jpg | 425.77 KB | gregory claeyssens |
Comments
Comment #2
ndewhurstComment #3
avpadernoThank you for applying! We just review a single project and a single branch. Please edit the IS to select which branch you want reviewed.
Comment #4
ndewhurstComment #5
ndewhurstComment #6
ndewhurstHi @kiamlaluno, thanks for the guidance!
I updated this to focus on the D8 version, which should be fairly straightforward to test/review.
I took a number of steps to make sure this is testable, including:
I updated the issue summary with relevant info.
Do you have any additional tips for moving this forward?
Comment #7
ndewhurstComment #8
ndewhurstComment #9
ndewhurstComment #10
ndewhurstComment #11
ndewhurstComment #12
ndewhurstComment #13
ndewhurstComment #14
ndewhurstComment #15
gregory claeyssens commentedHey @ndewhurst
I'm unable to choose a default collection. Is there any reason that might be the case?
Comment #16
ndewhurst@gregory-claeyssens, thanks for the feedback!
The fact that the sample images are displaying is a good sign.
The admin page is pretty rudimentary, in that it requires you to submit the form a few times (once to choose the default "Brandfolder" to be used, then only after that choice is submitted does it fetch the "Collections" that live within that Brandfolder and allow you to choose one of them as the default).
I should improve the UX at least insofar as updating the messaging and the way we're checking for existing config values. I created an issue for that.
Can you let me know whether your experience differs from that in the attached video?
Comment #17
ndewhurst@gregory-claeyssens, apparently the ID I put in for testing was not quite right, which was why you saw that message when first loading the admin page.
I fixed that and also improved the UX a bit. E.g. you can now reset both of those fields after previously selecting a value.
This video shows new flow on a fresh install. Let me know if you see any problems!
Comment #18
gregory claeyssens commentedHey @ndewhurst
I confirm this is working properly.
I noted down some improvements (suggestions) that can be made, I'll create seperate issues for them as they are out of scope for this review. As far as I'm concerned this can be marked as RTBC.
Automated Review
pareview.sh / drupalcs / coder found no issues.
Manual Review
This review uses the Project Application Review Template.
Comment #19
klausimanual review:
'#prefix' => '<h2>Sample Images</h2>',: All user facing text must run through $this->t() for translation.Otherwise looks good to me!
Thanks for your contribution, Nathanael!
I updated your account so you can opt into security advisory coverage now.
Here are some recommended readings to help with excellent maintainership:
You can find lots more contributors chatting on Slack or IRC in #drupal-contribute. So, come hang out and stay involved!
Thanks, also, for your patience with the review process. Anyone is welcome to participate in the review process. Please consider reviewing other projects that are pending review. I encourage you to learn more about that process and join the group of reviewers.
Thanks to the dedicated reviewer(s) as well.
Comment #20
ndewhurstHi @klausi, that's excellent!
Yes, that was a read-only key to help facilitate the testing process, and we can now remove it.
I'll be sure to run that additional text through translation as well.
Thanks for the additional resources/notes. I was able to learn about the review process while reviewing two other applications, which was a good experience. Thanks for working to keep things flowing here.