]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - lib/groupeditform.php
oops forgot an alert()
[quix0rs-gnu-social.git] / lib / groupeditform.php
index 7e8d6eea3ad93cb9d8f567e4dde8abfabe8f52b3..9061af2336844e75930501484d1f3e5065570b69 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * Laconica, the distributed open-source microblogging tool
+ * StatusNet, the distributed open-source microblogging tool
  *
  * Form for editing a group
  *
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  *
  * @category  Form
- * @package   Laconica
- * @author    Evan Prodromou <evan@controlyourself.ca>
- * @author    Sarven Capadisli <csarven@controlyourself.ca>
- * @copyright 2009 Control Yourself, Inc.
+ * @package   StatusNet
+ * @author    Evan Prodromou <evan@status.net>
+ * @author    Sarven Capadisli <csarven@status.net>
+ * @copyright 2009 StatusNet, Inc.
  * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
- * @link      http://laconi.ca/
+ * @link      http://status.net/
  */
 
-if (!defined('LACONICA')) {
+if (!defined('STATUSNET') && !defined('LACONICA')) {
     exit(1);
 }
 
@@ -38,21 +38,19 @@ require_once INSTALLDIR.'/lib/form.php';
  * Form for editing a group
  *
  * @category Form
- * @package  Laconica
- * @author   Evan Prodromou <evan@controlyourself.ca>
- * @author   Sarven Capadisli <csarven@controlyourself.ca>
+ * @package  StatusNet
+ * @author   Evan Prodromou <evan@status.net>
+ * @author   Sarven Capadisli <csarven@status.net>
  * @license  http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
- * @link     http://laconi.ca/
+ * @link     http://status.net/
  *
  * @see      UnsubscribeForm
  */
-
 class GroupEditForm extends Form
 {
     /**
      * group for user to join
      */
-
     var $group = null;
 
     /**
@@ -61,7 +59,6 @@ class GroupEditForm extends Form
      * @param Action     $out   output channel
      * @param User_group $group group to join
      */
-
     function __construct($out=null, $group=null)
     {
         parent::__construct($out);
@@ -74,7 +71,6 @@ class GroupEditForm extends Form
      *
      * @return string ID of the form
      */
-
     function id()
     {
         if ($this->group) {
@@ -89,7 +85,6 @@ class GroupEditForm extends Form
      *
      * @return string of the form class
      */
-
     function formClass()
     {
         return 'form_settings';
@@ -100,7 +95,6 @@ class GroupEditForm extends Form
      *
      * @return string URL of the action
      */
-
     function action()
     {
         if ($this->group) {
@@ -116,9 +110,9 @@ class GroupEditForm extends Form
      *
      * @return void
      */
-
     function formLegend()
     {
+        // TRANS: Form legend for group edit form.
         $this->out->element('legend', null, _('Create a new group'));
     }
 
@@ -127,44 +121,99 @@ class GroupEditForm extends Form
      *
      * @return void
      */
-
     function formData()
     {
+        if ($this->group) {
+            $id = $this->group->id;
+            $nickname = $this->group->nickname;
+            $fullname = $this->group->fullname;
+            $homepage = $this->group->homepage;
+            $description = $this->group->description;
+            $location = $this->group->location;
+        } else {
+            $id = '';
+            $nickname = '';
+            $fullname = '';
+            $homepage = '';
+            $description = '';
+            $location = '';
+        }
+
         $this->out->elementStart('ul', 'form_data');
-        $this->out->elementStart('li');
-        $this->out->hidden('groupid', $this->group->id);
-        $this->out->input('nickname', _('Nickname'),
-                     ($this->out->arg('nickname')) ? $this->out->arg('nickname') : $this->group->nickname,
-                     _('1-64 lowercase letters or numbers, no punctuation or spaces'));
-        $this->out->elementEnd('li');
-        $this->out->elementStart('li');
-        $this->out->input('fullname', _('Full name'),
-                     ($this->out->arg('fullname')) ? $this->out->arg('fullname') : $this->group->fullname);
-        $this->out->elementEnd('li');
-        $this->out->elementStart('li');
-        $this->out->input('homepage', _('Homepage'),
-                     ($this->out->arg('homepage')) ? $this->out->arg('homepage') : $this->group->homepage,
-                     _('URL of the homepage or blog of the group or topic'));
-        $this->out->elementEnd('li');
-        $this->out->elementStart('li');
-        $this->out->textarea('description', _('Description'),
-                        ($this->out->arg('description')) ? $this->out->arg('description') : $this->group->description,
-                        _('Describe the group or topic in 140 chars'));
-        $this->out->elementEnd('li');
-        $this->out->elementStart('li');
-        $this->out->input('location', _('Location'),
-                     ($this->out->arg('location')) ? $this->out->arg('location') : $this->group->location,
-                     _('Location for the group, if any, like "City, State (or Region), Country"'));
-        $this->out->elementEnd('li');
-        if (common_config('group', 'maxaliases') > 0) {
-            $aliases = (empty($this->group)) ? array() : $this->group->getAliases();
+        if (Event::handle('StartGroupEditFormData', array($this))) {
             $this->out->elementStart('li');
-            $this->out->input('aliases', _('Aliases'),
-                              ($this->out->arg('aliases')) ? $this->out->arg('aliases') :
-                              (!empty($aliases)) ? implode(' ', $aliases) : '',
-                              sprintf(_('Extra nicknames for the group, comma- or space- separated, max %d'),
-                                      common_config('group', 'maxaliases')));;
+            $this->out->hidden('groupid', $id);
+            // TRANS: Field label on group edit form.
+            $this->out->input('newnickname', _('Nickname'),
+                              ($this->out->arg('newnickname')) ? $this->out->arg('newnickname') : $nickname,
+                              // TRANS: Field title on group edit form.
+                              _('1-64 lowercase letters or numbers, no punctuation or spaces.'),
+                              null, false,
+                              $this->group instanceof User_group && !common_config('profile', 'changenick')
+                                    ? array('disabled'=>'disabled') // can't change nickname
+                                    : array()); // either we can change nickname, or we're creating a new group.
             $this->out->elementEnd('li');
+            $this->out->elementStart('li');
+            // TRANS: Field label on group edit form.
+            $this->out->input('fullname', _('Full name'),
+                              ($this->out->arg('fullname')) ? $this->out->arg('fullname') : $fullname);
+            $this->out->elementEnd('li');
+            $this->out->elementStart('li');
+            // TRANS: Field label on group edit form; points to "more info" for a group.
+            $this->out->input('homepage', _('Homepage'),
+                              ($this->out->arg('homepage')) ? $this->out->arg('homepage') : $homepage,
+                              // TRANS: Field title on group edit form.
+                              _('URL of the homepage or blog of the group or topic.'));
+            $this->out->elementEnd('li');
+            $this->out->elementStart('li');
+            $desclimit = User_group::maxDescription();
+            if ($desclimit == 0) {
+                // TRANS: Text area title for group description when there is no text limit.
+                $descinstr = _('Describe the group or topic.');
+            } else {
+                // TRANS: Text area title for group description.
+                // TRANS: %d is the number of characters available for the description.
+                $descinstr = sprintf(_m('Describe the group or topic in %d character or less.',
+                                        'Describe the group or topic in %d characters or less.',
+                                        $desclimit),
+                                     $desclimit);
+            }
+            // TRANS: Text area label on group edit form; contains description of group.
+            $this->out->textarea('description', _('Description'),
+                                 ($this->out->arg('description')) ? $this->out->arg('description') : $description,
+                                 $descinstr);
+            $this->out->elementEnd('li');
+            $this->out->elementStart('li');
+            // TRANS: Field label on group edit form.
+            $this->out->input('location', _('Location'),
+                              ($this->out->arg('location')) ? $this->out->arg('location') : $location,
+                              // TRANS: Field title on group edit form.
+                              _('Location for the group, if any, like "City, State (or Region), Country".'));
+            $this->out->elementEnd('li');
+            if (common_config('group', 'maxaliases') > 0) {
+                $aliases = (empty($this->group)) ? array() : $this->group->getAliases();
+                $this->out->elementStart('li');
+                // TRANS: Field label on group edit form.
+                $this->out->input('aliases', _('Aliases'),
+                                  ($this->out->arg('aliases')) ? $this->out->arg('aliases') :
+                                  (!empty($aliases)) ? implode(' ', $aliases) : '',
+                                  // TRANS: Input field title for group aliases.
+                                  // TRANS: %d is the maximum number of group aliases available.
+                                  sprintf(_m('Extra nicknames for the group, separated with commas or spaces. Maximum %d alias allowed.',
+                                             'Extra nicknames for the group, separated with commas or spaces. Maximum %d aliases allowed.',
+                                             common_config('group', 'maxaliases')),
+                                          common_config('group', 'maxaliases')));;
+                $this->out->elementEnd('li');
+            }
+            $this->out->elementStart('li');
+            // TRANS: Checkbox field label on group edit form to mark a group private.
+            $this->out->checkbox('private', _m('LABEL','Private'), 
+                                  ($this->out->arg('private')) ? $this->out->arg('private') :
+                                 ((!empty($this->group)) ? $this->group->isPrivate() : false),
+                                 // TRANS: Checkbox field title on group edit form to mark a group private.
+                                 _('New members must be approved by admin and all posts are forced to be private.'));
+            $this->out->elementEnd('li');
+            Event::handle('EndGroupEditFormData', array($this));
         }
         $this->out->elementEnd('ul');
     }
@@ -174,9 +223,9 @@ class GroupEditForm extends Form
      *
      * @return void
      */
-
     function formActions()
     {
-        $this->out->submit('submit', _('Save'));
+        // TRANS: Text for save button on group edit form.
+        $this->out->submit('submit', _m('BUTTON','Save'));
     }
 }