• Hello Fabrik Community

    Fabrik is now in the hands of the development team that brought you Fabrik for Joomla 4. We have recently transitioned the Fabrik site over to a new server and are busy trying to clean it up. We have upgraded the site to Joomla 4 and are running the latest version of Fabrik 4. We have also upgraded the Xenforo forum software to the latest version. Many of the widgets you might have been used to on the forum are no longer operational, many abandoned by the developers. We hope to bring back some of the important ones as we have time.

    Exciting times to be sure.

    The Fabrik 4.0 Official release is now available. In addition, the Fabrik codebase is now available in a public repository. See the notices about these in the announcements section

    We wish to shout out a very big Thank You to all of you who have made donations. They have really helped. But we can always use more...wink..wink..

    Also a big Thank You to those of you who have been assisting others in the forum. This takes a very big burden off of us as we work on bugs, the website and the future of Fabrik.

[SOLVED] Custom templates

winchester

Member
Hi,
Does anyone have a set of template files that were completely custom or know of where I can see actual examples of the file codes? On the custom template page in the wiki, there's no example of how to use the codes are laid out.

Any help will be appreciated, thanks.

Winchester
 
Hi,
Recently, I've created a site almost entirely based on numerous custom Fabrik templates for lists, forms, detail pages, layout and other overrides. However, neither do I intend to give them away FOC ;), nor would it make sense as they were made for a specific site and purpose, likely very different from yours.

Anyhow, not sure which Wiki pages you looked at but, in combo with the default templates coming with Fabrik, these in the Designers section were absolutely sufficient for me, also thanks to them providing code examples including how each and every element can be accessed individually:

- For lists: http://fabrikar.com/forums/index.php?wiki/creating-a-custom-list-template/
- For forms and detail pages: http://www.fabrikar.com/forums/index.php?wiki/form-and-details-templates/
- For layouts: http://fabrikar.com/forums/index.php?wiki/jlayouts/

Other than your purpose, desired page layouts etc, the rest depends on the Joomla template you're using and e.g. its CSS/JS framework. Means you may want to use its existing classes for elements and containers, while still retaining certain Fabrik classes/IDs to not break e.g. JS functionality.

Sure, HTML/CSS and, depending on complexity of your project and pages, at least basic PHP/JS knowledge is crucial.
 
Thanks for the info, LousyFool..

As a designer, the Wiki pages on "Creating a custom list", it assumes that we all know what this means:

fabrik-custom-list.jpg

It wasn't until last night I realized that the I would need to create a set for each element where the "$elementLabel" and "$elementData" would be what is actually used for placement. With my first attempt, I had the entire code, changing only the "tablename___elementname" part in the placement. Of course it never worked. However, a few more words to those instruction would have made a world of difference. even better, proper wording and example of placing them. It seem to be the case for pretty much all the pages - the assumption that the readers are "developers" or "coders".

Sorry if I'm sounding a bit frustrated, but I'm way past my deadline proper documentation would have saved many people from having to come to the forum to get help. In fact, as a contribution, I'm willing to offer to update the documentation for the community. But, for now, I have to learn how to use Fabrik properly and to see where it fails to explain each in the documentations. I believe that Fabrik is a powerful extension. I've been wanting to give it a try for years, but due to the learning curve cited by many in the JED reviews, I held back until now.

Anyways, thanks for the links. I truly appreciate your info/links, but I've read them all already. I think I know what to do, though, but I'm sure I will have many other questions soon. I won't know them until I get to them.

Winchester
 
Surely, your updating the Wiki will be very much appreciated by everyone - thanks in advance.

Fabrik is an entirely free package, kept up to date in timely fashion, voluntarily supported within limits but, like every other extension I can think of, custom coding not included free of charge. Yet, it's a powerful tool for data collection, and management, from simple to ultra-complex, extremely versatile and with so many plugins available that I cannot imagine a situation where all of them could be needed. All of which can be configured within wide ranges or, if need be, even further customized.

Considering this, I think the Wiki already covers a whole lot, and we can be forgiving if there're gaps here or there. It can hardly, and sure never will, be able to cover all use cases or code examples, or be a complete handbook for devs or designers.

Out of the box, data display gives you generic table and div options, based on Joomla's on-board Bootstrap 2. Beyond that... yes, just like in every other even only remotely similar case, it takes time, learning and digging into the structure and, as stated, depending on your project and desired outcome, existing coding knowledge. Or more time and learning. Or the will and ability to hire someone else dealing with this.

