Description:

There are many jQuery tab and accordion libraries out these days! How do you choose which one to implement? Many site builders don't have a programing background and can get lost when trying to add such libraries to their theme. Never the less, embedding these libraries into a custom theme will prevent anyone from easily reusing or customizing the library configurations.

So why another tab or accordion module?

New jQuery libraries are releasing rapidly. Instead of developing a new module for every tab or accordion library, I created tabilicious! Tabilicious was designed to be flexible, so developers can easily implement the new libraries without having to reinvent the wheel.

What libraries does tabilicious support?

At the moment tabilicious works with both jQuery UI Tabs and Accordion.

I plan on releasing a new tabilicious style called "SlideTabs" in the near
future (unfortunately is a paid jQuery plugin).

How do I display my tabilicious profile?

Currently you can render a tabilicious profile by creating a field for any entity type (node, user, bean, etc). Then configure the field formatter to render as a "Tabilicious Profile".

I have plans on releasing more options in the future, so you can render tabilicious profiles using: field group, views, or panels.

Features:

  • Display content in a tab or accordion for any entity type.
  • Export and import tabilicious profile configurations.
  • Manage and customize tab and accordion configurations from a UI.
  • Support other jQuery libraries (not just jQuery UI Tabs and Accordion).

Future Plans:

  • Render tabilicious profile using the panels module.
  • Render tabilicious profile using the views module.
  • Render tabilicious profile using the field group module.
  • Develop a tabilicious style using the jQuery SlideTabs plugin.

Drupal Version:

  1. Drupal 7

Sandbox Project:

https://drupal.org/sandbox/droath/1915288

Git Repository:

git clone --branch 7.x-1.x droath@git.drupal.org:sandbox/droath/1915288.git tabilicious

CommentFileSizeAuthor
#8 screenshot1 .PNG48.36 KBjongagne

Comments

PA robot’s picture

Status: Needs review » Needs work

There are some errors reported by automated review tools, did you already check them? See http://ventral.org/pareview/httpgitdrupalorgsandboxdroath1915288git

We are currently quite busy with all the project applications and we prefer projects with a review bonus. Please help reviewing and 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.

droath’s picture

Status: Needs work » Needs review

The errors that were reported by the automated review tool have been fixed. These changes are now reflected in the 7.x-1.x branch.

jongagne’s picture

Status: Needs review » Needs work

Code sniffer still managed to find a couple issues:

FILE: /var/www/drupal-7-pareview/pareview_temp/handlers/style.inc
--------------------------------------------------------------------------------
FOUND 20 ERROR(S) AFFECTING 20 LINE(S)
--------------------------------------------------------------------------------
15 | ERROR | Missing parameter type at position 1
25 | ERROR | Missing parameter type at position 1
27 | ERROR | Missing parameter type at position 2
29 | ERROR | Missing parameter type at position 3
141 | ERROR | Missing parameter type at position 1
196 | ERROR | Missing parameter type at position 1
198 | ERROR | Missing parameter type at position 2
209 | ERROR | Missing parameter type at position 1
211 | ERROR | Missing parameter type at position 2
222 | ERROR | Missing parameter type at position 1
224 | ERROR | Missing parameter type at position 2
226 | ERROR | Missing parameter type at position 3
290 | ERROR | Missing parameter type at position 1
292 | ERROR | Missing parameter type at position 2
303 | ERROR | Missing parameter type at position 1
305 | ERROR | Missing parameter type at position 2
316 | ERROR | Missing parameter type at position 1
318 | ERROR | Missing parameter type at position 2
320 | ERROR | Missing parameter type at position 3
338 | ERROR | Missing parameter type at position 1
--------------------------------------------------------------------------------

