Top Left Text cha

Web & App Development

Maximenu CK updates cause issues many times.  I'll start logging them for both myself or others that need some reference to possible fixes.

The last update to version 8.1.2 came with some changes to the styles.  The module style sheet, in thus far my first issue, has an extra '!important' after the float of line items...

Changed from:
div#maximenuck ul.maximenuck {
float: none;
}
To:
div#maximenuck ul.maximenuck {
float: none !important;
}
In my case, I just needed to adjust my style sheet as I was using the class of the line item instead of the ID (and IDs take precedence over classes).
Comment (0) Hits: 2554

Language Overrides/Modifications

This can be done through the language manager. Or, you can copy the contents of \components\com_djclassifieds\language\en-GB\en-GB.com_djclassifieds.ini into your language overrides file at \language\overrides\en-GB.override.ini and alter that file at will.

Modifying the Theme

  • Inside \components\com_djclassifieds\themes, create a new folder and name it whatever you want (your theme name).
  • Copy all folders and files inside of the default theme (\components\com_djclassifieds\themes\default) and paste into your new theme folder you just created.
  • Go to the DJ Classified configuration page, then to the tab 'views', then select your new custom theme.

You can modify anything inside your theme folder... or you can create new files. As you can see, there isn't anything inside the 'views' folder of your theme.

So, for example, if you want to create a new item details (or main advert page) template:

  • Inside the 'views' folder of your theme, create a new folder, 'item'.
  • Then, copy the file \components\com_djclassifieds\views\item\tmpl\default.php into that new folder ('item') that you just created inside your theme.
  • Modify the new default.php file at will!

Please note that the item details page is divided into many sections inside the /item/ folder. The default.php file I just used as an example calls those other files (like default_images.php) into it. You can alter the main structure by moving these sections around inside the main default.php file... or change the outside classes or IDs and such.

So, basically, anything inside the main component views folder (\components\com_djclassifieds\views) can be re-created inside your new theme folder... just remember to keep the folder structure as demonstrated above in the example.

Comment (0) Hits: 4266
Do not use HS Highlighter unless you want to get your pages removed from Google.  This extension pushes your content off the right side of the screen on mobile devices - and Google can see this and WILL remove those pages from their mobile index.  Do your site a favor and do not use this extension until the developers reallize this and fix it.

Edited****  Work-around


I found a workaround... just put this in your mobile style sheet:
.content, pre {
    word-wrap:break-word;
}

Where '.content' is the class of your main area of content (parent of where the code highlighter is located).  I re-analyzed pages in GWT and they are now 'mobile friendly'.





Comment (0) Hits: 2764
If you would like to have a modern table-less, easy to customize template for the list view in Content Builder, follow these directions...

Version info: Joomla 3.6     Content Builder 1.0

First, I want to say that this extension is an awesome, powerful component when customized.  It's uses are endless in the world of Joomla.  Much thanks to the guys at Crosstec for building such a useful extension.

This instruction includes putting these changes inside your template folder so that they won't get overwritten via updates.  So, in your template folder, if you don't already have an html folder create that first.  Then create /com_contentbuilder/ inside of that folder and /list/ inside that folder.  

Example: /templates/[your template]/html/com_contentbuilder/list/listone.php

Then create a file called listone.php, put the following code inside of that, and add upload that file to the /list/ folder you created.

I also modified the template so that it doesn't show each field's class as 'hidden-phone'.  Just looked odd to me classifying every line item like that so I made those classes 'itemField'.  And since they aren't in rows, I changed the code to output class="item" id="item1" (for example) instead of class="row0" etc.

One last thing... after you upload that file, pick the menu item Content Builder >> List View (custom 1) instead of Content Builder >> List View.

listone.php:
<?php
/**
 * @package     ContentBuilder
 * @author      Markus Bopp
 * @link        http://www.crosstec.de
 * @license     GNU/GPL
 */

defined('_JEXEC') or die('Restricted access');

