示例#1
0
/**
* Return 
* @param object #__mt_links object list results
* @param int Fields' filter type. Setting this to 0 will return all published field types.
*			 $view = 1 for Normal/Details View. $view = 2 for Summary View.
* @return mFields The formatted value of the field
*/
function loadFields($link, $view = 1)
{
    global $mtconf;
    $database =& JFactory::getDBO();
    require_once $mtconf->getjconf('absolute_path') . '/administrator/components/com_mtree/mfields.class.php';
    # Load all published CORE & custom fields
    $sql = "SELECT cf.*, cfv.link_id, cfv.value, cfv.attachment, cfv.counter, ft.ft_class FROM #__mt_customfields AS cf " . "\nLEFT JOIN #__mt_cfvalues AS cfv ON cf.cf_id=cfv.cf_id AND cfv.link_id = " . $link->link_id . "\nLEFT JOIN #__mt_fieldtypes AS ft ON ft.field_type=cf.field_type" . "\nWHERE cf.published = '1' ";
    switch ($view) {
        case 1:
            $sql .= "&& details_view = '1' ";
            break;
        case 2:
            $sql .= "&& summary_view = '1' ";
            break;
        default:
            break;
    }
    $sql .= "ORDER BY ordering ASC";
    $database->setQuery($sql);
    $fields = new mFields();
    $fields->setCoresValue($link->link_name, $link->link_desc, $link->address, $link->city, $link->state, $link->country, $link->postcode, $link->telephone, $link->fax, $link->email, $link->website, $link->price, $link->link_hits, $link->link_votes, $link->link_rating, $link->link_featured, $link->link_created, $link->link_modified, $link->link_visited, $link->publish_up, $link->publish_down, $link->metakey, $link->metadesc, $link->user_id, $link->username);
    $fields->loadFields($database->loadObjectList());
    while ($fields->hasNext()) {
        $field = $fields->getField();
        if ($field->getLinkId() == 0) {
            $fields->fields[$fields->pointer]['linkId'] = $link->link_id;
        }
        $fields->next();
    }
    return $fields;
}
示例#2
0
function editlisting($link_id, $option)
{
    global $savantConf, $Itemid, $mtconf;
    $database =& JFactory::getDBO();
    $my =& JFactory::getUser();
    $document =& JFactory::getDocument();
    require_once JPATH_COMPONENT_ADMINISTRATOR . DS . 'mfields.class.php';
    # Get cat_id if user is adding new listing.
    $cat_id = JRequest::getInt('cat_id', 0);
    // This var retrieve the link_id for adding listing
    $link_id_passfromurl = JRequest::getInt('link_id', 0);
    if ($link_id_passfromurl > 0 && $cat_id == 0) {
        $database->setQuery("SELECT cat_id FROM (#__mt_links AS l, #__mt_cl AS cl) WHERE l.link_id ='" . $link_id_passfromurl . "' AND cl.link_id = l.link_id");
        $cat_id = $database->loadResult();
    }
    $link = new mtLinks($database);
    # Do not allow Guest to edit listing
    if ($link_id > 0 && $my->id <= 0) {
        $link->load(0);
    } else {
        $link->load($link_id);
    }
    # Load all published CORE & custom fields
    $sql = "SELECT cf.*, " . ($link_id ? $link_id : 0) . " AS link_id, cfv.value AS value, cfv.attachment, cfv.counter, ft.ft_class FROM #__mt_customfields AS cf " . "\nLEFT JOIN #__mt_cfvalues AS cfv ON cf.cf_id=cfv.cf_id AND cfv.link_id = " . $link_id . "\nLEFT JOIN #__mt_fieldtypes AS ft ON ft.field_type=cf.field_type" . "\nWHERE cf.hidden ='0' AND cf.published='1' ORDER BY ordering ASC";
    $database->setQuery($sql);
    $fields = new mFields();
    $fields->setCoresValue($link->link_name, $link->link_desc, $link->address, $link->city, $link->state, $link->country, $link->postcode, $link->telephone, $link->fax, $link->email, $link->website, $link->price, $link->link_hits, $link->link_votes, $link->link_rating, $link->link_featured, $link->link_created, $link->link_modified, $link->link_visited, $link->publish_up, $link->publish_down, $link->metakey, $link->metadesc, $link->user_id, '');
    $fields->loadFields($database->loadObjectList());
    # Load images
    $database->setQuery("SELECT img_id, filename FROM #__mt_images WHERE link_id = '" . $link_id . "' ORDER BY ordering ASC");
    $images = $database->loadObjectList();
    # Get current category's template
    $database->setQuery("SELECT cat_name, cat_parent, cat_template, metakey, metadesc FROM #__mt_cats WHERE cat_id='" . $cat_id . "' AND cat_published='1' LIMIT 1");
    $cat = $database->loadObject();
    if ($link->link_id == 0) {
        if ($cat) {
            $document->setTitle(sprintf(JText::_('Add listing2'), $cat->cat_name));
        } else {
            $document->setTitle(JText::_('Add listing'));
        }
    } else {
        $document->setTitle(sprintf(JText::_('Edit listing2'), $link->link_name));
    }
    if (isset($cat->cat_template) && $cat->cat_template != '') {
        loadCustomTemplate(null, $savantConf, $cat->cat_template);
    }
    # Get other categories
    $database->setQuery("SELECT cl.cat_id FROM #__mt_cl AS cl WHERE cl.link_id = '{$link_id}' AND cl.main = '0'");
    $other_cats = $database->loadResultArray();
    # Pathway
    $pathWay = new mtPathWay($cat_id);
    $pw_cats = $pathWay->getPathWayWithCurrentCat($cat_id);
    $pathWayToCurrentCat = '';
    $mtCats = new mtCats($database);
    $pathWayToCurrentCat = ' <a href="' . JRoute::_("index.php?option=com_mtree&task=listcats&Itemid=" . $Itemid) . '">' . JText::_('Root') . "</a>";
    foreach ($pw_cats as $pw_cat) {
        $pathWayToCurrentCat .= JText::_('Arrow') . ' <a href="' . JRoute::_("index.php?option=com_mtree&task=listcats&cat_id=" . $pw_cat . "&Itemid=" . $Itemid) . '">' . $mtCats->getName($pw_cat) . "</a>";
    }
    # Savant Template
    $savant = new Savant2($savantConf);
    assignCommonVar($savant);
    $savant->assign('pathway', $pathWay);
    $savant->assign('pathWayToCurrentCat', $pathWayToCurrentCat);
    $savant->assign('cat_id', $link_id == 0 ? $cat_id : $link->cat_id);
    $savant->assign('other_cats', $other_cats);
    $savant->assignRef('link', $link);
    $savant->assignRef('fields', $fields);
    $savant->assignRef('images', $images);
    if ($mtconf->get('image_maxsize') > 1048576) {
        $savant->assign('image_size_limit', round($mtconf->get('image_maxsize') / 1048576, 1) . 'MB');
    } else {
        $savant->assign('image_size_limit', round($mtconf->get('image_maxsize') / 1024) . 'KB');
    }
    # Check permission
    if ($mtconf->get('user_addlisting') == 1 && $my->id < 1 || $link_id > 0 && $my->id == 0) {
        $savant->assign('error_msg', JText::_('Please login before addlisting'));
        $savant->display('page_error.tpl.php');
    } elseif ($link_id > 0 && $my->id != $link->user_id || $mtconf->get('user_allowmodify') == 0 && $link_id > 0 || $mtconf->get('user_addlisting') == -1 && $link_id == 0 || $mtconf->get('user_addlisting') == 1 && $my->id == 0) {
        echo _NOT_EXIST;
    } else {
        // OK, you can edit
        $database->setQuery("SELECT CONCAT('cust_',cf_id) as varname, caption As value, field_type, prefix_text_mod, suffix_text_mod FROM #__mt_customfields WHERE hidden <> '1' AND published = '1'");
        $custom_fields = $database->loadObjectList('varname');
        $savant->assign('custom_fields', $custom_fields);
        # Load custom fields' value from #__mt_cfvalues to $link
        $database->setQuery("SELECT CONCAT('cust_',cf_id) as varname, value FROM #__mt_cfvalues WHERE link_id = '" . $link_id . "'");
        $cfvalues = $database->loadObjectList('varname');
        foreach ($custom_fields as $cfkey => $value) {
            if (isset($cfvalues[$cfkey])) {
                $savant->custom_data[$cfkey] = $cfvalues[$cfkey]->value;
            } else {
                $savant->custom_data[$cfkey] = '';
            }
        }
        // Get category's tree
        if ($mtconf->get('allow_changing_cats_in_addlisting')) {
            getCatsSelectlist($cat_id, $cat_tree, 1);
            if ($cat_id > 0) {
                $cat_options[] = JHTML::_('select.option', $cat->cat_parent, JText::_('Arrow back'));
            }
            if ($mtconf->get('allow_listings_submission_in_root')) {
                $cat_options[] = JHTML::_('select.option', '0', JText::_('Root'));
            }
            if (count($cat_tree) > 0) {
                foreach ($cat_tree as $ct) {
                    if ($ct["cat_allow_submission"] == 1) {
                        $cat_options[] = JHTML::_('select.option', $ct["cat_id"], str_repeat("&nbsp;", $ct["level"] * 3) . ($ct["level"] > 0 ? " -" : '') . $ct["cat_name"]);
                    } else {
                        $cat_options[] = JHTML::_('select.option', $ct["cat_id"] * -1, str_repeat("&nbsp;", $ct["level"] * 3) . ($ct["level"] > 0 ? " -" : '') . "(" . $ct["cat_name"] . ")");
                    }
                }
            }
            $catlist = JHTML::_('select.genericlist', $cat_options, 'new_cat_id', 'size=8 class="inputbox"', 'value', 'text', '', 'browsecat');
            $savant->assignRef('catlist', $catlist);
        }
        // Give warning is there is already a pending approval for modification.
        if ($link_id > 0) {
            $database->setQuery("SELECT link_id FROM #__mt_links WHERE link_approved = '" . -1 * $link_id . "'");
            if ($database->loadResult() > 0) {
                $savant->assign('warn_duplicate', 1);
            } else {
                $savant->assign('warn_duplicate', 0);
            }
        }
        $savant->assign('pathWay', $pathWay);
        $savant->display('page_addListing.tpl.php');
    }
}
示例#3
0
function editlink($link_id, $cat_id, $for_approval = false, $option)
{
    global $mainframe, $mtconf;
    $database =& JFactory::getDBO();
    $my =& JFactory::getUser();
    $row = new mtLinks($database);
    $row->load($link_id);
    if ($row->link_id == 0) {
        $createdate =& JFactory::getDate();
        $row->cat_id = $cat_id;
        $row->alias = '';
        $row->link_hits = 0;
        $row->link_visited = 0;
        $row->link_votes = 0;
        $row->link_rating = 0.0;
        $row->link_featured = 0;
        $row->link_created = $createdate->toUnix();
        $row->publish_up = $createdate->toUnix();
        $row->publish_down = JText::_('Never');
        $row->link_published = 1;
        $row->link_approved = 1;
        $row->user_id = $my->id;
        $row->owner = $my->username;
    } else {
        if ($row->user_id > 0) {
            $database->setQuery('SELECT username FROM #__users WHERE id =' . $database->quote($row->user_id));
            $row->owner = $database->loadResult();
        } else {
            $row->owner = $my->username;
        }
    }
    if ($cat_id == 0 && $row->cat_id > 0) {
        $cat_id = $row->cat_id;
    }
    # Load images
    $database->setQuery('SELECT img_id, filename FROM #__mt_images WHERE link_id = ' . $database->quote($row->link_id) . ' ORDER BY ordering ASC');
    $images = $database->loadObjectList();
    $lists = array();
    # Load all published CORE & custom fields
    $sql = "SELECT cf.*, " . ($row->link_id ? $row->link_id : 0) . " AS link_id, cfv.value, cfv.attachment, cfv.counter, ft.ft_class FROM #__mt_customfields AS cf " . "\nLEFT JOIN #__mt_cfvalues AS cfv ON cf.cf_id=cfv.cf_id AND cfv.link_id = " . $database->quote($link_id) . "\nLEFT JOIN #__mt_fieldtypes AS ft ON ft.field_type=cf.field_type" . "\nWHERE cf.published='1' ORDER BY ordering ASC";
    $database->setQuery($sql);
    $fields = new mFields();
    $fields->setCoresValue($row->link_name, $row->link_desc, $row->address, $row->city, $row->state, $row->country, $row->postcode, $row->telephone, $row->fax, $row->email, $row->website, $row->price, $row->link_hits, $row->link_votes, $row->link_rating, $row->link_featured, $row->link_created, $row->link_modified, $row->link_visited, $row->publish_up, $row->publish_down, $row->metakey, $row->metadesc, $row->user_id, $row->owner);
    $fields->loadFields($database->loadObjectList());
    # Get other categories
    $database->setQuery('SELECT cl.cat_id FROM #__mt_cl AS cl WHERE cl.link_id = ' . $database->quote($link_id) . ' AND cl.main = 0');
    $other_cats = $database->loadResultArray();
    # Get Pathway
    $pathWay = new mtPathWay($cat_id);
    # Is this approval for modification?
    if ($row->link_approved < 0) {
        $row->original_link_id = -1 * $row->link_approved;
    } else {
        $row->original_link_id = '';
    }
    # Compile list of categories
    if ($cat_id > 0) {
        $database->setQuery('SELECT cat_parent FROM #__mt_cats WHERE cat_id = ' . $database->quote($cat_id));
        $browse_cat_parent = $database->loadResult();
    }
    $categories = array();
    if ($cat_id > 0) {
        $categories[] = JHTML::_('select.option', $browse_cat_parent, JText::_('Arrow back'));
    }
    $database->setQuery('SELECT cat_id AS value, cat_name AS text FROM #__mt_cats' . "\nWHERE cat_parent = " . $database->quote($cat_id) . " AND cat_approved = '1' AND cat_published = '1' ORDER BY cat_name ASC");
    $categories = array_merge($categories, $database->loadObjectList());
    $lists['cat_id'] = JHTML::_('select.genericlist', $categories, 'new_cat_id', 'size="8" class="text_area" style="display:block;width:50%;margin-top:6px;"', 'value', 'text', $row->getCatID(), 'browsecat');
    # Get Return task - Used by listpending_links
    $returntask = JRequest::getCmd('returntask', '', 'post');
    # Get params definitions
    $form = new JParameter($row->attribs, JPATH_COMPONENT . DS . 'models' . DS . 'listing.xml');
    $form->set('owner', $row->owner);
    $form->set('alias', $row->alias);
    $form->set('link_approved', $row->link_approved);
    $form->set('link_published', $row->link_published);
    $form->set('link_featured', $row->link_featured);
    $form->set('link_created', JHTML::_('date', $row->link_created, '%Y-%m-%d %H:%M:%S'));
    $form->set('publish_up', JHTML::_('date', $row->publish_up, '%Y-%m-%d %H:%M:%S'));
    if (JHTML::_('date', $row->publish_down, '%Y') <= 1969 || $row->publish_down == $database->getNullDate()) {
        $form->set('publish_down', JText::_('Never'));
    } else {
        $form->set('publish_down', JHTML::_('date', $row->publish_down, '%Y-%m-%d %H:%M:%S'));
    }
    $form->set('link_template', $row->link_template);
    $form->set('metakey', $row->metakey);
    $form->set('metadesc', $row->metadesc);
    $form->set('link_rating', $row->link_rating);
    $form->set('link_votes', $row->link_votes);
    $form->set('link_hits', $row->link_hits);
    $form->set('link_visited', $row->link_visited);
    $form->set('internal_notes', $row->internal_notes);
    $form->loadINI($row->attribs);
    if ($row->link_approved <= 0) {
        $database->setQuery('SELECT link_id FROM #__mt_links WHERE link_approved <= 0 ORDER BY link_created ASC, link_modified DESC');
        $links = $database->loadResultArray();
        $number_of_prev = array_search($row->link_id, $links);
        $number_of_next = count($links) - 1 - $number_of_prev;
    } else {
        $number_of_prev = 0;
        $number_of_next = 0;
    }
    HTML_mtree::editlink($row, $fields, $images, $cat_id, $other_cats, $lists, $number_of_prev, $number_of_next, $pathWay, $returntask, $form, $option);
}