FILE: /var/www/drupal-7-pareview/pareview_temp/tabilicious.module
--------------------------------------------------------------------------------
FOUND 11 ERROR(S) AFFECTING 11 LINE(S)
--------------------------------------------------------------------------------
231 | ERROR | Missing parameter type at position 1
233 | ERROR | Missing parameter type at position 2
235 | ERROR | Missing parameter type at position 3
265 | ERROR | Missing parameter type at position 1
288 | ERROR | Missing parameter type at position 1
290 | ERROR | Missing parameter type at position 2
292 | ERROR | Missing parameter type at position 3
311 | ERROR | Missing parameter type at position 1
313 | ERROR | Missing parameter type at position 2
335 | ERROR | Missing parameter type at position 1
407 | ERROR | Missing parameter type at position 1
--------------------------------------------------------------------------------
FILE: /var/www/drupal-7-pareview/pareview_temp/templates/theme.inc
--------------------------------------------------------------------------------
FOUND 3 ERROR(S) AFFECTING 3 LINE(S)
--------------------------------------------------------------------------------
11 | ERROR | Missing parameter type at position 1
60 | ERROR | Missing parameter type at position 1
111 | ERROR | Missing parameter type at position 1
--------------------------------------------------------------------------------
klausi’s picture

Status: Needs work » Needs review

Minor coding standard issues are not application blockers, please provide a manul review.

arnoldbird’s picture

The git command in the original project application is wrong. It should be...
git clone http://git.drupal.org/sandbox/droath/1915288.git tabilicious

arnoldbird’s picture

Status: Needs review » Needs work

@droath,

Thanks for your submission. It appears to be a duplicate of http://drupal.org/project/field_jquery_tabs -- Your module also provides an accordion in addition to the tabs field, but it might make more sense to either focus on the accordion field or contribute your accordion-related code to the aforementioned module.

When I create a profile with the type set to tabs, I see...

Warning: Invalid argument supplied for foreach() in element_children() (line 6370 of /var/www/drupal_fresh/includes/common.inc).
    Warning: Invalid argument supplied for foreach() in TabiliciousStyle->buildSettingsForm() (line 64 of /var/www/drupal_fresh/sites/all/modules/tabilicious/handlers/style.inc).

In the project page, it was not initially clear to me what you mean by this:

Tabilicious is a modular application that can manage and display variety of tabs or accordions.

At first I wondered... why would someone want to display tabs or accordions? For what purpose? Please provide a sentence or two of context, or describe a use case, so it's easier to get started testing this module. I found myself doing web searches to find if tabalicious might be a 3rd-party service of some sort. Eventually I did reach a point where I could see the output of the field and then I understood the intent of the module, but this must be made clearer in the README and project page.

Grammar issue: In your README there are a number of instances of "your" that should be "you are" or "you're".

When saving a profile, I get...

Warning: Invalid argument supplied for foreach() in TabiliciousStyle->buildSettingsForm() (line 64 of /var/www/drupal_fresh/sites/all/modules/tabilicious/handlers/style.inc).
    Notice: Undefined index: form in TabiliciousStyle->formCallback() (line 296 of /var/www/drupal_fresh/sites/all/modules/tabilicious/handlers/style.inc).
    Notice: Undefined property: stdClass::$export_type in ctools_export_crud_save() (line 181 of /var/www/drupal_fresh/sites/all/modules/ctools/includes/export.inc).
    Notice: Undefined index: form in TabiliciousStyle->formCallback() (line 296 of /var/www/drupal_fresh/sites/all/modules/tabilicious/handlers/style.inc).

When I save the display settings for a field, I get...

Notice: Undefined index: form in TabiliciousStyle->formCallback() (line 296 of /var/www/drupal_fresh/sites/all/modules/tabilicious/handlers/style.inc).
    Notice: Undefined index: theming in TabiliciousStyle->render() (line 248 of /var/www/drupal_fresh/sites/all/modules/tabilicious/handlers/style.inc).

Once I get to step #2 in your README, I no longer am sure what you are referring to. I don't know what the "style" is that you are referring to. It may be that I pulled your code at a time when it is in flux. In any case, please fix the errors and check to make sure the instructions in your README are still consistent with your latest code. And consider whether this module may be a duplicate.

Thanks again.

arnoldbird’s picture

@droath,

Your module should be free of statements like "TODO: please describe this table!" in your install file. You should go ahead and supply the description.