require_once(JPATH_COMPONENT_ADMINISTRATOR . DS . 'classes' . DS . 'contentbuilder_helpers.php');

$language_allowed = contentbuilder::authorizeFe('language');
$edit_allowed = class_exists('cbFeMarker') ? contentbuilder::authorizeFe('edit') : contentbuilder::authorize('edit');
$delete_allowed = class_exists('cbFeMarker') ? contentbuilder::authorizeFe('delete') : contentbuilder::authorize('delete');
$view_allowed = class_exists('cbFeMarker') ? contentbuilder::authorizeFe('view') : contentbuilder::authorize('view');
$new_allowed = class_exists('cbFeMarker') ? contentbuilder::authorizeFe('new') : contentbuilder::authorize('new');
$state_allowed = class_exists('cbFeMarker') ? contentbuilder::authorizeFe('state') : contentbuilder::authorize('state');
$publish_allowed = class_exists('cbFeMarker') ? contentbuilder::authorizeFe('publish') : contentbuilder::authorize('publish');
$rating_allowed = class_exists('cbFeMarker') ? contentbuilder::authorizeFe('rating') : contentbuilder::authorize('rating');

JFactory::getDocument()->addScript(JURI::root(true).'/components/com_contentbuilder/assets/js/contentbuilder.js');

jimport('joomla.version');
$version = new JVersion();
$th = 'td';
if (version_compare($version->getShortVersion(), '1.6', '>=')) {
    $th = 'th';
}
$___getpost = 'get';
$___tableOrdering = "function tableOrdering";
if (version_compare($version->getShortVersion(), '3.0', '>=')) {
    $___getpost = 'post';
    $___tableOrdering = "Joomla.tableOrdering = function";
}
?>
<?php JFactory::getDocument()->addStyleDeclaration($this->theme_css);?>
<?php JFactory::getDocument()->addScriptDeclaration($this->theme_js);?>
<style type="text/css">
    .cbFieldFix{
        margin-bottom: 9px;
    }
    .cbPagesCounter{
        float: left;
        padding-right: 10px;
        padding-top: 4px;
    }
    #limit{
        max-width: 50px;
    }
</style>
<script language="javascript" type="text/javascript">
    <!--
    <?php echo $___tableOrdering;?>( order, dir, task ) {
        var form = document.adminForm;
        form.limitstart.value = <?php echo JRequest::getInt('limitstart',0)?>;
        form.filter_order.value 	= order;
        form.filter_order_Dir.value	= dir;
        document.adminForm.submit( task );
    }
    function contentbuilder_selectAll(checker){
        for(var i = 0; i < document.adminForm.elements.length; i++){
            if(  document.adminForm.elements[i].name == 'cid[]' ){
                if(checker.checked){
                    document.adminForm.elements[i].checked = true;
                }else{
                    document.adminForm.elements[i].checked = false;
                }
            }
        }
    }
    function contentbuilder_state(){
        document.getElementById('controller').value='edit';
        document.getElementById('view').value='edit';
        document.getElementById('task').value='state';
        document.adminForm.submit();
    }
    function contentbuilder_publish(){
        document.getElementById('controller').value='edit';
        document.getElementById('view').value='edit';
        document.getElementById('task').value='publish';
        document.adminForm.submit();
    }
    function contentbuilder_language(){
        document.getElementById('controller').value='edit';
        document.getElementById('view').value='edit';
        document.getElementById('task').value='language';
        document.adminForm.submit();
    }
    function contentbuilder_delete(){
        var confirmed = confirm('<?php echo JText::_('COM_CONTENTBUILDER_CONFIRM_DELETE_MESSAGE');?>');
        if(confirmed){
            document.getElementById('controller').value='edit';
            document.getElementById('view').value='edit';
            document.getElementById('task').value='delete';
            document.adminForm.submit();
        }
    }
    -->
