Перейти к содержимому


органайзер, on-line пользователи и прочее


Сообщений в теме: 207

#1 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 356 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 23 Январь 2012 - 14:03

небольшие усовершенствования клиентской части
пишите, что конкретно интересует, буду выкладывать по мере возможности и доработки
Прикрепленный файл  desktop.jpg   142,97К   801 Количество загрузок:
К разработчикам: при наличии в модуле view_line2 опции отвечающая за блокирование вывода верхней шапки (логотип и напоминания) и кнопок справа, например
.../cb/view_line2.php?table=47&line=new&view=brief, ее можно было бы использовать для формирования заданий через органайзер с рабочего стола во всплывающем окне

on-line пользователи
органайзер

Сообщение отредактировал andibrag: 29 Февраль 2012 - 12:50

Творческая группа "ТАВР".

www.TAVR.pro Художественная ковка, металлоконструкции.

www.СтолМет.рф Складные столы, стулья и системы для их хранения


#2 head

    Участник

  • Пользователи
  • PipPip
  • 15 сообщений

Отправлено 23 Январь 2012 - 15:08

очень крутой таб у вас !

#3 bryukhov

    Активный участник

  • Пользователи
  • PipPipPip
  • 317 сообщений
  • Пол:Мужчина
  • Город:Москва

Отправлено 25 Январь 2012 - 08:43

Здравствуйте, отличный функционал. Как узнать больше?
  • Календарь
  • Список пользователей онлайн


#4 smart

    Активный участник

  • Пользователи
  • PipPipPip
  • 297 сообщений
  • Пол:Мужчина
  • Интересы:v1980.8@gmail.com

Отправлено 25 Январь 2012 - 20:50

'andibrag' - ну вы даете!!! Мощно!!!

а как действительно сделать онлайн пользователей?

#5 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 356 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 25 Январь 2012 - 21:36

online пользователи диагностируются через ajax
дискретность 15 секунд
каждый пользователь, пока он в системе, генерирует сигнал в базу, обновляя свою переменную текущего времени
если разница более 15 секунд - пользователь не online
чуть позже выложу модули

Творческая группа "ТАВР".

www.TAVR.pro Художественная ковка, металлоконструкции.

www.СтолМет.рф Складные столы, стулья и системы для их хранения


#6 ABC Index

    Новичок

  • Пользователи
  • Pip
  • 6 сообщений
  • Пол:Мужчина
  • Город:Москва

Отправлено 27 Январь 2012 - 09:04

Браво ! Красота. На месте Директора ООО "Клиентская база " мне было бы не ловко, после такой публикации. Программа приобрела совсем другой вид, и другие возможности. (см. скриншот выше).

#7 bryukhov

    Активный участник

  • Пользователи
  • PipPipPip
  • 317 сообщений
  • Пол:Мужчина
  • Город:Москва

Отправлено 27 Январь 2012 - 09:35

Все верно, возможности и гибкость Системы позволяют это делать, самостоятельно!!!

#8 Гарифуллин Марат

    Администратор

  • Руководитель ООО "КБ"
  • PipPipPip
  • 121 сообщений
  • Пол:Мужчина

Отправлено 27 Январь 2012 - 11:02

Я директор КБ и мне не только не стыдно, наоборот я рад, что появляются такие решения. Мы изначально сделали ставку на универсальность и максимальную гибкость системы, и то, что подобные решения появляются только укрепляет наши позиции. Было бы глупо думать что директору Мерседеса было стыдно, когда появлялись тюнингованные решения на базе их автомобилей.

Я считаю, что по поводу конкретной конфигурации и дизайна на всех угодить невозможно именно поэтому мы разделили движок и конфигурацию, а в дальнейшем отделим и оформление (скины) программы.

Мы хотим, чтобы на базе нашей программы, разарботчики создавали их персональные конфигурации, и для этого мы работаем над расширением функционала в первую очередь для разработчиков. В приведенном выше решении есть интересные идеи, которые запланированы или уже разрабатываются у нас, с тем отличием, что они более универсальны.

Я понимаю, что разместить градиент, тени, и новые иконки в дизайне является для некоторых более важным, но мы работаем над другим не менее заметными функционалом:

1) В ближайшее время выйдет новая версия КБ с возможностью мнгновенной синхронизации данных между двумя и более баз данных. Таким образом компании смогут работать одновременно в версиях WEB, LOCAL и Saas

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

3) В марте появиться "Магазин конфигураций", в котором разработчики смогут выкладывать и продавать, конфигурации программы КБ. Таким образом наши партнеры, смогут писать и поддерживать узкоспециализированные по отраслям конфигурации и получать деньги от их продажи. Сейчас мы разрабатываем механизм защиты конфигураций от множественного копирования.