<rant>
I don't mean you (hey, I don't even know you!), but since a while there's an ever-growing number of people out there calling themselves "(web) designers", clearly and solely based on the fact that they are able to replace copy and images in a template and, eventually, to do some drag & drop - if fool-proof enough. Worse, they expect the tools for this to be free or at least dirt-cheap. Worst, same is true for anything beyond that, such as customization, added functionality, and support of these extras. Again, it's not about you, but some other forum posts here and elsewhere speak for themselves. Nope, that's not the way it works or can work.
So, let's please not argue what a "designer" is or should be... but perhaps my bla-bla before this rant makes some sense... ;)
</rant>

Cheers!
 
I completely understand and absolutely agree. It's the same with graphics over the past 2 decades. Some persons learn how to use Photoshop and started offering design services. They don't even know vector vs bitmap. Heck, they don't even understand the relationship between colours and you can see it in their designs.

As for myself, I never claim to be a developer. In fact, I often caution that I'm not. I do figure out things easily and is able to understand the flow of codes in the files, I may even recognize what set of codes does what and may even be able to modify it to what I need, but I cannot write codes and does not understand codes enough to know when something is missing or shouldn't be there aside from the page failing.

I do understand and appreciate open source projects and I wish I knew enough to contribute codes, but I'm in no way capable. However, helping with the documentation, that I can do. In fact, as long as I understand any particular topic, I am willing to contribute by explaining it in great detail.

I tried restructuring the default_row.php layout and to some extent, it shows, except that it repeats the rows. I'm not sure what's causing the repeats, but it repeats each row about 7-8 times down the page.

I'm not sure if there's something I need to add or if there's something else I needed to remove, but I would truly appreciate if you could give me some guidance in fixing it.

Note: The template I'm modifying is a copy of the "div" list template.

--- CODE - default_row.php ---
PHP:
<?php
/**
* Fabrik List Template: Div Row
* Note the div cell container is now generated in the default template
* in FabrikHelperHTML::bootstrapGrid();
*
* @package     Joomla
* @subpackage  Fabrik
* @copyright   Copyright (C) 2005-2016  Media A-Team, Inc. - All rights reserved.
* @license     GNU/GPL http://www.gnu.org/copyleft/gpl.html
*/

// No direct access
defined('_JEXEC') or die('Restricted access');

$rowClass = isset($this->_row->rowClass) ? $this->_row->rowClass : '';
?>
<div class="<?php echo $rowClass; ?>">
<?php foreach ($this->headings as $heading => $label) :
   $d = @$this->_row->data->$heading;
 
   //skip empty elements but don't skip the checkbox (delete, list plugins)
   if (isset($this->showEmpty) && $this->showEmpty === false && trim(strip_tags($d)) == '' && $heading != 'fabrik_select') :
       continue;
   endif;
   $h = $this->headingClass[$heading];
   $c = $this->cellClass[$heading];
   $hStyle = empty($h['style']) ? '' : 'style="' . $h['style'] . '"';
   $cStyle = empty($c['style']) ? '' : 'style="'. $c['style'].'"';
    $bphotosData = $this->_row->data->buwb_beaches___media_photos;
    $bdescData = $this->_row->data->buwb_beaches___media_description;
    $bnameData = $this->_row->data->buwb_beaches___beach_name;
    $btownData = $this->_row->data->buwb_beaches___beach_town;
    $bparishData = $this->_row->data->buwb_beaches___beach_parish;
    $bhoursData = $this->_row->data->buwb_beaches___beach_hours;
    $badmData = $this->_row->data->buwb_beaches___facilities_entrancefeestructure;
    $bwebsiteData = $this->_row->data->buwb_beaches___man_linkwebsite;
    $bfacebookData = $this->_row->data->buwb_beaches___man_linkfacebook;
    $btwitterData = $this->_row->data->buwb_beaches___man_linktwitter;
    $binstagramData = $this->_row->data->buwb_beaches___man_linkinstagram;