</script>
<div class="cbListView<?php echo $this->page_class; ?>">
<form action="" method="<?php echo $___getpost;?>" name="adminForm" id="adminForm" onsubmit="return false">
<?php
if($this->export_xls):
    ?>
    <div class="itemField" style="float: right; text-align: right;">
        <a href="/<?php echo JRoute::_('index.php?option=com_contentbuilder&controller=export&id='.JRequest::getInt('id',0).'&type=xls&format=raw&tmpl=component'); ?>"><div class="cbXlsExportButton" style="background-image: url(/components/com_contentbuilder/images/xls.png); background-repeat: no-repeat; width: 16px; height: 16px;" alt="Export"></div></a>
    </div>
    <div style="clear: both;"></div>
<?php
endif;
?>

<?php
if( ( $this->show_page_heading && $this->page_title ) || $new_allowed || $delete_allowed ){
    ?>
    <h1 class="contentheading">
        <?php echo $this->page_title; ?>
    </h1>
<?php
}
?>

<?php echo $this->intro_text?>

<div style="float: right; text-align: right;">
    <?php
    if ($new_allowed) {
        ?>
        <button class="button btn btn-primary cbButton cbNewButton" onclick="location.href='<?php echo JRoute::_( 'index.php?option=com_contentbuilder&controller=edit&backtolist=1&id='.JRequest::getInt('id', 0).(JRequest::getVar('tmpl', '') != '' ? '&tmpl='.JRequest::getVar('tmpl', '') : '').(JRequest::getVar('layout', '') != '' ? '&layout='.JRequest::getVar('layout', '') : '').'&record_id=&limitstart='.JRequest::getInt('limitstart',0).'&filter_order='.JRequest::getCmd('filter_order') ); ?>'"><?php echo JText::_('COM_CONTENTBUILDER_NEW'); ?></button>
    <?php
    }
    ?>
    <?php
    if ($delete_allowed) {
        ?>
        <button class="button btn btn-primary cbButton cbDeleteButton" onclick="contentbuilder_delete();"><?php echo JText::_('COM_CONTENTBUILDER_DELETE'); ?></button>
    <?php
    }
    if ($delete_allowed || $new_allowed) {
        ?>
        <div style="padding-bottom: 10px;"></div>
    <?php
    }
    ?>
</div>
<div style="clear: both;"></div>

<?php
if($state_allowed || $publish_allowed || $language_allowed){
    ?>
    <?php
    if ($state_allowed && count($this->states) ||
        $publish_allowed ||
        $language_allowed) {
        echo '<div id="cbBulkTitleWrap" style="float: left; padding-right: 5px;">'.JText::_('COM_CONTENTBUILDER_BULK_OPTIONS') . '&nbsp;</div>';
    }
    if ($state_allowed && count($this->states)) {
        ?>
        <div id="cbEditStateWrap" style="float: left; padding-right: 5px;">
            <select style="max-width: 100px;" name="list_state">
                <option value="0"> - <?php echo JText::_('COM_CONTENTBUILDER_EDIT_STATE'); ?> - </option>
                <?php
                foreach($this->states As $state){
                    ?>
                    <option value="<?php echo $state['id']?>"><?php echo $state['title']?></option>
                <?php
                }
                ?>
            </select>
            <button class="button btn btn-secondary cbButton cbSetButton cbFieldFix" onclick="contentbuilder_state();"><?php echo JText::_('COM_CONTENTBUILDER_SET'); ?></button>
        </div>
    <?php
    }
    ?>
    <?php
    if ($publish_allowed) {
        ?>
        <div id="cbPublishWrap" style="float: left; padding-right: 5px;">
            <select style="max-width: 100px;" name="list_publish">
                <option value="-1"> - <?php echo JText::_('COM_CONTENTBUILDER_PUBLISHED_UNPUBLISHED'); ?> - </option>
                <option value="1"><?php echo JText::_('PUBLISH')?></option>
                <option value="0"><?php echo JText::_('UNPUBLISH')?></option>
            </select>
            <button class="button btn btn-secondary cbButton cbSetButton cbFieldFix" onclick="contentbuilder_publish();"><?php echo JText::_('COM_CONTENTBUILDER_SET'); ?></button>
        </div>
    <?php
    }
    ?>
    <?php
    if ($language_allowed) {
        ?>
        <div id="cbLanguageWrap" style="float: left; padding-right: 5px;">
            <select style="max-width: 100px;" name="list_language">
                <option value="*"> - <?php echo JText::_('COM_CONTENTBUILDER_LANGUAGE'); ?> - </option>
                <option value="*"><?php echo JText::_('COM_CONTENTBUILDER_ANY'); ?></option>
                <?php
                foreach($this->languages As $filter_language){
                    ?>
                    <option value="<?php echo $filter_language; ?>"><?php echo $filter_language; ?></option>
                <?php
                }
                ?>
            </select>
            <button class="button btn btn-secondary cbButton cbSetButton cbFieldFix" onclick="contentbuilder_language();"><?php echo JText::_('COM_CONTENTBUILDER_SET'); ?></button>
        </div>
    <?php
    }
    ?>
    <div style="clear: both;"></div>
<?php
}

