PHP 8 Compatibility

This commit is contained in:
Frédéric Guillot
2022-02-05 11:49:03 -08:00
committed by GitHub
parent 61e63ef9e0
commit f5bb55bdb8
558 changed files with 6262 additions and 21691 deletions

View File

@@ -83,8 +83,10 @@ class TaskEmail extends Base
$subject = $this->getParam('subject');
foreach ($data["task"] as $key => $value) {
$placeholder = sprintf('{{%s}}', $key);
$subject = str_replace($placeholder, $value, $subject);
if ($value !== null) {
$placeholder = sprintf('{{%s}}', $key);
$subject = str_replace($placeholder, $value, $subject);
}
}
if (! empty($user['email'])) {

View File

@@ -14,12 +14,10 @@ class CommentListController extends BaseController
{
public function show()
{
$project = $this->getProject();
$task = $this->getTask();
$commentSortingDirection = $this->userMetadataCacheDecorator->get(UserMetadataModel::KEY_COMMENT_SORTING_DIRECTION, 'ASC');
$this->response->html($this->template->render('comment_list/show', array(
'project' => $project,
'task' => $task,
'comments' => $this->commentModel->getAll($task['id'], $commentSortingDirection),
'editable' => $this->helper->user->hasProjectAccess('CommentController', 'edit', $task['project_id']),

View File

@@ -38,7 +38,7 @@ class TaskAjaxController extends BaseController
$filter->withFilter(new TaskIdExclusionFilter(array($exclude_task_id)));
}
if (ctype_digit($search)) {
if (ctype_digit((string) $search)) {
$filter->withFilter(new TaskIdFilter($search));
} else {
$filter->withFilter(new TaskTitleFilter($search));

View File

@@ -175,7 +175,7 @@ class DateParser extends Base
*/
public function getTimestamp($value)
{
if (ctype_digit($value)) {
if (ctype_digit((string) $value)) {
return (int) $value;
}
@@ -263,7 +263,7 @@ class DateParser extends Base
*/
public function getTimestampFromIsoFormat($value)
{
return $this->removeTimeFromTimestamp(ctype_digit($value) ? $value : strtotime($value));
return $this->removeTimeFromTimestamp(ctype_digit((string) $value) ? $value : strtotime($value));
}
/**
@@ -291,7 +291,7 @@ class DateParser extends Base
{
foreach ($fields as $field) {
if (! empty($values[$field])) {
if (ctype_digit($values[$field])) {
if (ctype_digit((string) $values[$field])) {
$values[$field] = date($format, $values[$field]);
}
} else {

View File

@@ -112,7 +112,7 @@ class RememberMeCookie extends Base
'',
time() - 3600,
$this->helper->url->dir(),
null,
'',
$this->request->isHTTPS(),
true
);

View File

@@ -79,7 +79,7 @@ class Request extends Base
*/
public function getIntegerParam($name, $default_value = 0)
{
return isset($this->get[$name]) && ctype_digit($this->get[$name]) ? (int) $this->get[$name] : $default_value;
return isset($this->get[$name]) && ctype_digit((string) $this->get[$name]) ? (int) $this->get[$name] : $default_value;
}
/**

View File

@@ -318,7 +318,7 @@ class User
* @access public
* @return string
*/
public function getGroupAdminDn()
public function getGroupAdminDn(): string
{
return strtolower(LDAP_GROUP_ADMIN_DN);
}
@@ -329,7 +329,7 @@ class User
* @access public
* @return string
*/
public function getGroupManagerDn()
public function getGroupManagerDn(): string
{
return LDAP_GROUP_MANAGER_DN;
}

View File

@@ -24,32 +24,38 @@ class SessionHandler implements SessionHandlerInterface
$this->db = $db;
}
#[\ReturnTypeWillChange]
public function close()
{
return true;
}
#[\ReturnTypeWillChange]
public function destroy($sessionID)
{
return $this->db->table(self::TABLE)->eq('id', $sessionID)->remove();
}
#[\ReturnTypeWillChange]
public function gc($maxlifetime)
{
return $this->db->table(self::TABLE)->lt('expire_at', time())->remove();
}
#[\ReturnTypeWillChange]
public function open($savePath, $name)
{
return true;
}
#[\ReturnTypeWillChange]
public function read($sessionID)
{
$result = $this->db->table(self::TABLE)->eq('id', $sessionID)->findOneColumn('data');
return $result ?: '';
}
#[\ReturnTypeWillChange]
public function write($sessionID, $data)
{
$lifetime = time() + (ini_get('session.gc_maxlifetime') ?: 1440);

View File

@@ -61,7 +61,7 @@ class Translator
array_unshift($args, $this->get($identifier, $identifier));
foreach ($args as &$arg) {
$arg = htmlspecialchars($arg, ENT_QUOTES, 'UTF-8', false);
$arg = htmlspecialchars((string) $arg, ENT_QUOTES, 'UTF-8', false);
}
return call_user_func_array(

View File

@@ -41,6 +41,7 @@ class GenericEvent extends BaseEvent implements ArrayAccess
return $this->container;
}
#[\ReturnTypeWillChange]
public function offsetSet($offset, $value)
{
if (is_null($offset)) {
@@ -50,16 +51,19 @@ class GenericEvent extends BaseEvent implements ArrayAccess
}
}
#[\ReturnTypeWillChange]
public function offsetExists($offset)
{
return isset($this->container[$offset]);
}
#[\ReturnTypeWillChange]
public function offsetUnset($offset)
{
unset($this->container[$offset]);
}
#[\ReturnTypeWillChange]
public function offsetGet($offset)
{
return isset($this->container[$offset]) ? $this->container[$offset] : null;

View File

@@ -27,6 +27,7 @@ class EventIteratorBuilder implements Iterator {
return $this;
}
#[\ReturnTypeWillChange]
public function rewind() {
$this->position = 0;
}
@@ -34,18 +35,22 @@ class EventIteratorBuilder implements Iterator {
/**
* @return BaseEventBuilder
*/
#[\ReturnTypeWillChange]
public function current() {
return $this->builders[$this->position];
}
#[\ReturnTypeWillChange]
public function key() {
return $this->position;
}
#[\ReturnTypeWillChange]
public function next() {
++$this->position;
}
#[\ReturnTypeWillChange]
public function valid() {
return isset($this->builders[$this->position]);
}

View File

@@ -32,7 +32,7 @@ class ProjectStatusFilter extends BaseFilter implements FilterInterface
*/
public function apply()
{
if (is_int($this->value) || ctype_digit($this->value)) {
if (is_int($this->value) || ctype_digit((string) $this->value)) {
$this->query->eq(ProjectModel::TABLE.'.is_active', $this->value);
} elseif ($this->value === 'inactive' || $this->value === 'closed' || $this->value === 'disabled') {
$this->query->eq(ProjectModel::TABLE.'.is_active', 0);

View File

@@ -32,7 +32,7 @@ class ProjectTypeFilter extends BaseFilter implements FilterInterface
*/
public function apply()
{
if (is_int($this->value) || ctype_digit($this->value)) {
if (is_int($this->value) || ctype_digit((string) $this->value)) {
$this->query->eq(ProjectModel::TABLE.'.is_private', $this->value);
} elseif ($this->value === 'private') {
$this->query->eq(ProjectModel::TABLE.'.is_private', ProjectModel::TYPE_PRIVATE);

View File

@@ -54,7 +54,7 @@ class TaskAssigneeFilter extends BaseFilter implements FilterInterface
*/
public function apply()
{
if (is_int($this->value) || ctype_digit($this->value)) {
if (is_int($this->value) || ctype_digit((string) $this->value)) {
$this->query->eq(TaskModel::TABLE.'.owner_id', $this->value);
} else {
switch ($this->value) {

View File

@@ -33,7 +33,7 @@ class TaskCategoryFilter extends BaseFilter implements FilterInterface
*/
public function apply()
{
if (is_int($this->value) || ctype_digit($this->value)) {
if (is_int($this->value) || ctype_digit((string) $this->value)) {
$this->query->eq(TaskModel::TABLE.'.category_id', $this->value);
} elseif ($this->value === 'none') {
$this->query->eq(TaskModel::TABLE.'.category_id', 0);

View File

@@ -33,7 +33,7 @@ class TaskColumnFilter extends BaseFilter implements FilterInterface
*/
public function apply()
{
if (is_int($this->value) || ctype_digit($this->value)) {
if (is_int($this->value) || ctype_digit((string) $this->value)) {
$this->query->eq(TaskModel::TABLE.'.column_id', $this->value);
} else {
$this->query->eq(ColumnModel::TABLE.'.title', $this->value);

View File

@@ -53,7 +53,7 @@ class TaskCreatorFilter extends BaseFilter implements FilterInterface
*/
public function apply()
{
if (is_int($this->value) || ctype_digit($this->value)) {
if (is_int($this->value) || ctype_digit((string) $this->value)) {
$this->query->eq(TaskModel::TABLE.'.creator_id', $this->value);
} else {
switch ($this->value) {

View File

@@ -33,7 +33,7 @@ class TaskProjectFilter extends BaseFilter implements FilterInterface
*/
public function apply()
{
if (is_int($this->value) || ctype_digit($this->value)) {
if (is_int($this->value) || ctype_digit((string) $this->value)) {
$this->query->eq(TaskModel::TABLE.'.project_id', $this->value);
} else {
$this->query->ilike(ProjectModel::TABLE.'.name', $this->value);

View File

@@ -34,7 +34,7 @@ class TaskStatusFilter extends BaseFilter implements FilterInterface
{
if ($this->value === 'open' || $this->value === 'closed') {
$this->query->eq(TaskModel::TABLE.'.is_active', $this->value === 'open' ? TaskModel::STATUS_OPEN : TaskModel::STATUS_CLOSED);
} elseif (is_int($this->value) || ctype_digit($this->value)) {
} elseif (is_int($this->value) || ctype_digit((string) $this->value)) {
$this->query->eq(TaskModel::TABLE.'.is_active', $this->value);
}

View File

@@ -106,7 +106,7 @@ class TaskSubtaskAssigneeFilter extends BaseFilter implements FilterInterface
*/
protected function applySubQueryFilter(Table $subquery)
{
if (is_int($this->value) || ctype_digit($this->value)) {
if (is_int($this->value) || ctype_digit((string) $this->value)) {
$subquery->eq(SubtaskModel::TABLE.'.user_id', $this->value);
} else {
switch ($this->value) {

View File

@@ -32,7 +32,7 @@ class TaskTitleFilter extends BaseFilter implements FilterInterface
*/
public function apply()
{
if (ctype_digit($this->value) || (strlen($this->value) > 1 && $this->value[0] === '#' && ctype_digit(substr($this->value, 1)))) {
if (ctype_digit((string) $this->value) || (strlen($this->value) > 1 && $this->value[0] === '#' && ctype_digit(substr($this->value, 1)))) {
$this->query->beginOr();
$this->query->eq(TaskModel::TABLE.'.id', str_replace('#', '', $this->value));
$this->query->ilike(TaskModel::TABLE.'.title', '%'.$this->value.'%');

View File

@@ -38,7 +38,7 @@ class DateHelper extends Base
return '';
}
if (! ctype_digit($value)) {
if (! ctype_digit((string) $value)) {
$value = strtotime($value);
}

View File

@@ -58,7 +58,7 @@ class UserMentionJob extends BaseJob
{
$users = array();
if (preg_match_all('/@([^\s,!:?]+)/', $text, $matches)) {
if ($text !== null && preg_match_all('/@([^\s,!:?]+)/', $text, $matches)) {
array_walk($matches[1], function (&$username) { $username = rtrim($username, '.'); });
$users = $this->db->table(UserModel::TABLE)
->columns('id', 'username', 'name', 'email', 'language')

View File

@@ -1427,4 +1427,5 @@ return array(
// 'XBT - Bitcoin' => '',
// 'You must select a file to upload as your avatar!' => '',
// 'The file you uploaded is not a valid image! (Only *.gif, *.jpg, *.jpeg and *.png are allowed!)' => '',
// 'Automatically set the due date when the task is moved away from a specific column' => '',
);

View File

@@ -1427,4 +1427,5 @@ return array(
// 'XBT - Bitcoin' => '',
// 'You must select a file to upload as your avatar!' => '',
// 'The file you uploaded is not a valid image! (Only *.gif, *.jpg, *.jpeg and *.png are allowed!)' => '',
// 'Automatically set the due date when the task is moved away from a specific column' => '',
);

View File

@@ -1427,4 +1427,5 @@ return array(
'XBT - Bitcoin' => 'XBT - Bitcoin',
// 'You must select a file to upload as your avatar!' => '',
// 'The file you uploaded is not a valid image! (Only *.gif, *.jpg, *.jpeg and *.png are allowed!)' => '',
// 'Automatically set the due date when the task is moved away from a specific column' => '',
);

View File

@@ -1427,4 +1427,5 @@ return array(
'XBT - Bitcoin' => 'XBT - Bitcoin',
'You must select a file to upload as your avatar!' => 'Vælg fil som overføres som profil billede!',
'The file you uploaded is not a valid image! (Only *.gif, *.jpg, *.jpeg and *.png are allowed!)' => 'Overført fil er ikke et gyldigt billede! (*.gif, *.jpg, *.jpeg eller *.png)',
// 'Automatically set the due date when the task is moved away from a specific column' => '',
);

View File

@@ -1427,4 +1427,5 @@ return array(
'XBT - Bitcoin' => 'XBT - Bitcoin',
'You must select a file to upload as your avatar!' => 'Sie müssen eine Datei auswählen, die als Avatar hochgeladen werden soll!',
'The file you uploaded is not a valid image! (Only *.gif, *.jpg, *.jpeg and *.png are allowed!)' => 'Die hochgeladene Datei ist kein gültiges Bild! (Nur *.gif, *.jpg, *.jpeg and *.png sind erlaubt!)',
// 'Automatically set the due date when the task is moved away from a specific column' => '',
);

View File

@@ -1427,4 +1427,5 @@ return array(
'XBT - Bitcoin' => 'XBT - Bitcoin',
'You must select a file to upload as your avatar!' => 'Du musst eine Datei auswählen, die als Avatar hochgeladen werden soll!',
'The file you uploaded is not a valid image! (Only *.gif, *.jpg, *.jpeg and *.png are allowed!)' => 'Die hochgeladene Datei ist kein gültiges Bild! (Nur *.gif, *.jpg, *.jpeg and *.png sind erlaubt!)',
// 'Automatically set the due date when the task is moved away from a specific column' => '',
);

View File

@@ -1427,4 +1427,5 @@ return array(
// 'XBT - Bitcoin' => '',
// 'You must select a file to upload as your avatar!' => '',
// 'The file you uploaded is not a valid image! (Only *.gif, *.jpg, *.jpeg and *.png are allowed!)' => '',
// 'Automatically set the due date when the task is moved away from a specific column' => '',
);

View File

@@ -1427,4 +1427,5 @@ return array(
'XBT - Bitcoin' => 'XBT - Bitcoin',
// 'You must select a file to upload as your avatar!' => '',
// 'The file you uploaded is not a valid image! (Only *.gif, *.jpg, *.jpeg and *.png are allowed!)' => '',
// 'Automatically set the due date when the task is moved away from a specific column' => '',
);

View File

@@ -1427,4 +1427,5 @@ return array(
'XBT - Bitcoin' => 'XBT - Bitcoin',
// 'You must select a file to upload as your avatar!' => '',
// 'The file you uploaded is not a valid image! (Only *.gif, *.jpg, *.jpeg and *.png are allowed!)' => '',
// 'Automatically set the due date when the task is moved away from a specific column' => '',
);

View File

@@ -1427,4 +1427,5 @@ return array(
'XBT - Bitcoin' => 'XBT - بیت کوین',
'You must select a file to upload as your avatar!' => 'برای بارگذاری تصویر نمایه تان باید فایلی انتخاب کنید!',
'The file you uploaded is not a valid image! (Only *.gif, *.jpg, *.jpeg and *.png are allowed!)' => 'فایلی که بارگذاری کردید یک تصویر معتبر نیست! (فقط *.gif, *.jpg, *.jpeg و *.png مجاز هستند!)',
// 'Automatically set the due date when the task is moved away from a specific column' => '',
);

View File

@@ -1427,4 +1427,5 @@ return array(
// 'XBT - Bitcoin' => '',
// 'You must select a file to upload as your avatar!' => '',
// 'The file you uploaded is not a valid image! (Only *.gif, *.jpg, *.jpeg and *.png are allowed!)' => '',
// 'Automatically set the due date when the task is moved away from a specific column' => '',
);

View File

@@ -1427,4 +1427,5 @@ return array(
'XBT - Bitcoin' => 'XBT - Bitcoin',
'You must select a file to upload as your avatar!' => 'Vous devez sélectionner un fichier à télécharger pour votre avatar !',
'The file you uploaded is not a valid image! (Only *.gif, *.jpg, *.jpeg and *.png are allowed!)' => 'Le fichier que vous avez téléchargé n\'est pas une image valide ! (Seuls * .gif, * .jpg, * .jpeg et * .png sont autorisés !)',
'Automatically set the due date when the task is moved away from a specific column' => 'Changer automatiquement la date d\'échéance lorsque la tâche est déplacée dans une colonne spécifique',
);

View File

@@ -1427,4 +1427,5 @@ return array(
// 'XBT - Bitcoin' => '',
// 'You must select a file to upload as your avatar!' => '',
// 'The file you uploaded is not a valid image! (Only *.gif, *.jpg, *.jpeg and *.png are allowed!)' => '',
// 'Automatically set the due date when the task is moved away from a specific column' => '',
);

View File

@@ -1427,4 +1427,5 @@ return array(
'XBT - Bitcoin' => 'XBT bitcoin',
'You must select a file to upload as your avatar!' => 'Ki kell választania egy fájlt a profilképként való feltöltéshez!',
'The file you uploaded is not a valid image! (Only *.gif, *.jpg, *.jpeg and *.png are allowed!)' => 'A feltöltött fájl nem érvényes kép! Csak *.gif, *.jpg, *.jpeg és *.png engedélyezett.',
// 'Automatically set the due date when the task is moved away from a specific column' => '',
);

View File

@@ -1427,4 +1427,5 @@ return array(
'XBT - Bitcoin' => 'XBT - Bitcoin',
// 'You must select a file to upload as your avatar!' => '',
// 'The file you uploaded is not a valid image! (Only *.gif, *.jpg, *.jpeg and *.png are allowed!)' => '',
// 'Automatically set the due date when the task is moved away from a specific column' => '',
);

View File

@@ -1427,4 +1427,5 @@ return array(
// 'XBT - Bitcoin' => '',
// 'You must select a file to upload as your avatar!' => '',
// 'The file you uploaded is not a valid image! (Only *.gif, *.jpg, *.jpeg and *.png are allowed!)' => '',
// 'Automatically set the due date when the task is moved away from a specific column' => '',
);

View File

@@ -1427,4 +1427,5 @@ return array(
'XBT - Bitcoin' => 'XBT - Bitcoin',
// 'You must select a file to upload as your avatar!' => '',
// 'The file you uploaded is not a valid image! (Only *.gif, *.jpg, *.jpeg and *.png are allowed!)' => '',
// 'Automatically set the due date when the task is moved away from a specific column' => '',
);

View File

@@ -1427,4 +1427,5 @@ return array(
// 'XBT - Bitcoin' => '',
// 'You must select a file to upload as your avatar!' => '',
// 'The file you uploaded is not a valid image! (Only *.gif, *.jpg, *.jpeg and *.png are allowed!)' => '',
// 'Automatically set the due date when the task is moved away from a specific column' => '',
);

View File

@@ -1427,4 +1427,5 @@ return array(
'XBT - Bitcoin' => 'XBT - биткоин',
// 'You must select a file to upload as your avatar!' => '',
// 'The file you uploaded is not a valid image! (Only *.gif, *.jpg, *.jpeg and *.png are allowed!)' => '',
// 'Automatically set the due date when the task is moved away from a specific column' => '',
);

View File

@@ -1427,4 +1427,5 @@ return array(
// 'XBT - Bitcoin' => '',
// 'You must select a file to upload as your avatar!' => '',
// 'The file you uploaded is not a valid image! (Only *.gif, *.jpg, *.jpeg and *.png are allowed!)' => '',
// 'Automatically set the due date when the task is moved away from a specific column' => '',
);

View File

@@ -1427,4 +1427,5 @@ return array(
// 'XBT - Bitcoin' => '',
// 'You must select a file to upload as your avatar!' => '',
// 'The file you uploaded is not a valid image! (Only *.gif, *.jpg, *.jpeg and *.png are allowed!)' => '',
// 'Automatically set the due date when the task is moved away from a specific column' => '',
);

View File

@@ -1427,4 +1427,5 @@ return array(
// 'XBT - Bitcoin' => '',
// 'You must select a file to upload as your avatar!' => '',
// 'The file you uploaded is not a valid image! (Only *.gif, *.jpg, *.jpeg and *.png are allowed!)' => '',
// 'Automatically set the due date when the task is moved away from a specific column' => '',
);

View File

@@ -1427,4 +1427,5 @@ return array(
'XBT - Bitcoin' => 'XBT - Bitcoin',
'You must select a file to upload as your avatar!' => 'Musisz wybrać plik, który chcesz przesłać jako swój awatar!',
'The file you uploaded is not a valid image! (Only *.gif, *.jpg, *.jpeg and *.png are allowed!)' => 'Przesłany plik nie jest prawidłowym obrazem! (Tylko *.gif, *.jpg, *.jpeg i *.png są dozwolone!)',
// 'Automatically set the due date when the task is moved away from a specific column' => '',
);

View File

@@ -1427,4 +1427,5 @@ return array(
'XBT - Bitcoin' => 'XBT - Bitcoin',
// 'You must select a file to upload as your avatar!' => '',
// 'The file you uploaded is not a valid image! (Only *.gif, *.jpg, *.jpeg and *.png are allowed!)' => '',
// 'Automatically set the due date when the task is moved away from a specific column' => '',
);

View File

@@ -1427,4 +1427,5 @@ return array(
'XBT - Bitcoin' => 'XBT - Bitcoin',
// 'You must select a file to upload as your avatar!' => '',
// 'The file you uploaded is not a valid image! (Only *.gif, *.jpg, *.jpeg and *.png are allowed!)' => '',
// 'Automatically set the due date when the task is moved away from a specific column' => '',
);

View File

@@ -1427,4 +1427,5 @@ return array(
// 'XBT - Bitcoin' => '',
// 'You must select a file to upload as your avatar!' => '',
// 'The file you uploaded is not a valid image! (Only *.gif, *.jpg, *.jpeg and *.png are allowed!)' => '',
// 'Automatically set the due date when the task is moved away from a specific column' => '',
);

View File

@@ -1427,4 +1427,5 @@ return array(
'XBT - Bitcoin' => 'XBT - Биткоин',
'You must select a file to upload as your avatar!' => 'Вы должны выбрать файл для загрузки в качестве аватара!',
'The file you uploaded is not a valid image! (Only *.gif, *.jpg, *.jpeg and *.png are allowed!)' => 'Выбранный вами файл не является изображением! (Допустимые расширения: *.gif, *.jpg, *.jpeg, *.png)',
// 'Automatically set the due date when the task is moved away from a specific column' => '',
);

View File

@@ -1427,4 +1427,5 @@ return array(
'XBT - Bitcoin' => 'XBT Bitcoin',
'You must select a file to upload as your avatar!' => 'Musíte zvoliť súbor na nahratie ako svoj avatar',
'The file you uploaded is not a valid image! (Only *.gif, *.jpg, *.jpeg and *.png are allowed!)' => 'nahraný súbor nie je paltný obrázok! (Povolené sú len *.gif, *.jpg, *.jpeg a *.png!)',
// 'Automatically set the due date when the task is moved away from a specific column' => '',
);

View File

@@ -1427,4 +1427,5 @@ return array(
'XBT - Bitcoin' => 'XBT - Bitkoin',
// 'You must select a file to upload as your avatar!' => '',
// 'The file you uploaded is not a valid image! (Only *.gif, *.jpg, *.jpeg and *.png are allowed!)' => '',
// 'Automatically set the due date when the task is moved away from a specific column' => '',
);

View File

@@ -1148,6 +1148,40 @@ return array(
'Remove this role' => 'Ta bort denna rollen',
'There is no restriction for this role.' => 'Det finns inga restriktioner för denna rollen',
'Only moving task between those columns is permitted' => 'Endast tillåtet att flytta uppgifter mellan dessa kolumner',
// 'Close a task in a specific column when not moved during a given period' => '',
// 'Edit columns' => '',
// 'The column restriction has been created successfully.' => '',
// 'Unable to create this column restriction.' => '',
// 'Column restriction removed successfully.' => '',
// 'Unable to remove this restriction.' => '',
// 'Your custom project role has been created successfully.' => '',
// 'Unable to create custom project role.' => '',
// 'Your custom project role has been updated successfully.' => '',
// 'Unable to update custom project role.' => '',
// 'Custom project role removed successfully.' => '',
// 'Unable to remove this project role.' => '',
// 'The project restriction has been created successfully.' => '',
// 'Unable to create this project restriction.' => '',
// 'Project restriction removed successfully.' => '',
// 'You cannot create tasks in this column.' => '',
// 'Task creation is permitted for this column' => '',
// 'Closing or opening a task is permitted for this column' => '',
// 'Task creation is blocked for this column' => '',
// 'Closing or opening a task is blocked for this column' => '',
// 'Task creation is not permitted' => '',
// 'Closing or opening a task is not permitted' => '',
// 'New drag and drop restriction for the role "%s"' => '',
// 'People belonging to this role will be able to move tasks only between the source and the destination column.' => '',
// 'Remove a column restriction' => '',
// 'Do you really want to remove this column restriction: "%s" to "%s"?' => '',
// 'New column restriction for the role "%s"' => '',
// 'Rule' => '',
// 'Do you really want to remove this column restriction?' => '',
// 'Custom roles' => '',
// 'New custom project role' => '',
// 'Edit custom project role' => '',
// 'Remove a custom role' => '',
// 'Do you really want to remove this custom role: "%s"? All people assigned to this role will become project member.' => '',
'There is no custom role for this project.' => 'Det finns ingen anpassad roll för detta projekt.',
'New project restriction for the role "%s"' => 'Ny projektrestriktion för roll "%s"',
'Restriction' => 'Restriktion',
@@ -1390,7 +1424,8 @@ return array(
'MXN - Mexican Peso' => 'MXN - Mexikansk peso',
'Estimated vs actual time per column' => 'Uppskattad kontra faktisk tid per kolumn',
'HUF - Hungarian Forint' => 'HUF - Ungersk forint',
'XBT - bitcoin' => 'XBT - bitcoin',
// 'XBT - Bitcoin' => '',
'You must select a file to upload as your avatar!' => 'Du måste välja en fil att uppladda som din avatar!',
'The file you uploaded is not a valid image! (Only *.gif, *.jpg, *.jpeg and *.png are allowed!)' => 'Filen du laddade upp är inte ett giltigt bildformat! (Endast *.gif *.jpg *.jpeg samt *.png är tillåtet!)',
// 'Automatically set the due date when the task is moved away from a specific column' => '',
);

View File

@@ -1427,4 +1427,5 @@ return array(
// 'XBT - Bitcoin' => '',
// 'You must select a file to upload as your avatar!' => '',
// 'The file you uploaded is not a valid image! (Only *.gif, *.jpg, *.jpeg and *.png are allowed!)' => '',
// 'Automatically set the due date when the task is moved away from a specific column' => '',
);

View File

@@ -1427,4 +1427,5 @@ return array(
'XBT - Bitcoin' => 'XBT - Bitcoin',
// 'You must select a file to upload as your avatar!' => '',
// 'The file you uploaded is not a valid image! (Only *.gif, *.jpg, *.jpeg and *.png are allowed!)' => '',
// 'Automatically set the due date when the task is moved away from a specific column' => '',
);

View File

@@ -1427,4 +1427,5 @@ return array(
'XBT - Bitcoin' => 'XBT Біткоїн',
// 'You must select a file to upload as your avatar!' => '',
// 'The file you uploaded is not a valid image! (Only *.gif, *.jpg, *.jpeg and *.png are allowed!)' => '',
// 'Automatically set the due date when the task is moved away from a specific column' => '',
);

View File

@@ -1427,4 +1427,5 @@ return array(
// 'XBT - Bitcoin' => '',
// 'You must select a file to upload as your avatar!' => '',
// 'The file you uploaded is not a valid image! (Only *.gif, *.jpg, *.jpeg and *.png are allowed!)' => '',
// 'Automatically set the due date when the task is moved away from a specific column' => '',
);

View File

@@ -1427,4 +1427,5 @@ return array(
'XBT - Bitcoin' => 'XBT - 比特币',
'You must select a file to upload as your avatar!' => '你必须选择一张图片作为你的头像',
'The file you uploaded is not a valid image! (Only *.gif, *.jpg, *.jpeg and *.png are allowed!)' => '你所上传的文件不是有效图像!(只有*.gif, *.jpg, *.jpeg and *.png才被允许)',
// 'Automatically set the due date when the task is moved away from a specific column' => '',
);

View File

@@ -1427,4 +1427,5 @@ return array(
// 'XBT - Bitcoin' => '',
// 'You must select a file to upload as your avatar!' => '',
// 'The file you uploaded is not a valid image! (Only *.gif, *.jpg, *.jpeg and *.png are allowed!)' => '',
// 'Automatically set the due date when the task is moved away from a specific column' => '',
);

View File

@@ -18,7 +18,6 @@
<?= $this->render('comment/show', array(
'comment' => $comment,
'task' => $task,
'project' => $project,
'editable' => $editable,
'is_public' => isset($is_public) && $is_public,
)) ?>

View File

@@ -34,8 +34,3 @@ foreach (array('gd', 'mbstring', 'hash', 'openssl', 'json', 'hash', 'ctype', 'fi
if (ini_get('arg_separator.output') === '&amp;') {
ini_set('arg_separator.output', '&');
}
// Make sure we can read files with "\r", "\r\n" and "\n"
if (ini_get('auto_detect_line_endings') != 1) {
ini_set("auto_detect_line_endings", 1);
}