function loadLink( $link_id, &$savantConf, &$fields, &$params ) { global $_MAMBOTS, $mtconf; $database =& JFactory::getDBO(); $jdate = JFactory::getDate(); $now = $jdate->toMySQL(); $nullDate = $database->getNullDate(); # Get all link data $database->setQuery( "SELECT l.*, u.username AS username, u.name AS owner, u.email AS owner_email, cl.cat_id AS cat_id, c.cat_name AS cat_name, img.filename AS link_image, img.img_id FROM (#__mt_links AS l, #__mt_cl AS cl)" . "\n LEFT JOIN #__users AS u ON u.id = l.user_id" . "\n LEFT JOIN #__mt_cats AS c ON c.cat_id = cl.cat_id" . "\n LEFT JOIN #__mt_images AS img ON img.link_id = l.link_id AND img.ordering = 1" . "\n WHERE link_published='1' AND link_approved > 0 AND l.link_id='".$link_id."' " . "\n AND ( publish_up = ".$database->Quote($nullDate)." OR publish_up <= '$now' ) " . "\n AND ( publish_down = ".$database->Quote($nullDate)." OR publish_down >= '$now' ) " . "\n AND l.link_id = cl.link_id" . "\n LIMIT 1" ); $link = $database->loadObject(); if(count($link)==0) return false; # Use owner's email address is listing e-mail is not available if ( $mtconf->get('use_owner_email') && empty($link->email) && $link->user_id > 0 ) { $link->email = $link->owner_email; } # Load link's template if ( empty($link->link_template) ) { // Get link's template $database->setQuery( "SELECT cat_template FROM #__mt_cats WHERE cat_id='".$link->cat_id."' LIMIT 1" ); $cat_template = $database->loadResult(); if ( !empty($cat_template) ) { loadCustomTemplate(null,$savantConf,$cat_template); } } else { loadCustomTemplate(null,$savantConf,$link->link_template); } # Load fields $fields = loadFields( $link ); # 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( $cfvalues as $cfkey => $cfvalue ) { $link->$cfkey = $cfvalue->value; } # Parameters $params = new JRegistry( $link->attribs ); $params->def( 'show_review', $mtconf->get('show_review')); $params->def( 'show_rating', $mtconf->get('show_rating' )); return $link; }
/** * 在 Wordpres 的 template_redirect 钩子触发的时候调用 * 用来根据 URL 地址来加载正确的模版 * @return Undefined */ function templateRedirect() { $basename = splitUrl($_GET['q'])[0]; if ($basename == '/') { $basename = 'home'; } loadCustomTemplate(TEMPLATEPATH . '/custom/' . "/{$basename}.php"); }
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(" ", $ct["level"] * 3) . ($ct["level"] > 0 ? " -" : '') . $ct["cat_name"]); } else { $cat_options[] = JHTML::_('select.option', $ct["cat_id"] * -1, str_repeat(" ", $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'); } }
function templateRedirect() { $basename = basename($_SERVER['REQUEST_URI'], '?' . $_SERVER['QUERY_STRING']); loadCustomTemplate(TEMPLATEPATH . '/custom/' . "{$basename}.php"); }