if($this->display_filter){
    ?>
    <?php
    if($this->display_filter){
        $filter_cnt = 0;
        ?>
        <div id="cbFilterTitleWrap" style="float: left; padding-right: 5px;">
            <?php echo JText::_('COM_CONTENTBUILDER_FILTER') . '&nbsp;'; ?>
        </div>
        <div id="cbFilterWrap" style="float: left; padding-right: 5px;">
            <input style="max-width: 150px;" type="text" id="contentbuilder_filter" name="filter" value="<?php echo $this->escape($this->lists['filter']); ?>" class="inputbox" onchange="document.adminForm.submit();"/>
        </div>
        <?php
        if ($this->list_state && count($this->states)) {
            ?>
            <div id="cbStateFilterWrap" style="float: left; padding-right: 5px;">
                <select style="max-width: 100px;" name="list_state_filter" id="list_state_filter" onchange="document.adminForm.submit();">
                    <option value="0"> - <?php echo JText::_('COM_CONTENTBUILDER_EDIT_STATE'); ?> - </option>
                    <?php
                    foreach($this->states As $state){
                        ?>
                        <option value="<?php echo $state['id']?>"<?php echo $this->lists['filter_state'] == $state['id'] ? ' selected="selected"' : ''; ?>><?php echo $state['title']?></option>
                    <?php
                    }
                    ?>
                </select>
            </div>
            <?php
            $filter_cnt++;
        }

        if($this->list_publish && $publish_allowed){
            ?>
            <div id="cbPublishFilterWrap" style="float: left; padding-right: 5px;">
                <select style="max-width: 100px;" name="list_publish_filter" id="list_publish_filter" onchange="document.adminForm.submit();">
                    <option value="-1"> - <?php echo JText::_('COM_CONTENTBUILDER_PUBLISHED_UNPUBLISHED'); ?> - </option>
                    <option value="1"<?php echo $this->lists['filter_publish'] == 1 ? ' selected="selected"' : ''; ?>><?php echo JText::_('PUBLISHED')?></option>
                    <option value="0"<?php echo $this->lists['filter_publish'] == 0 ? ' selected="selected"' : ''; ?>><?php echo JText::_('UNPUBLISHED')?></option>
                </select>
            </div>
            <?php
            $filter_cnt++;
        }

        if($this->list_language){
            ?>
            <div id="cbLanguageFilterWrap" style="float: left; padding-right: 5px;">
                <select style="max-width: 100px;" name="list_language_filter" id="list_language_filter" onchange="document.adminForm.submit();">
                    <option value=""> - <?php echo JText::_('COM_CONTENTBUILDER_LANGUAGE'); ?> - </option>
                    <?php
                    foreach($this->languages As $filter_language){
                        ?>
                        <option value="<?php echo $filter_language; ?>"<?php echo $this->lists['filter_language'] == $filter_language ? ' selected="selected"' : ''; ?>><?php echo $filter_language; ?></option>
                    <?php
                    }
                    ?>
                </select>
            </div>
            <?php
            $filter_cnt++;
        }
        ?>
        <div id="cbSearchButtonWrap" style="float: left; padding-right: 5px;">
            <button class="button btn btn-secondary cbButton cbSearchButton" onclick="document.adminForm.submit();"><?php echo JText::_('COM_CONTENTBUILDER_SEARCH') ?></button>
            <button class="button btn btn-secondary cbButton cbResetButton" onclick="document.getElementById('contentbuilder_filter').value='';<?php echo $this->list_state && count($this->states) ? "if(document.getElementById('list_state_filter')) document.getElementById('list_state_filter').selectedIndex=0;" : ""; ?><?php echo $this->list_publish ? "if(document.getElementById('list_publish_filter')) document.getElementById('list_publish_filter').selectedIndex=0;" : ""; ?>document.adminForm.submit();"><?php echo JText::_('COM_CONTENTBUILDER_RESET') ?></button>
        </div>
    <?php
    }
}
?>

