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 brandfolder

Static 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,yml to 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,yml to 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:

  1. Go to https://simplytest.me/project/brandfolder/8.x-1.x
  2. Click "Launch sandbox"
  3. Once the test site is built and you are redirected to its homepage, click the "log in" link
  4. Log in with the default credentials: admin/admin
  5. In the admin menu, navigate to "Configuration > Media > Brandfolder"
  6. Observe that an API key has been pre-populated
  7. If there is no value specified for "Default Brandfolder," choose an item and submit the form
  8. If there is no value specified for "Default Collection," choose an item and submit the form
  9. 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

Comments

ndewhurst created an issue. See original summary.

ndewhurst’s picture

Title: [D7] Brandfolder » [D7] [D8] Brandfolder
avpaderno’s picture

Status: Needs review » Needs work

Thank you for applying! We just review a single project and a single branch. Please edit the IS to select which branch you want reviewed.

ndewhurst’s picture

Title: [D7] [D8] Brandfolder » [D8] Brandfolder
Issue summary: View changes
Status: Needs work » Needs review
ndewhurst’s picture

Issue summary: View changes
ndewhurst’s picture

Hi @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:

  • Adding install config so the module will connect to a real Brandfolder account that has been prepopulated with images.
  • Reviewing strict PHP_Codesniffer scans and updating code accordingly
  • Executing unit tests via DrupalCI
  • Spinning up test instances on simpletest.me and confirming functionality there

I updated the issue summary with relevant info.
Do you have any additional tips for moving this forward?

ndewhurst’s picture

ndewhurst’s picture

Issue summary: View changes
ndewhurst’s picture

StatusFileSize
new2.53 MB
ndewhurst’s picture

Issue summary: View changes
ndewhurst’s picture

ndewhurst’s picture

Issue summary: View changes
ndewhurst’s picture

Issue summary: View changes
ndewhurst’s picture

Issue summary: View changes
gregory claeyssens’s picture

StatusFileSize
new425.77 KB

Hey @ndewhurst

I'm unable to choose a default collection. Is there any reason that might be the case?

Brandfolder config

ndewhurst’s picture

@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?

ndewhurst’s picture

@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!

gregory claeyssens’s picture

Status: Needs review » Reviewed & tested by the community

Hey @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

Individual user account
Yes: Follows the guidelines for individual user accounts.
No duplication
Yes: Does not cause module duplication and/or fragmentation.
Master Branch
Yes: Follows the guidelines for master branch.
Licensing
Yes: Follows the licensing requirements.
3rd party assets/code
Yes: Follows the guidelines for 3rd party assets/code.
README.txt/README.md
Yes: Follows the guidelines for in-project documentation and/or the README Template.
Code long/complex enough for review
Yes: Follows the guidelines for project length and complexity.
Secure code
Yes: Meets the security requirements
Coding style & Drupal API usage
No issues found.

This review uses the Project Application Review Template.

klausi’s picture

Status: Reviewed & tested by the community » Fixed

manual review:

  1. There is an API key exported, I assume this is some demo API key? It is not good security practice to export sensitive information such as API keys, but should not be a blocker if this is for demo purposes.
  2. '#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.

ndewhurst’s picture

Hi @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.

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.