?>
    <div class="row-fluid fabrikDivElement <?php echo $h['class']; ?>">
        <div class="panel-left panel">
            <div class="beach-photos"><?php echo $bphotosData; ?></div>
            <div class="beach-actions">
                Action Buttons go here
         
            </div>
        </div>
        <div class="panel-middle panel">
            <div class="beach-name"><h3><?php echo $bnameData; ?></h3></div>
            <div class="beach-location"><span><?php echo $btownData . ', ' . $bparishData; ?></span></div>
            <div class="beach-desc"><p><?php echo $bdescData; ?></p></div>
            <div class="beach-weblinks">
                <ul>
                    <li class="beach-website"><a href="<?php echo $bwebsiteData; ?>" target="_blank" rel="nofollow"><i class="fas fa-external-link-square-alt"></i></a></li>
                    <li class="beach-facebook"><a href="<?php echo $bfacebookData; ?>" target="_blank" rel="nofollow"><i class="fab fa-facebook-square"></i></a></li>
                    <li class="beach-twitter"><a href="<?php echo $btwitterData; ?>" target="_blank" rel="nofollow"><i class="fab fa-twitter-square"></i></a></li>
                    <li class="beach-instagram"><a href="<?php echo $binstagramData; ?>" target="_blank" rel="nofollow"><i class="fab fa-instagram"></i></a></li>
                </ul>
            </div>
        </div>
        <div class="panel-right panel">
            <div class="panel-inner">
                <div class="beach-adm">
                    <span class="heading-adm panel-heading">Admission</span>
                    <!-- <span class="data-adm adm-hrs"><?php // echo $badmData; ?></span> -->
                    <?php if(empty($badmData)) {echo 'Free';}else{echo '<span class="data-adm adm-hrs">' . $badmData . '</span>';} ?>
                </div>
                <div class="beach-hours">
                    <span class="heading-hours panel-heading">Opening Hours</span>
                    <!-- <span class="data-hrs and-hrs"><?php // echo $bhoursData; ?></span> -->
                    <?php if(empty($bhoursData)) {echo 'Always open';}else{echo '<span class="data-hrs adm-hrs">' . $bhoursData . '</span>';} ?>
                </div>
            </div>
        </div>
   </div>
   <?php
endforeach;
?>
</div>


This is what I'm getting when I publish it.

fabrik-beaches-test-issue-01.jpg

Thanks in advanced.
 
Last edited:
Hmm... nothing I can see in your code causing repetition of rows.
Did you also modify default.php in your custom template?
What in the backend, or if you switch to a default template like bootstrap or div, are rows repeated there as well?

P.S.: When posting code here, especially if it's a lot, it'd be better readable if you did so by using the "Insert" button of the editor or by using
Code:
...
tags - thanks.
 
Hmm... nothing I can see in your code causing repetition of rows.
Did you also modify default.php in your custom template?
What in the backend, or if you switch to a default template like bootstrap or div, are rows repeated there as well?

P.S.: When posting code here, especially if it's a lot, it'd be better readable if you did so by using the "Insert" button of the editor or by using
Code:
...
tags - thanks.

The only thing changed in the default.php files is the column count from "3" to "1". It works find (except for the layout) with the original bootstrap & div templates.

There are some other things like, getting the action buttons to where I want them, and conditional statements to place some specific text when certain element is empty. I just can't seem to get the php if statement right, it seems.
 
Do you have a list join? If so, what's your setting for "Display mode"? Should be "Merge rows"...
http://fabrikar.com/forums/index.php?wiki/list-joins/

No. No joins at all. I think Fabrik create some joins for fileupload, though. I have 2 of them on the from - one for photos and the other for files. These are handled completely by the fileupload plugin though. But, is there something I should have done to be able to make it run properly for custom templates? Also, if that's the case, wouldn't this be the same or similar issue even with the default templates?
 
Hey. I figured it out.

The problem was the "foreach" statement. The default_row.php doesn't really generate the full row. It generates each of the elements of the row to make up the complete row. (I hope I'm making sense on this.)

Essentially, the original file contains the codes to make up the row, by using the "foreach" statement to pull in all the data for each of the row's columns. When I added the layout for the entire row, it repeats it based on the column count in the list's row - in my case, 8 elements "show in list", so it repeated 8 times on the page.

Ok, so here's what I did.

Original codes in the list div template:

PHP:
<?php foreach ($this->headings as $heading => $label) :
   $d = @$this->_row->data->$heading;
   //skip empty elements but don't skip the checkbox (delete, list plugins)
   if (isset($this->showEmpty) && $this->showEmpty === false && trim(strip_tags($d)) == '' && $heading != 'fabrik_select') :
       continue;
   endif;
   $h = $this->headingClass[$heading];
   $c = $this->cellClass[$heading];
   $hStyle = empty($h['style']) ? '' : 'style="' . $h['style'] . '"';
   $cStyle = empty($c['style']) ? '' : 'style="'. $c['style'].'"';
    $bphotosData = $this->_row->data->buwb_beaches___media_photos;
    $bdescData = $this->_row->data->buwb_beaches___media_description;
    $bnameData = $this->_row->data->buwb_beaches___beach_name;
    $btownData = $this->_row->data->buwb_beaches___beach_town;
    $bparishData = $this->_row->data->buwb_beaches___beach_parish;
    $bhoursData = $this->_row->data->buwb_beaches___beach_hours;
    $badmData = $this->_row->data->buwb_beaches___facilities_entrancefeestructure;
    $bwebsiteData = $this->_row->data->buwb_beaches___man_linkwebsite;
    $bfacebookData = $this->_row->data->buwb_beaches___man_linkfacebook;
    $btwitterData = $this->_row->data->buwb_beaches___man_linktwitter;
    $binstagramData = $this->_row->data->buwb_beaches___man_linkinstagram;
?>

<!-- HTML STUFF HERE -->

<?php
  endforeach;
?>

Commented out or remove all the PHP codes for the "foreach" statement and the variables created for it.
PHP:
<?php //foreach ($this->headings as $heading => $label) :
   //$d = @$this->_row->data->$heading;

   //skip empty elements but don't skip the checkbox (delete, list plugins)
   //if (isset($this->showEmpty) && $this->showEmpty === false && trim(strip_tags($d)) == '' && $heading != 'fabrik_select') :
    //   continue;
   //endif;
   //$h = $this->headingClass[$heading];
   //$c = $this->cellClass[$heading];
   //$hStyle = empty($h['style']) ? '' : 'style="' . $h['style'] . '"';
   //$cStyle = empty($c['style']) ? '' : 'style="'. $c['style'].'"';
    $bphotosData = $this->_row->data->buwb_beaches___media_photos;
    $bdescData = $this->_row->data->buwb_beaches___media_description;
    $bnameData = $this->_row->data->buwb_beaches___beach_name;
    $btownData = $this->_row->data->buwb_beaches___beach_town;
    $bparishData = $this->_row->data->buwb_beaches___beach_parish;
    $bhoursData = $this->_row->data->buwb_beaches___beach_hours;
    $badmData = $this->_row->data->buwb_beaches___facilities_entrancefeestructure;
    $bwebsiteData = $this->_row->data->buwb_beaches___man_linkwebsite;
    $bfacebookData = $this->_row->data->buwb_beaches___man_linkfacebook;
    $btwitterData = $this->_row->data->buwb_beaches___man_linktwitter;
    $binstagramData = $this->_row->data->buwb_beaches___man_linkinstagram;
?>

// HTML STUFF HERE

<?php
  //endforeach;
?>


Thanks, Lousyfool for help me solve this. I truly appreciate it.
 
Hey. I figured it out.
(...)
Commented out or remove all the PHP codes for the "foreach" statement and the variables created for it.
Aaaahh goodness... yes, of course!!!
Sorry, wasn't thinking of this at all, obviously. But glad you got is solved!
 
Please try this:
$edit = $this->_row->data->fabrik_edit;
$view = $this->_row->data->fabrik_view_url;
Indeed... plus others such as $this->_row->data->fabrik_actions etc.

Just make a var_dump or print_r of $this->_row or $this->_row->data to see what's available.
 
Ajax Navigation will not work because fabrik structure is not met, and it is related to the css classes for each element.
That's why the foreach code is needed.
This is my example code and ajax navigation work properly.
PHP:
<?php
// No direct access
defined('_JEXEC') or die('Restricted access');

$rowClass = isset($this->_row->rowClass) ? $this->_row->rowClass : '';
$user = JFactory::getUser()->groups;
$userKeys = array_keys($user);
// the first element of your array is:
$userGroup = $user[$userKeys[0]];

