Регистрация
Регистрируясь, вы подтверждаете свое согласие с соглашением об использовании персональных данных.
Восстановление пароля
12.06.2011, 22:13
Гость
Гость

Добрый вечер!
Работаю на системе версии 4.1 Corporate

Вопрос такой...
Возможно ли сделать вывод анонсов статей в виде календаря?
Но нужно вывести новости начиная с сегодняшнего дня и заканчивая последней новостью (какая бы дата у нее не была)... И вывести на одной странице все месяца в столбик...

Конкретика:
У нас сайт на котором представлена афиша концертов. У нас есть два зала в которых ежедневно проходят концерты, т.е. один концерт в большом зале и один в малом зале. Данную афишу нужно реализовать так чтобы оба зала отображались на одной странице, и числа этих сайтов совпадали между собой. Т.е. на странице в столбик сверху вниз концерты двух залов, слева большой зал справа малый. Например 2 июня в большом концерт и в малом концерт - эти концерты должны стоять друг напротив друга... если например 2 июня в большом концерт есть а в малом нет, то дни всервно стоят друг напротив друга но в малом ничего нет (пусто)...

Пытаемся реализовать данную идею с помощью встроенного модуля "Календарь"...
Если есть способ вывести все это другими средствами - мы будем непротив...
У нас пока не получается вывести все месяцы на одной странице и отключить отображение прошедших дней. Если можно расскажите как это сделать?

И еще вопрос... Раньше сайт поддерживал другой человек, он его и создавал... В общем сейчас я работаю на лицензионной версии системы, но не могу написать в тех.поддержку, т.к. нет соответствующих данных (т.к. эти данные ушли вместе с тем кто работал до меня)... Возможно ли каким-либо образом восстановить доступ в тех.поддержку для данной лицензии?

С уважением, Александр!
13.06.2011, 04:30
Asiat
Аниматика
Asiat

Зарегистрирован:
2005-12-12
Сообщений: 576

По восстановлению доступа - это лучше вам напрямую в поддержку и написать, не на форуме. Только настраивать ваши анонсы вряд ли входит в их обязанности, так что особо надеяться не стоит.

Что касается реализации задачи, может быть Календарь чем-то и поможет, но ИМХО проще поднастроить новостной компонент. Конкретная реализация может зависеть от того, что в итоге вы хотите получить на страничке, я себе в общих чертах представляю примерно так:
1) В компоненте Новости создать доп. поле для привязки новости к конкретному залу (в списке объектов можно будет, например, назначать float:left/right по нему).
2) Отключение прошедших дней - с помощью системных настроек компонента. Например:
$query_where = "a.Date >= CURRENT_DATE";
(Кстати, еще удачнее - сделать раздел с архивом, куда и будут сваливаться все прошедшие анонсы)
3) Настроить группировку по датам. Расписывать не буду, кажется, реализация была в стандартном компоненте Новости.

Разработка сайтов на Netcat с 2006... хм-м ... или 2005 хммм года. В общем, обращайтесь.
13.06.2011, 16:27
Гость
Гость

Спасибо за совет! =)
Будем пробовать вашим методом! =)
Только если можно про группировку расскажите... Не можем найти ничего...
13.06.2011, 18:30
Asiat
Аниматика
Asiat

Зарегистрирован:
2005-12-12
Сообщений: 576

Ну, вот для примера кусочек кода в список объектов, который по идее должен выводить заголовок для группы новостей в конкретном месяце. Доработайте, как вам надо.

".opt( $groupHeader=( $curDep == $f_Date_month ? NULL : $curDep=$f_Date_month) , "<span class='news_group_header'>".$groupHeader.".$f_Date_year</span>" )."

Аналогично можно для конкретной даты делать, чтоб не повторялась.

Разработка сайтов на Netcat с 2006... хм-м ... или 2005 хммм года. В общем, обращайтесь.
18.06.2011, 20:44
Александр

Зарегистрирован:
2011-06-15
Сообщений: 4

В общем сделали все так как Вы советовали... Все работает, все группируется как надо, но все-таки есть одно НО... =)
группируются числа 20 и 20, 22 и 22 и тд... Но если например в 1-ом зале числа идут не подряд а через одно (20, 22, 24), то числа второго зала цепляются к ним так 20 и 21, 22 и 23 и тд... Нам же нужно чтобы разные числа не группировались друг с другом а стояли отдельно... Сейчас попробую изобразить визуально...

