diff --git a/htdocs/install/mysql/migration/3.5.0-3.6.0.sql b/htdocs/install/mysql/migration/3.5.0-3.6.0.sql index 53d6198a8493901585f1f9956b1be3b1b6a91057..3d82a6cb1c022b41c96b380ebd53ac169cca8649 100755 --- a/htdocs/install/mysql/migration/3.5.0-3.6.0.sql +++ b/htdocs/install/mysql/migration/3.5.0-3.6.0.sql @@ -18,3 +18,4 @@ -- -- VMYSQL4.1 DELETE FROM llx_usergroup_user WHERE fk_usergroup NOT IN (SELECT rowid from llx_usergroup); ALTER TABLE llx_bookmark ADD COLUMN entity integer DEFAULT 1 NOT NULL; +ALTER TABLE `llx_opensurvey_sondage` ADD `allow_comments` TINYINT( 1 ) UNSIGNED NOT NULL DEFAULT 1 AFTER `canedit` ; \ No newline at end of file diff --git a/htdocs/install/mysql/tables/llx_opensurvey_sondage.sql b/htdocs/install/mysql/tables/llx_opensurvey_sondage.sql index f66fbcf5e795ff16c734162626797c7af55071eb..476b3d9fb40b69411650585e9df8b77d36259c57 100644 --- a/htdocs/install/mysql/tables/llx_opensurvey_sondage.sql +++ b/htdocs/install/mysql/tables/llx_opensurvey_sondage.sql @@ -27,6 +27,7 @@ CREATE TABLE llx_opensurvey_sondage ( mailsonde varchar(2) DEFAULT '0', survey_link_visible integer DEFAULT 1, canedit integer DEFAULT 0, + allow_comments TINYINT(1) unsigned NOT NULL DEFAULT 1, origin VARCHAR(64), tms TIMESTAMP, sujet TEXT diff --git a/htdocs/langs/en_US/opensurvey.lang b/htdocs/langs/en_US/opensurvey.lang index db1140097a71b9918c6f8b3cc039dbbd213275e5..88308711fc65f6194bae6847372930b11975bfd9 100644 --- a/htdocs/langs/en_US/opensurvey.lang +++ b/htdocs/langs/en_US/opensurvey.lang @@ -66,6 +66,7 @@ AddEndHour=Add end hour votes=vote(s) NoCommentYet=No comments have been posted for this poll yet CanEditVotes=Can change vote of others +CanComment=Users can comment in the poll SelectDayDesc=For each selected day, you can choose, or not, meeting hours in the following format :<br>- empty,<br>- "8h", "8H" or "8:00" to give a meeting's start hour,<br>- "8-11", "8h-11h", "8H-11H" or "8:00-11:00" to give a meeting's start and end hour,<br>- "8h15-11h15", "8H15-11H15" or "8:15-11:15" for the same thing but with minutes. BackToCurrentMonth=Back to current month PublicLinkToCreateSurvey=Public link to allow everybody to create a survey diff --git a/htdocs/opensurvey/adminstuds.php b/htdocs/opensurvey/adminstuds.php index 2700ea5c51854f5ac7b7de3db0aaea0721000ca2..c98b3ad376e30c4b7fd62cf019a9e8c422123257 100644 --- a/htdocs/opensurvey/adminstuds.php +++ b/htdocs/opensurvey/adminstuds.php @@ -89,6 +89,7 @@ if ($action == 'update') $object->date_fin = $expiredate; $object->survey_link_visible = GETPOST('survey_link_visible')=='on'?1:0; $object->canedit = GETPOST('canedit')=='on'?1:0; + $object->allow_comments = GETPOST('cancomment') == 'on' ? true : false; $res=$object->update($user); if ($res < 0) @@ -231,6 +232,15 @@ if ($action == 'edit') else print yn($object->canedit); print '</td></tr>'; +// Users can comment +print '<tr><td>'.$langs->trans('CanComment').'</td><td colspan="2">'; +if ($action == 'edit') +{ + print '<input type="checkbox" name="cancomment" size="40"'.($object->allow_comments?' checked="true"':'').'">'; +} +else print yn($object->allow_comments); +print '</td></tr>'; + // Expire date print '<tr><td>'.$langs->trans('ExpireDate').'</td><td colspan="2">'; if ($action == 'edit') print $form->select_date($expiredate?$expiredate:$object->date_fin,'expire'); @@ -301,12 +311,14 @@ else print '<br>'; // Add comment -print $langs->trans("AddACommentForPoll") . '<br>'; -print '<textarea name="comment" rows="2" cols="80"></textarea><br>'."\n"; -print $langs->trans("Name") .': <input type="text" name="commentuser" value="'.$user->getFullName($langs).'"><br>'."\n"; -print '<input type="submit" class="button" name="ajoutcomment" value="'.dol_escape_htmltag($langs->trans("AddComment")).'"><br>'."\n"; -if (isset($erreur_commentaire_vide) && $erreur_commentaire_vide=="yes") { - print "<font color=#FF0000>" . $langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("Name")) . "</font>"; +if ($object->allow_comments) { + print $langs->trans("AddACommentForPoll") . '<br>'; + print '<textarea name="comment" rows="2" cols="80"></textarea><br>'."\n"; + print $langs->trans("Name") .': <input type="text" name="commentuser" value="'.$user->getFullName($langs).'"><br>'."\n"; + print '<input type="submit" class="button" name="ajoutcomment" value="'.dol_escape_htmltag($langs->trans("AddComment")).'"><br>'."\n"; + if (isset($erreur_commentaire_vide) && $erreur_commentaire_vide=="yes") { + print "<font color=#FF0000>" . $langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("Name")) . "</font>"; + } } print '</form>'; diff --git a/htdocs/opensurvey/class/opensurveysondage.class.php b/htdocs/opensurvey/class/opensurveysondage.class.php index 6db64139971677f5471de23736d96a09dd19394a..9e40f2540210d5c31a9b11356c668ae648d17fb4 100644 --- a/htdocs/opensurvey/class/opensurveysondage.class.php +++ b/htdocs/opensurvey/class/opensurveysondage.class.php @@ -54,8 +54,11 @@ class Opensurveysondage extends CommonObject var $survey_link_visible; var $canedit; - - + /** + * Allow comments on this poll + * @var bool + */ + public $allow_comments; /** * Constructor @@ -196,6 +199,7 @@ class Opensurveysondage extends CommonObject $sql.= " t.mailsonde,"; $sql.= " t.survey_link_visible,"; $sql.= " t.canedit,"; + $sql.= " t.allow_comments,"; $sql.= " t.sujet,"; $sql.= " t.tms"; $sql.= " FROM ".MAIN_DB_PREFIX."opensurvey_sondage as t"; @@ -225,6 +229,7 @@ class Opensurveysondage extends CommonObject $this->mailsonde = $obj->mailsonde; $this->survey_link_visible = $obj->survey_link_visible; $this->canedit = $obj->canedit; + $this->allow_comments = $obj->allow_comments; $this->sujet = $obj->sujet; $this->date_m = $this->db->jdate($obj->tls); @@ -274,8 +279,8 @@ class Opensurveysondage extends CommonObject if (isset($this->format)) $this->format=trim($this->format); if (isset($this->mailsonde)) $this->mailsonde=trim($this->mailsonde); if (isset($this->survey_link_visible)) $this->survey_link_visible=trim($this->survey_link_visible); - if (isset($this->canedit)) $this->canedit=trim($this->canedit); - + $this->canedit = $this->canedit ? 1 : 0; + $this->allow_comments = $this->allow_comments ? 1 : 0; // Check parameters // Put here code to add a control on parameters values @@ -293,8 +298,9 @@ class Opensurveysondage extends CommonObject $sql.= " format=".(isset($this->format)?"'".$this->db->escape($this->format)."'":"null").","; $sql.= " mailsonde=".(isset($this->mailsonde)?$this->db->escape($this->mailsonde):"null").","; $sql.= " survey_link_visible=".(isset($this->survey_link_visible)?$this->db->escape($this->survey_link_visible):"null").","; - $sql.= " canedit=".(isset($this->canedit)?$this->db->escape($this->canedit):"null").""; - + $sql.= " canedit=".$this->db->escape($this->canedit).","; + $sql.= " allow_comments=".$this->db->escape($this->allow_comments); + //$sql.= " WHERE rowid=".$this->id; $sql.= " WHERE id_sondage_admin='".$this->db->escape($this->id_sondage_admin)."'"; diff --git a/htdocs/opensurvey/fonctions.php b/htdocs/opensurvey/fonctions.php index ae3e9800d920266cac0ed1a08ee76915a923cb0e..7f3ecb5f36e5a64a0324bc06eaacf8e0caf1d931 100644 --- a/htdocs/opensurvey/fonctions.php +++ b/htdocs/opensurvey/fonctions.php @@ -255,13 +255,14 @@ function ajouter_sondage($origin) $date_fin = time()+15552000; } $canedit=empty($_SESSION['formatcanedit'])?'0':'1'; + $allow_comments = empty($_SESSION['allow_comments']) ? 0 : 1; // Insert survey $sql = 'INSERT INTO '.MAIN_DB_PREFIX.'opensurvey_sondage'; - $sql.= '(id_sondage, commentaires, mail_admin, nom_admin, titre, id_sondage_admin, date_fin, format, mailsonde, canedit, origin, sujet)'; + $sql.= '(id_sondage, commentaires, mail_admin, nom_admin, titre, id_sondage_admin, date_fin, format, mailsonde, canedit, allow_comments, origin, sujet)'; $sql.= " VALUES ('".$db->escape($sondage)."', '".$db->escape($_SESSION['commentaires'])."', '".$db->escape($_SESSION['adresse'])."', '".$db->escape($_SESSION['nom'])."',"; $sql.= " '".$db->escape($_SESSION['titre'])."', '".$sondage_admin."', '".$db->idate($date_fin)."', '".$_SESSION['formatsondage']."', '".$db->escape($_SESSION['mailsonde'])."',"; - $sql.= " '".$canedit."', '".$db->escape($origin)."',"; + $sql.= " '".$canedit."', '".$allow_comments."', '".$db->escape($origin)."',"; $sql.= " '".$db->escape($_SESSION['toutchoix'])."'"; $sql.= ")"; dol_syslog($sql); @@ -288,6 +289,7 @@ function ajouter_sondage($origin) unset($_SESSION["commentaires"]); unset($_SESSION["canedit"]); unset($_SESSION["mailsonde"]); + unset($_SESSION['allow_comments']); header("Location: ".$urlback); exit(); diff --git a/htdocs/opensurvey/public/create_survey.php b/htdocs/opensurvey/public/create_survey.php index 2706081b091f22fc4fde7cd542923e6893f7f64c..9e33933b4ae61d47009cbafbda52ced25f84d663 100644 --- a/htdocs/opensurvey/public/create_survey.php +++ b/htdocs/opensurvey/public/create_survey.php @@ -74,6 +74,12 @@ if (GETPOST("creation_sondage_date") || GETPOST("creation_sondage_autre") || GET } else { $_SESSION["mailsonde"] = false; } + + if (GETPOST('allow_comments') == 'on') { + $_SESSION['allow_comments'] = true; + } else { + $_SESSION['allow_comments'] = false; + } if (! isValidEmail($adresse)) $erreur_adresse = true; @@ -172,6 +178,10 @@ if ($_SESSION["mailsonde"]) $cochemail="checked"; print '<input type="checkbox" name="mailsonde" '.$cochemail.'> '. $langs->trans("ToReceiveEMailForEachVote") .'<br>'."\n"; +if ($_SESSION['allow_comments']) $allow_comments = "checked"; + +print '<input type="checkbox" name="allow_comments" '.$allow_comments.'> '.$langs->trans('CanComment').'<br />'."\n"; + if (GETPOST('choix_sondage')) { if (GETPOST('choix_sondage') == 'date') print '<input type="hidden" name="creation_sondage_date" value="date">'; diff --git a/htdocs/opensurvey/public/studs.php b/htdocs/opensurvey/public/studs.php index 2c84dead099f7bb4e98d1229cc52a8b10475b8cd..dec1d8f6d22c627f9122e42835dfba08f6247849 100644 --- a/htdocs/opensurvey/public/studs.php +++ b/htdocs/opensurvey/public/studs.php @@ -701,15 +701,17 @@ if ($comments) } // Form to add comment -print '<div class="addcomment">' .$langs->trans("AddACommentForPoll") . "<br>\n"; +if ($object->allow_comments) { + print '<div class="addcomment">' .$langs->trans("AddACommentForPoll") . "<br>\n"; -print '<textarea name="comment" rows="2" cols="60"></textarea><br>'."\n"; -print $langs->trans("Name") .' : '; -print '<input type="text" name="commentuser" maxlength="64" /> '."\n"; -print '<input type="submit" class="button" name="ajoutcomment" value="'.dol_escape_htmltag($langs->trans("AddComment")).'"><br>'."\n"; -print '</form>'."\n"; + print '<textarea name="comment" rows="2" cols="60"></textarea><br>'."\n"; + print $langs->trans("Name") .' : '; + print '<input type="text" name="commentuser" maxlength="64" /> '."\n"; + print '<input type="submit" class="button" name="ajoutcomment" value="'.dol_escape_htmltag($langs->trans("AddComment")).'"><br>'."\n"; + print '</form>'."\n"; -print '</div>'."\n"; // div add comment + print '</div>'."\n"; // div add comment +} print '<br><br>';