Здравствуйте! Вопрос автору темы.
Стоит КБ 1.9.8 ревизия 9053 локальная на win 2008 server
Задался вопросом прикрутить созданный вами рабочий стол.
Как было написанно Вами, я скачал файли и распаковал куда вы писали.
Создал новое представление для рабочего стола и добавил соответствующий код в "подготовку данных" и "отображение".
Перезагрузил страничку. Календарь появился, но без данных. Какие либо ошибки тоже не выводит.
Почитал дальше форум, вы порекомендовали внести в подготовку данных global $user,$config,$smarty;
Внес. Но ошибка не пропала. Даее вы порекомендовали переписать json-events.php переписал всё равно события в календаре не отобрадажаются. Перепроверил названия таблиц в скриптах - всё совпадает.
Обновил fullcalendar (v. 1.6.1), jquery (шел вместе с календарем), qtip (v. 2.0.1).
Лента напоминаний так же пуста, хотя события в базе есть.
Выкладываю то что у меня прописанно:
Подготовка данных:
// ===================== для представления ОРГАНАЙЗЕР
global $user,$config,$smarty;
$userID = $user['id'];
$smarty->assign("userID", $userID);
Отображение:
<style>
.tip_a
{
color:black;
padding:3px;
text-decoration:none;
}
.tip_a:hover
{
color:black;
text-decoration:none;
background:#ccc;
}
.start_link
{
color:#0075ce;
font :16px Arial;
font-weight:bold;
text-decoration:none;
}
.yellow_box
{
color:gray;
background:url('images/left_list_marker1.png') no-repeat 5px 50%;
padding:8px 8px 8px 30px;
margin:0 15px 0 0;
display:block;
text-decoration: none;
}
.yellow_box:hover a
{
color:black;
}
.yellow_box:hover
{
background:url('images/left_list_marker1_hover.png') no-repeat 5px 50%;
background-color:#ffffcc;
color:black;
}
.important
{
color:red;
font-size:9px;
}
</style>
<script>
function change_tip_flag(id, arhive)
{
var im=document.getElementById('tip_flag_'+arhive+'_'+id);
var sc=im.src;
var new_state=1;
if (sc.indexOf('star.png')>0) new_state=0;
if (new_state) im.src='images/star.png';
else im.src='images/star_gray.png';
update_tip_ajax.method="POST";
update_tip_ajax.call("arhive="+arhive+"&tip_show_id="+id+"&change_flag=1", ComRespTip);
}
</script>
{if $error_ie}<br><div style="color:red">{$lang['IE_old']}</div>{/if}
<table width="100%">
<tr>
<td valign="top" width='50%'>
{if $personal_array}
<h1>Настройте систему</h1>
{foreach from=$personal_array item=data}
<a style="border-top:1px silver solid;" class="yellow_box" href="{$data.url}"><span class="start_link">{$data.title}</span>{if $data.important} <sup class='important'>ВАЖНО!</sup>{/if}<br>{$data.description}</a>
{/foreach}
{/if}
<!-- ============================== НАЧАЛО ОРГАНАЙЗЕР ==================================== -->
<link rel="stylesheet" href="cb_modules/fullcalendar/fullcalendar.css" type="text/css">
<link rel="stylesheet" href="cb_modules/fullcalendar/fullcalendar.print.css" type="text/css" media="print">
<link rel="stylesheet" href="cb_modules/jquery/jquery-ui-1.8.16.custom.css" type="text/css" media="screen">
<link rel="stylesheet" href="cb_modules/qTip/jquery.qtip.css" type="text/css" media="screen">
<style type='text/css'>
#calendar_box {
width: 99%;
padding: 0px 30px 10px 0px;
font-family: "Lucida Grande",Helvetica,Arial,Verdana,sans-serif;
}
#calendar {
padding: 8px;
border: 1px solid silver!important;
border-radius: 8px;
}
.fc-content{
background-color: white;
}
th.fc-widget-header{
background-color: #265778;
color: white;
}
.fc-view-month .fc-day-number{
font-weight: bold;
}
.fc-other-month .fc-day-number{
font-weight: normal;
}
td.fc-widget-content .fc-day div.fc-day-number{
color: #ccc;
}
.fc-view-year .fc-day-number{
font-size: smaller;
}
.fc-today .fc-day-number {
background-color: #FFDC58;
color: red;
border-width: 1 px;
border-color: red;
}
td.fc-sat, td.fc-sun {
background-color: MistyRose;
}
.fc-today,{
background-color: LemonChiffon;
}
.fc-event-skin {
background-color: transparent;
border-color: black;
}
.class_done,
.class_done .fc-event-skin{
background-color: Grey !important;
border-color: black;
}
.class_order,
.class_order .fc-event-skin{
background-color: DarkOrchid;
border-color: black;
}
.class_note,
.class_note .fc-event-skin{
border-color: red;
}
.class_toMe,
.class_toMe .fc-event-skin{
background-color: MediumSeaGreen;
border-color: black;
}
.class_toMe_editable,
.class_toMe_editable .fc-event-skin{
background-color: MediumSeaGreen;
border-color: GoldenRod;
}
.class_fromMe,
.class_fromMe .fc-event-skin{
background-color: RoyalBlue;
border-color: GoldenRod;
}
.class_call,
.class_call .fc-event-skin{
background-color: Sienna;
border-color: GoldenRod;
}
.newTask .fc-event-skin{
background-color: HotPink;
}
</style>
<script type="text/javascript" src="cb_modules/jquery/jquery-1.9.1.min.js"></script>
<script type="text/javascript" src="cb_modules/fullcalendar/fullcalendar.js"></script>
<script type="text/javascript" src="cb_modules/jquery/jquery-ui-1.10.2.custom.min.js"></script>
<script src="cb_modules/qTip/jquery.qtip.min.js"></script>
<script type='text/javascript'>
$(document).ready(function() {
$('#calendar').fullCalendar({
firstDay: 1,
height: 400,
header: {
left: 'prev,next today',
center: 'title',
right: 'year,month,agendaWeek,agendaDay' //если отображение ГОД не нужно - удалите year из строки
},
monthNames: ['Январь','Февраль','Март','Апрель','Май','Июнь','Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь'],
monthNamesShort: ['Янв.','Фев.','Март','Апр.','Май','Июнь','Июль','Авг.','Сент.','Окт.','Ноя.','Дек.'],
dayNames: ["Воскресенье","Понедельник","Вторник","Среда","Четверг","Пятница","Суббота"],
dayNamesShort: ["ВС","ПН","ВТ","СР","ЧТ","ПТ","СБ"],
buttonText: {
prev: " ◄ ",
next: " ► ",
prevYear: " << ",
nextYear: " >> ",
today: "Сегодня",
month: "Месяц",
week: "Неделя",
day: "День"
},
editable: false,
events: {
url: 'cb_modules/fullcalendar/json-events.php?userID={$userID}',
type: 'POST',
allDayDefault: false,
error: function() {
alert('Ошибка формирования события!');
}
},
eventRender: function(event, element) {
element.qtip({
content: {
text: event.qTip
},
position: {
my: 'top left',
adjust: {
x: -10, y: -10
},
viewport: $(window)
},
hide: {
delay: 300,
fixed: true
},
style: 'ui-tooltip-shadow'
});
},
eventDrop: function(event,dayDelta,minuteDelta,allDay,revertFunc) {
if (!confirm("Вы подтверждаете изменение даты и времени события?")) {
revertFunc();
}else{
var evDate=event.start;
$.ajax({
url: 'cb_modules/fullcalendar/json-events.php',
cache: false,
data: "id="+event.id+"&date="+evDate.getTime()/1000+"&table="+event.table
});
}
}
});
});
</script>
<h1 align='center'>Органайзер</h1>
<div id='calendar_box'>
<div id='calendar'></div>
</div>
<!-- ============================== КОНЕЦ ОРГАНАЙЗЕР ==================================== -->
<!-- ============================== НАЧАЛО ССЫЛКИ НА СТАРТОВОЙ ========================== -->
<h1 align='center'>Начните работу{$admin_link}</h1>
{foreach from=$output_array item=data}
<a style="border-top:1px silver solid;" class="yellow_box" href="{$data.url}&back_url={$base64_current_url}"><span class="start_link">{$data.title}</span><br>{$data.description}</a>
{/foreach}
<!-- ============================== КОНЕЦ ССЫЛКИ НА СТАРТОВОЙ ========================== -->
</td>
<td valign="top" width=50%>
<h1 align='center'>Лента напоминаний</h1>
<table width="100%" cellspacing=0 cellpadding=0>
{foreach from=$tips_array item=data}
<tr>
<td valign="middle" align="right" style="border-bottom:1px #DDDDDD solid;font-size:13px;padding: 3px 15px 3px 3px;" width="15px"><img id='tip_flag_{$data.arhive}_{$data.id}' style='cursor:pointer;' src='images/star{if !$data.flag}_gray{/if}.png' onclick='change_tip_flag({$data.id},{$data.arhive})' title='{$lang.select_tip_flag1}'></td>
<td valign="top" align="left" style="border-bottom:1px #DDDDDD solid;font-size:12px;padding: 4px 4px 4px 0;"><a class="tip_a" style="color:{if !$data.inactive}black{else}gray{/if}; padding: 0;{if !$data.inactive}font-weight: bold;{else}text-decoration:line-through;{/if}" href="view_line{$config.vlm}.php?table={$data.table}&line={$data.line}&back_url={$base64_current_url}">{$data.message}</a></td>
<td valign="top" align="right" style="border-bottom:1px #DDDDDD solid;font-size:13px;padding: 3px 5px 3px 3px; color:{if !$data.inactive}black{else}gray{/if};" width="40px" nowrap>{$data.data}</td>
<td valign="middle" align="left" style="border-bottom:1px #DDDDDD solid;">
<div id='bg_divt_{$data.arhive}_{$data.id}' style="background-color:{$data.color};width:9px;" > </div>
{* Идиотизм связанный с strict mode невозможность задать div 100% выстоы *}
<script>
st=document.getElementById('bg_divt_{$data.arhive}_{$data.id}');
st.style.height=(st.parentNode.offsetHeight-10)+"px";
</script>
</td>
</tr>
{/foreach}
</table>
{foreach from=$error_array item=data}
<div style="border-bottom:1px #DDDDDD solid; padding:3px; font-size:12px; color:black">
<table width="100%">
<tr>
<td valign="top" align="left" style="color:#333">{$data.message}</td>
</tr>
</table>
</div>
{/foreach}
<div style="margin:7px 0 0 0; text-align:right;"><a style="padding:3px;" href="report.php?id={$archive_id}">Посмотреть все</a></div>
</td>
</tr>
</table>
<div style="height:25px;">{* Дырка внизу *}</div>
json-events.php
<?php
// Включаем модули и подключаемся к клиентской базе
require_once $_SERVER['DOCUMENT_ROOT'] . "/cb/include/config.php";
require_once $_SERVER['DOCUMENT_ROOT'] . "/cb/include/mysql_connect.php";
require_once $_SERVER['DOCUMENT_ROOT'] . "/cb/include/functions1.php";
require_once $_SERVER['DOCUMENT_ROOT'] . "/cb/include/functions2.php";
require_once $_SERVER['DOCUMENT_ROOT'] . "/cb/include/constants.php";
require_once $_SERVER['DOCUMENT_ROOT'] . "/cb/include/sql_functions.php";
// определение входа с мобильного устройства
require_once $_SERVER['DOCUMENT_ROOT'] . "/cb_modules/mobile.php";
if ($_GET['id']) { // если содержит id - обновляем данные в таблице Задания
$id = $_GET['id'];
$date = $_GET['date'];
$table = $_GET['table'];
// Извлекаем название таблицы
$sqlQuery = "SELECT * FROM ". TABLES_TABLE . " WHERE `id`='" . $table . "';";
$result = mysql_query($sqlQuery) or die(mysql_error());
$row = mysql_fetch_assoc($result);
$new_data['Статус записи'] = '0';
$new_data['Срок сдачи'] = date('Y-m-d H:i:s',$date);
$new_data['Перезвонить'] = date('Y-m-d H:i:s',$date);
update_query($new_data,$row['name_table'],"id=$id");
}else{ // если переданные данные отсутсвуют - формируем календарь
$userID = $_GET['userID'];
$eventCSS = array('class_done'=>'grey','class_toMe'=>'green','class_fromMe'=>'blue'); // цвета событий
$arr_event = array();
// =================================================================================================
// Извлекаем данные из таблицы ЗАДАНИЯ
// =================================================================================================
$a_data = data_table("Задания", "`status`='0' AND `f498`!='0000-00-00 00:00:00' AND (`user_id`= $userID OR `f492`=$userID)", "all");
foreach ($a_data as $data) {
// Извлекаем ФИО пользователя
$sqlQuery = "SELECT * FROM ". USERS_TABLE . " WHERE `id`='" . $data['Сотрудник'] . "';";
$result = mysql_query($sqlQuery) or die(mysql_error());
$user_row = mysql_fetch_assoc($result);
$user_fio = $user_row['fio'];
//$titleTxt = preg_replace("/(\n{1,})/ims"," ",$data['Описание задания']);
//$titleTxt = utf8_encode($data['Описание задания']);
//$titleTxt = mb_strimwidth($data['Описание задания'], 0, 40, ">>>");
$titleTxt = mb_substr($data['Описание задания'], 0, 40,'utf-8');
$titleTxt .= (strlen($titleTxt)>40)?' ...':'';
// Формируем опции в зависимости от задания (выполнено, назначено мне, назначено мной)
if ($data['Задание выполнено']=='Да'){
$classCSS = 'class_done';
$editable = false;
$qTipText = "Для " . $user_fio . ".<br/>" . $data['Тип задачи'] .":<br/><em style='color:mediumslateblue;'>" . $data['Описание задания'] . "</em>";
$qTipText .= ($data['Результат'])?"<hr/><em style='color:DeepPink;'>" . $data['Результат'] . "</em>":"";
$title = $data['Тип задачи'] .": " . $titleTxt;
}elseif ($data['Кто добавил']==$userID && $data['Сотрудник']!=$userID) {
$classCSS = 'class_fromMe';
$editable = ($data['Кто добавил']==$userID);
$qTipText = "Для " . $user_fio . ".<br/>" . $data['Тип задачи'] .":<br/><em style='color:mediumslateblue;'>" . $data['Описание задания'] . "</em>";
$title = "Для " . $user_fio . "." . $data['Тип задачи'] .": " . $titleTxt;
}else{
$classCSS = ($data['Кто добавил']==$userID)?'class_toMe_editable':'class_toMe';
$editable = ($data['Кто добавил']==$userID);
$qTipText = $data['Тип задачи'] .":<br/><em style='color:mediumslateblue;'>" . $data['Описание задания'] . "</em>";
$title = $data['Тип задачи'] .": " . $titleTxt;
};
// заставляем задание мигать, если оно новое
$taskTime = getdate(strtotime($data['Время добавления']));
$wArr = array('5','6');
$taskDay = strtotime($taskTime['year']."-".$taskTime['mon']."-".$taskTime['mday']);
// если запись была добавлена в пятницу, субботу или воскресенье - она считается Новой (мигает) до вторника
$timeDelta = in_array($taskTime['wday'],$wArr)?(9-$taskTime['wday'])*86400:172800;
$classCSS .= ((time() - $taskDay) < $timeDelta)?' newTask':'';
$arr_tmp=array(
'id' => $data['ID'],
'title' => $title,
'start' => $data['Срок сдачи'],
'url' => "view_line2.php?table=47&line=".$data['ID'],
'className' => $classCSS,
'editable' => $editable,
'table' => '47',
'qTip' => $qTipText);
array_push($arr_event,$arr_tmp);
}
// =================================================================================================
// Формируем ПЕРЕЗВОНИТЬ из таблицы Контрагенты
// =================================================================================================
$a_data = data_table("Контрагенты", "`status`='0' AND `f539`!='0000-00-00 00:00:00' AND `user_id`= $userID", "all");
foreach ($a_data as $data) {
$classCSS = 'class_call';
$editable = true;
$qTipText = "Перезвонить: " . $data['Информационное название'] . "<br/><em style='color:mediumslateblue;'>";
if ($data['Мобильный телефон']) $qTipText .= "<br/>Моб.тел.:" . callNumber($data['Мобильный телефон']);
if ($data['Телефон']) $qTipText .= "<br/>Тел.:" . callNumber($data['Телефон']);
$qTipText .= "</em>";
/* if($mobile)
{
$qTipText = preg_replace("/(.+:)/>/>/>^( +)?((\+?7|8) ?)?((\(\d{3}\))|(\d{3}))?( )?(\d{3}[\- ]?\d{2}[\- ]?\d{2})( +)?$/m","$1$2
}*/
$title = "Перезвонить: " . $data['Информационное название'];
$arr_tmp=array(
'id' => $data['ID'],
'title' => $title,
'start' => $data['Перезвонить'],
'url' => "view_line2.php?table=42&line=".$data['ID'],
'className' => $classCSS,
'editable' => $editable,
'table' => '42',
'qTip' => $qTipText);
array_push($arr_event,$arr_tmp);
}
echo json_encode($arr_event);
}
?>
Помогите пожалуйста!
Сообщение отредактировал relise: 25 Июнь 2013 - 18:23