Нужно ТАК:
20 - 20
21 - 21
22 - .....
23 - 23
..... - 24
25 - 25

Возможно как-нибудь такое осуществить?
Еще раз спасибо! =)
19.06.2011, 08:33
Asiat
Аниматика
Asiat

Зарегистрирован:
2005-12-12
Сообщений: 576

Ну, так-то не совсем понял, что имеется сейчас.
Надо уже тогда подробнее: код полей компонента в студию (список объектов и сист. настройки), ссылку на раздел.

Единственная мысль, навскидку: у вас сортировка в компоненте выставлена по дате?
А то термин-то "группировка" был не особо удачный, в реале ничего не группируется, просто заголовок с датой показывается только один раз.

Разработка сайтов на Netcat с 2006... хм-м ... или 2005 хммм года. В общем, обращайтесь.
19.06.2011, 10:27
Александр

Зарегистрирован:
2011-06-15
Сообщений: 4

сортировка стоит по дате...

вот ссылка на раздел http://almamaterclub.ru/afishaNew/

Код списка
Код:
(tr)(td)
";
if ($f_TipZala==1) {echo "$f_AdminButtons<div class='big-hall'><div class='nc_row' style='position:relative; height:200px;'>
".opt( $cc_settings[Group]=='date'&& $groupHeader=( $curDep == $f_Date_day ? NULL : $curDep=$f_Date_day ) , "<h2 class='nc_group'>$groupHeader.$f_Date_month.$f_Date_year</h2>" )
.opt( $cc_settings[Group]=='month'&& $groupHeader=( $curDep == $f_Date_month ? NULL : $curDep=$f_Date_month ) , "<h2 class='nc_group'>$groupHeader.$f_Date_year</h2>" )."

<h3><font class='font3'>".opt( $cc_settings[DateStyle]!='time' , "<span class='nc_date'>$f_Date_day.$f_Date_month</span>" )."</font><br>
".opt_case($cc_settings[FullLink]=='title' && ($f_Name || $f_ExtLink) , "<a href='".opt_case($f_Name,$fullLink,$f_ExtLink)."'>$f_Name</a>" , "$f_Name")."</h3>
".opt( $f_FotoAfisha , "<a href='$fullLink'><img class='nc_row_img' src='$f_FotoAfisha' alt='$f_FotoAfisha' width='150px' /></a>" )."
".opt( $f_FotoCalendar , "<a href='$fullLink'><img class='nc_row_img' src='$f_FotoCalendar' alt='$f_FotoCalendar' width='150px' /></a>" )."
".opt( $cc_settings['ShowComments'] && $cc_settings['CommentsSUB'] && $cc_settings['CommentsCC'] , "<div class='nc_comments_count'><span>Комментарии: </span>".(int)s_list_class($cc_settings[CommentsSUB], $cc_settings[CommentsCC], "&scID=$cc&objID=$f_RowID&CountComments=1", true)."</div>" )."

".opt( $cc_settings[DateStyle]!='disable' , "<div class='nc_datetime'>".
opt( $cc_settings[DateStyle]!='date' , "<span class='nc_time'>Начало концерта в $f_Date_hours:$f_Date_minutes <br></span>" ).

opt( $cc_settings[FullLink]=='date' && ($f_Text || $f_ExtLink) , "<a href='".opt_case($f_Text,$fullLink,$f_ExtLink)."'>").
opt( $cc_settings[FullLink]=='date' && ($f_Text || $f_ExtLink) , "</a>" )."</div>")
.opt($cc_settings[FullLink]=='more' && ($f_Text || $f_ExtLink) , "<span class='nc_more'><a href='".opt_case($f_Text,$fullLink,$f_ExtLink)."'>подробнее...</a></span>")."
<a href='$fullLink'>подробнее...</a>

