Exemple #1
0
 function lister()
 {
     $categories =& mosContact::getCategories($this->user);
     $count = count($categories);
     if ($count == 0 or $count == 1 and $categories[0]->numlinks == 1) {
         // No or one category that qualifies
         $this->contact_id = $count == 1 ? $categories[0]->minimum : 0;
         $controller = new contact_view_Controller($this->manager);
         $controller->view();
         if ($this->op == 'sendmail') {
             $this->sendmail();
         }
         return;
     }
     $rows = array();
     $currentcat =& new stdClass();
     // Parameters
     $menuhandler = mosMenuHandler::getInstance();
     $menu =& $menuhandler->getMenuByID($this->Itemid);
     $params =& $this->makeParams($menu->params, $menu->name);
     // page header
     $currentcat->header = $params->get('header');
     // Path to images
     $path = mamboCore::get('mosConfig_live_site') . '/images/stories/';
     $currentcat->descrip = '';
     $currentcat->img = '';
     if ($this->catid) {
         $params->set('type', 'category');
         // url links info for category
         $rows = mosContact::getContacts($this->catid, $this->user);
         // current category info
         foreach ($categories as $category) {
             if ($category->id == $this->catid) {
                 $currentcat =& $category;
                 // show description
                 $currentcat->descrip = $currentcat->description;
                 // page image
                 $currentcat->img = $path . $currentcat->image;
                 $currentcat->align = $currentcat->image_position;
                 // page header
                 if (@$currentcat->name != '') {
                     $currentcat->header .= ' - ' . $currentcat->name;
                 }
                 break;
             }
         }
     } else {
         $params->set('type', 'section');
         // show description
         if ($params->get('description')) {
             $currentcat->descrip = $params->get('description_text');
         }
         // page image
         if ($params->get('image') != -1) {
             $currentcat->img = $path . $params->get('image');
             $currentcat->align = $params->get('image_align');
         }
     }
     // used to show table rows in alternating colours
     $tabclass = array('sectiontableentry1', 'sectiontableentry2');
     HTML_contact::displaylist($categories, $rows, $this->catid, $currentcat, $params, $tabclass);
     if ($this->op == 'sendmail') {
         $this->sendmail();
     }
 }
Exemple #2
0
function listContacts($option, $catid)
{
    global $mainframe, $database, $my;
    global $mosConfig_live_site;
    global $Itemid;
    /* Query to retrieve all categories that belong under the contacts section and that are published. */
    $query = "SELECT *, COUNT( a.id ) AS numlinks" . "\n FROM #__categories AS cc" . "\n LEFT JOIN #__contact_details AS a ON a.catid = cc.id" . "\n WHERE a.published = 1" . "\n AND cc.section = 'com_contact_details'" . "\n AND cc.published = 1" . "\n AND a.access <= " . (int) $my->gid . "\n AND cc.access <= " . (int) $my->gid . "\n GROUP BY cc.id" . "\n ORDER BY cc.ordering";
    $database->setQuery($query);
    $categories = $database->loadObjectList();
    $count = count($categories);
    if ($count < 2 && @$categories[0]->numlinks == 1) {
        // if only one record exists loads that record, instead of displying category list
        contactpage($option, 0);
    } else {
        $rows = array();
        $currentcat = NULL;
        // Parameters
        $menu = $mainframe->get('menu');
        $params = new mosParameters($menu->params);
        $params->def('page_title', 1);
        $params->def('header', $menu->name);
        $params->def('pageclass_sfx', '');
        $params->def('headings', 1);
        $params->def('back_button', $mainframe->getCfg('back_button'));
        $params->def('description_text', _CONTACTS_DESC);
        $params->def('image', -1);
        $params->def('image_align', 'right');
        $params->def('other_cat_section', 1);
        // Category List Display control
        $params->def('other_cat', 1);
        $params->def('cat_description', 1);
        $params->def('cat_items', 1);
        // Table Display control
        $params->def('headings', 1);
        $params->def('position', 1);
        $params->def('email', 0);
        $params->def('phone', 1);
        $params->def('fax', 1);
        $params->def('telephone', 1);
        if ($catid == 0) {
            $catid = $params->get('catid', 0);
        }
        if ($catid) {
            $params->set('type', 'category');
        } else {
            $params->set('type', 'section');
        }
        if ($catid) {
            // url links info for category
            $query = "SELECT *" . "\n FROM #__contact_details" . "\n WHERE catid = " . (int) $catid . "\n AND published =1" . "\n AND access <= " . (int) $my->gid . "\n ORDER BY ordering";
            $database->setQuery($query);
            $rows = $database->loadObjectList();
            // current category info
            $query = "SELECT id, name, description, image, image_position" . "\n FROM #__categories" . "\n WHERE id = " . (int) $catid . "\n AND published = 1" . "\n AND access <= " . (int) $my->gid;
            $database->setQuery($query);
            $database->loadObject($currentcat);
            /*
            Check if the category is published or if access level allows access
            */
            if (!$currentcat->name) {
                mosNotAuth();
                return;
            }
        }
        // page description
        $currentcat->descrip = '';
        if (isset($currentcat->description) && $currentcat->description != '') {
            $currentcat->descrip = $currentcat->description;
        } else {
            if (!$catid) {
                // show description
                if ($params->get('description')) {
                    $currentcat->descrip = $params->get('description_text');
                }
            }
        }
        // page image
        $currentcat->img = '';
        $path = $mosConfig_live_site . '/images/stories/';
        if (isset($currentcat->image) && $currentcat->image != '') {
            $currentcat->img = $path . $currentcat->image;
            $currentcat->align = $currentcat->image_position;
        } else {
            if (!$catid) {
                if ($params->get('image') != -1) {
                    $currentcat->img = $path . $params->get('image');
                    $currentcat->align = $params->get('image_align');
                }
            }
        }
        // page header
        $currentcat->header = '';
        if (isset($currentcat->name) && $currentcat->name != '') {
            $currentcat->header = $params->get('header') . ' - ' . $currentcat->name;
        } else {
            $currentcat->header = $params->get('header');
        }
        // used to show table rows in alternating colours
        $tabclass = array('sectiontableentry1', 'sectiontableentry2');
        HTML_contact::displaylist($categories, $rows, $catid, $currentcat, $params, $tabclass);
    }
}