Новости Joomla

Вышли релизы Joomla 6.1 и Joomla 5.4.5: новые возможности и стабильность

Релиз Joomla 6.1.0

Проект Joomla! объявил о доступности Joomla 6.1 [Nyota] — новой минорной версии шестой серии, а также о выпуске релиза исправлений ошибок Joomla 5.4.5. Релиз 6.1 приносит ряд долгожданных функций, повышающих удобство управления контентом и защиту от спама.

👩‍💻 Компонент "CS Афиши" для Joomla.

👩‍💻 Компонент "CS Афиши" для Joomla.

Расширение "CS Афиши" позволяет выводить список мероприятий, фильтровать их по датам, поиск по заголовкам и описанию.

В состав пакета расширений входят:
- Компонент "CS Афиши"
- Модуль "Календарь событий"
- Модуль "Предстоящие события"
- Библиотека "ImgResize"

Расширение "CS Афиши" позволяет выводить список мероприятий, фильтровать их по датам, поиск по заголовкам и описанию.

Модуль "Календарь событий" отображает предстоящие и прошедшие мероприятие на календаре, с отображением мероприятий на конкретную дату во всплывающем окне.

Модуль "Предстоящие события" показывает список предстоящий событий по порядку их наступления.

P.S. Расширение платное, но плата символическая, чисто для отработки приема платежей. Ключи без ограничения по времени, купившие сейчас - смогут обновляться без ограничений.

Разработчик - участник нашего сообщества Дмитрий Денисов (@codersite).

Страница расширения
Демо

0 Пользователей и 1 Гость просматривают эту тему.
  • 2 Ответов
  • 3095 Просмотров
*

Dutch

  • Глобальный модератор
  • 219
  • 88 / 2
  • Проф. разработка больших порталов с нуля!
Всем привет!
Не совсем могу понять, что за опции в полях - простого поиска.

И еще:
как можно усовершенствовать стандартный модуль, который бы выводил дополнительные поля, созданые через админку.

Как пример:
Делаю поле регионы страны в виде выпадающего списка.
Вот это поле хотелось бы вывести в модуле, которое бы фильтровало запросы по тому или иному региону.

Версия компонента - 207 и выше.
Версия джумлы - 1.0.х или 1.5.х


За ранние благодарю!
*

_ib_

  • Moderator
  • 673
  • 100 / 8
привет, 
1. если ты про модуль "Search Directory" (mod_mt_search ), то в стандарте идёт поиск в именах записей.
Или я тебя не так понял?

2. Добавляешь в sql запрос критерии твоего нового поля, вывод делается так: $l->your_field_name

Давай на примере лучше. Возьмем mod_mt_votedbest, обрати внимание на использование link_votes:

Код
$database->setQuery( "SELECT l.*, cl.cat_id AS cat_id, c.cat_name AS category FROM #__mt_links AS l, #__mt_cats AS c, #__mt_cl AS cl"
// . "\n LEFT JOIN #__mt_cats AS c ON c.cat_id = l.cat_id"
. "\n WHERE l.link_id = cl.link_id AND c.cat_id = cl.cat_id AND cl.main = 1"
. "\n AND link_published='1' && link_approved='1' "
. "\n AND ( publish_up = '0000-00-00 00:00:00' OR publish_up <= '$now'  ) "
. "\n AND ( publish_down = '0000-00-00 00:00:00' OR publish_down >= '$now' ) "
. ( ( $mtconf->get('min_votes_for_toprated') && $mtconf->get('min_votes_for_toprated') >= 1 ) ? "\n AND l.link_votes >= " . $mtconf->get('min_votes_for_toprated') . " " : '' )
. ( (!empty($only_subcats_sql)) ? $only_subcats_sql : '' )
. "\n ORDER BY link_rating DESC, link_votes DESC  "
. "\n LIMIT $count" );
$listing = $database->loadObjectList();

далее для вывода...

