Applying for full project access for a theme, The Jalapeno MDB. Sandbox link -> http://drupal.org/sandbox/dreamleaf/1106490

The Jalapeno MDB is a flexible theme, recommended for 2 columns but accomodates 3 columns depending on region use.

Most notable features:
Header Background Image uploader (based on idea from Bartik missing features, code adapted from Noggin Module)
Jquery 'Back to top' smooth sliding scroller
4 collapsible regioned footer
'Read more' link on node teasers removed from ul.links and created as a flexible variable for easy movement and theming
Uses CSS3 for certain elements such as box shadow and rounded corners, but doesn't look "too" ugly without
Styling for all "core" D7 functionality

Thanks in advance for the review!

Nik

ps. screenshot attached

CommentFileSizeAuthor
JalapenoScreenshot.jpg40.17 KBdreamleaf

Comments

dreamleaf’s picture

Title: The Jalapeno MDB » The Jalapeno MDB D7 Theme

Changed title to make it obvious this is a D7 theme.

sreynen’s picture

Issue tags: +PAReview: Theme

Tagging for easier finding.

dreamleaf’s picture

Thankies sreynen

sarah_p’s picture

Component: new project application » theme
dreamleaf’s picture

Thanks sarah__p

Jeff Burnz’s picture

Status: Needs review » Needs work

Broken markup in info file (breaks appearance page layout):

description = A Drupal 7 Business Theme, powered by Drupal, created by <a href="http://www.dreamleaf.co.uk>Dreamleaf Media</a>

This theme essentially replicates Noggin module, which IMO is a deal breaker. We wouldn't allow someone to basically replicate Noggin and attempt to submit it as a new module project, not sure why this should be allowed just because its embedded in a theme. I would suggest removing this and simply link to the Noggin module off your project page. You've actually stated this as a "feature", whereas I would rather see this as "duplication", would be better to put time and effort into improving Noggin itself.

dreamleaf’s picture

The thinking behind including is that it is a feature, such as uploading a logo, that is widely wanted. Eaton, who created the Noggin module states that it was intended to be within Bartik but was not in time to get it through, so it seemed logical that something that would have gone in a core theme had there been more time "could" reside in a theme.

And thanks for spotting the missing " ... that appearance screen has been bugging me for ages, completely missed that!

dreamleaf’s picture

New version of .info file uploaded to git to fix broken html.

sreynen’s picture

Hi dreamleaf,

The next step is to address the feedback from Jeff Burnz, and then set the status back to "needs review" for another review. You shouldn't interpret "deal breaker" as an indication that this application is rejected; there's obviously more to the theme than that one feature, and the application can move forward once that is removed

To give a little more context, we try on Drupal.org to avoid duplicating functionality so the community can better focus our limited resources. "Duplicate" is often a blurry line, but it seems pretty clear in this case.

sreynen’s picture

I wrote my previous comment before I saw #7. Here's some of the background discussion on this functionality in Bartik:

http://drupal.org/node/700120

As you can see in comment #4 there, the original idea of putting the functionality directly in Bartik was rejected in favor of making the functionality available to any theme, which is essentially what Noggin does. That issue is still open under Drupal 8, so the functionality may still be added to Drupal core. Meanwhile, you can point users of your theme to Noggin.

dreamleaf’s picture

I understand what Jeff is saying about duplication, but would consider this not to be that straightforward. There is a big difference (in my mind, which has been known to be wrong!) between functionality being within a theme and a module.

There would be no problem releasing a theme that has layout functionality baked in, an example could be http://drupal.org/project/equalheights which is a feature in most of the popular base themes. My opinion is that yes, duplication is bad, but not if the purpose is specifically targeted. Drupal doesn't need 2 Noggin modules, but I see no conflict in the user choice to either use a theme with this rolled in or choose another and install a module.

I know I'm being picky but I think this feature within a theme would be a popular choice.

Is there a handbook for this kind of thing, I don't want to mark this as needs review again to get shot down :D

dreamleaf’s picture

Status: Needs work » Needs review

As an aside I just remembered that this functionality is already being used by themes, apart from a raft of D5/D6 themes that use the theme-settings-api module, there is specifically http://drupal.org/project/mayo that has this within it's theme settings.

So technically, the functionality is already out there, it's the implementation that would come into question. I notified Eaton prior to submitting the theme for review and he didn't appear to mind the code being reused.

Setting back to "needs review" so people know to look at my ramblings.

dreamleaf’s picture

Thanks I hadn't seen that particular thread, it seems to read though as if it was a time constraint and that pushing it to a D8 feature request was simply the outcome of that. I would love this to be a core feature, definable through a themes info file.

It just seems weird that something that "should" be a theme feature, is only allowed through a contrib module. This sounds like it may stand a good chance of being in D8 as quite a lot of the work is done now.

Jeff Burnz’s picture

Status: Needs review » Needs work