<div class="teamWrapper">
    <div id="headers">
    <?php
    if($this->show_id_column){
        ?>
        <div class="itemField">
            <?php echo JHTML::_('grid.sort', htmlentities('COM_CONTENTBUILDER_ID', ENT_QUOTES, 'UTF-8'), 'colRecord', $this->lists['order_Dir'], $this->lists['order'] ); ?>
        </div>
    <?php
    }

    if($this->select_column && ( $delete_allowed || $state_allowed || $publish_allowed ) ){
        ?>
        <div class="itemField">
            <input class="contentbuilder_select_all" type="checkbox" onclick="contentbuilder_selectAll(this);"/>
        </div>
    <?php
    }

    if($this->edit_button && $edit_allowed){
        ?>
        <div class="itemField">
            <?php echo JText::_('COM_CONTENTBUILDER_EDIT'); ?>
        </div>
    <?php
    }

    if($this->list_state){
        ?>
        <div class="itemField">
            <?php echo JText::_('COM_CONTENTBUILDER_EDIT_STATE'); ?>
        </div>
    <?php
    }

    if($this->list_publish && $publish_allowed){
        ?>
        <div class="">
            <?php echo JText::_('PUBLISHED'); ?>
        </div>
    <?php
    }

    if($this->list_language){
        ?>
        <div class="itemField">
            <?php echo JText::_('COM_CONTENTBUILDER_LANGUAGE'); ?>
        </div>
    <?php
    }

    if($this->list_article){
        ?>
        <div class="itemField">
            <?php echo JHTML::_('grid.sort', htmlentities('COM_CONTENTBUILDER_ARTICLE', ENT_QUOTES, 'UTF-8'), 'colArticleId', $this->lists['order_Dir'], $this->lists['order'] ); ?>
        </div>
    <?php
    }

    if($this->list_author){
        ?>
        <div class="itemField">
            <?php echo JHTML::_('grid.sort', htmlentities('COM_CONTENTBUILDER_AUTHOR', ENT_QUOTES, 'UTF-8'), 'colAuthor', $this->lists['order_Dir'], $this->lists['order'] ); ?>
        </div>
    <?php
    }

    if($this->list_rating){
        ?>
        <div class="itemField">
            <?php echo JHTML::_('grid.sort', htmlentities('COM_CONTENTBUILDER_RATING', ENT_QUOTES, 'UTF-8'), 'colRating', $this->lists['order_Dir'], $this->lists['order'] ); ?>
        </div>
    <?php
    }

    if($this->labels){
        $label_count = 0;
        $hidden = 'itemField';
        foreach($this->labels As $reference_id => $label){
            if($label_count == 0){
                $hidden = '';
            }else{
                $hidden = 'itemField';
            }
            ?>
            <div class="<?php echo $hidden;?>">
                <?php echo JHTML::_('grid.sort', nl2br( htmlentities( contentbuilder_wordwrap( $label, 20, "\n", true ), ENT_QUOTES, 'UTF-8') ), "col$reference_id", $this->lists['order_Dir'], $this->lists['order'] ); ?>
            </div>
            <?php
            $label_count++;
        }
    }
    ?>
