The module lets you import and manage zipped Adobe Edge compositions. After uploading an archive the composition is exposed through a block. With that you can for example show multiple animations on a page.
The module shares JS resources between compositions and modifies path prefixes so the compositions can run in subdirectories.
Sandbox URL:
http://drupal.org/sandbox/ti2m/1615254
Git:
git clone --recursive --branch 7.x-1.x http://git.drupal.org/sandbox/ti2m/1615254.git edge_compositions
Version: 7.x
Example:
http://insidrrr.de
Demo compositions:
Edge website, e.g. Marketshare Demo
Reviews of other projects
http://drupal.org/node/1660466#comment-6171592
http://drupal.org/node/1663310#comment-6171480
http://drupal.org/node/1664178#comment-6172518
http://drupal.org/node/1660466#comment-6182582
http://drupal.org/node/1668344#comment-6189074
http://drupal.org/node/1668080#comment-6192002
http://drupal.org/node/1615222#comment-6192276
PAReview:
http://ventral.org/pareview/httpgitdrupalorgsandboxti2m1615254git-7x-1x
Am looking forward to any feedback, thanks for reviewing!
| Comment | File | Size | Author |
|---|---|---|---|
| #12 | drupalcs-result.txt | 1.81 KB | klausi |
| #4 | error_message.png | 17.28 KB | iptechlabs |
Comments
Comment #1
orakili commentedHello and Welcome,
Thanks for the module. The code is clean and easy to understand.
Automatic review
http://ventral.org/pareview/httpgitdrupalorgsandboxti2m1615254git-7x-1x
Only minor warnings regarding comments. No problem.
Manual review
- The use of $project_name in file paths looks unsecure. I think you should add a helper function to sanitize the project name to make it suitable for use in paths and html attributes.
- You create a directory to store sources in public:// and set it inaccessible using htaccess. It makes the module dependent of apache. Why not create the directory in private://
- In edge_compositions.module edge_compositions_admin_form: though fine as it is, you may want to use theme_table for the overview table.
- Regarding javascript. In edge_compositions.module edge_compositions_comp_render, you may want to use drupal_add_js to add the AdobeEdge variable to Drupal.settings and in edge_drupal.js add a Drupal.behaviors and then access this variable and do what you need to do with it (like copying the properties to window.AdobeEdge).
That's all for now. Could you provide a composition for testing?
Thanks
Comment #1.0
orakili commentedAdded Drupal version
Comment #2
ti2m commentedHi,
thanks a lot for the quick and detailed review!
I have commited the latest changes (checked for PAReview errors):
- The project name gets sanitized now. It's being extracted from the path on the server, so I'm not sure if its possible at all that the name gets corrupted, but better make sure anyway.
- I switched the archive source folder over to private:// and added a check to make sure the private path is configured. I agree, makes more sense this way.
- Used theme_table, totally forgot about it, looks way more consistent now, thanks for the hint.
- JS: I can't use Drupal.settings as it somehow seems to be to slow, the Edge preloader has already run through the critical code when JQuery.extend is done. Should have mentioned that in the code. I'll look into other options in future releases.
- I added the demo composition links above, all compositions from the Edge showcase website should work, e.g. Marketshare Demo
Thanks again, hope it all works now.
Comment #3
ti2m commentedComment #4
iptechlabs commentedHello,
- There is a displayed bug when I upload a zip file.
- It is better to add a description indicating the extensions files that we can upload (zip, tar, gz) in the form.
- Why does this function edge_compositions_admin_form_submit() is declared and not implemented?
Comment #4.0
ti2m commentedAdded showcase links
Comment #5
ti2m commentedHi,
thanks for reviewing!
- The error is not coming from the zip format, it looks like the archive didn't contain a valid composition. What composition did you try to upload? The Marketshare demo I posted above, or a custom composition? The marketshare demo works on my installation and multiple other installations I know of. Maybe you can sent me the archive (edge@timm-jansen.de), then I can take a look.
- I have added a description for the allowed formats.
- I removed the empty hook _form_submission(). This is for future functionality, but of course doesn't make sense in the current release.
Comment #6
Timusan commentedHey ti2m
I just finished a manual review of the functionality.
I thought it would be a good test to try out the ready-made examples that Adobe offers on their Edge website.
These where the Edge packages that I tested:
All of these demos seem to work perfectly. The interface is clear, I can immediately test my uploaded Edge.
The rebuild and delete just function as they should.
The blocks become available immediately and also work as they should.
There are only 2 things that caught my attention:
Maybe also tell the user that this is not a problem, just a status report?
Good job Ti2m!
The module seems to work out-of-the-box, as advertised without any setup hassle.
It gets a big thumbs up from me...!
Cheers
T
Comment #6.0
Timusan commentedAdd reviews
Comment #7
ti2m commentedHi Timusan,
thanks a lot for your review and for the functionality test! Am glad to hear it all works as supposed to.
Comment #8
ti2m commentedAdded tag: PAReviews: review bonus as outlined on http://drupal.org/node/1410826
Comment #9
Timusan commentedEt voila, as stated above...looks fine to me!
Comment #10
ti2m commentedMessed up setting the bonus tag before.
Comment #11
ti2m commentedCopy and paste isn't always a clever idea.
Comment #11.0
ti2m commentedAdd project review link
Comment #11.1
ti2m commentedAdd review link
Comment #12
klausiReview of the 7.x-1.x branch:
This automated report was generated with PAReview.sh, your friendly project application review script. You can also use the online version to check your project. You have to get a review bonus to get a review from me.
manual review:
The CSRF issue is a blocker, so I have to bump this back to "needs work". Otherwise this looks pretty ready. Removing review bonus tag, you can add it again if you have done another 3 reviews of other projects.
Comment #13
ti2m commentedHi klausi,
thanks a lot for the detailed review! That was quiet helpful for my general Drupal knowledge.
I don't think line exceeds are important, but as they just concern comments I decided to fix them anyway.
I made all the changes, which weren't too many, and fully tested the module functionality again. As klausi stated "otherwise this looks pretty ready" and it was RTBC before, I'll put it back to RTBC. Let me know if I'm not supposed to do this myself.
Comment #13.0
ti2m commentedAdded review ref
Comment #14
ti2m commentedAdded tag: 'PAReview: review bonus' as outlined on http://drupal.org/node/1410826
As far as I understood I'm not supposed to remove 'PAReview: security' tag even if it's fixed, so am leaving it.
Comment #14.0
ti2m commentedAdded review ref
Comment #15
klausiThanks for your contribution, ti2m! Welcome to the community of project contributors on drupal.org.
I've granted you the git vetted user role which will let you promote this to a full project and also create new projects as either sandbox or "full" projects depending on which you feel is best.
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.
As you continue to work on your module, keep in mind: Commit messages - providing history and credit and Release naming conventions.
Thanks to the dedicated reviewer(s) as well.
Comment #16
ti2m commentedThanks a lot everyone for all the reviews! Special thanks to klausi for all the work he's doing, I'll try to help out a bit.
Comment #17
ti2m commentedHi,
I have a follow up question and thought this would be the right place to ask.
I want users to be able to choose from a pool of external JS libraries that will be loaded with an edge composition, e.g. edge commons, createJS... I am aware you are not allowed to include third party code in your module, but I would just provide a couple of currently up to date url's for the most common libraries and then load them from the specific external server (maybe cache them locally).
I think that isn't a problem, or is it? Am basically doing what google analytics does. Adding the libs through the library api isn't an option as this is way to heavy and not practible for the user. Later on admins should be able to configure which libraries can be loaded by defining a library url stack.
Any help would be great, I looked for some time but couldn't find anything.
Thanks
Comment #18
klausiNo, downloading files is not a problem as they are not hosted on drupal.org.
Comment #20
mcfilms commentedTimm's project is now a full-fledged awesome module. Check it out: http://drupal.org/project/edge_suite
Comment #20.0
mcfilms commentedAdded review ref