И это лишь немногие направления над которыми мы работаем.

#9 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 356 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 27 Январь 2012 - 15:54

Уважаемые господа пользователи.
Клиентская база - это продукт не только для предпринимателей, но и для творческих личностей. Программа выполнена как конструктор. У Вас же на возникает мысли, что директору компании Lego должно быть стыдно за то, что из ЕГО кубиков создают целые игрушечные города? Так в чем отличие? Создавайте свои конфигурации. Используйте продукт как основу. В этом его уникальность. Я протестировал множество CRM. Несмотря на большое количество вопросов к разработчикам, которых не уменьшается с течением времени, я продолжаю использовать и совершенствовать КБ под конкретно свои цели и задачи. Ну а касаемо представленного скриншота оболочки, все описанное создано не вопреки, а с использованием инструментов, предусмотренных разработчиками.
Синхронизация с 1С - это крупный шаг вперед. Несмотря на то, что я лично ее (программу) недолюбливаю, мой бухгалтер считает иначе. Ждем новой версии.

Творческая группа "ТАВР".

www.TAVR.pro Художественная ковка, металлоконструкции.

www.СтолМет.рф Складные столы, стулья и системы для их хранения


#10 dozzzer81

    Участник

  • Пользователи
  • PipPip
  • 16 сообщений

Отправлено 27 Январь 2012 - 17:59

Когда ждать синхронизации с 1с? это вопрос черзвычайной важности!!!

#11 head

    Участник

  • Пользователи
  • PipPip
  • 15 сообщений

Отправлено 27 Январь 2012 - 18:27

+1

#12 Гарифуллин Марат

    Администратор

  • Руководитель ООО "КБ"
  • PipPipPip
  • 121 сообщений
  • Пол:Мужчина

Отправлено 27 Январь 2012 - 18:34

Бета-версия синхронизации (в том числе с 1С) будет выложена в период с 15 по 29 февраля.

#13 bryukhov

    Активный участник

  • Пользователи
  • PipPipPip
  • 317 сообщений
  • Пол:Мужчина
  • Город:Москва

Отправлено 27 Январь 2012 - 18:45

Просмотр сообщенияandibrag (25 Январь 2012 - 21:36) писал:

online пользователи диагностируются через ajax
дискретность 15 секунд
каждый пользователь, пока он в системе, генерирует сигнал в базу, обновляя свою переменную текущего времени
если разница более 15 секунд - пользователь не online
чуть позже выложу модули

чуть позже не наступило :) ?

#14 smart

    Активный участник

  • Пользователи
  • PipPipPip
  • 297 сообщений
  • Пол:Мужчина
  • Интересы:v1980.8@gmail.com

Отправлено 27 Январь 2012 - 19:04

все правильно написали...


вот только насчет 1С ... ну не лежит у меня к нему душа ... лучше бы с Gmail синхронизировали ...

P.S. А давайте поощрять таких гуру как
andibrag

Может Donate какой организовать или еще что? Тут в форуме можно карму повышать? медали давать:)

#15 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 356 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 24 Февраль 2012 - 23:05