<div style='clear:both'></div>
</div></div>";
}
"
(/td)(td)
";
if ($f_TipZala==2) {echo "$f_AdminButtons<div class='big-hall'><div class='nc_row' style='position:relative; height:200px;'>
".opt( $cc_settings[Group]=='date'&& $groupHeader=( $curDep == $f_Date_day ? NULL : $curDep=$f_Date_day ) , "<h2 class='nc_group'>$groupHeader.$f_Date_month.$f_Date_year</h2>" )
.opt( $cc_settings[Group]=='month'&& $groupHeader=( $curDep == $f_Date_month ? NULL : $curDep=$f_Date_month ) , "<h2 class='nc_group'>$groupHeader.$f_Date_year</h2>" )."

<h3><font class='font3'>".opt( $cc_settings[DateStyle]!='time' , "<span class='nc_date'>$f_Date_day.$f_Date_month</span>" )."</font><br>
".opt_case($cc_settings[FullLink]=='title' && ($f_Name || $f_ExtLink) , "<a href='".opt_case($f_Name,$fullLink,$f_ExtLink)."'>$f_Name</a>" , "$f_Name")."</h3>
".opt( $f_FotoAfisha , "<a href='$fullLink'><img class='nc_row_img' src='$f_FotoAfisha' alt='$f_FotoAfisha' width='150px' /></a>" )."
".opt( $f_FotoCalendar , "<a href='$fullLink'><img class='nc_row_img' src='$f_FotoCalendar' alt='$f_FotoCalendar' width='150px' /></a>" )."
".opt( $cc_settings['ShowComments'] && $cc_settings['CommentsSUB'] && $cc_settings['CommentsCC'] , "<div class='nc_comments_count'><span>Комментарии: </span>".(int)s_list_class($cc_settings[CommentsSUB], $cc_settings[CommentsCC], "&scID=$cc&objID=$f_RowID&CountComments=1", true)."</div>" )."

".opt( $cc_settings[DateStyle]!='disable' , "<div class='nc_datetime'>".
opt( $cc_settings[DateStyle]!='date' , "<span class='nc_time'>Начало концерта в $f_Date_hours:$f_Date_minutes <br></span>" ).

opt( $cc_settings[FullLink]=='date' && ($f_Text || $f_ExtLink) , "<a href='".opt_case($f_Text,$fullLink,$f_ExtLink)."'>").
opt( $cc_settings[FullLink]=='date' && ($f_Text || $f_ExtLink) , "</a>" )."</div>")
.opt($cc_settings[FullLink]=='more' && ($f_Text || $f_ExtLink) , "<span class='nc_more'><a href='".opt_case($f_Text,$fullLink,$f_ExtLink)."'>подробнее...</a></span>")."
<a href='$fullLink'>подробнее...</a>

<div style='clear:both'></div>
</div></div>";
}
"
(/td)(/tr)


Код системных настроек
Код:
global $shop;
if(!isset($classID)){
$classID = $cc_env['Class_ID'];
}
// если у дочернего объекта не указана цена, берется цена родительского объекта
// для этого придется сделать JOIN
$query_join = " LEFT JOIN Message$classID as parent ON (a.Parent_Message_ID != 0 AND a.Parent_Message_ID=parent.Message_ID)";

$query_select = "IFNULL(a.$shop->PriceColumn, parent.$shop->PriceColumn) as Netshop_Price_Column,
IFNULL(a.$shop->CurrencyColumn, parent.$shop->CurrencyColumn) as Netshop_Currency_Column";

$result_vars = '$Price, $Currency';

// Получаем информацию по бардам и кладем ее в массив
$bards = array();

$res = mysql_query("SELECT `Message_ID`, `zagolovok`, `textAfisha`, `link` FROM `Message96` WHERE `Checked`='1'");

while ($row=mysql_fetch_assoc($res))
{
$bards[$row[Message_ID]] = array_merge( $row,
array("zagolovok"=>"$row[zagolovok]",
"textAfisha"=>"$row[textAfisha]",
"link"=>"$row[link]",
));
}

list( $year, $month, $day ) = explode('-', $GLOBALS[date]);
if(!$year) $year = date('Y');
if(!$month) $month= date('m');
if(!$day) $day = date('d');