Well the problem here is that the purpose is not specifically targeted, its just the same as Noggin. Many themes include things like Cufon or Google Fonts because their usage is very specific to that theme, I have no problem with this.

There is an open issue with patch for testing in the Noggin queue right now that will fix the issue of Noggin header image applying to all themes: #1002758: Allow each theme to have unique header images so better to work on that, test the patch etc than duplicate the module to get this feature.

dreamleaf’s picture

I don't see how including a font api within theme settings and being able to customise the theme with an uploaded image differ. There are modules for both these and examples of them being used directly within themes. Both functions are design alterations, which firmly comes under a theme layer remit, but I can see the benefit of allowing the usage within a theme setting and with a module.

The specifically targeted purpose is to allow the background to be changed, which is the same as Noggin, but then why are fonts not directed to use the module counterparts for font selection?

sreynen’s picture

I've requested additional opinions on this here:

http://groups.drupal.org/node/142484#comment-494664

Jeff Burnz, can you explain more what you mean by "specifically targeted"? The main difference I see is Mayo automatically applies the header image to #header, and Jalapeno allows it to be applied to anything with a CSS selector, defaulting to #header-container. Maybe the best resolution here is to always apply the header image to #header-container, and remove that variable. Is there really a use case for applying it to anything else?

I'm starting to wonder if we shouldn't have fewer limitations on duplicating module functionality in themes, since themes don't have the ability to require functionality with dependencies like modules do.

dreamleaf’s picture

Thanks sreynen.

As an added point, the eventual plan was the apply the technique wider throughout the theme and have multiple elements that are changeable, which is why having the variable makes more sense. A simple use case could be adding multiple background images to elements. (eg. having a div with a gradient background that has a fixed bottom shadow). These are CSS3 features I would have liked to use, but they are not widely supported in many browsers yet.

I haven't had time to develop this idea as yet, but it's on my list.

It does mean the theme suffers from a little divitis to achieve the effects but there is no stable way to get it without that. And the thinking behind it being there in the first place is that it provides the functionality for people such as non-coder designers that would like have the option without touching any code.

Jeff Burnz’s picture

The way I see it if we start allowing people to replicate existing modules in their themes then where is the limit? Drupal 7 is now so powerful in the theme layer I can literally bake in almost anything I want.

If there's a problem with dependencies then lets fix that - that seems like the best long term solution.

However, in this case that would be a misnomer entirely, because this theme does not require the Noggin module to work.

dreamleaf’s picture

It's not as if I'm trying attempting to squeeze a mini-views interface into the theme settings page, which would in my opinion, be the job of a contrib module. This is simply using the functionality of a module without that dependency. I honestly don't see what is wrong with allowing users the ability to have one less module to install.

To swing the usage round, as in comment #11, would you consider removing the equal height functionality from the AT theme just because that is available as a module? Probably not, because it's useful to the theme and within the theme.

I don't see the point in having a powerful theme layer if all the good functionality isn't allowed because there is a module (currently in limbo due to no solid maintainer). It's like saying to the world, "hey, come use Drupal it can do X, Y and Z, but only if you do it this way"... and that way isn't the most user friendly or logical.

I understand that this in terms of module vs module duplication would be a clear cut, black and white issue, but a theme isn't a module. And it does look a bit like those already having full project status can bake in whatever they want, whenever they want. I've pointed to similar functionality in use, given examples of similar scenarios that this discussion could be relevant to, and if a decision comes back from sreynen's request for additional reviewers that I should remove the functionality I'll abide by that - not happily but will abide.

This is an issue though that IS going to come up time and time again, especially if the drive to get more theme contributors is successful. Anyone coming to Drupal from outside the ecosystem, will look at a thread like this and quickly run away for fear of not being able to build a theme that is comparative in comparison to what they can do elsewhere.

sreynen’s picture

There's an open issue for adding theme dependencies in D8: #474684: Allow themes to declare dependencies on modules. But in D7, dependencies are only available to modules. Dependencies allow you to assume functionality will be available without duplicating it in modules, but not in themes. So if the header upload functionality were removed from this theme, it could no longer be assumed to be there. I don't think anyone but a project creator can really say what's required to accomplish the goals of the project. That's certainly beyond the scope of these applications. Obviously dreamleaf feels the header upload functionality is important, so let's treat it as important. Unlike a module, it's not possible to ensure that functionality exists via a module like Noggin. Because of that, I think it may make sense to have a different approach to answering the "where is the limit?" question for modules and themes.

That question comes up in any application with any hint of duplication, and it's always complicated. Thankfully, we don't currently need to answer that question more generally for all hypothetical applications, so let's just focus on identifying a limit for this theme. We don't want to apply a limit to new contributors we're not also applying to existing contributors, so Mayo seems like a good place to start. Is Mayo's approach to header uploads okay? If not, we should open an issue for Mayo. If so, what specifically needs to change about this theme to make it fall with Mayo on the right side of the blurry duplicate line?

zzolo’s picture