jongagne’s picture

StatusFileSize
new48.36 KB

Manual Review

Issues:

  • If you interact with a Tabilicious field that is configured using a profile with the style jquery_accordion then an issue arises. If you have a tab in the accordion list that is expanded then the problem occurs when you expand another tab and then attempt to expand the previous tab. This causes the menu to be unusable. Specifically, the tabs no longer work. Additionally, the page scrolls downwards when this happens.
  • arnoldbird mentioned there were errors when saving profiles, creating profiles and saving fields. These errors also occur and are displayed to the user when visiting any page with the Tabilicious field enabled, I've provided an example of the errors in screenshot1.

Suggested Future Improvements:

  • Consider giving the user the capability to switch your profile's tab style between vertical and horizontal as opposed to requiring a new profile every time the need arises to change tab styling.
  • For each separate Tabilicious field it might be better to provide a button in the top right corner of the tab navigation that minimizes the tabs as opposed to having the user click on the tab itself.
  • Expanding on what arnoldbird said,
    Please provide a sentence or two of context, or describe a use case, so it's easier to get started testing this module.

    I found it difficult grasping the concept of the module until I took a look at the jQuery Tabs Field module. Perhaps provide visual support in order to better describe the functionality of your module. Consider updating the README.txt file as well, relate it to the jQuery Tabs Field module in order to better describe what yours does.

droath’s picture

Status: Needs work » Needs review

Thanks @jongagne and @arnoldbird for your review!

I have implemented your suggestions, as well as updated my module description. Hopefully this will give you a better idea on what I'm trying to accomplish.

Here is a list of things that have been fixed.

  • I updated the module README.txt.
  • Fixed all PHP Warning/Notice errors.
  • Implemented all TODO, so the module is now free of these statements.
k3vin_nl’s picture

Status: Needs review » Needs work

Hi! I tested / reviewed your module on a clean Drupal7.22 installation with only tabilicious and it's required modules.

As stated earlier it was a bit difficult to actually understand what this module has to offer and how it differs from other tab solutions like Field Group.

If I had to describe it: It basicly allows you to create a single field that consists of several tabs or accordion items, while most other module allow you to put existing fields into tabs or accordions.
After I saw how it works, I think this could be a usefull module.

( Not really part of the review, but maybe it would nice to make use of the Field Collection module? Your module could provide a field collection, that renders as either tabs, accordions, etc... I think this would make the configuration easier, and provide more flexility. )

Issues I found

  • I was a bit confused by this step in README.txt : "1. Navigate to the fields Manage Display: Administration > Structure > Content types > BUNDLE_NAME.", maybe it is better to say "go the the 'manage display tab'"?
  • No vertical tabs? In the code I see references to vertical tabs, but I couldn't find any way to get the items to display as vertical tabs?
  • After creating a new tabilicious profile (http://localhost/drupal-7.22/#overlay=admin/config/content/tabilicious/a...). I got an error: Warning: Invalid argument supplied for foreach() in element_children() (line 6400 of /Users/kevin/Sites/drupal-7.22/includes/common.inc
  • Tabs are rendered even if they are all empty.
  • In 'jquery.tabilicious.js' the Drupal.behavior doesn't respect the 'context', so it might run the script on the same elements again each time an ajax call is handled. (See https://api.drupal.org/api/drupal/developer%21topics%21javascript_startu... written for D6, but the same principle applies).
  • The jquery tabs setting show a field 'Collapsible' that seems to have no function?
  • Number of values field setting: I'm not sure if the default number of allowed values of 1 makes any sense. Why would you want a single tab or accordion item? Maybe it would be better to convert this to a maximum number of allowed tabs or accordion items (even though I'm not sure in which case you would want to impose a maximum.

But all in all it is a nice module, that a lot of people could benefit from!

PA robot’s picture

Status: Needs work » Closed (won't fix)

Closing due to lack of activity. Feel free to reopen if you are still working on this application.

I'm a robot and this is an automated message from Project Applications Scraper.

PA robot’s picture

Issue summary: View changes

Update description