* @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 ''; 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 ''; 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 $nb * @return **/ if(!function_exists('DisplayCalendar')) { function DisplayCalendar($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.='

'._t('workshop', 'add_to_calendar').''.$workcal_date_publi.'

'; $content.='

'._t('workshop', 'add_to_calendar_short').'

'; // $content.='

'.$workcal_author.'

'; $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 .= ""; // // $content .= ""; // // $content .= ""; // $content .= ""; // $content .= ""; // $content .= ""; // $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 .= ""; $content .= ""; $content .= ""; $content .= ""; $content .= ""; $content .= ""; $content .= ""; $content .= "
".str_replace(' - ', '
', _t('user','notify_topic'))."
".str_replace(' - ', '
',_t('user','notify_post'))."
".str_replace(' - ', '
',_t('user','notify_file'))."
"._t('user','notify_topic').""._t('user','notify_post').""._t('user','notify_file')."
"._t('user','notify_topic')."

"._t('user','notify_post')."

"._t('user','notify_file')."

"; $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; } } 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 .= ""; // $content .= ""; // $content .= ""; $content .= ""; $content .= ""; $content .= ""; $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 .= "
".str_replace(' - ', '
', _t('user','notify_topic'))."
".str_replace(' - ', '
',_t('user','notify_post'))."
".str_replace(' - ', '
',_t('user','notify_file'))."
"._t('user','notify_topic').""._t('user','notify_post').""._t('user','notify_file')."

"; $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='

'.mb_ucfirst(_t('workshop','organizer')) .' ('. $cntOrganisers .') :

    '; $content2='

    '.mb_ucfirst(_t('workshop','user')) .' ('. $cntMembers .') :

      '; $sep_u = $sep_a = ''; if($data!=0) { for($i=0; $i $GLOBALS['links'][U_L]['user-profile']['linkvalue'],'id'=>$data[$i]['jwu_user_id'], 'name'=>$data[$i]['user_login']); if($data[$i]['jwu_user_right'] == "O") { $content1.= $sep_u.'
    1. '.$name.' ' . sprintf(_t('contact', 'pm_send_to'), $data[$i]['user_login']) . '
    2. '; } elseif($data[$i]['jwu_user_right'] == "U") { $content2.=$sep_a.'
    3. '.$name.' ' . sprintf(_t('contact', 'pm_send_to'), $data[$i]['user_login']) . '
    4. '; } } $content1.='
    '.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.='

'.$workrep_title.'

'.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.= "".PHP_EOL; // $content.= "".PHP_EOL; $content.= "".PHP_EOL; $content.= "".PHP_EOL; $content.= "".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.= "".PHP_EOL; if (empty($result_workcom_det[0]['nb_rep'])) { $content.= "".PHP_EOL; } else $content.= "".PHP_EOL; $content.= "".PHP_EOL; $content.= "".PHP_EOL; $content.= "".PHP_EOL; } $content.= "".PHP_EOL; $content.= "
".mb_ucfirst(_t('workshop','com_subject'))."".mb_ucfirst(_t('workshop','com_author'))."".mb_ucfirst(_t('workshop','com_nb_rep'))."".mb_ucfirst(_t('workshop','com_nb_views'))."".mb_ucfirst(_t('workshop','com_date_last'))."
"; $content.= "".$workcom_title.""; if ($result_workcom_list[$i]['user_validity'] == 'Y') $content .= "
". formatText(_t('workshop', 'com_by'), '2HTML')." ".$workcom_user."
"; 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 .= "
0".$result_workcom_det[0]['nb_rep']."".$result_workcom_list[$i]['workcom_viewed'].""; 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; }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; });'; addDynamicCSS('../lib/js/alertify.js/dist/css/alertify.css'); addDynamicCSS('../lib/js/alertify.js/dist/css/alertify-bootstrap.css'); footerAddJS('../lib/js/alertify.js/dist/js/alertify.js'); 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; $form.='
'.PHP_EOL; $form.=''.PHP_EOL; $form.='
'.PHP_EOL; $form.=''.PHP_EOL; $form.='
'.PHP_EOL; $form.=''.PHP_EOL; $form.=''.PHP_EOL; $form.=''.PHP_EOL; if(ALERT_NEWTOPIC== 2) $form .='

'._t('workshop','notify_topic').'

'.PHP_EOL; $form.='
'.PHP_EOL; $form.='
'.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.=''.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; $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.=''.PHP_EOL; $form.='
'.PHP_EOL; $form.=''.PHP_EOL; $form.='
'.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; } } ?>