Hi all. Thanks for everyone's input and @dreamleaf's patience and desire to contribute.

So, here's my two cents (note that I have not fully read ever bit of info that was mentioned). So, in the description of your theme, @dreamleaf, you state you are recreating functionality of another module. This is generally discouraged in the Drupal community, as duplication of efforts leads to confusion and less sustainability of our community. Though, there is no way to have dependencies on themes at the moment, there are many places like the project page and a README to ensure that someone would have this module installed. Also, this type of feature seems like it should be a nice add-on, not a dependency anyway.

I do agree that having a user install another module is a slight barrier to entry, but given that an average Drupal site probably uses dozens of contributed modules, one can safely say that a user knows how to install a module. So, I am not sure if your points against user-friendliness is all that relevant. Don't get me wrong, the process of installing a module could be greatly improved, but that is a much bigger issue.

I would strongly suggest that you take out this functionality, and allow for integration if the Noggin module is installed.

--
Please be patient with the Full Project Application Review process as it is done by volunteers, we understand that this process is not the most efficient. The goal of the process is to ensure that contributions to the Drupal community remain valuable, and to help applicants build their skills as contributors.

dreamleaf’s picture

Thanks zzolo, your input is very much appreciated. Before I remove the functionality I would be grateful if you could clarify one thing on the duplication issue.

Is it the actual code duplication that is the problem or the functionality that the code provides?

The reason I ask this is that I would really like to be able to have this within themes, if it's the duplication of the Noggin code that is the issue then would it be ok to find a different way to achieve this? Alternatively, if it is the functionality that is the issue, then it highlights a larger issue that goes beyond the examples I've listed (Mayo, equal height js etc).

I've been a quiet member of the community for a couple of years now and appreciate all the hard and thankless work that gets put in, I understand I've laboured this point quite a bit but I think the clarification will help me going forward, and maybe even help if such discussions raise their heads again.

Jeff Burnz’s picture

Its got to be a case by case basis. Mostly its the strait code duplication. If you look at Mayo you will see dozens of other features for the header and the upload part is very bespoke and works in conjunction with those other features (doesn't make sense to have those features in Noggin, and Noggin is not really going to work that well with this theme either). Same with AT and equal heights - the module is way to simple to support AT's advanced features and requirements, nor does it make sense for the module to be bloated by features that support just one theme.

I think the biggest issue here dude is the appreciation that this is a major problem, its very hard to deal with. There is no black and white answer - so I look at each case, have a good think about it and I make a recommendation. When we have a new contributor and they are doing something we know is controversial it dictates that a certain amount of caution needs to be taken - it makes it more problematic. That is why I called your inclusion of Noggin a "deal breaker", because including that code makes it extremely difficult for someone to approve this - simply because its controversial and the rule atm is no duplication of modules allowed.

dreamleaf’s picture

Thanks Jeff, that does explain the problem a bit clearer. I do get that module duplication is a real issue and I do understand that. What I'm failing to grok though is the distinction between code duplication and functionality duplication - particularly in relation to Modules vs themes. Module vs module is clear cut, it either does the same thing or not. Module vs theme brings the twist of implementation into the picture.

If the rule in place is that duplication of "code" is not allowed than I totally get that, but if it's the functionality that's called into question then it points to a "one way to do it" model, which a) limits contributions & b) calls into question established maintainers not following the rules & c) doesn't allow for reuse of code that is gpl'd.

So, to get this moving forward, I'm going to remove the code that provides the functionality, leaving it as a "future feature" that doesn't step on the duplication issue. Once this is removed I'll whack the issue back to needs review.

Is there a discussion going on that I could stick my 2cents into about this topic though, mainly the module vs theme functionality? If not, where would be the best place to start what could potentially turn ugly?

Thanks all for your input and explanations.

dreamleaf’s picture

Status: Needs work » Needs review

Right, have removed the functionality, uploaded revised version to git and amended the project description on the sandbox project page. I can't edit the description within this issue, so that needs ignoring or editing if someone has rights to do so.

And switched back to "needs review"

jeebsuk’s picture

I'd be interested to know as dreamleaf said if there is a discussion about this in the wider context anywhere.

Also, subscribing.

dreamleaf’s picture

What's next on the review list then?

I know there's a specific thread discussing ways to improve the review process, so I'll cross post this over there. There's a definite need for a basic checklist so that both reviewers and reviewee's can see what has been done. That would ease a few frustrations in the process.

dreamleaf’s picture

An obvious BUMP.

It's a special day, not only is Lenny Kravitz 47, Helena Bonham Carter 45, and even Al Jolson would have been 125 - but a more special day ensues...

This theme's 1 month anniversary of being in the Project Application queue... Happy Birthday Jalapeno!

sreynen’s picture

Status: Needs review » Reviewed & tested by the community

Looks good to me. We don't celebrate issue birthdays enough.

sreynen’s picture

Status: Reviewed & tested by the community » Fixed

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.

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