if( !function_exists('imgNavigation') ){
function imgNavigation($prevText='Предыдущий концерт',$nextText='Следующий концерт',$deliver=' | '){
global $cc_settings;global $classID;global $cc;global $SortBy;global $f_RowID;global $current_sub;global $isNaked;
$out = NULL;
$SQLres = mysql_query("SELECT Message_ID FROM Message109 WHERE Sub_Class_ID=".$cc." AND Parent_Message_ID = 0 ORDER BY Date DESC");
if($SQLres) {
while( $SQLresult = mysql_fetch_array($SQLres) ) {
$IDs_array[] = $SQLresult['Message_ID'];
}
$i = 0;while( $i<count($IDs_array) ) {
if($IDs_array[$i]==$f_RowID) {
$out .= "<div class='nc_prev_next'>";
if( $i>0 ) $out .= "<span class='nc_prev_link'><a href='".$SUB_FOLDER.$current_sub[Hidden_URL].$current_sub[EnglishName]."_".$IDs_array[$i-1].".html'>$prevText</a></span>";
if( $i>0 && ($i+1)<count($IDs_array) ) $out .= $deliver;
if( ($i+1)<count($IDs_array) ) $out .= "<span class='nc_next_link'><a href='".$SUB_FOLDER.$current_sub[Hidden_URL].$current_sub[EnglishName]."_".$IDs_array[$i+1].".html'>$nextText</a></span>";
$out .= '</div>';
break;
}
$i++;
}
}
return $out;
}
}


насчет группировки - нам именно она нужна =)
может тогда лучше сделать календарем все?
19.06.2011, 20:18
Asiat
Аниматика
Asiat

Зарегистрирован:
2005-12-12
Сообщений: 576

Это капец. Без пузыря ни за что не полезу.
Короче, вот мой пример, упрощенный. Тестовый компонент из двух полей - дата и тип.

Работающий пример здесь.

ПРЕФИКС (вынес туда стили, хотя вообще не верстальщик... не претендую)
----------------
Код:
$f_AdminCommon

<style type='text/css'>
ul.anons_list {margin:0; padding:0; list-style:none;}
.anons_list li.date {clear:both; margin:10px 0; padding:5px 10px; background:#eee; font-size:14px; font-weight:bold;}
.anons_list li.anons {width:40%; padding:5px; background:#f0f0f0; border:1px dotted #ddd;}
.anons_list li.left {margin:5px 10% 5px 5px;}
.anons_list li.right {float:right; margin:5px 5px 5px 10%;}
</style>

<ul class='anons_list'>


СПИСОК
-------------
Код:
".opt( $groupHeader=( $curDep == $f_Date_day ? NULL : $curDep=$f_Date_day) , "<li class='date'>".$groupHeader.".$f_Date_month.$f_Date_year</li>" )."
<li class='anons ".($f_Type==1 ? "left" : "right")."'>#$f_RowID / $f_Date - $f_AnonsDay / Type $f_Type</li>


НАСТРОЙКИ
-------------
Код:
$query_select = "DATE_FORMAT(a.Date,'%Y%d%m') AS AnonsDay";
$result_vars = '\$f_AnonsDay';


СОРТИРОВКА (немного изменил, а то не нравилось, как блоки встают)
-------------
AnonsDay ASC,Type DESC, Date ASC

Отпишитесь, оно ли это, а то надо будет убрать с сайта.

Разработка сайтов на Netcat с 2006... хм-м ... или 2005 хммм года. В общем, обращайтесь.
19.06.2011, 21:01
Александр

Зарегистрирован:
2011-06-15
Сообщений: 4

Спасибо! По примеру внешне - ОНО! =)
Можете убирать с сайта! =)

Сейчас все попробуем =)
По результату отпишусь.
19.06.2011, 21:35
Александр

Зарегистрирован:
2011-06-15
Сообщений: 4

Все супер!

Единственное в этом коде ошибка - перед переменной $f_AnonsDay слеш не нужен =)
Код:
$query_select = "DATE_FORMAT(a.Date,'%Y%d%m') AS AnonsDay";
$result_vars = '\$f_AnonsDay';


Извините за большое количество глупых вопросов =)
Просто всегда работал на XXXXXXX CMS, а тут вот NetCAT =)
В общем начинаю =)

Пузырь могу выслать почтой =)))
198 196 2011-06-19 21:35:30 11359
Описание проекта