本文整理汇总了PHP中flexicontent_db::getTypeData方法的典型用法代码示例。如果您正苦于以下问题:PHP flexicontent_db::getTypeData方法的具体用法?PHP flexicontent_db::getTypeData怎么用?PHP flexicontent_db::getTypeData使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类flexicontent_db
的用法示例。
在下文中一共展示了flexicontent_db::getTypeData方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: display
//.........这里部分代码省略.........
// Workaround for Joomla not setting the default value for 'robots', so component must do it
$app_params = $app->getParams();
if ($_mp = $app_params->get('robots')) {
$document->setMetadata('robots', $_mp);
}
// Overwrite with menu META data if menu matched
if ($menu_matches) {
if ($_mp = $menu->params->get('menu-meta_description')) {
$document->setDescription($_mp);
}
if ($_mp = $menu->params->get('menu-meta_keywords')) {
$document->setMetadata('keywords', $_mp);
}
if ($_mp = $menu->params->get('robots')) {
$document->setMetadata('robots', $_mp);
}
if ($_mp = $menu->params->get('secure')) {
$document->setMetadata('secure', $_mp);
}
}
// ********************************************************************
// Get Content Types allowed for user selection in the Search Form
// Also retrieve their configuration, plus the currently selected types
// ********************************************************************
// Get them from configuration
$contenttypes = $params->get('contenttypes', array());
// Sanitize them
$contenttypes = !is_array($contenttypes) ? array($contenttypes) : $contenttypes;
$contenttypes = array_unique(array_map('intval', $contenttypes));
// Make sure these are integers since we will be using them UNQUOTED
// Force hidden content type selection if only 1 content type was initially configured
$canseltypes = count($contenttypes) == 1 ? 0 : $canseltypes;
// Type data and configuration (parameters), if no content types specified then all will be retrieved
$typeData = flexicontent_db::getTypeData(implode(",", $contenttypes));
$contenttypes = array();
foreach ($typeData as $tdata) {
$contenttypes[] = $tdata->id;
}
// Get Content Types to use either those currently selected in the Search Form, or those hard-configured in the search menu item
if ($canseltypes) {
$form_contenttypes = JRequest::getVar('contenttypes', array());
// Sanitize them
$form_contenttypes = !is_array($form_contenttypes) ? array($form_contenttypes) : $form_contenttypes;
$form_contenttypes = array_unique(array_map('intval', $form_contenttypes));
// Make sure these are integers since we will be using them UNQUOTED
$_contenttypes = array_intersect($contenttypes, $form_contenttypes);
if (!empty($_contenttypes)) {
$contenttypes = $_contenttypes;
}
// catch empty case: no content types were given or not-allowed content types were passed
}
// Check for zero content type (can occur during sanitizing content ids to integers)
if (!empty($contenttypes)) {
foreach ($contenttypes as $i => $v) {
if (!strlen($contenttypes[$i])) {
unset($contenttypes[$i]);
}
}
}
// Type based seach, get a single content type (first one, if more than 1 were given ...)
if ($type_based_search && !empty($contenttypes)) {
$single_contenttype = reset($contenttypes);
$contenttypes = array($single_contenttype);
} else {
$single_contenttype = false;
}
示例2: onContentSearch
/**
* Search method
*
* The sql must return the following fields that are used in a common display routine:
*
* href, title, section, created, text, browsernav
*
* @param string Target search string
* @param string matching option, natural|natural_expanded|exact|any|all
* @param string ordering option, newest|oldest|popular|alpha|category
* @param mixed An array if restricted to areas, null if search all
*/
function onContentSearch($text, $phrase = '', $ordering = '', $areas = null)
{
$app = JFactory::getApplication();
$view = JRequest::getCMD('view');
$app->setUserState('fc_view_total_' . $view, 0);
$app->setUserState('fc_view_limit_max_' . $view, 0);
// Check if not requested search areas, inside this search areas of this plugin
if (is_array($areas) && !array_intersect($areas, array_keys($this->onContentSearchAreas()))) {
return array();
}
// Initialize some variables
$db = JFactory::getDBO();
$user = JFactory::getUser();
$menu = $app->getMenu()->getActive();
// Get the COMPONENT only parameters and merge current menu item parameters
$params = clone JComponentHelper::getParams('com_flexicontent');
if ($menu) {
$params->merge($menu->params);
}
// some parameter shortcuts for SQL query
$show_noauth = $params->get('show_noauth', 0);
$orderby_override = $params->get('orderby_override', 1);
// Compatibility text search (LIKE %word%) for language without spaces
$filter_word_like_any = $params->get('filter_word_like_any', 0);
// ************************************************
// some parameter shortcuts common with search view
// ************************************************
$canseltypes = $params->get('canseltypes', 1);
$txtmode = $params->get('txtmode', 0);
// 0: BASIC Index, 1: ADVANCED Index without search fields user selection, 2: ADVANCED Index with search fields user selection
// Get if text searching according to specific (single) content type
$show_txtfields = $params->get('show_txtfields', 1);
//0:hide, 1:according to content, 2:use custom configuration
$show_txtfields = $txtmode ? 0 : $show_txtfields;
// disable this flag if using BASIC index for text search
// Get if filtering according to specific (single) content type
$show_filters = $params->get('show_filters', 1);
//0:hide, 1:according to content, 2:use custom configuration
// Force single type selection and showing the content type selector
$type_based_search = $show_filters == 1 || $show_txtfields == 1;
$canseltypes = $type_based_search ? 1 : $canseltypes;
// ********************************************************************
// Get Content Types allowed for user selection in the Search Form
// Also retrieve their configuration, plus the currently selected types
// ********************************************************************
// Get them from configuration
$contenttypes = $params->get('contenttypes', array());
// Sanitize them
$contenttypes = !is_array($contenttypes) ? array($contenttypes) : $contenttypes;
$contenttypes = array_unique(array_map('intval', $contenttypes));
// Make sure these are integers since we will be using them UNQUOTED
// Force hidden content type selection if only 1 content type was initially configured
$canseltypes = count($contenttypes) == 1 ? 0 : $canseltypes;
// Type data and configuration (parameters), if no content types specified then all will be retrieved
$typeData = flexicontent_db::getTypeData(implode(",", $contenttypes));
$contenttypes = array();
foreach ($typeData as $tdata) {
$contenttypes[] = $tdata->id;
}
// Get Content Types to use either those currently selected in the Search Form, or those hard-configured in the search menu item
if ($canseltypes) {
$form_contenttypes = JRequest::getVar('contenttypes', array());
// Sanitize them
$form_contenttypes = !is_array($form_contenttypes) ? array($form_contenttypes) : $form_contenttypes;
$form_contenttypes = array_unique(array_map('intval', $form_contenttypes));
// Make sure these are integers since we will be using them UNQUOTED
$_contenttypes = array_intersect($contenttypes, $form_contenttypes);
if (!empty($_contenttypes)) {
$contenttypes = $_contenttypes;
}
// catch empty case: no content types were given or not-allowed content types were passed
}
// Check for zero content type (can occur during sanitizing content ids to integers)
if (!empty($contenttypes)) {
foreach ($contenttypes as $i => $v) {
if (!strlen($contenttypes[$i])) {
unset($contenttypes[$i]);
}
}
}
// Type based seach, get a single content type (first one, if more than 1 were given ...)
if ($type_based_search && !empty($contenttypes)) {
$single_contenttype = reset($contenttypes);
$contenttypes = array($single_contenttype);
} else {
$single_contenttype = false;
}
// *************************************
//.........这里部分代码省略.........
示例3: onContentSearch
//.........这里部分代码省略.........
$wheres[] = '(' . implode(') OR (', $wheres2) . ')';
}
}
if (count($wheres)) {
$where = '(' . implode($phrase == 'all' ? ') AND (' : ') OR (', $wheres) . ')';
}
break;
}
if (!@$where) {
return array();
}
//if ( empty($where) ) $where = '1';
switch ($ordering) {
//case 'relevance': $order = ' ORDER BY score DESC, i.title ASC'; break;
case 'oldest':
$order = 'i.created ASC';
break;
case 'popular':
$order = 'i.hits DESC';
break;
case 'alpha':
$order = 'i.title ASC';
break;
case 'category':
$order = 'c.title ASC, i.title ASC';
break;
case 'newest':
$order = 'i.created DESC';
break;
default:
$order = 'i.created DESC';
break;
}
// ****************************************************************************************
// Create JOIN clause and WHERE clause part for filtering by current (viewing) access level
// ****************************************************************************************
$joinaccess = '';
$andaccess = '';
$select_access = '';
// Extra access columns for main category and content type (item access will be added as 'access')
$select_access .= ', c.access as category_access, ty.access as type_access';
if (!$show_noauth) {
// User not allowed to LIST unauthorized items
$aid_arr = JAccess::getAuthorisedViewLevels($user->id);
$aid_list = implode(",", $aid_arr);
$andaccess .= ' AND ty.access IN (0,' . $aid_list . ')';
$andaccess .= ' AND c.access IN (0,' . $aid_list . ')';
$andaccess .= ' AND i.access IN (0,' . $aid_list . ')';
$select_access .= ', 1 AS has_access';
} else {
// Access Flags for: content type, main category, item
$aid_arr = JAccess::getAuthorisedViewLevels($user->id);
$aid_list = implode(",", $aid_arr);
$select_access .= ', ' . ' CASE WHEN ' . ' ty.access IN (' . $aid_list . ') AND ' . ' c.access IN (' . $aid_list . ') AND ' . ' i.access IN (' . $aid_list . ') ' . ' THEN 1 ELSE 0 END AS has_access';
}
// **********************************************************************************************************************************************************
// Create WHERE clause part for filtering by current active language, and current selected contend types ( !! although this is possible via a filter too ...)
// **********************************************************************************************************************************************************
$andlang = '';
if ($app->isSite() && (FLEXI_FISH || FLEXI_J16GE && $app->getLanguageFilter()) && $filter_lang) {
$andlang .= ' AND ( i.language LIKE ' . $db->Quote($lang . '%') . ' OR i.language="*" ) ';
$andlang .= ' AND ( c.language LIKE ' . $db->Quote($lang . '%') . ' OR c.language="*" ) ';
}
// search articles
$results = array();
if ($limit > 0) {
$query = $db->getQuery(true);
$query->clear();
$query->select('' . ' i.id as id,' . ' i.title AS title,' . ' i.language AS language,' . ' i.metakey AS metakey,' . ' i.metadesc AS metadesc,' . ' i.modified AS created,' . ' t.name AS tagname,' . ' fir.value as field,' . ' i.access, ie.type_id,' . ' CONCAT(i.introtext, i.fulltext) AS text,' . ' CONCAT_WS( " / ", ' . $db->Quote(JText::_('FLEXICONTENT')) . ', c.title, i.title ) AS section,' . ' CASE WHEN CHAR_LENGTH(i.alias) THEN CONCAT_WS(\':\', i.id, i.alias) ELSE i.id END AS slug,' . ' CASE WHEN CHAR_LENGTH(c.alias) THEN CONCAT_WS(\':\', c.id, c.alias) ELSE c.id END AS catslug,' . ' "2" AS browsernav' . $select_access);
$query->from('#__content AS i ' . ' JOIN #__categories AS c ON i.catid = c.id' . ' JOIN #__flexicontent_items_ext AS ie ON i.id = ie.item_id' . ' JOIN #__flexicontent_types AS ty ON ie.type_id = ty.id' . ' LEFT JOIN #__flexicontent_fields_item_relations AS fir ON i.id = fir.item_id' . ' LEFT JOIN #__flexicontent_fields AS f ON fir.field_id = f.id' . ' LEFT JOIN #__flexicontent_tags_item_relations AS tir ON i.id = tir.itemid' . ' LEFT JOIN #__flexicontent_tags AS t ON tir.tid = t.id ' . $joinaccess);
$query->where(' (' . $where . ') ' . ' AND ie.type_id IN(' . $types . ') ' . ' AND i.state IN (1, -5) AND c.published = 1 ' . ' AND (i.publish_up = ' . $db->Quote($nullDate) . ' OR i.publish_up <= ' . $db->Quote($nowDate) . ') ' . ' AND (i.publish_down = ' . $db->Quote($nullDate) . ' OR i.publish_down >= ' . $db->Quote($nowDate) . ') ' . $andaccess . $andlang);
$query->group('i.id');
$query->order($order);
//echo "<pre style='white-space:normal!important;'>".$query."</pre>";
$db->setQuery($query, 0, $limit);
$list = $db->loadObjectList();
if ($db->getErrorNum()) {
echo $db->getErrorMsg();
}
if ($list) {
$item_cats = FlexicontentFields::_getCategories($list);
$typeData = flexicontent_db::getTypeData();
foreach ($list as $key => $item) {
// echo $item->title." ".$item->tagname."<br/>"; // Before checking for noHTML
$item->categories = isset($item_cats[$item->id]) ? $item_cats[$item->id] : array();
// in case of item categories missing
// If joomla article view is allowed allowed and then search view may optional create Joomla article links
if ($typeData[$item->type_id]->params->get('allow_jview', 0) && $typeData[$item->type_id]->params->get('search_jlinks', 1)) {
$item->href = JRoute::_(ContentHelperRoute::getArticleRoute($item->slug, $item->catslug, $item->language));
} else {
$item->href = JRoute::_(FlexicontentHelperRoute::getItemRoute($item->slug, $item->catslug, 0, $item));
}
if (searchHelper::checkNoHTML($item, $searchText, array('title', 'metadesc', 'metakey', 'tagname', 'field', 'text'))) {
$results[$item->id] = $item;
}
}
}
}
return $results;
}