* @version $Id$
* @access public
* @license http://opensource.org/licenses/gpl-3.0.html
*/
include_once(override('../workshop/'.SQL.'.inc.php'));
if(!function_exists('DisplayFiles')) {
function DisplayFiles($work_id, $url) {
if(!$GLOBALS['l21auth']->isWorkgroupUser($work_id, $GLOBALS['sql_object'])) return false;
$r = $GLOBALS['sql_object'] -> DBSelect( SQL_getoneCompleteWorkshop($work_id));
$workshop_status = $r[0]['workshop_statut'];
if($workshop_status == 'P') $sharedpath = '../library/userfiles/workgroups/shared/';
else $sharedpath = '../library/userfiles/workgroups/shared-archives/';
echo '
'.PHP_EOL;
echo '
' ._t('workshop', 'files').' : '.PHP_EOL;
// $path = '../library/userfiles/workgroups/'.$work_id.'/';
$path = getWorkgroupSmartFolder($work_id);
if(!file_exists($path)) echo '
'._t('divers', 'no_files').' ';
else {
// we display files
echo get_files(getDirContents($path), $work_id);
}
echo '
'.PHP_EOL;
echo ''.PHP_EOL;
echo '
'._t('workshop', 'common_files').' : '.PHP_EOL;
if(!file_exists($sharedpath)) echo '
'._t('divers', 'no_files').' ';
else {
// we display files
echo get_files(getDirContents($sharedpath), 'shared');
}
echo '
'.PHP_EOL;
echo '';
if(MOD_COMMENT == 1) {
echo '';
}
}
}
if(!function_exists('getFileComments')) {
function getFileComments($id) {
$data=$GLOBALS['sql_object'] -> DBSelect(SQL_getCommentsNumber(array('module' => 'files', 'module_id' => $id)));
return $data[0]['nb'];
}
}
if(!function_exists('uploadForm')) {
function uploadForm($id) {
if(!$GLOBALS['l21auth']->isWorkgroupUser($id, $GLOBALS['sql_object'])) die('no way!');
$r = $GLOBALS['sql_object'] -> DBSelect( SQL_getoneCompleteWorkshop($id));
$workshop_status = $r[0]['workshop_statut'];
if($workshop_status != 'P') ReloadIndex('public');
include_once('../class/system/class.upload.php');
if(isset($_FILES['file'])) {
$upload = new upload;
error_reporting(E_ALL);
ini_set("display_errors", 1);
$ext= $upload->GetExtension($_FILES['file']['name']);
// extension check
if(in_array(strtolower($ext), explode(',', MEDIA_ALLOWED_EXT))) {
$dest = '../library/userfiles/workgroups/';
if(isset($_POST['shared_file'])) {
$dest .= 'shared/';
$is_shared = true;
}
else {
$dest .= $id.'/';
$is_shared = false;
}
if($upload->CheckMaxFile(filesize($_FILES['file']['tmp_name']), MEDIA_ALLOWED_SIZE) === true) {
$filename_parts = pathinfo($_FILES['file']['name']);
$final_name = Stringy\Stringy::create($filename_parts['filename'], CHARSET)->slugify().'.'.$filename_parts['extension'];
$r = $upload->UploadFile($_FILES['file'], $final_name, $dest);
if($r === true) {
notifyUsersMsg(array('id' => $id,'user' => $_SESSION['userlogin'] ,'owner' => $_SESSION['userlogin'], 'action' => 'file_alert', 'is_shared'=> $is_shared, 'files' => array($final_name)));
$confirmation = $final_name . ' : ' . _t('upload', 'confirmed');
}
} else {
$err_msg = $upload->CheckMaxFile(filesize($_FILES['file']['tmp_name']), MEDIA_ALLOWED_SIZE);
}
} else {
$err_msg = sprintf(_t('upload', 'wrong_ext'), str_replace(",", ", ", MEDIA_ALLOWED_EXT));
}
}
echo '';
if(ALERT_NEWFILE == 2) echo ''._t('workshop','notify_file').'
'; else $notify = '';
if(isset($err_msg)) echo ''.$err_msg.'
'.PHP_EOL;
if(isset($confirmation)) echo ''.$confirmation.'
'.PHP_EOL;
// *** Include dropzone ***
$fileDesc = str_replace(',', ', ', MEDIA_ALLOWED_EXT);
$filesAllowed = str_replace(',', ',.', MEDIA_ALLOWED_EXT);
addDynamicCSS('../lib/js/dropzone-5.9.3/dist/min/dropzone.min.css');
footerAddJS('../lib/js/dropzone-5.9.3/dist/min/dropzone.min.js');
$maxfiles = 8 ;
$limit_msg = sprintf(_t('upload', 'n_simultenaous_transfer'), $maxfiles);
$limit_msg .= ' ' . sprintf(_t('upload', 'upload_max_size'), MEDIA_ALLOWED_SIZE);
$js = '
';
footerAddInlineJS($js, 'default', false);
}
}
if(!function_exists('DisplayUrlFiles')) {
function DisplayUrlFiles($work_id, $work_name) {
ActiveItemKey($GLOBALS['activeitem'])=='files' ? $class='active' : $class='';
$link = array('rub'=> $GLOBALS['links'][U_L]['files']['linkvalue'],'id'=>$work_id, 'name' => $work_name);
$content=''._t('workshop','shared_files').' '.PHP_EOL;
echo $content;
}
}
/**
* DisplayUrlAllCalendar()
* affichage de l'URL de détails d'un calendrier
* @param $workshop_id
* @return
**/
if(!function_exists('DisplayUrlAllCalendar')) {
function DisplayUrlAllCalendar($workshop_id) {
$link_table= array('rub'=> $GLOBALS['links'][U_L]['calendar']['linkvalue'],'id'=>$workshop_id);
$content=''.PHP_EOL;
$content.=''._t('workshop','cal_all').' '.PHP_EOL;
$content.='
'.PHP_EOL;
echo $content;
}
}
/**
* DisplayUrlInscription()
* affichage de l'URL d'inscription au groupe de travail
* @param $workshop_id
* @param $testcookie
* @return
**/
if(!function_exists('DisplayUrlInscription')) {
function DisplayUrlInscription($workshop_id, $workshop_restricted, $testcookie) {
$link_table= array('rub'=> $GLOBALS['links'][U_L]['workgroup-subscription']['linkvalue'],'id'=>$workshop_id);
$link_table2= array('rub'=> $GLOBALS['links'][U_L]['user-prefs']['linkvalue']);
$link_create = HrefMaker(array('rub'=> $GLOBALS['links'][U_L]['user-registration']['linkvalue']));
if(defined('FREE_REGISTRATION') && FREE_REGISTRATION == 1) $accountLink = sprintf(_t('divers','create-account'), $link_create, formatText(_t('divers','user_inscription'), '2ATT')); else $accountLink ='';
if (!isset($_SESSION['authenticated'])) {
$content=''._t('divers','noauth').''.PHP_EOL;
$content.=' '.sprintf(_t('divers','msg-auth'), HrefMaker($link_table2), formatText(_t('divers','auth'), '2ATT'), 'login-link', $accountLink).PHP_EOL;
$content.='
'.PHP_EOL;
}
else{
if ($testcookie <> true) {
$content=''._t('workshop','noinscription').''.PHP_EOL;
if($workshop_restricted == 1) {
$content .= '
'.mb_ucfirst(_t('workshop','restricted')).'. '.PHP_EOL;
} else {
$content.='
'._t('workshop','creainscription2').' : '.PHP_EOL;
$content.='
'._t('workshop','creainscription').' ';
}
$content.='
'.PHP_EOL;
}
}
echo $content;
}
}
/**
* DisplayUrlTopicList()
* affichage URL pour accéder aux discussions
* @param $work_id
* @param $contenu
* @return
**/
if(!function_exists('DisplayUrlTopicList')) {
function DisplayUrlTopicList($work_id, $work_name) {
(ActiveItemKey($GLOBALS['activeitem'])=='topic-list' || ActiveItemKey($GLOBALS['activeitem'])=='topic-add' || ActiveItemKey($GLOBALS['activeitem'])=='topic' || ActiveItemKey($GLOBALS['activeitem'])=='post-update') ? $class='active' : $class='';
$link_table= array('rub'=> $GLOBALS['links'][U_L]['topic-list']['linkvalue'],'id'=>$work_id, 'name' => $work_name);
$content=''._t('workshop','com_public').' '.PHP_EOL;
echo $content;
}
}
/**
* DisplayUrlCalendar()
* affichage URL pour accéder aux calendrier
* @param $work_id
* @param $contenu
* @return
**/
if(!function_exists('DisplayUrlCalendar')) {
function DisplayUrlCalendar($work_id, $work_name) {
(ActiveItemKey($GLOBALS['activeitem'])=='calendar' || ActiveItemKey($GLOBALS['activeitem'])=='workgroup' )? $class='active' : $class='';
$link_table= array('rub'=> $GLOBALS['links'][U_L]['calendar']['linkvalue'],'id'=>$work_id, 'name' => $work_name);
$content=''._t('workshop','cal_all').' '.PHP_EOL;
echo $content;
}
}
/**
* DisplayUrlListerapport()
* affichage URL pour accéder aux rapports
* @param $work_id
* @param $contenu
* @return
**/
if(!function_exists('DisplayUrlListerapport')) {
function DisplayUrlListerapport($work_id, $work_name) {
ActiveItemKey($GLOBALS['activeitem'])=='report-all' ? $class='active' : $class='';
$link_table= array('rub'=> $GLOBALS['links'][U_L]['report-all']['linkvalue'],'id'=>$work_id, 'name' => $work_name);
$content=''._t('workshop','barre_report').' '.PHP_EOL;
echo $content;
}
}
/**
* DisplayUrlListeutilisateurs()
* affichage URL pour accéder aux utilisatuers
* @param $work_id
* @param $contenu
* @return
**/
if(!function_exists('DisplayUrlListeutilisateur')) {
function DisplayUrlListeutilisateur($work_id, $work_name) {
ActiveItemKey($GLOBALS['activeitem'])=='user-all' ? $class='active' : $class='';
$link_table= array('rub'=> $GLOBALS['links'][U_L]['user-all']['linkvalue'],'id'=>$work_id, 'name' => $work_name);
$content=''._t('workshop','participant').' '.PHP_EOL;
echo $content;
}
}
if(!function_exists('DisplayUrlAddTopic')) {
function DisplayUrlAddTopic($work_id) {
$link_table= array('rub'=> $GLOBALS['links'][U_L]['topic-add']['linkvalue'],'id'=>$work_id);
$content=' '._t('workshop','add_com').' '.PHP_EOL;
echo $content;
}
}
/**
* DisplayListWorkshop()
* affichage de la liste de groupe de travail
* @param integer $id_filter
* @param integer $filter
* @return
**/
if(!function_exists('DisplayListWorkshop')) {
function DisplayListWorkshop($id_filter=-1, $filter=-1) {
if ($filter == -1) $filter='public';
if($filter == 'LEVEL') {
$levels = getLevelChildren($GLOBALS['sql_object']->DBSelect(SQL_getLevelsList()), $id_filter);
$id_filter = array_extract($levels, 'level_id', true, 'children');
}
if(ActiveItemKey($GLOBALS['activeitem']) == 'workgroup-archives') $filter = 'archives_p';
$data=$GLOBALS['sql_object'] -> DBSelect(SQL_getWorkshopList($debut=-1, $limite=-1, $filter , $id_filter));
$sep = ' / ';
if($data!=0)
{
$content= '';
for($i=0; $iisAuthenticated() && ($GLOBALS['l21auth']->isSuperAdmin() || $GLOBALS['l21auth']->isWorkgroupUser($data[$i]['workshop_id'], $GLOBALS['sql_object']))) {
$levels = $GLOBALS['sql_object']->DBSelect(SQL_getLevelsList());
$level = getLevelParent($levels, $data[$i]['level_id'], 0);
$link_detail = array('rub'=> $GLOBALS['links'][U_L]['workgroup']['linkvalue'],'id'=>$data[$i]['workshop_id'],'name'=>$data[$i]['workshop_denomination']);
if(is_array($level)) {
$link_level = array('rub' => $GLOBALS['links'][U_L]['workgroup']['linkvalue'], 'filter' => $GLOBALS['filters'][U_L]['level']['linkvalue'], 'id' => $level['id'], 'name' => $level['name']);
}
$workshop_title=formatText($data[$i]['workshop_denomination'], '2HTML');
$workshop_resume=formatText($data[$i]['workshop_resume'], '2HTML');
if($data[$i]['workshop_restricted'] == 1) {
$workshop_restricted = ' ('._t('workshop', 'restricted').') '.PHP_EOL;
} else {
$workshop_restricted = '';
}
// marker visible to organizer and admin to mention workshop is not visible to others
if($data[$i]['workshop_visible'] == 0 && $GLOBALS['l21auth']->isWorkgroupOrganiser($GLOBALS['l21auth']->GetSessionElement('id'), $GLOBALS['sql_object'], $data[$i]['workshop_id'])) {
$workshop_visible = ' '._t('workshop', 'visible').' : '._t('divers', 'no').' '.PHP_EOL;
} else {
$workshop_visible = '';
}
$content.=''.PHP_EOL;
$content.=''.$workshop_title.' '.PHP_EOL;
$content.=$workshop_restricted;
$content.=' '.PHP_EOL;
$content.=''. $workshop_visible. $workshop_resume .'
'.PHP_EOL;
$content.=''.PHP_EOL;
if(is_array($level)) $content .= ' ' . $level['label'] . ' : ' . $level['name'] . ' '. PHP_EOL;
$content.='
'.PHP_EOL;
if($GLOBALS['l21auth']->isWorkgroupUser($data[$i]['workshop_id'], $GLOBALS['sql_object'])) $content .= ''. _t('workshop', 'member') .'
';
$content.= ''._t('workshop', 'access_to').' ';
$content.=' '.PHP_EOL;
}
}
}
else
{
$content=''._t('divers','nodata').'
';
}
echo $content;
}
}
/**
* DisplayCalendar()
* affichage du calendrier
* @param $workshop_id
* @param $filter all | inciming | past
* @return
**/
if(!function_exists('DisplayCalendar')) {
function DisplayCalendar($workshop_id, $filter = 'all') {
$data=$GLOBALS['sql_object'] -> DBSelect(SQL_getoneListCalWorkshop($workshop_id, "ALL"));
if($filter == 'incoming') {
$data = array_reverse($data);
}
if(is_array($data))
{
$datenow= strtotime("now");
$inter=1*24*3600;
$content ='';
for($i=0; $i $GLOBALS['links'][U_L]['user-profile']['linkvalue'],'id'=>$data[$i]['workcal_posted_by'], 'name'=>$workcal_author);
if($data[$i]['workcal_workshop_id'] == 999999999) {
$common_task = '' . _t('workshop', 'task_common') . ' ';
} else {
$common_task = '';
}
$datetask=$data[$i]['workcal_task_date_display'];
$datetask=formatDate($datetask, true);
$datetask=explode("-", $datetask);
$annee = $datetask[0];
$mois = $datetask[1];
$jour = $datetask[2];
$datetask2 = mktime (0, 0, 0, $mois, $jour, $annee);
$ical_url = 'summary='.rawurlencode(strip_tags($workcal_title));
$ical_url .= '&description='.rawurlencode(strip_tags($workcal_resume));
$ical_url .= '&date='.rawurlencode($annee.$mois.$jour);
$ical_url .= '&filename='.rawurlencode('wg'.$workshop_id.'-event'.$workcal_id);
$ical_url .= '&uri='.rawurlencode(SITE_ROOT_URL.'public/index.php?'.$_SERVER["QUERY_STRING"]);
$ical_url = SITE_ROOT_URL.'workshop/ical.php?'.$ical_url;
if (($datetask2+$inter)>$datenow) $class='in'; else $class='out';
if($filter == 'all' || ($filter == 'incoming' && $class == 'in') || ($filter == 'past' && $class == 'out')) {
$content .= '' . PHP_EOL;
$content .= '';
$content .= '' . $workcal_title . ' ' . PHP_EOL;
$content .= '
' . PHP_EOL;
$content .= '' . _t('statut', 'published_on') . ' ' . $workcal_date_crea . ' ' . PHP_EOL;
$content .= _t('divers', 'by') . ' ' . $workcal_author . ' ' . PHP_EOL;
$content .= '
' . PHP_EOL;
$content .= '
' . $workcal_resume . '
' . PHP_EOL;
$content .= $common_task . PHP_EOL;
$content .= '
' . PHP_EOL;
$content .= ' ' . PHP_EOL;
}
}
$content = ''.PHP_EOL;;
} else {
$content = ''._t('divers','nodata').'
'.PHP_EOL;;
}
echo $content;
}
}
/**
* DisplayCalendarAlt()
* affichage alternatif du calendrier
* @param $workshop_id
* @param $nb
* @return
**/
if(!function_exists('DisplayCalendarAlt')) {
function DisplayCalendarAlt($workshop_id) {
$data=$GLOBALS['sql_object'] -> DBSelect(SQL_getoneListCalWorkshop($workshop_id, "ALL"));
$content = ''.PHP_EOL;
if($data!=0)
{
$datenow= strtotime("now");
$inter=1*24*3600;
for($i=0; $i $GLOBALS['links'][U_L]['user-profile']['linkvalue'],'id'=>$data[$i]['workcal_posted_by'], 'name'=>$workcal_author);
if($data[$i]['workcal_workshop_id'] == 999999999) {
$common_task = '' . _t('workshop', 'task_common') . ' ';
} else {
$common_task = '';
}
$datetask=$data[$i]['workcal_task_date_display'];
$datetask=formatDate($datetask, true);
$datetask=explode("-", $datetask);
$annee = $datetask[0];
$mois = $datetask[1];
$jour = $datetask[2];
$datetask2 = mktime (0, 0, 0, $mois, $jour, $annee);
$ical_url = 'summary='.rawurlencode(strip_tags($workcal_title));
$ical_url .= '&description='.rawurlencode(strip_tags($workcal_resume));
$ical_url .= '&date='.rawurlencode($annee.$mois.$jour);
$ical_url .= '&filename='.rawurlencode('wg'.$workshop_id.'-event'.$workcal_id);
$ical_url .= '&uri='.rawurlencode(SITE_ROOT_URL.'public/index.php?'.$_SERVER["QUERY_STRING"]);
$ical_url = SITE_ROOT_URL.'workshop/ical.php?'.$ical_url;
if (($datetask2+$inter)>$datenow) $class='in'; else $class='out';
$content.=''.PHP_EOL;
$content.='
';
$content.='
'.$workcal_title.' '.PHP_EOL;
$content.='
'.PHP_EOL;
$content.=''._t('statut','published_on') . ' ' .$workcal_date_crea.' '.PHP_EOL;
$content.=_t('divers','by').' '.$workcal_author.' '.PHP_EOL;
$content.='
'.PHP_EOL;
$content.='
'.$workcal_resume.'
'.PHP_EOL;
$content.=$common_task.PHP_EOL;
$content.='
'.PHP_EOL;
$content.='
'.PHP_EOL;
$content.=' '.PHP_EOL;
}
}
else
{
$content.=''._t('divers','nodata').'
';
}
echo $content;
}
}
/**
* getAssociatedProjcts()
* récupère les projets associés à un groupe de travail
* @param $workshop_id
* @param integer $title
* @return
**/
if(!function_exists('getAssociatedProjects')) {
function getAssociatedProjects($workshop_id) {
// getting associated projects
$projects = $GLOBALS['sql_object'] -> DBSelect(SQL_getAssociatedProjects($workshop_id, array('P', 'PA')));
$content = '';
if(!$GLOBALS['l21auth']->isWorkgroupUser($workshop_id, $GLOBALS['sql_object'])) return false;
if(isset($projects[0]['project_id'])) {
$content = '';
$content .= '
'._t('workshop', 'associated_projects').' : ';
if(count($projects) > 1) $content .= '
';
for($i=0; $i < count($projects); $i++) {
$link_project = array('rub' => $GLOBALS['links'][U_L]['project']['linkvalue'], 'id' => $projects[$i]['project_id'], 'name' => $projects[$i]['project_name']);
if(count($projects) > 1) $content .= '';
$content .= ' '. $projects[$i]['project_name'] . ' ';
if(count($projects) > 1) $content .= ' ';
}
if(count($projects) > 1) $content .= ' ';
$content .= '
';
}
return $content;
}
}
/**
* DisplayOneWorkshop()
* affichage du détail d'un groupe de travail
* @param $workshop_id
* @param integer $title
* @return
**/
if(!function_exists('DisplayOneWorkshop')) {
function DisplayOneWorkshop($workshop_id, $title=-1) {
$data=$GLOBALS['sql_object'] -> DBSelect(SQL_getoneCompleteWorkshop($workshop_id, array('P', 'PA')));
$content = ''.PHP_EOL;
if($data == 0) error_redirect();
$levels = $GLOBALS['sql_object']->DBSelect(SQL_getLevelsList());
$level = getLevelParent($levels, $data[0]['level_id'], 0);
$sep = ' / ';
if(count($data)!=1) exit;
else {
$link_self= array('rub'=> $GLOBALS['links'][U_L]['workgroup']['linkvalue'],'id'=>$workshop_id);
if(is_array($level)) {
$link_level = array('rub' => $GLOBALS['links'][U_L]['workgroup']['linkvalue'], 'filter' => $GLOBALS['filters'][U_L]['level']['linkvalue'], 'id' => $level['id'], 'name' => $level['name']);
}
$workshop_title=formatText($data[0]['workshop_denomination'], '2HTML');
$workshop_resume=formatText($data[0]['workshop_resume'], '2HTML');
//$workshop_comment=formatText(cutText($data[0]['workshop_comment'],150), '2HTML');
$workshop_level=formatText(cutText($data[0]['level_name'],50), '2HTML');
if($data[0]['workshop_restricted'] == 1) {
$workshop_restricted = ' ('._t('workshop', 'restricted').') '.PHP_EOL;
} else {
$workshop_restricted = "";
}
// marker visible to organizer and admin to mention workshop is not visible to others
if($data[0]['workshop_visible'] == 0 && $GLOBALS['l21auth']->isAuthenticated() && $GLOBALS['l21auth']->isWorkgroupOrganiser($GLOBALS['l21auth']->GetSessionElement('id'), $GLOBALS['sql_object'], $workshop_id)) {
$workshop_visible = ' '._t('workshop', 'visible').' : '._t('divers', 'no').' '.PHP_EOL;
} else {
$workshop_visible = '';
}
if ($title<>-1) {
$content.='';
$content.=$workshop_title;
$content.=$workshop_restricted;
$content.=' '.PHP_EOL;
}
else{
$content.=''.PHP_EOL;
$content.= formatted_permalink($link_self);
$content.='
'.PHP_EOL;
//$content.=''._t('workshop','det').' '.PHP_EOL;
$content.=''.$workshop_visible. $workshop_resume.'
'.PHP_EOL;
//$content.=''.$workshop_comment.'
'.PHP_EOL;
if($GLOBALS['l21auth']->isWorkgroupUser($workshop_id, $GLOBALS['sql_object'])) $content .= ''. _t('workshop', 'member') .' ';
$content.=''.PHP_EOL;
if(is_array($level)) $content .= $level['label'] . ' : ' . $level['name'] . ' ' . PHP_EOL;
// $content .= _t('divers','sousthemeref').' : '.$workshop_level.PHP_EOL;
$content.='
'.PHP_EOL;
}
}
echo $content;
}
}
if(!function_exists('DisplayWorkgroupSettings')) {
function DisplayWorkgroupSettings($wg_id) {
$content=''.PHP_EOL;
$content.='
'._t('user','notification_settings').' '.PHP_EOL;
$content.='
'._t('user','workgroups_notification').'
'.PHP_EOL;
$content.=getWorkgroupSettings($wg_id);
$content.='
';
echo $content;
}
}
/**
* getWorkgroupSettings()
* affichage du détail d'un groupe de travail
* @param $workshop_id
* @param integer $title
* @return
**/
if(!function_exists('getWorkgroupSettings')) {
function getWorkgroupSettings($wg_id) {
if(!$GLOBALS['l21auth']->isAuthenticated()) return false;
$exceptions = array();
$disabled_fields = array();
$user_id = $GLOBALS['l21auth']->GetSessionElement('id');
// get notification exceptions
$exc=$GLOBALS['sql_object'] -> DBSelect(SQL_getWGUserNotifyExceptionsSettings($user_id, $wg_id));
if(is_array($exc) && isset($exc[0]['exception'])) {
foreach($exc as $el) {
array_push($exceptions, $el['exception']);
}
}
// default mask
$dmask='checked="checked"';
// general config
if(ALERT_NEWTOPIC==2) {
$is_topicDisabled='';
} else {
$is_topicDisabled=' disabled="disabled"';
}
if(ALERT_NEWPOST==2) {
$is_postDisabled='';
} else {
$is_postDisabled=' disabled="disabled"';
}
if(ALERT_NEWFILE==2) {
$is_fileDisabled='';
} else {
$is_fileDisabled=' disabled="disabled"';
}
$content = "";
//$content .= "";
// $content .= "";
// // $content .= "".str_replace(' - ', ' ', _t('user','notify_topic'))." ";
// // $content .= "".str_replace(' - ', ' ',_t('user','notify_post'))." ";
// // $content .= "".str_replace(' - ', ' ',_t('user','notify_file'))." ";
// $content .= ""._t('user','notify_topic')." ";
// $content .= ""._t('user','notify_post')." ";
// $content .= ""._t('user','notify_file')." ";
// $content .= " ";
// $content .= " ";
$content .= "";
if (in_array('topic-' . $wg_id, $exceptions)) {
$topic_mask = '';
$topic_on_class = '';
$topic_off_class = ' selected';
} else {
$topic_mask = $dmask;
$topic_on_class = ' selected';
$topic_off_class = '';
// we handle disabled fields because they are not sent to server !!!
if (ALERT_NEWTOPIC != 2)
array_push($disabled_fields, 'topic-' . $wg_id);
}
if (in_array('post-' . $wg_id, $exceptions)) {
$post_mask = '';
$post_on_class = '';
$post_off_class = ' selected';
} else {
$post_mask = $dmask;
$post_on_class = ' selected';
$post_off_class = '';
// we handle disabled fields because they are not sent to server !!!
if (ALERT_NEWPOST != 2)
array_push($disabled_fields, 'post-' . $wg_id);
}
if (in_array('file-' . $wg_id, $exceptions)) {
$file_mask = '';
$file_on_class = '';
$file_off_class = ' selected';
} else {
$file_mask = $dmask;
$file_on_class = ' selected';
$file_off_class = '';
// we handle disabled fields because they are not sent to server !!!
if (ALERT_NEWFILE != 2)
array_push($disabled_fields, 'file-' . $wg_id);
}
$content .= "";
$content .= ""._t('user','notify_topic')." ";
$content .= "
";
$content .= " ";
$content .= "";
$content .= ""._t('user','notify_post')." ";
$content .= "
";
$content .= " ";
$content .= "";
$content .= ""._t('user','notify_file')." ";
$content .= "
";
$content .= " ";
$content .= " ";
$content .= "
";
$js = ' $( ":checkbox").change(function () {
// alert($(this).prop("name") + " : " + $(this).prop("checked") + " '. $wg_id .'" );
var item = $(this).prop("name");
var value = $(this).prop("checked")
$.ajax({type:"POST", url: "'.SITE_ROOT_URL.'workshop/_ajax_notif-settings.php", data: { workgroup: '. $wg_id .', item: item, notification: value }, dataType: "json", success: function(data) {
if(data.status==1) {
// alertify.success(data.msg);
} else {
// alertify.error(data.msg);
}
}});
});';
footerAddInlineJS($js);
return $content;
}
}
// @todo remove - duplicates ... Compare and remove one
if(!function_exists('getWorkgroupSettings')) {
function getWorkgroupSettings($wg_id) {
if(!$GLOBALS['l21auth']->isAuthenticated()) return false;
$exceptions = array();
$disabled_fields = array();
$user_id = $GLOBALS['l21auth']->GetSessionElement('id');
// get notification exceptions
$exc=$GLOBALS['sql_object'] -> DBSelect(SQL_getWGUserNotifyExceptionsSettings($user_id, $wg_id));
if(is_array($exc) && isset($exc[0]['exception'])) {
foreach($exc as $el) {
array_push($exceptions, $el['exception']);
}
}
// default mask
$dmask='checked="checked"';
// general config
if(ALERT_NEWTOPIC==2) {
$is_topicDisabled='';
} else {
$is_topicDisabled=' disabled="disabled"';
}
if(ALERT_NEWPOST==2) {
$is_postDisabled='';
} else {
$is_postDisabled=' disabled="disabled"';
}
if(ALERT_NEWFILE==2) {
$is_fileDisabled='';
} else {
$is_fileDisabled=' disabled="disabled"';
}
$content = "";
$content .= "";
$content .= "";
// $content .= "".str_replace(' - ', ' ', _t('user','notify_topic'))." ";
// $content .= "".str_replace(' - ', ' ',_t('user','notify_post'))." ";
// $content .= "".str_replace(' - ', ' ',_t('user','notify_file'))." ";
$content .= ""._t('user','notify_topic')." ";
$content .= ""._t('user','notify_post')." ";
$content .= ""._t('user','notify_file')." ";
$content .= " ";
$content .= " ";
$content .= "";
if (in_array('topic-' . $wg_id, $exceptions)) {
$topic_mask = '';
$topic_on_class = '';
$topic_off_class = ' selected';
} else {
$topic_mask = $dmask;
$topic_on_class = ' selected';
$topic_off_class = '';
// we handle disabled fields because they are not sent to server !!!
if (ALERT_NEWTOPIC != 2)
array_push($disabled_fields, 'topic-' . $wg_id);
}
if (in_array('post-' . $wg_id, $exceptions)) {
$post_mask = '';
$post_on_class = '';
$post_off_class = ' selected';
} else {
$post_mask = $dmask;
$post_on_class = ' selected';
$post_off_class = '';
// we handle disabled fields because they are not sent to server !!!
if (ALERT_NEWPOST != 2)
array_push($disabled_fields, 'post-' . $wg_id);
}
if (in_array('file-' . $wg_id, $exceptions)) {
$file_mask = '';
$file_on_class = '';
$file_off_class = ' selected';
} else {
$file_mask = $dmask;
$file_on_class = ' selected';
$file_off_class = '';
// we handle disabled fields because they are not sent to server !!!
if (ALERT_NEWFILE != 2)
array_push($disabled_fields, 'file-' . $wg_id);
}
$content .= "";
$content .= "
";
$content .= "
";
$content .= "
";
$content .= " ";
$content .= " ";
$content .= "
";
$js = ' $( ":checkbox").change(function () {
// alert($(this).prop("name") + " : " + $(this).prop("checked") + " '. $wg_id .'" );
var item = $(this).prop("name");
var value = $(this).prop("checked")
$.ajax({type:"POST", url: "'.SITE_ROOT_URL.'workshop/_ajax_notif-settings.php", data: { workgroup: '. $wg_id .', item: item, notification: value }, dataType: "json", success: function(data) {
if(data.status==1) {
// alertify.success(data.msg);
} else {
// alertify.error(data.msg);
}
}});
});';
footerAddInlineJS($js);
return $content;
}
}
/**
* DisplayUserWorkshop()
* affichage des utilisateurs/organisateurs d'un groupe de travail
* @param $workshop_id
* @return
**/
if(!function_exists('DisplayUserWorkshop')) {
function DisplayUserWorkshop($workshop_id) {
include_once('../class/class.workshop.php');
$workshop_object = new workshop;
if(!$GLOBALS['l21auth']->isWorkgroupUser($workshop_id, $GLOBALS['sql_object'])) return false;
$data=$GLOBALS['sql_object'] -> DBSelect(SQL_getWorkshopUserList($workshop_id));
$cntOrganisers = $workshop_object->get_workshop_nb_users($workshop_id, $GLOBALS['sql_object'], 'O');
$cntMembers = $workshop_object->get_workshop_nb_users($workshop_id, $GLOBALS['sql_object'], 'U');
$totalMembers = $cntOrganisers + $cntMembers;
$counter = sprintf(''. _t('workshop', 'nb_members') .'
', $totalMembers);
$content1='';
$content2=''.PHP_EOL;
$content2.=' '.PHP_EOL;
$content=$counter;
$content.=$content1.$content2;
echo get_pm_code($data[0]['user_login']);
}
else
{
$content.=''._t('workshop','no_user').'
';
}
echo $content;
}
}
/**
* DisplayListReport()
* affichage de la liste des rapports d'un groupe de travail
* @param $workshop_id
* @return
**/
if(!function_exists('DisplayListReport')) {
function DisplayListReport($workshop_id, $status = 'P') {
$data=$GLOBALS['sql_object'] -> DBSelect(SQL_getWorkshopReportList($workshop_id, $status));
$content = ''.PHP_EOL;
if(is_array($data))
{
for($i=0; $iisAuthenticated() || !$GLOBALS['l21auth']->isWorkgroupUser($workshop_id, $GLOBALS['sql_object']))) $flag = false;
if($GLOBALS['l21auth']->isAuthenticated() && $GLOBALS['l21auth']->isSuperAdmin()) $flag = true;
// marker visible to members only to specify workshop is not visible to others
if($data[$i]['workrep_visible'] == 0) {
$workrep_visible = ''._t('workshoprep', 'visible').' : '._t('divers', 'no').'
'.PHP_EOL;
} else {
$workrep_visible = '';
}
if($flag) {
$link_table= array('rub'=> $GLOBALS['links'][U_L]['report']['linkvalue'],'id'=>$data[$i]['workrep_id'], 'name'=>$data[$i]['workrep_title']);
$workrep_title=formatText($data[$i]['workrep_title'], '2HTML');
$workrep_resume=formatText($data[$i]['workrep_resume'], '2HTML');
if(strlen($workrep_resume) > 1000) {
$workrep_resume = cutText(formatText($data[$i]['workrep_resume'], '2HTML'), 500) . '';
} else {
$workrep_resume=formatText($data[$i]['workrep_resume'], '2HTML');
}
$workrep_date_publi=formatText($data[$i]['workrep_published_date_display'], '2HTML');
$content.=''.PHP_EOL;
$content.=$workrep_visible.PHP_EOL;
$content.=''.$workrep_resume.'
'.PHP_EOL;
$content.=''._t('btn', 'read_more').' ';
$content.=''._t('workshop','date_report').' : '.$workrep_date_publi.'
'.PHP_EOL;
$content.=' '.PHP_EOL;
}
}
}
else
{
$content.=''._t('workshop','no_report').'
';
}
echo $content;
}
}
/**
* DisplayListTopic()
* affichage de la liste des discussions
* @param $workshop_id
* @param $debut
* @return
**/
if(!function_exists('DisplayListTopic')) {
function DisplayListTopic($workshop_id, $debut) {
if(!$GLOBALS['l21auth']->isWorkgroupUser($workshop_id, $GLOBALS['sql_object'])) return false;
include_once('../class/class.workshop_com.php');
$workshop_com_object = new workshop_com;
// messages read by current user
$read_messages = $workshop_com_object->getReadMessages($GLOBALS['sql_object']);
// print_r($read_messages);
$r = $GLOBALS['sql_object'] -> DBSelect( SQL_getoneCompleteWorkshop($workshop_id));
$workshop_status = $r[0]['workshop_statut'];
$result_workcom_list=$GLOBALS['sql_object'] -> DBSelect(SQL_getWorkcomList($workshop_id, $debut, SELECT_LIMIT));
$result_nb_com=$GLOBALS['sql_object'] -> DBSelect(SQL_getcountnbcom($workshop_id));
$bdd_nb_com=$result_nb_com[0]['num_rows'];
// print_r($result_workcom_list);
$table_link=array('rub' => $GLOBALS['links'][U_L]['topic-list']['linkvalue'],'id' => $workshop_id);
echo $bdd_nb_com_display = "".$bdd_nb_com." "._t('workshop','nb_total_com')."
\n";
if($result_workcom_list!=0) {
$content= "".PHP_EOL;
$content.= "\n";
$content.= "\n";
$content.= "".mb_ucfirst(_t('workshop','com_subject'))." ".PHP_EOL;
// $content.= "".mb_ucfirst(_t('workshop','com_author'))." ".PHP_EOL;
$content.= "".mb_ucfirst(_t('workshop','com_nb_rep'))." ".PHP_EOL;
$content.= "".mb_ucfirst(_t('workshop','com_nb_views'))." ".PHP_EOL;
$content.= "".mb_ucfirst(_t('workshop','com_date_last'))." ".PHP_EOL;
$content.= " ".PHP_EOL;
$content.= " ".PHP_EOL;
$content.= "".PHP_EOL;
for($i=0; $i DBSelect(SQL_getWorkcom_detList($result_workcom_list[$i]['workcom_id']));
$link_user= array('rub'=> $GLOBALS['links'][U_L]['user-profile']['linkvalue'],'id'=>$result_workcom_list[$i]['workcom_user_id'], 'name' => $result_workcom_list[$i]['user_login']);
$link_det_com= array('rub'=> $GLOBALS['links'][U_L]['topic']['linkvalue'],'id'=>$result_workcom_list[$i]['workcom_id'], 'parentid' => $workshop_id, 'name' => $result_workcom_list[$i]['workcom_subject']);
$workcom_title=formatText(Stringy\Stringy::create($result_workcom_list[$i]['workcom_subject'], CHARSET)->safeTruncate(100, ' ...'), '2HTML');
$workcom_user=formatText(cutText($result_workcom_list[$i]['user_login'], 15, 1), '2HTML');
//we check if thread has been read alreay and if new messages were posted
$res = $GLOBALS['sql_object'] -> DBSelect(SQL_getLatestMessage($workshop_id, $result_workcom_list[$i]['workcom_id']));
if(isset($read_messages[$result_workcom_list[$i]['workcom_id']])) {
$class = 'read';
$atitle = sprintf(_t('workshop', 'com_followed'), $workcom_title);
} else {
$class = 'unread';
$atitle = sprintf(_t('workshop', 'com_not_followed'), $workcom_title);
}
// by default we take value from main thread
$last_date_msg = $result_workcom_list[$i]['workcom_date_crea_display'];
// there is, at least, one response to thread
if(isset($res[0]['workcom_id'])) {
$debut = ((int) (($result_workcom_det[0]['nb_rep'] -1) / SELECT_LIMIT)) * SELECT_LIMIT;
$link_last_msg = array('rub'=> $GLOBALS['links'][U_L]['topic']['linkvalue'],'id'=>$result_workcom_list[$i]['workcom_id'], 'parentid' => $workshop_id, 'name' => $result_workcom_list[$i]['workcom_subject'], 'debut' => $debut, '#' => 'msg-'.$res[0]['workcom_id']);
$last_date_msg = $res[0]['workcom_date_crea_display'];
$link_last_user = array('rub'=> $GLOBALS['links'][U_L]['user-profile']['linkvalue'],'id'=>$res[0]['workcom_user_id'], 'name' => $res[0]['user_login']);
$last_user = formatText(cutText($res[0]['user_login'], 15, 1), '2HTML');
}
// echo $res[0]['workcom_id']. " - ";
if(isset($res[0]['workcom_id']) && isset($read_messages[$result_workcom_list[$i]['workcom_id']]) && $read_messages[$result_workcom_list[$i]['workcom_id']] < $res[0]['workcom_id']) {
$class .= " new-msg";
// we get post position to handle nicely pagination
$rpos = $GLOBALS['sql_object'] -> DBSelect( SQL_get_post_position($read_messages[$result_workcom_list[$i]['workcom_id']], $result_workcom_list[$i]['workcom_id']));
$debut_lastread = ((int) (($rpos[0]['position'] ) / SELECT_LIMIT)) * SELECT_LIMIT;
// echo "position : " .$rpos[0]['position']." - debut : ".$debut_lastread." ";
$link_lastread_msg= array('rub'=> $GLOBALS['links'][U_L]['topic']['linkvalue'],'id'=>$result_workcom_list[$i]['workcom_id'], 'parentid' => $workshop_id, 'name' => $result_workcom_list[$i]['workcom_subject'], 'debut' => $debut_lastread, '#' => 'msg-'.$read_messages[$result_workcom_list[$i]['workcom_id']]);
$lastread_link = ''._t('workshop', 'com_latest_read_msg').' ';
} else $class .= " no-new-msg";
$content.= "".PHP_EOL;
if ($result_workcom_list[$i]['workcom_statut']=='C') {
$locked = " ";
} else {
$locked = '';
}
$content.= "";
$content.= "".$workcom_title." ";
if ($result_workcom_list[$i]['user_validity'] == 'Y') $content .= "";
else $content .= " ". formatText(_t('workshop', 'com_by'), '2HTML')." ".$workcom_user."
";
if(isset($lastread_link)) {
$content .= $lastread_link.PHP_EOL;
unset($lastread_link);
}
$content .=$locked;
$content .= " ".PHP_EOL;
if (empty($result_workcom_det[0]['nb_rep'])) {
$content.= "0 ".PHP_EOL;
}
else $content.= "".$result_workcom_det[0]['nb_rep']." ".PHP_EOL;
$content.= "".$result_workcom_list[$i]['workcom_viewed']." ".PHP_EOL;
$content.= "";
if(isset($link_last_msg)) {
if($res[0]['user_validity'] == 'Y') $content.= ''.$last_date_msg.' '.formatText(_t('workshop', 'com_by'), '2HTML').' '.$last_user.' ';
else $content.= ''.$last_date_msg.' '.formatText(_t('workshop', 'com_by'), '2HTML').' '.$last_user;
unset($link_last_msg);
} else {
if($result_workcom_list[$i]['user_validity'] == 'Y') $content.= ''.$last_date_msg.' '.formatText(_t('workshop', 'com_by'), '2HTML').' '.$workcom_user.' ';
else $content.= ''.$last_date_msg.' s'.$res[0]['user_validity'].formatText(_t('workshop', 'com_by'), '2HTML').' '.$workcom_user;
}
$content.= " ".PHP_EOL;
$content.= " ".PHP_EOL;
}
$content.= " ".PHP_EOL;
$content.= "
".PHP_EOL;
}else {
$content= ''._t('workshop','no_com').'
'.PHP_EOL;
}
if($workshop_status == 'P' ) DisplayUrlAddTopic($workshop_id);
echo get_linkin_page($table_link, $bdd_nb_com, $debut);
if(isset($_SESSION['message'])) {
echo $_SESSION['message'];
unset($_SESSION['message']);
}
echo $content;
echo get_linkin_page($table_link, $bdd_nb_com, $debut);
if($workshop_status == 'P') DisplayUrlAddTopic($workshop_id);
}
}
/**
* DisplayTopic()
* affichage d'une discussion
* @param $workshop_id
* @param $topic_id
* @param $debut
* @param $flash
* @param $post_id
* @return
**/
if(!function_exists('DisplayTopic')) {
function DisplayTopic($workshop_id, $topic_id, $debut) {
if(!$GLOBALS['l21auth']->isWorkgroupUser($workshop_id, $GLOBALS['sql_object'])) return false;
// we increment Views counter in database
include_once('../class/class.workshop_com.php');
$workshop_com_object = new workshop_com;
$workshop_com_object->incrementViewsCounter($topic_id, $GLOBALS['sql_object']);
$workshop_com_object->setReadMessages($workshop_id, $topic_id, $GLOBALS['sql_object']);
$r = $GLOBALS['sql_object'] -> DBSelect( SQL_getoneCompleteWorkshop($workshop_id));
$workshop_status = $r[0]['workshop_statut'];
$dataroot=$GLOBALS['sql_object'] -> DBSelect(SQL_getOnetopicWorkcom($workshop_id, $topic_id, $topic_id));
if(!is_array($dataroot)) error_redirect();
$topic_state=$dataroot[0]['workcom_statut'];
$result_display="";
$data=$GLOBALS['sql_object'] -> DBSelect(SQL_getOnetopicWorkcom2($workshop_id, $topic_id, $debut, SELECT_LIMIT, -1));
$result_nb_com=$GLOBALS['sql_object'] -> DBSelect(SQL_getWorkcom_detList($topic_id));
if(empty($result_nb_com[0]['nb_rep'])) $bdd_nb_com = 0;
else $bdd_nb_com=$result_nb_com[0]['nb_rep'];
$table_link=array('rub' => $GLOBALS['links'][U_L]['topic']['linkvalue'],'id' => $topic_id, 'parentid' => $workshop_id, 'name' => $dataroot[0]['workcom_subject'] );
$post_title=formatText($dataroot[0]['workcom_subject'], '2HTML');
$post_body=formatText($dataroot[0]['workcom_body'], '2HTML');
$post_user=formatText(cutText($dataroot[0]['user_login'], 100, 1), '2HTML');
$current_user_id = base64_decode($_SESSION['userid']);
$content= '';
echo "".$bdd_nb_com_display = $bdd_nb_com." "._t('workshop','nb_total_com_mes')."
".PHP_EOL;
echo''._t('workshop','com_name').' : '.$post_title.' '.PHP_EOL;
echo get_linkin_page($table_link, $bdd_nb_com, $debut);
echo ' '.PHP_EOL;
if ($debut==0) {
$complete_uri = SITE_ROOT_URL . $dataroot[0]['profile_avatar'];
if($dataroot[0]['profile_avatar'] == "") $user_profile_avatar=' ';
else $user_profile_avatar=' ';
if($dataroot[0]['profile_firstname']!='' || $dataroot[0]['profile_lastname']!='') $user_name= formatText($dataroot[0]['profile_firstname'], '2HTML').' '. formatText($dataroot[0]['profile_lastname'], '2HTML');
else $user_name=$post_user;
$link_user= array('rub'=> $GLOBALS['links'][U_L]['user-profile']['linkvalue'],'id'=>$dataroot[0]['workcom_user_id'], 'name' => $dataroot[0]['user_login']);
$link_edit= array('rub'=> $GLOBALS['links'][U_L]['post-update']['linkvalue'],'parentid'=>$workshop_id, 'id'=>$dataroot[0]['workcom_id'], 'parentparentid'=>$topic_id, 'name'=> $dataroot[0]['workcom_subject']);
$edit = '';
if(isset($_SESSION['authenticated']) && $workshop_status == 'P') {
if (($dataroot[0]['workcom_user_id'] == $current_user_id || $GLOBALS['l21auth']->isWorkgroupOrganiser($current_user_id, $GLOBALS['sql_object'], $workshop_id) || $GLOBALS['l21auth']->isSuperAdmin()) && $topic_state == 'P') {
$edit=''._t('divers','modify').' '.PHP_EOL;
}
}
$content.=''.PHP_EOL;
if($dataroot[0]['user_validity'] == 'Y') $content.='
'.PHP_EOL;
else $content.='
'.$post_user.' ('._t('user', 'deleted-account').')
'.$user_profile_avatar.'
'.PHP_EOL;
$content.='
'.PHP_EOL;
$content.='
'._t('statut', 'published_on').' '.$dataroot[0]['workcom_date_crea_display'].' '.PHP_EOL;
$content.=$edit;
$content.='
'.PHP_EOL;
$content.='
'.$post_title.' '.PHP_EOL;
$content.='
'.$post_body.'
'.PHP_EOL;
$content.='
'.PHP_EOL;
$content.='
'.PHP_EOL;
$content.='
'.PHP_EOL;
$last_title=$post_title;
}
if(is_array($data) && count($data) > 0)
{
for($i=0; $i $GLOBALS['links'][U_L]['user-profile']['linkvalue'],'id'=>$data[$i]['workcom_user_id'], 'name'=> $data[$i]['user_login']);
$link_edit= array('rub'=> $GLOBALS['links'][U_L]['post-update']['linkvalue'],'parentid'=>$workshop_id, 'id'=>$data[$i]['workcom_id'], 'parentparentid'=>$topic_id, 'name'=> $data[$i]['workcom_subject']);
// admin formatting
$link_sup = CURRENT_APP_URL.'index.php?rub=workshop&todo=sup_com&id='.$workshop_id.'&com_id='.$topic_id.'&mes_id='. $data[$i]['workcom_id'];
$complete_uri = SITE_ROOT_URL . $data[$i]['profile_avatar'];
if($data[$i]['profile_avatar'] == "") $user_profile_avatar=' ';
else $user_profile_avatar=' ';
if($data[$i]['profile_firstname']!='' || $data[$i]['profile_lastname']!='') $user_name=formatText($data[$i]['profile_firstname'], '2HTML').' '. formatText($data[$i]['profile_lastname'], '2HTML');
else $user_name=$post_user;
$action = '';
// if workshop is not archived, owner message and organizers can edit content
if(isset($_SESSION['authenticated']) && $workshop_status == 'P') {
if (($data[$i]['workcom_user_id'] == $current_user_id || $GLOBALS['l21auth']->isWorkgroupOrganiser($current_user_id, $GLOBALS['sql_object'], $workshop_id) || $GLOBALS['l21auth']->isSuperAdmin()) && $topic_state == 'P') {
$action =''._t('divers','delete').' '.PHP_EOL;
$action.=''._t('divers','modify').' '.PHP_EOL;
}
}
$content.=''.PHP_EOL;
if($data[$i]['user_validity'] == 'Y') $content.='
'.PHP_EOL;
else $content.='
'.$post_user.' ('._t('user', 'deleted-account').')
'.$user_profile_avatar.'
'.PHP_EOL;
$content.='
'.PHP_EOL;
$content.='
'._t('statut', 'published_on').' '.$data[$i]['workcom_date_crea_display'].' '.PHP_EOL;
$content.=$action;
$content.='
'.PHP_EOL;
$content.='
'.$post_title.' '.PHP_EOL;
$content.='
'.$post_body.'
'.PHP_EOL;
$content.='
'.PHP_EOL;
$content.='
'.PHP_EOL;
$content.='
'.PHP_EOL;
$last_title=$post_title;
}
$str = '$(".action-delete").on( "click", function () {
var url = $(this).attr("href");
alertify.set({
labels : {
ok: "'._t('divers', 'yes').'", cancel: "'._t('divers', 'no').'" }
});
alertify.confirm("'._t('workshop','sup_com_mes_warning').'", function (e) {
if (e) {
$.ajax({
type: "GET",
url: "'. SITE_ROOT_URL .'/workshop/_ajax_admin.php",
data: { parameters: url },
dataType: "json",
success: function(data) {
console.log(data);
if(data.status == 1) {
alertify.success(data.msg);
$(data.el).fadeOut("slow");
} else {
alertify.error(data.msg);
}
}
});
}
});
return false;
});';
footerAddInlineJS($str);
echo get_pm_code($data[0]['user_login']);
}
else
{
$content.=''._t('workshop','no_com_rep').'
';
}
if(isset($_SESSION['message'])) {
echo $_SESSION['message'];
echo '';
}
echo $content;
if(isset($_SESSION['message'])) {
echo $_SESSION['message'];
unset($_SESSION['message']);
}
echo get_linkin_page($table_link, $bdd_nb_com, $debut);
if($workshop_status == 'P' && $topic_state == "P") echo GetFormAddPost($workshop_id, $topic_id, '', $last_title);
else echo $content=''._t('workshop','com_p_lock').'
';
}
}
/**
* AddTopic
* Ajout d'une discussion
* @param $workshop_id
* @param $debut
* @param $body
* @param $title
* @param $confirm
*/
if(!function_exists('AddTopic')) {
function AddTopic($workshop_id, $debut, $body, $title, $confirm_update)
{
$r = $GLOBALS['sql_object'] -> DBSelect( SQL_getoneCompleteWorkshop($workshop_id));
$workshop_status = $r[0]['workshop_statut'];
if($workshop_status != 'P') ReloadIndex('public');
if(!$confirm_update) echo GetFormAddTopic($workshop_id);
else
{
//test new value for this post in form
$integrity=CheckComIntegrity($title, $body);
if($integrity == 1)
{
$topic_id=AddPersistentPost($title, $body, '', $workshop_id);
notifyUsersMsg(array('id' => $workshop_id,'user' => $_SESSION['userlogin'] ,'owner' => $_SESSION['userlogin'], 'action' => 'topic_alert', 'topic_subject' => formatText($title, '2FIELD'), 'topic_body' => strip_input($body)));
$_SESSION['message'] = ''._t('workshop','confirm_add_com').'
'.PHP_EOL;
$link = array('rub'=> $GLOBALS['links'][U_L]['topic-list']['linkvalue'],'id'=>$workshop_id, 'name' => $r[0]['workshop_denomination'], 'amp_no_conversion' =>1);
header('Location: '.safe_redirect(HrefMaker($link)));
}
else
{
echo "".$integrity."
";
echo GetFormAddTopic($workshop_id, $body, $title);
}
}
}
}
/**
* AddPost
* Ajout d'un Message
* @param $workshop_id
* @param $topic_id
* @param $debut
* @param $body
* @param $title
*/
if(!function_exists('AddPost')) {
function AddPost($workshop_id, $topic_id, $debut, $body, $title)
{
$r = $GLOBALS['sql_object'] -> DBSelect( SQL_getoneCompleteWorkshop($workshop_id));
$workshop_status = $r[0]['workshop_statut'];
if($workshop_status != 'P') ReloadIndex('public');
$dataroot=$GLOBALS['sql_object'] -> DBSelect(SQL_getOnetopicWorkcom($workshop_id, $topic_id, $topic_id));
$topic_state=$dataroot[0]['workcom_statut'];
if ($topic_state<>"P") DisplayTopic($workshop_id, $topic_id, $debut);
else {
$integrity=CheckComIntegrity($title, $body);
if($integrity == 1)
{
$post_id=AddPersistentPost($title, $body, $topic_id, $workshop_id);
$result_nb_com=$GLOBALS['sql_object'] -> DBSelect(SQL_getWorkcom_detList($topic_id));
$bdd_nb_com=$result_nb_com[0]['nb_rep'];
$debut = ((int) (($bdd_nb_com-1) / SELECT_LIMIT)) * SELECT_LIMIT;
notifyUsersMsg(array('action' => 'post_alert','user' => $_SESSION['userlogin'] ,'owner' => $_SESSION['userlogin'], 'topic_subject' => formatText($title, '2FIELD'), 'topic_body' => strip_input($body), 'tid' => $topic_id, 'parentid' => $workshop_id, 'id' => $post_id, 'debut' => $debut));
$_SESSION['message'] = ''._t('workshop','confirm_add_com').'
'.PHP_EOL;
$link = array('rub'=> $GLOBALS['links'][U_L]['topic']['linkvalue'],'id'=>$topic_id,'parentid'=> $workshop_id, 'name' => $dataroot[0]['workcom_subject'], 'debut' => $debut, '#' => 'msg-'.$post_id, 'amp_no_conversion' =>1);
// echo _debug(http_build_query ($link));
// echo ''.http_build_query ($link).'
'.PHP_EOL;
header('Location: '.safe_redirect(HrefMaker($link)));
}
else
{
echo "".$integrity."
";
echo GetFormAddPost($workshop_id, $topic_id, $body, $title);
}
}
}
}
/**
* UpdatePost
* Mise à jour d'un message
* @param $workshop_id
* @param $topic_id
* @param $debut
* @param $new_body
* @param $new_title
* @param $post_id
* @param $confirm_update
* @return void
*/
if(!function_exists('UpdatePost')) {
function UpdatePost($workshop_id, $topic_id, $debut, $new_body, $new_title, $post_id, $confirm_update)
{
$data=$GLOBALS['sql_object'] -> DBSelect(SQL_getOnetopicWorkcom($workshop_id, $post_id, "root"));
$old_title=formatText($data[0]['workcom_subject'], '2FIELD');
$old_body=formatText($data[0]['workcom_body'], '2FIELD');
$topic_state=$data[0]['workcom_statut'];
if ($topic_state<>"P") DisplayTopic($workshop_id, $topic_id, $debut);
else {
//display old value for this post in form
if(!$confirm_update) echo GetFormModPost($workshop_id, $topic_id, $post_id, $old_body, $old_title);
else
{
//test new value for this post in form
$integrity=CheckComIntegrity($new_title, $new_body);
if($integrity == 1)
{
$r=ModPersistentPost($new_title, $new_body, $post_id, $workshop_id, $topic_id);
echo ''.$r.'
'.PHP_EOL;
//scroll jusque $post_id
echo DisplayTopic($workshop_id, $topic_id, $debut);
}
else
{
echo "".$integrity."
";
echo GetFormModPost($workshop_id, $topic_id, $post_id, $old_body, $old_title);
}
}
}
}
}
/**
* GetFormAddTopic()
* formulaire d'ajout d'un Topic
* @param $workshop_id
* @param $subject_body
* @param $subject_title
* @return
**/
if(!function_exists('GetFormAddTopic')) {
function GetFormAddTopic($workshop_id, $body='', $title='') {
IncludeLightRte(array('id'=> 'post-body'));
$title = formatText($title, '2FIELD');
$body = formatText($body, '2FIELD');
$form=''._t('workshop','add_com').' '.PHP_EOL;
$form.=''.PHP_EOL;
return $form;
}
}
/**
* GetFormModPost()
* formulaire de modification d'un Post
* @param $workshop_id
* @param $topic_id
* @param integer $post_id
* @param $subject_body
* @param $subject_title
* @return
**/
if(!function_exists('GetFormModPost')) {
function GetFormModPost($workshop_id, $topic_id, $post_id, $body, $title) {
IncludeLightRte(array('id'=> 'post-body'));
$form=''._t('workshop','mod_com_mes').' '.PHP_EOL;
$form.=''.PHP_EOL;
$form.=''.PHP_EOL;
$form.=''.mb_ucfirst(_t('workshop','com_subject')).' : '.PHP_EOL;
$form.=' '.PHP_EOL;
$form.=''.mb_ucfirst(_t('workshop','com_body')).' : '.PHP_EOL;
$form.=''.$body.' '.PHP_EOL;
$form.=' '.PHP_EOL;
$form.=' '.PHP_EOL;
$form.=' '.PHP_EOL;
$form.=' '.PHP_EOL;
$form.=' '.PHP_EOL;
$form.='
'.PHP_EOL;
$form.='
'.PHP_EOL;
$form.=' '.PHP_EOL;
return $form;
}
}
/**
* GetFormAddPost()
* formulaire d'ajout d'un Post
* @param $workshop_id
* @param $topic_id
* @param $body
* @param $title
* @return
**/
if(!function_exists('GetFormAddPost')) {
function GetFormAddPost($workshop_id, $topic_id, $body='', $title=''){
IncludeLightRte(array('id'=> 'post-body'));
$title = formatText($title, '2FIELD');
$body = formatText($body, '2FIELD');
$form='';
$form.='
'._t('workshop','add_com_mes').' '.PHP_EOL;
$form.='
'.PHP_EOL;
$form.=''.PHP_EOL;
$form.='
'.mb_ucfirst(_t('workshop','com_subject')).' : '.PHP_EOL;
$form.='
'.PHP_EOL;
$form.='
'.mb_ucfirst(_t('workshop','com_body')).' : '.PHP_EOL;
$form.='
'.$body.' '.PHP_EOL;
$form.='
'.PHP_EOL;
$form.='
'.PHP_EOL;
$form.='
'.PHP_EOL;
if(ALERT_NEWPOST == 2) $form .='
'._t('workshop','notify_post').'
'.PHP_EOL;
$form.='
'.PHP_EOL;
$form.='
'.PHP_EOL;
$form.=' '.PHP_EOL;
$form.='
';
return $form;
}
}
/**
* CheckComIntegrity()
* Vérification de l'intégrité des données
* @param $title
* @param $body
* @param $workshop_com_object
* @return
**/
if(!function_exists('CheckComIntegrity')) {
function CheckComIntegrity($title, $body){
$integrity=1;
if (strlen($title) < 3) $integrity=_t('workshop','com_no_subject');
if (strlen($body) < 10) $integrity=_t('workshop','com_no_body');
if(is_string($integrity)) return $integrity;
else return 1;
}
}
/**
* AddPersistentPost()
* Ajout dans la base d'un nouveau Post
* @param $title
* @param $body
* @param $topic_id
* @param $workshop_id
* @return
**/
if(!function_exists('AddPersistentPost')) {
function AddPersistentPost($title, $body, $topic_id, $workshop_id){
$r = $GLOBALS['sql_object'] -> DBSelect( SQL_getoneCompleteWorkshop($workshop_id));
$workshop_status = $r[0]['workshop_statut'];
if($workshop_status != 'P') ReloadIndex('public');
if(isset($_SESSION['authenticated'])) {
$user_id=base64_decode($_SESSION['userid']);
include_once('../class/class.workshop_com.php');
$workshop_com_object = new workshop_com;
$result=CheckComIntegrity($title, $body);
if ($result==1) {
$table = array();
$table[0] = $title;
$table[1] = $body;
$table[2] = $topic_id;
$table[3] = $user_id;
$table[4] = $workshop_id;
$result=$workshop_com_object->AddCom($table , $GLOBALS['sql_object']);
return $result;
}
else return $result;
} else return false;
}
}
/**
* ModPersistentPost()
* Modification dans la base d'un Post
* @param $title
* @param $body
* @param $mes_id
* @param $workshop_id
* @param $topic_id
* @return
**/
if(!function_exists('ModPersistentPost')) {
function ModPersistentPost($title, $body, $mes_id, $workshop_id, $topic_id){
$r = $GLOBALS['sql_object'] -> DBSelect( SQL_getoneCompleteWorkshop($workshop_id));
$workshop_status = $r[0]['workshop_statut'];
if($workshop_status != 'P') ReloadIndex('public');
if(isset($_SESSION['authenticated'])) {
$user_id=base64_decode($_SESSION['userid']);
if($GLOBALS['l21auth']->isWorkgroupUser($workshop_id, $GLOBALS['sql_object'])) {
$hasRights = true;
} else {
$hasRights = false;
}
include_once('../class/class.workshop_com.php');
$workshop_com_object = new workshop_com;
$result=CheckComIntegrity($title, $body);
if ($result==1) {
$table = array();
$table[0] = $title;
$table[1] = $body;
$result=$workshop_com_object->ModifyComUser($mes_id, $table , $user_id, $GLOBALS['sql_object'], $hasRights);
if (!is_string($result)) return _t('workshop','confirm_mod_com');
else return $result;
}
else return $result;
} else return false;
}
}
?>