</div> <!-- end #headers -->
<?php
$k = 0;
$n = count( $this->items );
for ($i=0; $i < $n; $i++)
{
    $item = $this->items[$i];

    $label = '';
    $first = '';
    foreach($item As $key => $value){
        if(!$first && $key != 'colRecord'){
            $first = html_entity_decode(cbinternal(strip_tags($value)), ENT_QUOTES, 'UTF-8');
        }
        // filtering out disallowed columns
        if(str_replace('col','',$key) == $this->title_field ){
            $label = html_entity_decode(cbinternal(strip_tags($value)), ENT_QUOTES, 'UTF-8');
            break;
        }
    }

    if(!$label && $first){
        $label = cbinternal($first);
    }
    $label = $label ? ': ' . $label : '';

    $this->slug = html_entity_decode($this->slug, ENT_QUOTES, 'UTF-8');
    $this->slug2 = html_entity_decode($this->slug2, ENT_QUOTES, 'UTF-8');

    $link = JRoute::_( 'index.php?option=com_contentbuilder&title='.contentbuilder::stringURLUnicodeSlug($this->slug.'-'.$this->slug2.$label).'&controller=details&id='.$this->form_id.'&record_id='.$item->colRecord.'&Itemid='.JRequest::getInt('Itemid',0).(JRequest::getVar('tmpl', '') != '' ? '&tmpl='.JRequest::getVar('tmpl', '') : '').(JRequest::getVar('layout', '') != '' ? '&layout='.JRequest::getVar('layout', '') : '').'&limitstart='.JRequest::getInt('limitstart',0).'&filter_order='.JRequest::getCmd('filter_order') );
    $edit_link = JRoute::_( 'index.php?option=com_contentbuilder&controller=edit&backtolist=1&id='.$this->form_id.'&record_id='.$item->colRecord.'&Itemid='.JRequest::getInt('Itemid',0).(JRequest::getVar('tmpl', '') != '' ? '&tmpl='.JRequest::getVar('tmpl', '') : '').(JRequest::getVar('layout', '') != '' ? '&layout='.JRequest::getVar('layout', '') : '').'&limitstart='.JRequest::getInt('limitstart',0).'&filter_order='.JRequest::getCmd('filter_order') );
    $publish_link = JRoute::_( 'index.php?option=com_contentbuilder&controller=edit&task=publish&backtolist=1&id='.$this->form_id.'&list_publish=1&cid[]='.$item->colRecord.'&Itemid='.JRequest::getInt('Itemid',0).(JRequest::getVar('tmpl', '') != '' ? '&tmpl='.JRequest::getVar('tmpl', '') : '').(JRequest::getVar('layout', '') != '' ? '&layout='.JRequest::getVar('layout', '') : '').'&limitstart='.JRequest::getInt('limitstart',0).'&filter_order='.JRequest::getCmd('filter_order') );
    $unpublish_link = JRoute::_( 'index.php?option=com_contentbuilder&controller=edit&task=publish&backtolist=1&id='.$this->form_id.'&list_publish=0&cid[]='.$item->colRecord.'&Itemid='.JRequest::getInt('Itemid',0).(JRequest::getVar('tmpl', '') != '' ? '&tmpl='.JRequest::getVar('tmpl', '') : '').(JRequest::getVar('layout', '') != '' ? '&layout='.JRequest::getVar('layout', '') : '').'&limitstart='.JRequest::getInt('limitstart',0).'&filter_order='.JRequest::getCmd('filter_order') );
    $select = '<input type="checkbox" name="cid[]" value="'.$item->colRecord.'"/>';
    ?>
    <div class="cbItem" id="<?php echo "item$k"; ?>">
        <?php
        if($this->show_id_column){
            ?>
            <div class="itemField">
                <?php
                if(( $view_allowed || $this->own_only )){
                    ?>
                    <a href="/<?php echo $link; ?>"><?php echo $item->colRecord; ?></a>
                <?php
                } else {
                    ?>
                    <?php echo $item->colRecord; ?>
                <?php
                }
                ?>
            </div>
        <?php
        }
        ?>
        <?php
        if($this->select_column && ( $delete_allowed || $state_allowed || $publish_allowed )){
            ?>
            <div class="itemField">
                <?php echo $select; ?>
            </div>
        <?php
        }
        ?>
        <?php
        if($this->edit_button && $edit_allowed){
            ?>
            <div class="itemField">
                <a href="/<?php echo $edit_link; ?>"><img src="/components/com_contentbuilder/images/edit.png" border="0" width="18" height="18"/></a>
            </div>
        <?php
        }
        ?>
        <?php
        if($this->list_state){
            ?>
            <div class="itemField" style="background-color: #<?php echo isset($this->state_colors[$item->colRecord]) ? $this->state_colors[$item->colRecord] : 'cccccc'; ?>;">
                <?php echo isset($this->state_titles[$item->colRecord]) ? htmlentities($this->state_titles[$item->colRecord], ENT_QUOTES, 'UTF-8') : ''; ?>
            </div>
        <?php
        }
        ?>
        <?php
        if($this->list_publish && $publish_allowed){
            ?>
            <div class="itemField">
                <?php echo contentbuilder_helpers::publishButton(isset($this->published_items[$item->colRecord]) && $this->published_items[$item->colRecord] ? true : false, $publish_link, $unpublish_link, 'tick.png', 'publish_x.png', $publish_allowed);?>
            </div>
        <?php
        }
        ?>
        <?php
        if($this->list_language){
            ?>
            <div class="itemField">
                <?php echo isset($this->lang_codes[$item->colRecord]) && $this->lang_codes[$item->colRecord] ? $this->lang_codes[$item->colRecord] : '*';?>
            </div>
        <?php
        }
        ?>
        <?php
        if($this->list_article){
            ?>
            <div class="itemField">
                <?php
                if(( $view_allowed || $this->own_only )){
                    ?>
                    <a href="/<?php echo $link; ?>"><?php echo $item->colArticleId; ?></a>
                <?php
                } else {
                    ?>
                    <?php echo $item->colArticleId; ?>
                <?php
                }
                ?>
            </div>
        <?php
        }
        ?>
        <?php
        if($this->list_author){
            ?>
            <div class="itemField">
                <?php
                if(( $view_allowed || $this->own_only )){
                    ?>
                    <a href="/<?php echo $link; ?>"><?php echo htmlentities($item->colAuthor, ENT_QUOTES, 'UTF-8'); ?></a>
                <?php
                } else {
                    ?>
                    <?php echo htmlentities($item->colAuthor, ENT_QUOTES, 'UTF-8'); ?>
                <?php
                }
                ?>
            </div>
        <?php
        }
        ?>
        <?php
        if($this->list_rating){
            ?>
            <div class="itemField">
                <?php
                echo contentbuilder::getRating(JRequest::getInt('id',0), $item->colRecord, $item->colRating, $this->rating_slots, JRequest::getCmd('lang',''), $rating_allowed, $item->colRatingCount, $item->colRatingSum);
                ?>
            </div>
        <?php
        }
        ?>
        <?php
        $label_count = 0;
        $hidden = ' class="itemField"';
        foreach($item As $key => $value){
            // filtering out disallowed columns
            if(in_array(str_replace('col','',$key), $this->visible_cols)){
                if($label_count == 999999){     /* changed from 0 to 999999 - not sure why you wouldn't want a class on the first item??? but left it for reference */
                    $hidden = ' class="itemField"';
                }else{
                    $hidden = ' class="itemField '.$key.'"';
                }
                ?>

                <div<?php echo $hidden;?>>
                    <?php
                    if(in_array(str_replace('col','',$key), $this->linkable_elements) && ( $view_allowed || $this->own_only )){
                        ?>
                        <a href="/<?php echo $link; ?>"><?php echo $value; ?></a>
                    <?php
                    }else{
                        ?>
                        <?php echo $value; ?>
                    <?php
                    }
                    ?>
                </div>
                <?php
                $label_count++;
            }
        }
        ?>
    </div>
    <?php
    $k = 1 - $k;
}
?>
</div>
<?php
$pages_links = $this->pagination->getPagesLinks();
if( $pages_links || $this->show_records_per_page ){
    ?>

    <div>
        <div class="pagination pagination-toolbar">
            <?php
            if($this->show_records_per_page){
                ?>
                <div class="cbPagesCounter itemField">
                    <?php echo $this->pagination->getPagesCounter(); ?>
                    <?php
                    echo '&nbsp;&nbsp;&nbsp;' . JText::_('COM_CONTENTBUILDER_DISPLAY_NUM') . '&nbsp;';
                    echo $this->pagination->getLimitBox();
                    ?>
                    <?php echo JText::_('COM_CONTENTBUILDER_OF');?>
                    <?php echo $this->total;?>
                </div>
            <?php
            }
            ?>
            <?php echo $pages_links; ?>
        </div>
    </div>
<?php
}
?>
<?php
if( JRequest::getVar('tmpl', '') != '' ){
    ?>
    <input type="hidden" name="tmpl" value="<?php echo JRequest::getVar('tmpl', ''); ?>"/>
<?php
}
?>
<input type="hidden" name="option" value="com_contentbuilder" />
<input type="hidden" name="task" id="task" value="" />
<input type="hidden" name="controller" id="controller" value="list" />
<input type="hidden" name="view" id="view" value="list" />
<input type="hidden" name="Itemid" value="<?php echo JRequest::getInt('Itemid',0); ?>"/>
<input type="hidden" name="limitstart" value="" />
<input type="hidden" name="id" value="<?php echo JRequest::getInt('id',0)?>" />
<input type="hidden" name="filter_order" value="<?php echo $this->lists['order']; ?>" />
<input type="hidden" name="filter_order_Dir" value="<?php echo $this->lists['order_Dir']; ?>" />
<?php echo JHtml::_('form.token'); ?>