$list_data = array();
foreach ($this->headings as $heading => $label) :
    $elem_data = new stdClass;
    $h = $this->headingClass[$heading];
    $c = $this->cellClass[$heading];
    $hStyle = empty($h['style']) ? '' : 'style="' . $h['style'] . '"';
    $cStyle = empty($c['style']) ? '' : 'style="'. $c['style'].'"';
    $lbl = $label;
    $lbl_class = $h['class'];
    $el_class = $c['class'];
    $el_data = @$this->_row->data->$heading;
    if($heading !== 'fabrik_select' && $heading !== 'fabrik_actions'){
        $el_name = explode ("___", $heading)[1];
        $elem_data->el_name = $el_name;
        $elem_data->el_lbl = $lbl;
        $elem_data->lbl_class = $el_class;
        $elem_data->el_class = $el_class;
        $elem_data->el_data = $el_data;   
        $list_data[$el_name] = $elem_data;
    }
        
    if($heading == 'fabrik_actions'){
        $actions_class = $el_class;
        $actions = $el_data;
        $elem_data->actions_class = $actions_class;
        $elem_data->actions = $actions;
        $list_data[$heading] = $elem_data;       
    }
    if($heading == 'fabrik_select'){
        $select_class = $el_class;
        $select = $el_data;
        $elem_data->select_class = $select_class;
        $elem_data->select = $select;
        $list_data[$heading] = $elem_data;
    }
   
    $d = @$this->_row->data->$heading;
    if (isset($this->showEmpty) && $this->showEmpty === false && trim(strip_tags($d)) == '') :
        continue;
    endif;
endforeach;
//echo '<pre>list_data' . var_export($list_data, true) . '</pre>';
?>
<div class="<?php echo $rowClass; ?>">
    <div class="row-fluid fabrikDivElement">       
        <div class="movie-container">
            <div class="<?php echo $list_data['element_name1']->el_class ?>">
                <?php echo $list_data['element_name1']->el_data ?>
            </div>
            <div class="<?php echo $list_data['element_name2']->el_class ?>">
                <?php echo $list_data['element_name2']->el_data;?>
            </div>
        </div>
        <?php if($userGroup == 6 || $userGroup == 8) : ?>
        <!--
            usergroup 6 -> Custom admin
            usergroup 6 -> Super User
        -->
            <div class="<?php echo $list_data['fabrik_actions']->actions_class ?>">
                <?php echo $list_data['fabrik_actions']->actions ?>
            </div>
            <div class="<?php echo $list_data['fabrik_select']->select_class ?>">
                <?php echo $list_data['fabrik_select']->select ?>
            </div>           
        <?php endif; ?>
    </div>
</div>
Maybe it's not a good decision, but for now I do an ideal job.
I accept any suggestions to optimize it.
 
Hi guys,

I figured out the action buttons shortly after my last post.

I create a variable for it:
PHP:
    $bActions = $this->_row->data->fabrik_actions;

and then place it where I want it to show. See the full code below. Everything is working fine except for the thumbs plugin. I can't seem to figure this one out.

It shows on the form, but when it get clicked, it refreshes the page like a filter. On the original default_row.php page, it shows and when clicked, it shows the rating. I think there's still something still wrong with the plugin even on the original, but I plan to open up a new thread for that.

Everything else on in the custom codes below works as expected. May be it can help someone else.

PHP:
<?php
/**
 * Fabrik List Template: Div Row
 * Note the div cell container is now generated in the default template
 * in FabrikHelperHTML::bootstrapGrid();
 *
 * @package     Joomla
 * @subpackage  Fabrik
 * @copyright   Copyright (C) 2005-2016  Media A-Team, Inc. - All rights reserved.
 * @license     GNU/GPL http://www.gnu.org/copyleft/gpl.html
 */

// No direct access
defined('_JEXEC') or die('Restricted access');

$rowClass = isset($this->_row->rowClass) ? $this->_row->rowClass : '';
?>
<div class="<?php echo $rowClass; ?>">
<?php
    $bphotosData = $this->_row->data->buwb_beaches___media_photos;
    $bdescData = $this->_row->data->buwb_beaches___media_description;
    $bnameData = $this->_row->data->buwb_beaches___beach_name;
    $btownData = $this->_row->data->buwb_beaches___beach_town;
    $bparishData = $this->_row->data->buwb_beaches___beach_parish;
    $bhoursData = $this->_row->data->buwb_beaches___beach_hours;
    $badmData = $this->_row->data->buwb_beaches___facilities_entrancefeestructure;
    $bwebsiteData = $this->_row->data->buwb_beaches___man_linkwebsite;
    $bfacebookData = $this->_row->data->buwb_beaches___man_linkfacebook;
    $btwitterData = $this->_row->data->buwb_beaches___man_linktwitter;
    $binstagramData = $this->_row->data->buwb_beaches___man_linkinstagram;
    $blikeData = $this->_row->data->buwb_beaches___media_like;
    $bActions = $this->_row->data->fabrik_actions;