Код
foreach( $listing AS $l ) { ....
.. if ( $i == $order["votes"] ) echo "<td>$l->link_votes</td>"; ..

где link_votes - имя поля в базе данных.

думаю, что все и просто.
Легальные шаблоны и дёшево!  + скидки до 50% для шаблонов клуба Joomlart, RocketTheme, Yootheme и Gavick.

при интересе пишите в личку или на мыло: "p" точка "d" собака gmx.de
*

dimko300

  • Захожу иногда
  • 61
  • 1 / 0
Актуальная для меня тема! Только с той разницей, что я хочу поставить в шаблон отображения кратких новостей (page_subCatIndex.tpl) модуль поиска с фильтром! Просто когда у меня в категории 10000 -> материалов, то пользователю очень трудно найти что ему необходимо и необходимо отсеять материалы по нескольким критериям! Как бы поподробнее о подключении к б.д. для вывода поля с выпадающим списком?!
Или может кто знает как применить принцип поиска по типу: index.php?option=com_mtree&search=this_cat_id=field_id+field_id2+field_id3&Itemid
где field_id это и есть выпадающий список значений определенного поля!
Или может кто другой путь подскажет!
В принципе есть готовый модуль для поиска с фильтрацией в Мозетсе:
Код
<?php
defined( '_VALID_MOS' ) or die( 'Direct Access to this location is not allowed.' );

/*# Include the language file. Default is English
global $mt_language;
if ($mt_language=='') $mt_language='english';
include_once('components/com_mtree/language/'.$mt_language.'.php');
if ( !isset($_MT_LANG) ) $_MT_LANG =& new mtLanguage();*/

# Get params
$moduleclass_sfx = $params->get( 'moduleclass_sfx' );

$filter_by_country = $params->get( 'filter_by_country', '1' );
$filter_by_state = $params->get( 'filter_by_state', '1' );
$filter_by_city = $params->get( 'filter_by_city', '1' );
$filter_by_cust1 = $params->get( 'filter_by_cust1', '0' );
$filter_by_cust2 = $params->get( 'filter_by_cust2', '0' );

$caption_cust2 = $params->get( 'caption_cust2', 'Select %1' );
$caption_country = $params->get( 'caption_country', 'Select Country' );
$caption_state = $params->get( 'caption_state', 'Select State' );
$caption_city = $params->get( 'caption_city', 'Select City' );
$caption_cust1 = $params->get( 'caption_cust1', 'Select %1' );
$caption_cust2 = $params->get( 'caption_cust2', 'Select %1' );
$text = "Что ищем?..." /*_SEARCH_BOX*/;
if( $filter_by_cust2 == $filter_by_cust1 ) {
$filter_by_cust2 = '0';
}

# Countries
$loc_countries = array();
$loc_countries[] = mosHTML::makeOption( '', $caption_country );

$database->setQuery( "SELECT DISTINCT country AS text, country AS value FROM #__mt_links WHERE country <> '' ORDER BY country ASC" );
$tmp_countries = $database->loadObjectList();

$loc_countries = array_merge( $loc_countries, $tmp_countries );

/*if there is only one country it creates the ,select. however it does not show it (display:none)*/
if(sizeof($loc_countries)>2){$displayCountry= " ";}else{$displayCountry=" style='display:none;' ";}

$lists['countries'] = mosHTML::selectList( $loc_countries, 'country', 'name="country"'.$displayCountry.' class="inputbox" size="1" '.( ( $filter_by_state ) ? 'onChange="loadLoc(this,\'State\')"' : ''), 'value', 'text', '' );

# Filter 1

/*$database->setQuery( "SELECT name, value FROM #__mt_config WHERE name LIKE 'cust_%'" );
$custom_fields = $database->loadObjectList('name');

if ( $filter_by_cust1 <> '0' ) $caption_cust1 = str_replace("%1", $custom_fields[$filter_by_cust1]->value, $caption_cust1);
if ( $filter_by_cust2 <> '0' ) $caption_cust2 = str_replace("%1", $custom_fields[$filter_by_cust2]->value, $caption_cust2);

if ( $filter_by_cust1 <> '0' ) {
$filterItems = array();
$filterItems[] = mosHTML::makeOption( '', $caption_cust1 );

$database->setQuery( "SELECT DISTINCT ".$filter_by_cust1." AS text, ".$filter_by_cust1." AS value FROM #__mt_links WHERE ".$filter_by_cust1." <> '' ORDER BY ".$filter_by_cust1." ASC" );
$tmp_filter_1 = $database->loadObjectList();

$filterItems = array_merge( $filterItems, $tmp_filter_1);
$lists['filter1'] = mosHTML::selectList( $filterItems, $filter_by_cust1, 'name="'.$filter_by_cust1.'" class="inputbox" size="1" '.( ($filter_by_cust2  <> '0') ? 'onChange="loadLoc(this,\''.$filter_by_cust2.'\')"' : '' ), 'value', 'text', '' );
}*/

?>
<script language="Javascript">
var state = new Array();
var city = new Array();
var filter2 = new Array();
<?php
foreach( $tmp_countries AS $tmp_country ) {

$database->setQuery( "SELECT DISTINCT state FROM #__mt_links WHERE country = '".$tmp_country->text."' AND country <> '' ORDER BY state ASC" );
$tmp_states = $database->loadResultArray();
if( count($tmp_states) > 0 ) {
echo "state['".$tmp_country->text."']=new Array('";
echo implode("','",$tmp_states);
echo "');\n";
}

if( $filter_by_city ) {
foreach( $tmp_states AS $tmp_state ) {

$database->setQuery( "SELECT DISTINCT city FROM #__mt_links WHERE state = '".$tmp_state."' AND state <> '' ORDER BY city ASC" );
$tmp_cities = $database->loadResultArray();
if( count($tmp_cities) > 0 && !empty($tmp_cities[0]) ) {
echo "city['".$tmp_state."']=new Array('";
echo implode("','",$tmp_cities);
echo "');\n";
}

}
}

}

/*foreach( $tmp_filter_1 AS $tmp_filter ) {
$database->setQuery( "SELECT DISTINCT ".$filter_by_cust2." FROM #__mt_links WHERE ".$filter_by_cust1." = '".$tmp_filter->text."' ORDER BY ".$filter_by_cust1." ASC" );
$tmp_filter_2 = $database->loadResultArray();

if( count($tmp_filter_2) > 0 ) {
echo "filter2['".$tmp_filter->text."']=new Array('";
echo implode("','",$tmp_filter_2);
echo "');\n";
}
}*/

?>

function loadLoc(ref,loc) { loadLoc2(ref.options[ref.selectedIndex].value,loc) }
function loadLoc2(val,loc) { switch(loc) { case 'State':
if(typeof state[val] != "undefined") { var locations = state[val]; <?php if( $filter_by_city ) { ?>
clearList('City'); disableLoc('City'); <?php } ?>
} else { disableLoc(loc); return;}
break; case 'City':
if(typeof city[val] != 'undefined') { var locations = city[val];} else { disableLoc(loc); return;}
break; case '<?php echo $filter_by_cust2 ?>':
if(typeof filter2[val] != 'undefined') { var locations = filter2[val];} else { disableLoc(loc); return;}
break;}
enableLoc(loc); clearList(loc); if ( typeof locations != 'undefined' && locations.length > 0 ) { for (c=0; c < locations.length; c++) { var newOpt = document.createElement("OPTION"); newOpt.text = locations[c]; newOpt.value = locations[c]; document.mtdrilldown.elements['dd'+loc].options[c+1] = newOpt;}
}
}
function disableLoc(id) { gebid('dd'+id).disabled=true;}
function enableLoc(id) { gebid('dd'+id).disabled=false;}
function clearList(id) { var clength = gebid('dd'+id).length; for(var i=(clength-1);i>=0;i--) { gebid('dd'+id).remove(i);}
var newOpt = document.createElement("OPTION"); newOpt.value = ''; switch(id) { <?php if( $filter_by_cust1 <> '0' ) { ?>
case '<?php echo $filter_by_cust1 ?>':
newOpt.text = '<?php echo $caption_cust1 ?>'; break; <?php } ?>
<?php if( $filter_by_cust2 <> '0' ) { ?>
case '<?php echo $filter_by_cust2 ?>':
newOpt.text = '<?php echo $caption_cust2 ?>'; break; <?php } ?>
case "Country":
newOpt.text = '<?php echo $caption_country ?>'; break; case "State":
newOpt.text = '<?php echo $caption_state ?>'; break; case "City":
newOpt.text = '<?php echo $caption_city ?>'; break;}
document.mtdrilldown.elements['dd'+id].options[0] = newOpt;}
function gebid(id){return document.getElementById(id);}
function NormalizeAccents(text) { var i, ac, nc; ac = 'бдвагйлкинпомуцфтъ&\щзс%$БДВАГЙЛКИНПОМУЦФТХЪЬЫЩЗСЭ'; nc = 'aaaaaeeeeiiiiooooouuuucnyyAAAAAEEEEIIIIOOOOOUUUUCNY'; for (i = 0; i < ac.length; i++) { text = text.replace(ac.charAt(i), nc.charAt(i));}
return text;}
</script>
<form action="<?php echo sefRelToAbs($mosConfig_live_site) /*sefRelToAbs("index.php")*/; ?>" method="post" name="mtdrilldown" style="padding:0px; margin:0px;" >
<?php
echo '<input type="text" name="link_desc" size="20" class="inputbox"  value="'. $text .'"  onblur="if(this.value==\'\') this.value=\''. $text .'\';" onfocus="if(this.value==\''. $text .'\') this.value=\'\';" />'; ?>
<?php echo $lists['countries']; ?>
<?php if( $filter_by_state ) { ?>
<select name="state" class="inputbox" size="1" id="ddState" <?php if( $filter_by_city ) echo "onChange=\"loadLoc(this,'City')\" " ?>>
<option value="" selected="selected"><?php echo $caption_state ?></option>
</select>
<?php } ?>
<?php if( $filter_by_city && $filter_by_state ) { ?>
<select name="city" class="inputbox selectCity" size="1" id="ddCity">
<option value="" selected="selected"><?php echo $caption_city ?></option>
</select>
<?php } ?>
<?php if ( $filter_by_cust1 <> '0') echo $lists['filter1']; ?>
<?php if ( $filter_by_cust1 <> '0' && $filter_by_cust2 <> '0' ) { ?>
<select name="<?php echo $filter_by_cust2 ?>" class="inputbox" size="1" id="dd<?php echo $filter_by_cust2 ?>">
<option value="" selected="selected"><?php echo $caption_cust2 ?></option>
</select>
<?php } ?>
<?php
?>
<br><input type="submit" value="Поиск" class="button" />
<input type="hidden" name="Itemid" value="<?php echo $Itemid ?>" />
<input type="hidden" name="option" value="com_mtree" />
<input type="hidden" name="task" value="advsearch2" />
</form><?php
if(sizeof($loc_countries)<=2){ ?>
<script language="Javascript">
loadLoc2(document.mtdrilldown.country.options[1].value,"State"); </script>
<?php } ?>
Только как в нем подключить кастом фильтр, я не могу разобраться!!!
За люую помощь
Буду очень признателен
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как убрать алфавит ?

Автор Игорь Матвеев

Ответов: 1
Просмотров: 3788
Последний ответ 29.07.2016, 19:37:15
от arbik
Не добавляется объявление

Автор Wharfadale

Ответов: 0
Просмотров: 1759
Последний ответ 18.11.2015, 10:44:53
от Wharfadale
XML отзывов в Яндекс. Кааак? Сложно(

Автор glebik

Ответов: 3
Просмотров: 1959
Последний ответ 14.06.2015, 12:01:43
от vipiusss
from backend: Компонент не найден 404 — «Mosets Tree» (com_mtree)

Автор InfRiNgeR Of CalmNeS

Ответов: 4
Просмотров: 2670
Последний ответ 12.11.2014, 21:35:30
от UK1026
Пункты меню и Mosets tree

Автор simono

Ответов: 5
Просмотров: 2414
Последний ответ 04.05.2012, 21:36:01
от simono