Несколько поисков
- Maxim
- Автор темы
- Не в сети
- Новый участник
Less
Больше
- Сообщений: 6
- Спасибо получено: 0
12 года 5 мес. назад - 12 года 5 мес. назад #3836
от Maxim
Maxim создал тему: Несколько поисков
Добрый вечер.
Мучаясь и познавая сий компонент добрел-таки до такой стадии :S . Нужно реализовать афишу театра. вывод спектаклей на текущий месяц и на следующий.
Отфильтровать по дате и с помощью плагинов Live Value я в конечном итоге сумел (в Live в первое поле подставляет начало текущего месяца, во второе поле начало следующего, ну и > <)... набросал плагин на +2 месяца и тут подумал и обломался вывод то возможен только на те Live которые стоят... и через МЕНЮ и Advanced Options ( CCK ) их уже не изменить как это было при тестовом прогоне с подстановкой в ручную дат...
Может можно организовать ещё один поиск привязать к пункту меню "Следующий месяц" и там уже отфильтровать по след месяц?
Или в плагине лайв задать условие что если лайв валуе заполнено, то текущий месяц иначе следующий, но каким образом задавать программно лайв валуе и как связать с Advanced Options ( CCK )? Может просто сделать еще одно поле и при настройке Advanced Options ( CCK ) передавать значение этого поля в лайв валуе даты... но как организовать передачу?
В поисках набрел на такую тему www.seblod.com/support/forum/Content-Types--Forms/30950-Solved-Calendar-today--7-days.html но запустить так и не получилось ни на одном шаблоне...
Помогите!!!
Мучаясь и познавая сий компонент добрел-таки до такой стадии :S . Нужно реализовать афишу театра. вывод спектаклей на текущий месяц и на следующий.
Отфильтровать по дате и с помощью плагинов Live Value я в конечном итоге сумел (в Live в первое поле подставляет начало текущего месяца, во второе поле начало следующего, ну и > <)... набросал плагин на +2 месяца и тут подумал и обломался вывод то возможен только на те Live которые стоят... и через МЕНЮ и Advanced Options ( CCK ) их уже не изменить как это было при тестовом прогоне с подстановкой в ручную дат...
Может можно организовать ещё один поиск привязать к пункту меню "Следующий месяц" и там уже отфильтровать по след месяц?
Или в плагине лайв задать условие что если лайв валуе заполнено, то текущий месяц иначе следующий, но каким образом задавать программно лайв валуе и как связать с Advanced Options ( CCK )? Может просто сделать еще одно поле и при настройке Advanced Options ( CCK ) передавать значение этого поля в лайв валуе даты... но как организовать передачу?
В поисках набрел на такую тему www.seblod.com/support/forum/Content-Types--Forms/30950-Solved-Calendar-today--7-days.html но запустить так и не получилось ни на одном шаблоне...
Помогите!!!
Последнее редактирование: 12 года 5 мес. назад пользователем Maxim.
Пожалуйста Войти или Зарегистрируйтесь, чтобы присоединиться к беседе.
- Wedal
- Не в сети
- Администратор
Less
Больше
- Сообщений: 2868
- Спасибо получено: 659
12 года 5 мес. назад #3840
от Wedal
Wedal ответил в теме Re: Несколько поисков
Maxim, не понял, а почему вы решили, что через меню не изменить Live? В настройках пункта меню можно задать собственные Live для всех полей, по которым происходит поиск.
Спасибо сказали: Maxim
Пожалуйста Войти или Зарегистрируйтесь, чтобы присоединиться к беседе.
- Maxim
- Автор темы
- Не в сети
- Новый участник
Less
Больше
- Сообщений: 6
- Спасибо получено: 0
12 года 5 мес. назад - 12 года 5 мес. назад #3846
от Maxim
Maxim ответил в теме Re: Несколько поисков
Не получается... видно чего-то не-то сделал ...
В конструкторе работает, а вот из меню не хочет. Скорее всего я не так значение $P получаю, не оттуда...
Вот этот файлик генерит настройки в меню... может как-то это поможет? Совсем я запутался... по идее надо взять значение инпутбокса и оправить в плагин... но как это сделать?
Code:
public function onCCK_Field_LivePrepareForm( &$field, &$value = '', &$config = array() )
{
if ( self::$type != $field->live ) {
return;
}
$live='';
if ( $field->live_value ) {
$P = intval($field->live_value);
$data_nachmes1 = strtotime(date('Y').'-'.date('m').'-01');
$data_nachmes = strtotime(date('Y-m-d', $data_nachmes1).' +'.$P.' month'); //Получаем начало следующего месяца или в зависимости от заданного числа начало последующих месяцев.
} else {
$data_nachmes = strtotime('1 '.date('M').' '.date('Y')); //Получаем начало текущего месяца
}
$live = date( 'Y-m-d', $data_nachmes);
$value = $live;
}
В конструкторе работает, а вот из меню не хочет. Скорее всего я не так значение $P получаю, не оттуда...
Вот этот файлик генерит настройки в меню... может как-то это поможет? Совсем я запутался... по идее надо взять значение инпутбокса и оправить в плагин... но как это сделать?
Code:
**administrator/components/com_cck/helpers/scripts/list_live.php
// No Direct Access
defined( '_JEXEC' ) or die;
// getOptions
function getOptions( $string )
{
$options = '';
if ( $string ) {
$string = explode( '||', $string );
foreach( $string as $str ) {
if ( $str != '' ) {
$s = explode( '=', $str );
$options[$s[0]] = $s[1];
}
}
}
return $options;
}
// Init
$elem = JRequest::getString( 'elem', '' );
$name = JRequest::getString( 'e_name', '' );
$form = JCck::getConfig_Param( 'live_value_input', 'text' );
$html = '';
if ( ! $elem ) {
return;
}
$item = new stdClass;
$item->client = ( $elem == 'type' ) ? 'site' : 'search';
$item->id = JCckDatabase::loadResult( 'SELECT id FROM #__cck_core_'.$elem.'s WHERE name = "'.(string)$name.'"'
);
if ( ! $item->id ) {
return;
}
$live = JRequest::getString( 'live', '' );
$variat = JRequest::getString( 'variat', '' );
$values = getOptions( $live );
$variations = getOptions( $variat );
// Variations
$opts = array( JHtml::_( 'select.option', '', '- '.JText::_( 'COM_CCK_INHERITED' ).' -' ),
JHtml::_( 'select.option', 'clear', JText::_( 'COM_CCK_CLEAR' ) ),
JHtml::_( 'select.option', '<OPTGROUP>', JText::_( 'COM_CCK_VARIATION' ) ),
JHtml::_( 'select.option', 'form', JText::_( 'COM_CCK_FORM' ) ),
JHtml::_( 'select.option', 'hidden', JText::_( 'COM_CCK_HIDDEN' ) ),
JHtml::_( 'select.option', 'disabled', JText::_( 'COM_CCK_FORM_DISABLED' ) ),
JHtml::_( 'select.option', 'value', JText::_( 'COM_CCK_VALUE' ) ),
JHtml::_( 'select.option', '</OPTGROUP>', '' ) );
// Process
require_once JPATH_ADMINISTRATOR.DS.'components'.DS.CCK_COM.DS.'helpers'.DS.'helper_selectable.php';
$fields = Helper_Selectable::getFields( $elem, $item, 'AND (( c.live = "" AND c.live_value = "" ) OR ( c.live != ""
AND c.live != "stage" ))', false, true );
if ( count( $fields ) ) {
if ( $form == 'form' ) {
// RENDER FORM
JPluginHelper::importPlugin( 'cck_field' );
$dispatcher = JDispatcher::getInstance();
foreach( $fields as $pos ) {
foreach( $pos as $field ) {
$inherit = array( 'id'=>'live_'.$field->name ,
'name'=>'live_'.$field->name );
$value = @$values[$field->name];
$variat = @$variations[$field->name];
$variat = ( $variat == 'none' ) ? $variat = 'hidden' : $variat; //
TODO: FIX TO REMOVE AFTER GA
$variation = Jhtml::_( 'select.genericlist', $opts,
'variation_'.$field->name, 'size="1" class="inputbox variation_values" onchange="CCK_setOptions(\'variation\');"', 'value', 'text',
$variat );
$field->css = 'live_values';
$field->attributes = 'onchange="CCK_setOptions(\'live\');"';
$dispatcher->trigger( 'onCCK_FieldPrepareForm', array( &$field, $value, &$config, $inherit ) );
$html .= '<label style="padding-left:
10px;">'.$field->title.'</label>'
. $field->form
. $variation
. '<div class="clear"></div>';
}
}
} else {
// INPUT TEXT
foreach( $fields as $pos ) {
foreach( $pos as $field ) {
$value = @$values[$field->name];
$variat = @$variations[$field->name];
$variat = ( $variat == 'none' ) ? $variat = 'hidden' : $variat; // TODO: FIX TO
REMOVE AFTER GA
$variation = Jhtml::_( 'select.genericlist', $opts, 'variation_'.$field->name, 'size="1"
class="inputbox variation_values" onchange="CCK_setOptions(\'variation\');"', 'value', 'text', $variat );
$html .= '<label style="padding-left: 10px;">'.$field->title.'</label>'
. '<input class="live_values inputbox testinput" type="text"
id="live_'.$field->name.'" name="live_'.$field->name.'" value="'.$value.'" onchange="CCK_setOptions(\'live\');" />'
. $variation
. '<div class="clear"></div>';
}
}
}
}
echo $html;
?>
Последнее редактирование: 12 года 5 мес. назад пользователем Maxim.
Пожалуйста Войти или Зарегистрируйтесь, чтобы присоединиться к беседе.