Display Suite Inception is a drag and drop layout manager that sits on top of Display Suite, and acts as a (near) full in-line replacement for the location and formatter settings of Fields provided by Field UI.
It brings with it a new 'Inception' content type, which allows for easy creation of one-off landing pages (i.e a site front-page) by allowing the population of regions provided by Display Suite with Blocks, Views, Markup, and Rendered Entities
It also allows for 'inception-enabling' entities, which lets you attach Blocks, Views, Markup and other rendered Entities into any region rendered using Display Suite on individual entities.
You may use Inception content as a layout template for other entities, via an inheritance model available to both Content Types and Taxonomy Vocabularies.
The full functionality of Inception is fairly complex, and perhaps better explained via the screencast available here: http://blog.firecannon.com/blog/display-suite-inception-v3-release
Project Page: https://www.drupal.org/sandbox/stooit/2196695
git clone: git clone --branch 7.x-1.x http://git.drupal.org/sandbox/stooit/2196695.git ds_inception
Comments
Comment #1
jribeiro commentedFirst of all, we need to fix the automatic basic review issues:
Please, take a look at: http://pareview.sh/pareview/httpgitdrupalorgsandboxstooit2196695git
EDIT: removed pareview.sh dump.
Comment #2
stooit commentedThanks, had run through pareview but wasn't sure how strict approval was on some of the warnings returned.
I'll clean it up and comment again when it's passing on these issues.
Comment #3
PA robot commentedThere are some errors reported by automated review tools, did you already check them? See http://pareview.sh/pareview/httpgitdrupalorgsandboxstooit2196695git
We are currently quite busy with all the project applications and we prefer projects with a review bonus. Please help reviewing and put yourself on the high priority list, then we will take a look at your project right away :-)
Also, you should get your friends, colleagues or other community members involved to review this application. Let them go through the review checklist and post a comment that sets this issue to "needs work" (they found some problems with the project) or "reviewed & tested by the community" (they found no major flaws).
I'm a robot and this is an automated message from Project Applications Scraper.
Comment #4
stooit commentedPAreview.sh is now returning a clean result.
I've also moved to a 7.x-1.x branch and removed the master branch.
Comment #5
stooit commentedComment #6
karan_mudi commentedAutomated Review
Review of the 7.x-1.x branch :
Manual Review
Add Implements hook_help() in your module file
Comment #7
klausi@mudi: The wrong type hint on its own is surely not an application blocker, anything else that you found or should this be RTBC instead?
Comment #8
rcodinaThis module reminds me of Panopoly distribution but I think it's better given it is a simple module which adds features to Display Suite.
I have played with it and works like a charm. From my point of view, this module needs to improve its documentation to help users get used to it. I think that in README file there should be a link to the screencast because it is the fastest way someone can get started. A part form that, I think the hook_help should be implemented to add a help page inside drupal UI.
Manual Review
README.txt/README.md
[No: Does not follow] the guidelines for in-project documentation and/or the README Template:
I think this is not an application blocker, but it is a recommendation given the complexity of the module.
Keep up the good work!
Comment #9
stooit commentedThanks for the support and detailed review, and completely agree on the current lack of documentation.
I'll tidy up the README and add a hook_help with some detailed help to get users started and respond again to this thread when done. I toyed with the idea of a 'guided overlay' for first timers too that acts as a walkthrough of the module functionality.
Cheers!
Comment #10
novitsh commentedThank you for this module. I see myself using this!
Manual check:
Why are you prefixing functions like: _ds_inception_render_node()
Comment #11
iampumaI have tried installing the module twice, but every time I am getting this PDOException:
Describing the current ds_inception_overrides table, gives me an inception_entity_type, but not the inception_type
The module however looks great, can't wait to try it out more.
Comment #12
stooit commentedSorry, that db error is completely my fault (introduced in commit b096805).
It was named the right thing (inception_type) for the upgrade hook, so I hadn't noticed. Fixed in the latest commit.
Comment #13
stooit commented@Novitsh: I prefixed internal/private helper functions with an underscore, although this was more personal preference than Drupal coding standards. I'll happily change them if it's a blocker.
@rcodina: README has been updated to match template standards, and I'm using the hook_help example to pull the content into the UI. I still think the actual help content could do with some beefing up, I'll make sure that happens soon.
Thanks to all for the feedback and assistance with this application!
Comment #14
stooit commentedComment #15
iampumaOkay great, I am not receiving the previous error anymore, but still having some minor issues:
This would be another great addition to the module, the DS code should be reusable for this functionality.
Will definitely look forward using this module.
Comment #16
stooit commentedI've fixed the issues on multilingual Drupal installs where Locale is enabled. This was due to the Inception fields not being translatable, but in some areas it was allowing for language codes instead of always assuming LANGUAGE_NONE. Let me know if you spot any other issues on your multilingual profile.
Both suggestions (disable drag in preview mode, move fields to new regions when changing layout) would be great, I'll work on implementing both in the near future.
Comment #17
stooit commented@impuma -- dragging is now disabled in Preview mode, thanks for the suggestion!
The latest commit also makes it more Panels-friendly, you can now use Panel layouts (including custom layouts) as well as those exposed by Display Suite. It also standardised CSS naming conventions throughout the module.
Comment #18
wiifmHey Stuart,
Impressive module, DS is not my cup of tea, but I can review the code at least.
That is as far as I got in the review.
Asides from that, it would be good to list the modules that this module will not work with (and ones it does work with nice). I would imagine this will be the first issues in your issue queue otherwise. I see you are overriding the node page callback http://cgit.drupalcode.org/sandbox-stooit-2196695/tree/ds_inception.modu... this will surely make some other Drupal module incompatible.
Comment #19
stooit commentedThanks @wiifm, much appreciated. The latest commit has fixed the majority of these issues, performance should be vastly improved. There are still a couple includes in the .module file I need to move elsewhere but the main pain points are resolved.
The only thing left is to convert the string concatenation to theme functions. Will update this issue when done.
Comment #20
stooit commentedSorry for the major delay, have been a little swamped lately.
The latest commits replace concatenated string output with templates defined in hook_theme(), as well as a couple of minor bugfixes.
Comment #21
Sneakyvv commentedIsn't this module's functionality similar to Page Manager en In-Place Editing? Perhaps edit this issue's summary and add an explanation as to why it's different/better, as suggested on https://www.drupal.org/node/1011698.
Automatic Review
Coder
ds_inception.js Line 12: do not use mixed case (camelCase), use lower case and _ [style_camel_case] function refreshUpdateArray() { Line 192: Javascript strings should be passed through Drupal.t(). [i18n_3] alert("Error changing layout: " + html.message); Line 216: do not use mixed case (camelCase), use lower case and _ [style_camel_case] function handleDropzoneEvent(event, ui) { Line 256: do not use mixed case (camelCase), use lower case and _ [style_camel_case] function handleDragStart(event, ui) { Line 266: do not use mixed case (camelCase), use lower case and _ [style_camel_case] function handleDropEvent(event, ui) {Manual Review
'><script>alert('XSS attack!');</script><div class='to demonstrate it.I couldn't identify the specific code that should be changed, but I suppose you will know where to use filter_xss().
The starred items (*) are fairly big issues and warrant going back to Needs Work. Items marked with a plus sign (+) are important and should be addressed before a stable project release. The rest of the comments in the code walkthrough are recommendations.
This review uses the Project Application Review Template.
Comment #22
PA robot commentedClosing due to lack of activity. If you are still working on this application, you should fix all known problems and then set the status to "Needs review". (See also the project application workflow).
I'm a robot and this is an automated message from Project Applications Scraper.