Hello,

maybe I am doing something wrong, but it seems to me that mini panels are not putting css classes given for an row or column into the generated code.

I defined one css class for an row and looked into the code with firebug, but it didn't show up.
Same with column. But for regions it is working.

Is this a bug or doing I'm something wrong?

CommentFileSizeAuthor
#8 region-css.jpg76.21 KBDanny Englander
Support from Acquia helps fund testing for Drupal Acquia logo

Comments

merlinofchaos’s picture

Status: Active » Postponed (maintainer needs more info)

How did you define these classes? You haven't given me enough information to be sure what it is you're actually doing.

Methos76’s picture

sorry for the lack of information..

i try to explain, where i defined the css classes, but I have to translate the texts back to english, cause I am using the german translation.

under /admin/build/mini-panels/list/startseiteninfos/edit/content
I can edit my mini panel.

I click on view layout designer ( Layout-Designer anzeigen ) so I get to see anny Row (Zeile), Column (Spalte), canvas (Leinwand) and region (Region).

When I click on the region link I get a little menu containing 2 links ( delete region ( Region löschen) and regions configuration (Regionen Einstellungen).

With the last on i get the possibility to declare one or more css classes i want to be added to the generated html code.

The same I can do on row and column, but this css classes are NOT added to the generated html code.
Thats my problem. Why does it work for regions but in this case not for row or column.

Hope this explaination helps you to understand what i want to do and what does not work as expected.

Letharion’s picture

Category: bug » support

Hello Methos76. :) I see you have been a member of the community for quite some time, and have opened a number of issues before. I would like to point out that you are yourself responsible for ensuring that bug reports are easily reproducible, and that you reset an issue to active once you have provided the requested information, thanks.

merlinofchaos’s picture

Ahh. The issue is that flexible does not print the HTML for a row or column if it thinks it is unnecessary, in order to reduce div weight.

I guess having a defined class should actually force the row/column to be necessary.

Letharion’s picture

Version: 6.x-3.10 » 7.x-3.x-dev
Assigned: Methos76 » Unassigned
Category: support » bug
Status: Postponed (maintainer needs more info) » Active

#4 makes it sounds like there's work to do here.

agn507’s picture

Has this been considered any further? I've ran into this issue several times but eventually implemented some type of workaround. I typically use flexible layout to get some styling applied to the mini-panel.

What exactly makes printing the classes unnecessary? I could only assume this is when the region inside a row or column is empty. The problem is I have a simple flexible layout with one column, one row and one region. In this region I output a few blocks. If the classes still won't print on the row and column I can't think of a situation where it would actually print them. If that is the case does this mean the the classes do nothing?

Danny Englander’s picture

I just ran into this very same issue with a Drupal 6 site I'm working on. It seems to me that if you are defining your own layout, then you should be able to leverage any custom classes that you define for rows and columns. I don't think it would add extra div weight as the class would simply be added on to the existing element. In my case my custom row class does shows up:

<div class="panels-flexible-row panels-flexible-row-18-left panels-flexible-row-first panels-flexible-row-last clear-block mega-row">

where "mega-row" is my custom row class.

... But then within the columns under this element, my custom column class does not show up. Then, I'm in a predicament where I'd have to do some nasty theming to apply some global styles to the columns.

<div class="panels-flexible-row-18-main-row-left">
<div class="panels-flexible-row-18-main-row-middle">
<div class="panels-flexible-row-18-main-row-right">

etc...

- instead of <div class="panels-flexible-row-18-main-row-left mega-column">

... where mega-column would be my global column class.

I'm guessing I'll have to somehow pull out a template and add it to my theme for a complete override but I've not used panels very much so I don't know...

Danny Englander’s picture

FileSize
76.21 KB

Well it turns out that my "column" was actually the region and that's where I was able to set a custom CSS class that subsequently showed up in the right spot. (see attached image)

kopeboy’s picture

Yeah, but the problem still exists. I can define my css classes in the region (even css ID), but what if I have 2 regions in the ROW and I want to apply the class to both. The class defined for the ROW won't show up!

If I put the class on the COLUMN it will show, but then I mess up with its positioning (I'm applying a position:fixed with jQuery when the element is scrolled out).
If I put the class on the single REGIONS inside the ROW they will show up, but then the script is doing twice the work and doesn't adapt to changing content (hence height) in the regions.

There are 3 levels of divs between the panels column and the actual content, why that's it if I can't apply formatting on every one of them.

I'm not an expert but I think this needs a fix.

Primajin’s picture

I have a similiar problem.

I had a row with a region in there. But I needed a third level. So I made a row with a column inside and then inside the column another row and then a region.

Now I gave them classes like "ROW1, COLUMN1, ROW2 and REGION1"...but in the Output I can only see "ROW1" and "REGION1" but nothing else. So this definetly has a bug or I'm doing something absolutely wrong.