</form>
</div>

 

Then, just add your own ids and classes to the template to differentiate between different items if needed.



Comment (0) Hits: 10377
Already spent hundreds on Community Builder and think it's too much to pay another $200 for CB Subs?

There are many membership extensions available at a fraction of the price of CB Subs.  Here's a few of the more popular ones I've looked at:

Membership Pro
$39.99
This is the extension I chose for several reasons.  First, it has a good rating from a lot of users on the Joomla Extensions Directory.  More importantly, I've purchased a component from them before, Event Booking.  The component had minimal bugs compared to other Joomla extensions and the developers were very helpful.

PayPlans 
Starts at $99
I decided not to go with this one because of the high price tag.


OSE Membership™
$99.00

I decided not to go with this one before even looking at the price.  The broken English was bad enough.  But then I see horrible typos (like words typed twice in a row).  From past experience, I believe that when an extension developer's website shows signs of neglect and a lack of care, it will reflect in the extension and probably the support for that extension.  


Account Expiration Control
Around $100
This one has an extra benefit of an affiliate program integration, but it doesn't say if it includes that or of you have to purchase an extra extension.  And when trying to check the details, I just encountered a broken link on their site.  Again, developers' site neglect could reflect on their extensions.  So I decided not go go further.

My final decision was to try Membership Pro because of their reputation, price, and familiarity with other components they offer.

UPDATE: I've used Membership Pro several times since then and am convinced this is the best solution for an alternative to CB Subs.


Comment (0) Hits: 5182
X