?>
    <div class="row-fluid fabrikDivElement beach-item">
        <div class="panel-left panel">
            <div class="beach-photos"><?php echo $bphotosData; ?></div>
            <div class="beach-actions fabrik_action">
                <div class="btn-group">
                    <?php echo $bActions;?>
                </div>
            </div>
        </div>
        <div class="panel-middle panel">
            <div class="beach-name"><h3><?php echo $bnameData; ?></h3></div>
            <div class="beach-location"><span><?php echo $btownData . ', ' . $bparishData; ?></span></div>
            <div class="beach-desc"><p><?php echo $bdescData; ?></p></div>
            <div class="beach-weblinks">
                <ul>
                    <?php if(empty($bwebsiteData)){echo '';}else{echo '<li class="beach-website"><a href="' . $bwebsiteData . '" target="_blank" rel="nofollow"><i class="fas fa-external-link-square-alt"></i></a></li>';} ?>
                    <?php if(empty($bfacebookData)){echo '';}else{echo '<li class="beach-facebook"><a href="' . $bfacebookData . '" target="_blank" rel="nofollow"><i class="fab fa-facebook-square"></i></a></li>';} ?>
                    <?php if(empty($btwitterData)){echo '';}else{echo '<li class="beach-twitter"><a href="' . $btwitterData . '" target="_blank" rel="nofollow"><i class="fab fa-twitter-square"></i></a></li>';} ?>
                    <?php if(empty($binstagramData)){echo '';}else{echo '<li class="beach-instagram"><a href="' . $binstagramData . '" target="_blank" rel="nofollow"><i class="fab fa-instagram"></i></a></li>';} ?>
                </ul>
                <div class="beach-like"><?php echo $blikeData; ?></div>
            </div>
        </div>
        <div class="panel-right panel">
            <div class="panel-inner">
                <div class="beach-adm">
                    <span class="heading-adm panel-heading">Admission</span>
                    <?php if(empty($badmData)) {echo 'Free';}else{echo '<span class="data-adm adm-hrs">' . $badmData . '</span>';} ?>
                </div>
                <div class="beach-hours">
                    <span class="heading-hours panel-heading">Opening Hours</span>
                    <?php if(empty($bhoursData)) {echo 'Always open';}else{echo '<span class="data-hrs adm-hrs">' . $bhoursData . '</span>';} ?>
                </div>
            </div>
        </div>
    </div>
</div>
 
Last edited:
Ajax Navigation will not work because fabrik structure is not met, and it is related to the css classes for each element.
That's why the foreach code is needed.
This is my example code and ajax navigation work properly.
PHP:
---
I accept any suggestions to optimize it.

I think I understand why the "foreach" issue happened. You moved the HTML codes outside of the function - after "endforeach".. Am I correct on this?
 
Everything is working fine except for the thumbs plugin. I can't seem to figure this one out.
Again, do a print_r($this->_row->data), it'll show you the thumbs, too... you can actually try out right there which element of the thumbs object is the one to use.

Eventually switch temporarily back to bootstrap default template to see ID/classes of the thumbs element there... they may be needed for the JS to work.
 
Again, do a print_r($this->_row->data), it'll show you the thumbs, too... you can actually try out right there which element of the thumbs object is the one to use.

Eventually switch temporarily back to bootstrap default template to see ID/classes of the thumbs element there... they may be needed for the JS to work.

How do I do this?
 
How do you do what?

#1:
E.g. at the beginning of your default_row.php:
Code:
echo '<pre>';
print_r($this->_row->data);
echo '</pre>';

#2:
With bootstrap or div default template, check the HTML output for and around a thumbs element. Rebuild element/container ID/class (one or the other or both) in your custom template as needed.
(Note: I'm not using the thumbs element anywhere, so haven't tried yet, but for sure it's working with JS for which element-specific ID and/or class is required.)
 
We are in need of some funding.
More details.

Thank you.

Members online

Back
Top