On-line пользователи.
Модуль включает в себя два раздела - первый формирует on-line пользователей, второй - вывод сообщений от пользователей в системный трей (там где часики). Последнее актуально пока только для пользователей Google Chrome, поскольку задействованы функции HTML5.
Итак. Потребуется некоторая доработка существующей в стандартной конфигурации таблицы Сообщения. Прикрепленный файл  mess1.jpg   6,56К   186 Количество загрузок:
Первые два скрыть через настройки доступа, последнее средствами javascript -
display_field(ХХХХ,0);
, где ХХХХ - номер поля is_read в базе.
В файл javascript, который подгружается при запуске программы (как это сделать описано здесь, иного способа разработчики, в силу непонятных мне причин, пока не допускают) прописать следующий код:
// JavaScript Document
function IncludeJavaScript(jsFile)
{
  document
.write('<script type="text/javascript" src="'
       
+ jsFile + '"></scr' + 'ipt>');
}
function IncludeCSS(cssFile)
{
  document
.write('<link rel="stylesheet" href="'
       
+ cssFile + '" type="text/css" media="screen, projection" />');
}
IncludeJavaScript("/cb/include/jquery/jquery.min.js"); // уточните название файла jquery, посмотрев соответствующую папку.
//IncludeJavaScript("/cb_modules/qTip/jquery.qtip.min.js");
IncludeJavaScript("/cb_modules/script_1.js");
//IncludeCSS("/cb_modules/qTip/jquery.qtip.css");
Дописывая в файл строки по аналогии вы сможете подключать любые js и css файлы. Закомментированные строки даны для примера. Об использовании модуля qtip - в другой раз.
Несмотря на то, что jquery используется в программе, мы вынуждены подключать его повторно, поскольку его родной брат будет прописан несколько далее и если этого не сделать - функции работать не будут.
Теперь об основном js файле. У меня он называется script_1.js и лежит в папке cb_modules. Как назовете его вы и где он будет размещаться неважно, главное правильно указать это в строке подключения.
function show_online()  {

  $
.ajax({  
        dataType
: "html",  
        url
: "../cb_modules/user_online.php",  
        cache
: false,
        data
: "access="+access_M+"&user="+user_M,
        success
: function(html){
           $
("#user_online").html("<span style='text-align:center'><b>Пользователи ONLINE:</b></span>");
           
var arr_html=html.split("|||");
           $
("#user_online").append(arr_html[0]);
           
var script = document.createElement("script");
           script
.text=arr_html[1];
           document
.getElementById("user_online").appendChild(script);
       
},  
        error
:  function(xhr,str){
           
var err_str = xhr.responseCode;
           $
("#user_online").html("<span style='text-align:center'><b>Ошибка: " + str + "</b></span>");
       
}
 
});  
}  

var access_M, user_M;
$
(function($) {
// ======================= НАЧАЛО ON-LINE ПОЛЬЗОВАТЕЛИ ===========================
 
// создаем слой, куда будут выводится данные о пользователях  
        $
(".otstup2").prepend("<div id='user_online' class='block1'></div>");
       
// извлекаем дату и время обновления страницы
       
var d = new Date();
       
var dt = d.getFullYear()+"-"+(d.getMonth()+1)+"-"+d.getDate()+" "+d.getHours()+":"+d.getMinutes()+":"+d.getSeconds();
        access_M
= dt;
        user_M
= $(".yourname").text();
       
// отправляем данные функцией show_online через интервал времени timeInt
       
var timeInt=15000;
        show_online
();
        setInterval
('show_online()',timeInt);
// ======================= КОНЕЦ ON-LINE ПОЛЬЗОВАТЕЛИ ============================

});
После того как код заработал - не занимался его оптимизацией. Не до этого. Поэтому выложен как есть.
В функции show_online средствами ajax запрашивается файл user_online.php, который также лежит в папке cb_modules. Код в файле генерирует таблицу on-line пользователей с дискретностью запроса 20 секунд. Вполне достаточно, чтобы понимать о присутствии пользователя в сети. Если захотите снизить этот показатель - уменьшите переменную $sec.
Прикрепленный файл  user_online.php   9,88К   33 Количество загрузок:
Файл заточен на стандартную конфигурацию. Изменений вносит не требуется, за исключением информации, которую вы хотите передать в title, отображаемый при наведении курсором на пользователя. Можете сформировать свой вывод данных (телефон, е-mail или любое другое инфо) и сделать ссылку, например, на страницу пользователя при клике на его ФИО. Отвечает за это строка 61.
Как я уже писал, вторая задача модуля - вывод сообщений в трей. Для этой цели скрипт вносит изменения в системную таблицу users из вашей конфигурации (дополняет ее полями) и создает еще одну таблицу для хранения сведений о доставке сообщений получателю. Поэтому, настоятельно рекомендую сделать бекап данных. У меня проблемы не возникало, но береженого, как говорится.....
Даже если вас не было в сети и на ваше имя отправили сообщения - они поочередно отразятся в трее, когда вы войдете в КБ.
В настоящее время сообщения не являются активными, т.е. по ним не кликнуть и не перейти на соответствующую страницу и это не удобно. Дойдут руки - переделаю.
В своем файле таблицы стилей (в данном примере подключен alt.css) пропишите класс:
.block1 {
position
:absolute;
padding
-left:10px;
padding
-right:10px;
padding
-bottom:3px;
right
:50px;
top
:30px;
border
: solid 1px white;
border
-radius: 4px;
z
-index:100;
color
:#FFFFFF;
text
-align:right;
}
Регулируя параметрами right, top и padding, настраиваете размещение слоя на странице. Не забывайте, что браузер по умолчанию кеширует настройки стилей. Поэтому внося изменения в css файл либо очищайте кеш, либо обновляйте страницу через F5.
Успехов.

Творческая группа "ТАВР".

www.TAVR.pro Художественная ковка, металлоконструкции.

www.СтолМет.рф Складные столы, стулья и системы для их хранения


#16 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 356 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 29 Февраль 2012 - 00:26

Органайзер.
В качестве основы использован модифицированный jquery плагин fullcallendar. Документацию по его настройке найдете по указанной выше ссылке. События в органайзер добавляются из таблиц КБ при отображении рабочего стола или смене режима отображения (в данном представлении их четыре: год, месяц, неделя и день). Отображение год не является родным, поэтому его вывод несколько кривоват, когда-нибудь допилю и выложу. В предложенном представлении из стандартной конфигурации используются таблица Контрагенты (отображается поле Перезвонить) и таблица Задания. Событие, созданное вами, можно перетащить на другую дату в календаре, что изменит дату в связанной с ним записи в таблице. Если задания назначены для вас - они заблокированы от переноса.
Код представления.
Подготовка данных: в стандартный код добавьте
// ===================== для представления ОРГАНАЙЗЕР
$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.5.2.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.8.16.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
: "&nbsp;&#9668;&nbsp;",
                                         next
: "&nbsp;&#9658;&nbsp;",
                                         prevYear
: "&nbsp;&lt;&lt;&nbsp;",
                                         nextYear
: "&nbsp;&gt;&gt;&nbsp;",
                                         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;" >&nbsp;</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. Изучив его строение, можно самостоятельно создать выдачу событий из других таблиц по аналогии, например, с Заданиями (см. содержимое файла, чтобы понять о чем речь)
О размещении. В корневом каталоге создайте папку cb_modules. Все скрипты лежать в ней. Календарь - в папке fullcalendar. Файлы и плагины jquery в одноименной папке - jquery, плагин qTip - создает форматируемые подсказки вместо стандартного title - в папке qTip. Приложения:
вся папка для календаря - Прикрепленный файл  fullcalendar.rar   51,63К   68 Количество загрузок:,
папка с jquery - Прикрепленный файл  jquery.rar   81,94К   45 Количество загрузок:. Обращаю внимание, что плагин fullcallenar дружит только с jquery версии не старше 1.5.2, именно она и размещена в архиве,
пака qTip - Прикрепленный файл  qTip.rar   45,14К   50 Количество загрузок:
Чуть не забыл про еще один модуль Прикрепленный файл  mobile.php   2,29К   35 Количество загрузок: - вносит специальные теги для номеров телефонов, делая их активными для мобильных устройств.
Все это распаковать в cb_modules и вроде все.
Пользуйтесь.
Успехов.

Творческая группа "ТАВР".

www.TAVR.pro Художественная ковка, металлоконструкции.

www.СтолМет.рф Складные столы, стулья и системы для их хранения


#17 bryukhov

    Активный участник

  • Пользователи
  • PipPipPip
  • 317 сообщений
  • Пол:Мужчина
  • Город:Москва

Отправлено 02 Март 2012 - 08:46

куда помещать:
  • папка с jquery ?
  • пака qTip ?
  • mobile.php ?


#18 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 356 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 02 Март 2012 - 08:54

Просмотр сообщенияbryukhov (02 Март 2012 - 08:46) писал:

куда помещать:
  • папка с jquery ?
  • пака qTip ?
  • mobile.php ?

Цитата

В корневом каталоге создайте папку cb_modules. Все скрипты лежать в ней. Календарь - в папке fullcalendar. Файлы и плагины jquery в одноименной папке - jquery, плагин qTip - создает форматируемые подсказки вместо стандартного title - в папке qTip.

Творческая группа "ТАВР".

www.TAVR.pro Художественная ковка, металлоконструкции.

www.СтолМет.рф Складные столы, стулья и системы для их хранения


#19 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 356 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 05 Март 2012 - 20:12

Просмотр сообщенияГарифуллин Марат (27 Январь 2012 - 18:34) писал:

Бета-версия синхронизации (в том числе с 1С) будет выложена в период с 15 по 29 февраля.
когда ожидать? модуль будет бесплатным?

Творческая группа "ТАВР".

www.TAVR.pro Художественная ковка, металлоконструкции.

www.СтолМет.рф Складные столы, стулья и системы для их хранения


#20 dozzzer81

    Участник

  • Пользователи
  • PipPip
  • 16 сообщений

Отправлено 06 Март 2012 - 12:08

Просмотр сообщенияandibrag (05 Март 2012 - 20:12) писал:

когда ожидать? модуль будет бесплатным?
Тоже ждем +1





Количество пользователей, читающих эту тему: 2

0 пользователей, 2 гостей, 0 анонимных