diff --git a/Common/Doctrine/Patch/QueryBuilder.php b/Common/Doctrine/Patch/QueryBuilder.php new file mode 100644 index 000000000..f69bec6ca --- /dev/null +++ b/Common/Doctrine/Patch/QueryBuilder.php @@ -0,0 +1,1485 @@ + [], + 'distinct' => false, + 'from' => [], + 'join' => [], + 'set' => [], + 'where' => null, + 'groupBy' => [], + 'having' => null, + 'orderBy' => [], + 'values' => [], + ]; + + /** + * The DBAL Connection. + * + * @var Connection + */ + private $connection; + + /** + * The array of SQL parts collected. + * + * @var mixed[] + */ + private $sqlParts = self::SQL_PARTS_DEFAULTS; + + /** + * The complete SQL string for this query. + * + * @var string|null + */ + private $sql; + + /** + * The query parameters. + * + * @var array|array + */ + private $params = []; + + /** + * The parameter type map of this query. + * + * @var array|array + */ + private $paramTypes = []; + + /** + * The type of query this is. Can be select, update or delete. + * + * @var int + */ + private $type = self::SELECT; + + /** + * The state of the query object. Can be dirty or clean. + * + * @var int + */ + private $state = self::STATE_CLEAN; + + /** + * The index of the first result to retrieve. + * + * @var int + */ + private $firstResult = 0; + + /** + * The maximum number of results to retrieve or NULL to retrieve all results. + * + * @var int|null + */ + private $maxResults; + + /** + * The counter of bound parameters used with {@see bindValue). + * + * @var int + */ + private $boundCounter = 0; + + /** + * Initializes a new QueryBuilder. + * + * @param Connection $connection The DBAL Connection. + */ + public function __construct(Connection $connection) + { + $this->connection = $connection; + } + + /** + * Gets a string representation of this QueryBuilder which corresponds to + * the final SQL query being constructed. + * + * @return string The string representation of this QueryBuilder. + */ + public function __toString() + { + return $this->getSQL(); + } + + /** + * Deep clone of all expression objects in the SQL parts. + * + * @return void + */ + public function __clone() + { + foreach ($this->sqlParts as $part => $elements) { + if (\is_array($this->sqlParts[$part])) { + foreach ($this->sqlParts[$part] as $idx => $element) { + if (!\is_object($element)) { + continue; + } + + $this->sqlParts[$part][$idx] = clone $element; + } + } elseif (\is_object($elements)) { + $this->sqlParts[$part] = clone $elements; + } + } + + foreach ($this->params as $name => $param) { + if (!\is_object($param)) { + continue; + } + + $this->params[$name] = clone $param; + } + } + + /** + * Gets an ExpressionBuilder used for object-oriented construction of query expressions. + * This producer method is intended for convenient inline usage. Example: + * + * + * $qb = $conn->createQueryBuilder() + * ->select('u') + * ->from('users', 'u') + * ->where($qb->expr()->eq('u.id', 1)); + * + * + * For more complex expression construction, consider storing the expression + * builder object in a local variable. + * + * @return ExpressionBuilder + */ + public function expr() + { + return $this->connection->getExpressionBuilder(); + } + + /** + * Gets the type of the currently built query. + * + * @return int + */ + public function getType() + { + return $this->type; + } + + /** + * Gets the associated DBAL Connection for this query builder. + * + * @return Connection + */ + public function getConnection() + { + return $this->connection; + } + + /** + * Gets the state of this query builder instance. + * + * @return int Either QueryBuilder::STATE_DIRTY or QueryBuilder::STATE_CLEAN. + */ + public function getState() + { + return $this->state; + } + + /** + * Executes an SQL query (SELECT) and returns a Result. + * + * @throws Exception + */ + public function executeQuery(): Result + { + return $this->connection->executeQuery( + $this->getSQL(), + $this->params, + $this->paramTypes + ); + } + + /** + * Executes an SQL statement and returns the number of affected rows. + * + * Should be used for INSERT, UPDATE and DELETE + * + * @throws Exception + * + * @return int The number of affected rows. + */ + public function executeStatement(): int + { + return (int) $this->connection->executeStatement($this->getSQL(), $this->params, $this->paramTypes); + } + + /** + * Executes this query using the bound parameters and their types. + * + * @throws Exception + * + * @return ForwardCompatibility\Result|int|string + */ + public function execute() + { + if ($this->type === self::SELECT) { + return ForwardCompatibility\Result::ensure( + $this->connection->executeQuery($this->getSQL(), $this->params, $this->paramTypes) + ); + } + + return $this->connection->executeStatement($this->getSQL(), $this->params, $this->paramTypes); + } + + /** + * Gets the complete SQL string formed by the current specifications of this QueryBuilder. + * + * + * $qb = $em->createQueryBuilder() + * ->select('u') + * ->from('User', 'u') + * echo $qb->getSQL(); // SELECT u FROM User u + * + * + * @return string The SQL query string. + */ + public function getSQL() + { + if ($this->sql !== null && $this->state === self::STATE_CLEAN) { + return $this->sql; + } + + switch ($this->type) { + case self::INSERT: + $sql = $this->getSQLForInsert(); + + break; + + case self::DELETE: + $sql = $this->getSQLForDelete(); + + break; + + case self::UPDATE: + $sql = $this->getSQLForUpdate(); + + break; + + case self::SELECT: + default: + $sql = $this->getSQLForSelect(); + + break; + } + + $this->state = self::STATE_CLEAN; + $this->sql = $sql; + + return $sql; + } + + /** + * Sets a query parameter for the query being constructed. + * + * + * $qb = $conn->createQueryBuilder() + * ->select('u') + * ->from('users', 'u') + * ->where('u.id = :user_id') + * ->setParameter(':user_id', 1); + * + * + * @param int|string $key Parameter position or name + * @param mixed $value Parameter value + * @param int|string|Type|null $type Parameter type + * + * @return $this This QueryBuilder instance. + */ + public function setParameter($key, $value, $type = null) + { + if ($type !== null) { + $this->paramTypes[$key] = $type; + } + + $this->params[$key] = $value; + + return $this; + } + + /** + * Sets a collection of query parameters for the query being constructed. + * + * + * $qb = $conn->createQueryBuilder() + * ->select('u') + * ->from('users', 'u') + * ->where('u.id = :user_id1 OR u.id = :user_id2') + * ->setParameters(array( + * ':user_id1' => 1, + * ':user_id2' => 2 + * )); + * + * + * @param array|array $params Parameters to set + * @param array|array $types Parameter types + * + * @return $this This QueryBuilder instance. + */ + public function setParameters(array $params, array $types = []) + { + $this->paramTypes = $types; + $this->params = $params; + + return $this; + } + + /** + * Gets all defined query parameters for the query being constructed indexed by parameter index or name. + * + * @return array|array The currently defined query parameters + */ + public function getParameters() + { + return $this->params; + } + + /** + * Gets a (previously set) query parameter of the query being constructed. + * + * @param mixed $key The key (index or name) of the bound parameter. + * + * @return mixed The value of the bound parameter. + */ + public function getParameter($key) + { + return $this->params[$key] ?? null; + } + + /** + * Gets all defined query parameter types for the query being constructed indexed by parameter index or name. + * + * @return array|array The currently defined + * query parameter types + */ + public function getParameterTypes() + { + return $this->paramTypes; + } + + /** + * Gets a (previously set) query parameter type of the query being constructed. + * + * @param int|string $key The key of the bound parameter type + * + * @return int|string|Type|null The value of the bound parameter type + */ + public function getParameterType($key) + { + return $this->paramTypes[$key] ?? null; + } + + /** + * Sets the position of the first result to retrieve (the "offset"). + * + * @param int $firstResult The first result to return. + * + * @return $this This QueryBuilder instance. + */ + public function setFirstResult($firstResult) + { + $this->state = self::STATE_DIRTY; + $this->firstResult = $firstResult; + + return $this; + } + + /** + * Gets the position of the first result the query object was set to retrieve (the "offset"). + * + * @return int The position of the first result. + */ + public function getFirstResult() + { + return $this->firstResult; + } + + /** + * Sets the maximum number of results to retrieve (the "limit"). + * + * @param int|null $maxResults The maximum number of results to retrieve or NULL to retrieve all results. + * + * @return $this This QueryBuilder instance. + */ + public function setMaxResults($maxResults) + { + $this->state = self::STATE_DIRTY; + $this->maxResults = $maxResults; + + return $this; + } + + /** + * Gets the maximum number of results the query object was set to retrieve (the "limit"). + * Returns NULL if all results will be returned. + * + * @return int|null The maximum number of results. + */ + public function getMaxResults() + { + return $this->maxResults; + } + + /** + * Either appends to or replaces a single, generic query part. + * + * The available parts are: 'select', 'from', 'set', 'where', + * 'groupBy', 'having' and 'orderBy'. + * + * @param string $sqlPartName + * @param mixed $sqlPart + * @param bool $append + * + * @return $this This QueryBuilder instance. + */ + public function add($sqlPartName, $sqlPart, $append = false) + { + $isArray = \is_array($sqlPart); + $isMultiple = \is_array($this->sqlParts[$sqlPartName]); + + if ($isMultiple && !$isArray) { + $sqlPart = [$sqlPart]; + } + + $this->state = self::STATE_DIRTY; + + if ($append) { + if ( + $sqlPartName === 'orderBy' + || $sqlPartName === 'groupBy' + || $sqlPartName === 'select' + || $sqlPartName === 'set' + ) { + foreach ($sqlPart as $part) { + $this->sqlParts[$sqlPartName][] = $part; + } + } elseif ($isArray && \is_array($sqlPart[key($sqlPart)])) { + $key = key($sqlPart); + $this->sqlParts[$sqlPartName][$key][] = $sqlPart[$key]; + } elseif ($isMultiple) { + $this->sqlParts[$sqlPartName][] = $sqlPart; + } else { + $this->sqlParts[$sqlPartName] = $sqlPart; + } + + return $this; + } + + $this->sqlParts[$sqlPartName] = $sqlPart; + + return $this; + } + + /** + * Specifies an item that is to be returned in the query result. + * Replaces any previously specified selections, if any. + * + * USING AN ARRAY ARGUMENT IS DEPRECATED. Pass each value as an individual argument. + * + * + * $qb = $conn->createQueryBuilder() + * ->select('u.id', 'p.id') + * ->from('users', 'u') + * ->leftJoin('u', 'phonenumbers', 'p', 'u.id = p.user_id'); + * + * + * @param string|string[]|null $select The selection expression. USING AN ARRAY OR NULL IS DEPRECATED. + * Pass each value as an individual argument. + * + * @return $this This QueryBuilder instance. + */ + public function select($select = null/*, string ...$selects*/) + { + $this->type = self::SELECT; + + if (empty($select)) { + return $this; + } + + if (\is_array($select)) { + Deprecation::trigger( + 'doctrine/dbal', + 'https://github.com/doctrine/dbal/issues/3837', + 'Passing an array for the first argument to QueryBuilder::select is deprecated, ' + . 'pass each value as an individual variadic argument instead.' + ); + } + + $selects = \is_array($select) ? $select : \func_get_args(); + + return $this->add('select', $selects); + } + + /** + * Adds DISTINCT to the query. + * + * + * $qb = $conn->createQueryBuilder() + * ->select('u.id') + * ->distinct() + * ->from('users', 'u') + * + * + * @return $this This QueryBuilder instance. + */ + public function distinct(): self + { + $this->sqlParts['distinct'] = true; + + return $this; + } + + /** + * Adds an item that is to be returned in the query result. + * + * USING AN ARRAY ARGUMENT IS DEPRECATED. Pass each value as an individual argument. + * + * + * $qb = $conn->createQueryBuilder() + * ->select('u.id') + * ->addSelect('p.id') + * ->from('users', 'u') + * ->leftJoin('u', 'phonenumbers', 'u.id = p.user_id'); + * + * + * @param string|string[]|null $select The selection expression. USING AN ARRAY OR NULL IS DEPRECATED. + * Pass each value as an individual argument. + * + * @return $this This QueryBuilder instance. + */ + public function addSelect($select = null/*, string ...$selects*/) + { + $this->type = self::SELECT; + + if (empty($select)) { + return $this; + } + + if (\is_array($select)) { + Deprecation::trigger( + 'doctrine/dbal', + 'https://github.com/doctrine/dbal/issues/3837', + 'Passing an array for the first argument to QueryBuilder::addSelect is deprecated, ' + . 'pass each value as an individual variadic argument instead.' + ); + } + + $selects = \is_array($select) ? $select : \func_get_args(); + + return $this->add('select', $selects, true); + } + + /** + * Turns the query being built into a bulk delete query that ranges over + * a certain table. + * + * + * $qb = $conn->createQueryBuilder() + * ->delete('users', 'u') + * ->where('u.id = :user_id') + * ->setParameter(':user_id', 1); + * + * + * @param string $delete The table whose rows are subject to the deletion. + * @param string $alias The table alias used in the constructed query. + * + * @return $this This QueryBuilder instance. + */ + public function delete($delete = null, $alias = null) + { + $this->type = self::DELETE; + + if (!$delete) { + return $this; + } + + return $this->add('from', [ + 'table' => $delete, + 'alias' => $alias, + ]); + } + + /** + * Turns the query being built into a bulk update query that ranges over + * a certain table + * + * + * $qb = $conn->createQueryBuilder() + * ->update('counters', 'c') + * ->set('c.value', 'c.value + 1') + * ->where('c.id = ?'); + * + * + * @param string $update The table whose rows are subject to the update. + * @param string $alias The table alias used in the constructed query. + * + * @return $this This QueryBuilder instance. + */ + public function update($update = null, $alias = null) + { + $this->type = self::UPDATE; + + if (!$update) { + return $this; + } + + return $this->add('from', [ + 'table' => $update, + 'alias' => $alias, + ]); + } + + /** + * Turns the query being built into an insert query that inserts into + * a certain table + * + * + * $qb = $conn->createQueryBuilder() + * ->insert('users') + * ->values( + * array( + * 'name' => '?', + * 'password' => '?' + * ) + * ); + * + * + * @param string $insert The table into which the rows should be inserted. + * + * @return $this This QueryBuilder instance. + */ + public function insert($insert = null) + { + $this->type = self::INSERT; + + if (!$insert) { + return $this; + } + + return $this->add('from', ['table' => $insert]); + } + + /** + * Creates and adds a query root corresponding to the table identified by the + * given alias, forming a cartesian product with any existing query roots. + * + * + * $qb = $conn->createQueryBuilder() + * ->select('u.id') + * ->from('users', 'u') + * + * + * @param string $from The table. + * @param string|null $alias The alias of the table. + * + * @return $this This QueryBuilder instance. + */ + public function from($from, $alias = null) + { + return $this->add('from', [ + 'table' => $from, + 'alias' => $alias, + ], true); + } + + /** + * Creates and adds a join to the query. + * + * + * $qb = $conn->createQueryBuilder() + * ->select('u.name') + * ->from('users', 'u') + * ->join('u', 'phonenumbers', 'p', 'p.is_primary = 1'); + * + * + * @param string $fromAlias The alias that points to a from clause. + * @param string $join The table name to join. + * @param string $alias The alias of the join table. + * @param string $condition The condition for the join. + * + * @return $this This QueryBuilder instance. + */ + public function join($fromAlias, $join, $alias, $condition = null) + { + return $this->innerJoin($fromAlias, $join, $alias, $condition); + } + + /** + * Creates and adds a join to the query. + * + * + * $qb = $conn->createQueryBuilder() + * ->select('u.name') + * ->from('users', 'u') + * ->innerJoin('u', 'phonenumbers', 'p', 'p.is_primary = 1'); + * + * + * @param string $fromAlias The alias that points to a from clause. + * @param string $join The table name to join. + * @param string $alias The alias of the join table. + * @param string $condition The condition for the join. + * + * @return $this This QueryBuilder instance. + */ + public function innerJoin($fromAlias, $join, $alias, $condition = null) + { + return $this->add('join', [ + $fromAlias => [ + 'joinType' => 'inner', + 'joinTable' => $join, + 'joinAlias' => $alias, + 'joinCondition' => $condition, + ], + ], true); + } + + /** + * Creates and adds a left join to the query. + * + * + * $qb = $conn->createQueryBuilder() + * ->select('u.name') + * ->from('users', 'u') + * ->leftJoin('u', 'phonenumbers', 'p', 'p.is_primary = 1'); + * + * + * @param string $fromAlias The alias that points to a from clause. + * @param string $join The table name to join. + * @param string $alias The alias of the join table. + * @param string $condition The condition for the join. + * + * @return $this This QueryBuilder instance. + */ + public function leftJoin($fromAlias, $join, $alias, $condition = null) + { + return $this->add('join', [ + $fromAlias => [ + 'joinType' => 'left', + 'joinTable' => $join, + 'joinAlias' => $alias, + 'joinCondition' => $condition, + ], + ], true); + } + + /** + * Creates and adds a right join to the query. + * + * + * $qb = $conn->createQueryBuilder() + * ->select('u.name') + * ->from('users', 'u') + * ->rightJoin('u', 'phonenumbers', 'p', 'p.is_primary = 1'); + * + * + * @param string $fromAlias The alias that points to a from clause. + * @param string $join The table name to join. + * @param string $alias The alias of the join table. + * @param string $condition The condition for the join. + * + * @return $this This QueryBuilder instance. + */ + public function rightJoin($fromAlias, $join, $alias, $condition = null) + { + return $this->add('join', [ + $fromAlias => [ + 'joinType' => 'right', + 'joinTable' => $join, + 'joinAlias' => $alias, + 'joinCondition' => $condition, + ], + ], true); + } + + /** + * Sets a new value for a column in a bulk update query. + * + * + * $qb = $conn->createQueryBuilder() + * ->update('counters', 'c') + * ->set('c.value', 'c.value + 1') + * ->where('c.id = ?'); + * + * + * @param string $key The column to set. + * @param string $value The value, expression, placeholder, etc. + * + * @return $this This QueryBuilder instance. + */ + public function set($key, $value) + { + return $this->add('set', $key . ' = ' . $value, true); + } + + /** + * Specifies one or more restrictions to the query result. + * Replaces any previously specified restrictions, if any. + * + * + * $qb = $conn->createQueryBuilder() + * ->select('c.value') + * ->from('counters', 'c') + * ->where('c.id = ?'); + * + * // You can optionally programatically build and/or expressions + * $qb = $conn->createQueryBuilder(); + * + * $or = $qb->expr()->orx(); + * $or->add($qb->expr()->eq('c.id', 1)); + * $or->add($qb->expr()->eq('c.id', 2)); + * + * $qb->update('counters', 'c') + * ->set('c.value', 'c.value + 1') + * ->where($or); + * + * + * @param mixed $predicates The restriction predicates. + * + * @return $this This QueryBuilder instance. + */ + public function where($predicates) + { + if (!(\func_num_args() === 1 && $predicates instanceof CompositeExpression)) { + $predicates = CompositeExpression::and(...\func_get_args()); + } + + return $this->add('where', $predicates); + } + + /** + * Adds one or more restrictions to the query results, forming a logical + * conjunction with any previously specified restrictions. + * + * + * $qb = $conn->createQueryBuilder() + * ->select('u') + * ->from('users', 'u') + * ->where('u.username LIKE ?') + * ->andWhere('u.is_active = 1'); + * + * + * @see where() + * + * @param mixed $where The query restrictions. + * + * @return $this This QueryBuilder instance. + */ + public function andWhere($where) + { + $args = \func_get_args(); + $args = array_filter($args); // https://github.com/doctrine/dbal/issues/4282 + $where = $this->getQueryPart('where'); + + if ($where instanceof CompositeExpression && $where->getType() === CompositeExpression::TYPE_AND) { + if (\count($args) > 0) { + $where = $where->with(...$args); + } + } else { + array_unshift($args, $where); + $where = CompositeExpression::and(...$args); + } + + return $this->add('where', $where, true); + } + + /** + * Adds one or more restrictions to the query results, forming a logical + * disjunction with any previously specified restrictions. + * + * + * $qb = $em->createQueryBuilder() + * ->select('u.name') + * ->from('users', 'u') + * ->where('u.id = 1') + * ->orWhere('u.id = 2'); + * + * + * @see where() + * + * @param mixed $where The WHERE statement. + * + * @return $this This QueryBuilder instance. + */ + public function orWhere($where) + { + $args = \func_get_args(); + $args = array_filter($args); // https://github.com/doctrine/dbal/issues/4282 + $where = $this->getQueryPart('where'); + + if ($where instanceof CompositeExpression && $where->getType() === CompositeExpression::TYPE_OR) { + if (\count($args) > 0) { + $where = $where->with(...$args); + } + } else { + array_unshift($args, $where); + $where = CompositeExpression::or(...$args); + } + + return $this->add('where', $where, true); + } + + /** + * Specifies a grouping over the results of the query. + * Replaces any previously specified groupings, if any. + * + * USING AN ARRAY ARGUMENT IS DEPRECATED. Pass each value as an individual argument. + * + * + * $qb = $conn->createQueryBuilder() + * ->select('u.name') + * ->from('users', 'u') + * ->groupBy('u.id'); + * + * + * @param string|string[] $groupBy The grouping expression. USING AN ARRAY IS DEPRECATED. + * Pass each value as an individual argument. + * + * @return $this This QueryBuilder instance. + */ + public function groupBy($groupBy/*, string ...$groupBys*/) + { + if (empty($groupBy)) { + return $this; + } + + if (\is_array($groupBy)) { + Deprecation::trigger( + 'doctrine/dbal', + 'https://github.com/doctrine/dbal/issues/3837', + 'Passing an array for the first argument to QueryBuilder::groupBy is deprecated, ' + . 'pass each value as an individual variadic argument instead.' + ); + } + + $groupBy = \is_array($groupBy) ? $groupBy : \func_get_args(); + + return $this->add('groupBy', $groupBy, false); + } + + /** + * Adds a grouping expression to the query. + * + * USING AN ARRAY ARGUMENT IS DEPRECATED. Pass each value as an individual argument. + * + * + * $qb = $conn->createQueryBuilder() + * ->select('u.name') + * ->from('users', 'u') + * ->groupBy('u.lastLogin') + * ->addGroupBy('u.createdAt'); + * + * + * @param string|string[] $groupBy The grouping expression. USING AN ARRAY IS DEPRECATED. + * Pass each value as an individual argument. + * + * @return $this This QueryBuilder instance. + */ + public function addGroupBy($groupBy/*, string ...$groupBys*/) + { + if (empty($groupBy)) { + return $this; + } + + if (\is_array($groupBy)) { + Deprecation::trigger( + 'doctrine/dbal', + 'https://github.com/doctrine/dbal/issues/3837', + 'Passing an array for the first argument to QueryBuilder::addGroupBy is deprecated, ' + . 'pass each value as an individual variadic argument instead.' + ); + } + + $groupBy = \is_array($groupBy) ? $groupBy : \func_get_args(); + + return $this->add('groupBy', $groupBy, true); + } + + /** + * Sets a value for a column in an insert query. + * + * + * $qb = $conn->createQueryBuilder() + * ->insert('users') + * ->values( + * array( + * 'name' => '?' + * ) + * ) + * ->setValue('password', '?'); + * + * + * @param string $column The column into which the value should be inserted. + * @param string $value The value that should be inserted into the column. + * + * @return $this This QueryBuilder instance. + */ + public function setValue($column, $value) + { + $this->sqlParts['values'][$column] = $value; + + return $this; + } + + /** + * Specifies values for an insert query indexed by column names. + * Replaces any previous values, if any. + * + * + * $qb = $conn->createQueryBuilder() + * ->insert('users') + * ->values( + * array( + * 'name' => '?', + * 'password' => '?' + * ) + * ); + * + * + * @param mixed[] $values The values to specify for the insert query indexed by column names. + * + * @return $this This QueryBuilder instance. + */ + public function values(array $values) + { + return $this->add('values', $values); + } + + /** + * Specifies a restriction over the groups of the query. + * Replaces any previous having restrictions, if any. + * + * @param mixed $having The restriction over the groups. + * + * @return $this This QueryBuilder instance. + */ + public function having($having) + { + if (!(\func_num_args() === 1 && $having instanceof CompositeExpression)) { + $having = CompositeExpression::and(...\func_get_args()); + } + + return $this->add('having', $having); + } + + /** + * Adds a restriction over the groups of the query, forming a logical + * conjunction with any existing having restrictions. + * + * @param mixed $having The restriction to append. + * + * @return $this This QueryBuilder instance. + */ + public function andHaving($having) + { + $args = \func_get_args(); + $args = array_filter($args); // https://github.com/doctrine/dbal/issues/4282 + $having = $this->getQueryPart('having'); + + if ($having instanceof CompositeExpression && $having->getType() === CompositeExpression::TYPE_AND) { + $having = $having->with(...$args); + } else { + array_unshift($args, $having); + $having = CompositeExpression::and(...$args); + } + + return $this->add('having', $having); + } + + /** + * Adds a restriction over the groups of the query, forming a logical + * disjunction with any existing having restrictions. + * + * @param mixed $having The restriction to add. + * + * @return $this This QueryBuilder instance. + */ + public function orHaving($having) + { + $args = \func_get_args(); + $args = array_filter($args); // https://github.com/doctrine/dbal/issues/4282 + $having = $this->getQueryPart('having'); + + if ($having instanceof CompositeExpression && $having->getType() === CompositeExpression::TYPE_OR) { + $having = $having->with(...$args); + } else { + array_unshift($args, $having); + $having = CompositeExpression::or(...$args); + } + + return $this->add('having', $having); + } + + /** + * Specifies an ordering for the query results. + * Replaces any previously specified orderings, if any. + * + * @param string $sort The ordering expression. + * @param string $order The ordering direction. + * + * @return $this This QueryBuilder instance. + */ + public function orderBy($sort, $order = null) + { + return $this->add('orderBy', $sort . ' ' . (!$order ? 'ASC' : $order), false); + } + + /** + * Adds an ordering to the query results. + * + * @param string $sort The ordering expression. + * @param string $order The ordering direction. + * + * @return $this This QueryBuilder instance. + */ + public function addOrderBy($sort, $order = null) + { + return $this->add('orderBy', $sort . ' ' . (!$order ? 'ASC' : $order), true); + } + + /** + * Gets a query part by its name. + * + * @param string $queryPartName + * + * @return mixed + */ + public function getQueryPart($queryPartName) + { + return $this->sqlParts[$queryPartName]; + } + + /** + * Gets all query parts. + * + * @return mixed[] + */ + public function getQueryParts() + { + return $this->sqlParts; + } + + /** + * Resets SQL parts. + * + * @param string[]|null $queryPartNames + * + * @return $this This QueryBuilder instance. + */ + public function resetQueryParts($queryPartNames = null) + { + if ($queryPartNames === null) { + $queryPartNames = array_keys($this->sqlParts); + } + + foreach ($queryPartNames as $queryPartName) { + $this->resetQueryPart($queryPartName); + } + + return $this; + } + + /** + * Resets a single SQL part. + * + * @param string $queryPartName + * + * @return $this This QueryBuilder instance. + */ + public function resetQueryPart($queryPartName) + { + $this->sqlParts[$queryPartName] = self::SQL_PARTS_DEFAULTS[$queryPartName]; + + $this->state = self::STATE_DIRTY; + + return $this; + } + + /** + * Creates a new named parameter and bind the value $value to it. + * + * This method provides a shortcut for PDOStatement::bindValue + * when using prepared statements. + * + * The parameter $value specifies the value that you want to bind. If + * $placeholder is not provided bindValue() will automatically create a + * placeholder for you. An automatic placeholder will be of the name + * ':dcValue1', ':dcValue2' etc. + * + * For more information see {@link http://php.net/pdostatement-bindparam} + * + * Example: + * + * $value = 2; + * $q->eq( 'id', $q->bindValue( $value ) ); + * $stmt = $q->executeQuery(); // executed with 'id = 2' + * + * + * @see http://www.zetacomponents.org + * + * @param mixed $value + * @param int|string|Type|null $type + * @param string $placeHolder The name to bind with. The string must start with a colon ':'. + * + * @return string the placeholder name used. + */ + public function createNamedParameter($value, $type = ParameterType::STRING, $placeHolder = null) + { + if ($placeHolder === null) { + ++$this->boundCounter; + $placeHolder = ':dcValue' . $this->boundCounter; + } + + $this->setParameter(substr($placeHolder, 1), $value, $type); + + return $placeHolder; + } + + /** + * Creates a new positional parameter and bind the given value to it. + * + * Attention: If you are using positional parameters with the query builder you have + * to be very careful to bind all parameters in the order they appear in the SQL + * statement , otherwise they get bound in the wrong order which can lead to serious + * bugs in your code. + * + * Example: + * + * $qb = $conn->createQueryBuilder(); + * $qb->select('u.*') + * ->from('users', 'u') + * ->where('u.username = ' . $qb->createPositionalParameter('Foo', ParameterType::STRING)) + * ->orWhere('u.username = ' . $qb->createPositionalParameter('Bar', ParameterType::STRING)) + * + * + * @param mixed $value + * @param int|string|Type|null $type + * + * @return string + */ + public function createPositionalParameter($value, $type = ParameterType::STRING) + { + ++$this->boundCounter; + $this->setParameter($this->boundCounter, $value, $type); + + return '?'; + } + + /** + * @throws QueryException + * + * @return string + */ + private function getSQLForSelect() + { + $query = 'SELECT ' . ($this->sqlParts['distinct'] ? 'DISTINCT ' : '') + . implode(', ', $this->sqlParts['select']); + + $query .= ($this->sqlParts['from'] ? ' FROM ' . implode(', ', $this->getFromClauses()) : '') + . ($this->sqlParts['where'] !== null ? ' WHERE ' . ((string) $this->sqlParts['where']) : '') + . ($this->sqlParts['groupBy'] ? ' GROUP BY ' . implode(', ', $this->sqlParts['groupBy']) : '') + . ($this->sqlParts['having'] !== null ? ' HAVING ' . ((string) $this->sqlParts['having']) : '') + . ($this->sqlParts['orderBy'] ? ' ORDER BY ' . implode(', ', $this->sqlParts['orderBy']) : ''); + + if ($this->isLimitQuery()) { + return $this->connection->getDatabasePlatform()->modifyLimitQuery( + $query, + $this->maxResults, + $this->firstResult + ); + } + + return $query; + } + + /** + * @return string[] + */ + private function getFromClauses() + { + $fromClauses = []; + $knownAliases = []; + + // Loop through all FROM clauses + foreach ($this->sqlParts['from'] as $from) { + if ($from['alias'] === null) { + $tableSql = $from['table']; + $tableReference = $from['table']; + } else { + $tableSql = $from['table'] . ' ' . $from['alias']; + $tableReference = $from['alias']; + } + + $knownAliases[$tableReference] = true; + + $fromClauses[$tableReference] = $tableSql . $this->getSQLForJoins($tableReference, $knownAliases); + } + + $this->verifyAllAliasesAreKnown($knownAliases); + + return $fromClauses; + } + + /** + * @param array $knownAliases + * + * @throws QueryException + */ + private function verifyAllAliasesAreKnown(array $knownAliases): void + { + foreach ($this->sqlParts['join'] as $fromAlias => $joins) { + if (!isset($knownAliases[$fromAlias])) { + throw QueryException::unknownAlias($fromAlias, array_keys($knownAliases)); + } + } + } + + /** + * @return bool + */ + private function isLimitQuery() + { + return $this->maxResults !== null || $this->firstResult !== 0; + } + + /** + * Converts this instance into an INSERT string in SQL. + * + * @return string + */ + private function getSQLForInsert() + { + return 'INSERT INTO ' . $this->sqlParts['from']['table'] + . ' (' . implode(', ', array_keys($this->sqlParts['values'])) . ')' + . ' VALUES(' . implode(', ', $this->sqlParts['values']) . ')'; + } + + /** + * Converts this instance into an UPDATE string in SQL. + * + * @return string + */ + private function getSQLForUpdate() + { + $table = $this->sqlParts['from']['table'] + . ($this->sqlParts['from']['alias'] ? ' ' . $this->sqlParts['from']['alias'] : ''); + + return 'UPDATE ' . $table + . ' SET ' . implode(', ', $this->sqlParts['set']) + . ($this->sqlParts['where'] !== null ? ' WHERE ' . ((string) $this->sqlParts['where']) : ''); + } + + /** + * Converts this instance into a DELETE string in SQL. + * + * @return string + */ + private function getSQLForDelete() + { + $table = $this->sqlParts['from']['table'] + . ($this->sqlParts['from']['alias'] ? ' ' . $this->sqlParts['from']['alias'] : ''); + + return 'DELETE FROM ' . $table + . ($this->sqlParts['where'] !== null ? ' WHERE ' . ((string) $this->sqlParts['where']) : ''); + } + + /** + * @param string $fromAlias + * @param array $knownAliases + * + * @throws QueryException + * + * @return string + */ + private function getSQLForJoins($fromAlias, array &$knownAliases) + { + $sql = ''; + + if (isset($this->sqlParts['join'][$fromAlias])) { + foreach ($this->sqlParts['join'][$fromAlias] as $join) { + if (\array_key_exists($join['joinAlias'], $knownAliases)) { + /** @var array $keys */ + $keys = array_keys($knownAliases); + + throw QueryException::nonUniqueAlias($join['joinAlias'], $keys); + } + + $sql .= ' ' . strtoupper($join['joinType']) + . ' JOIN ' . $join['joinTable'] . ' ' . $join['joinAlias']; + if ($join['joinCondition'] !== null) { + $sql .= ' ON ' . $join['joinCondition']; + } + + $knownAliases[$join['joinAlias']] = true; + } + + foreach ($this->sqlParts['join'][$fromAlias] as $join) { + $sql .= $this->getSQLForJoins($join['joinAlias'], $knownAliases); + } + } + + return $sql; + } +} diff --git a/Common/composer.json b/Common/composer.json index 75d7259ab..90592282e 100644 --- a/Common/composer.json +++ b/Common/composer.json @@ -3,7 +3,7 @@ "require": { "php": "^7.4.3 || ^8.0", "defuse/php-encryption": "2.2.1", - "doctrine/dbal": "2.13.3", + "doctrine/dbal": "~2.13.8", "hansott/psr7-cookies": "3.0.0", "knplabs/gaufrette": "0.9.0", "paragonie/random_compat": "2.0.18", @@ -16,9 +16,11 @@ "symfony/event-dispatcher": "~5.3.0" }, "autoload": { + "files": [ + "Doctrine/Patch/QueryBuilder.php" + ], "psr-4": { "Shopware\\Recovery\\Common\\": "src", - "Shopware\\Recovery\\Install\\": "../Install/src", "Shopware\\Recovery\\Update\\": "../Update/src" } }, diff --git a/Common/composer.lock b/Common/composer.lock deleted file mode 100644 index 90084bb82..000000000 --- a/Common/composer.lock +++ /dev/null @@ -1,2129 +0,0 @@ -{ - "_readme": [ - "This file locks the dependencies of your project to a known state", - "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", - "This file is @generated automatically" - ], - "content-hash": "8779a39d4adbae986e3b2daeb5497a85", - "packages": [ - { - "name": "defuse/php-encryption", - "version": "v2.2.1", - "source": { - "type": "git", - "url": "https://github.com/defuse/php-encryption.git", - "reference": "0f407c43b953d571421e0020ba92082ed5fb7620" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/defuse/php-encryption/zipball/0f407c43b953d571421e0020ba92082ed5fb7620", - "reference": "0f407c43b953d571421e0020ba92082ed5fb7620", - "shasum": "" - }, - "require": { - "ext-openssl": "*", - "paragonie/random_compat": ">= 2", - "php": ">=5.4.0" - }, - "require-dev": { - "nikic/php-parser": "^2.0|^3.0|^4.0", - "phpunit/phpunit": "^4|^5" - }, - "bin": [ - "bin/generate-defuse-key" - ], - "type": "library", - "autoload": { - "psr-4": { - "Defuse\\Crypto\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Taylor Hornby", - "email": "taylor@defuse.ca", - "homepage": "https://defuse.ca/" - }, - { - "name": "Scott Arciszewski", - "email": "info@paragonie.com", - "homepage": "https://paragonie.com" - } - ], - "description": "Secure PHP Encryption Library", - "keywords": [ - "aes", - "authenticated encryption", - "cipher", - "crypto", - "cryptography", - "encrypt", - "encryption", - "openssl", - "security", - "symmetric key cryptography" - ], - "support": { - "issues": "https://github.com/defuse/php-encryption/issues", - "source": "https://github.com/defuse/php-encryption/tree/master" - }, - "time": "2018-07-24T23:27:56+00:00" - }, - { - "name": "doctrine/cache", - "version": "2.1.1", - "source": { - "type": "git", - "url": "https://github.com/doctrine/cache.git", - "reference": "331b4d5dbaeab3827976273e9356b3b453c300ce" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/cache/zipball/331b4d5dbaeab3827976273e9356b3b453c300ce", - "reference": "331b4d5dbaeab3827976273e9356b3b453c300ce", - "shasum": "" - }, - "require": { - "php": "~7.1 || ^8.0" - }, - "conflict": { - "doctrine/common": ">2.2,<2.4" - }, - "require-dev": { - "alcaeus/mongo-php-adapter": "^1.1", - "cache/integration-tests": "dev-master", - "doctrine/coding-standard": "^8.0", - "mongodb/mongodb": "^1.1", - "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0", - "predis/predis": "~1.0", - "psr/cache": "^1.0 || ^2.0 || ^3.0", - "symfony/cache": "^4.4 || ^5.2 || ^6.0@dev", - "symfony/var-exporter": "^4.4 || ^5.2 || ^6.0@dev" - }, - "suggest": { - "alcaeus/mongo-php-adapter": "Required to use legacy MongoDB driver" - }, - "type": "library", - "autoload": { - "psr-4": { - "Doctrine\\Common\\Cache\\": "lib/Doctrine/Common/Cache" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" - } - ], - "description": "PHP Doctrine Cache library is a popular cache implementation that supports many different drivers such as redis, memcache, apc, mongodb and others.", - "homepage": "https://www.doctrine-project.org/projects/cache.html", - "keywords": [ - "abstraction", - "apcu", - "cache", - "caching", - "couchdb", - "memcached", - "php", - "redis", - "xcache" - ], - "support": { - "issues": "https://github.com/doctrine/cache/issues", - "source": "https://github.com/doctrine/cache/tree/2.1.1" - }, - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fcache", - "type": "tidelift" - } - ], - "time": "2021-07-17T14:49:29+00:00" - }, - { - "name": "doctrine/dbal", - "version": "2.13.3", - "source": { - "type": "git", - "url": "https://github.com/doctrine/dbal.git", - "reference": "0d7adf4cadfee6f70850e5b163e6cdd706417838" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/dbal/zipball/0d7adf4cadfee6f70850e5b163e6cdd706417838", - "reference": "0d7adf4cadfee6f70850e5b163e6cdd706417838", - "shasum": "" - }, - "require": { - "doctrine/cache": "^1.0|^2.0", - "doctrine/deprecations": "^0.5.3", - "doctrine/event-manager": "^1.0", - "ext-pdo": "*", - "php": "^7.1 || ^8" - }, - "require-dev": { - "doctrine/coding-standard": "9.0.0", - "jetbrains/phpstorm-stubs": "2021.1", - "phpstan/phpstan": "0.12.96", - "phpunit/phpunit": "^7.5.20|^8.5|9.5.5", - "psalm/plugin-phpunit": "0.16.1", - "squizlabs/php_codesniffer": "3.6.0", - "symfony/cache": "^4.4", - "symfony/console": "^2.0.5|^3.0|^4.0|^5.0", - "vimeo/psalm": "4.10.0" - }, - "suggest": { - "symfony/console": "For helpful console commands such as SQL execution and import of files." - }, - "bin": [ - "bin/doctrine-dbal" - ], - "type": "library", - "autoload": { - "psr-4": { - "Doctrine\\DBAL\\": "lib/Doctrine/DBAL" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" - } - ], - "description": "Powerful PHP database abstraction layer (DBAL) with many features for database schema introspection and management.", - "homepage": "https://www.doctrine-project.org/projects/dbal.html", - "keywords": [ - "abstraction", - "database", - "db2", - "dbal", - "mariadb", - "mssql", - "mysql", - "oci8", - "oracle", - "pdo", - "pgsql", - "postgresql", - "queryobject", - "sasql", - "sql", - "sqlanywhere", - "sqlite", - "sqlserver", - "sqlsrv" - ], - "support": { - "issues": "https://github.com/doctrine/dbal/issues", - "source": "https://github.com/doctrine/dbal/tree/2.13.3" - }, - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fdbal", - "type": "tidelift" - } - ], - "time": "2021-09-12T19:11:48+00:00" - }, - { - "name": "doctrine/deprecations", - "version": "v0.5.3", - "source": { - "type": "git", - "url": "https://github.com/doctrine/deprecations.git", - "reference": "9504165960a1f83cc1480e2be1dd0a0478561314" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/deprecations/zipball/9504165960a1f83cc1480e2be1dd0a0478561314", - "reference": "9504165960a1f83cc1480e2be1dd0a0478561314", - "shasum": "" - }, - "require": { - "php": "^7.1|^8.0" - }, - "require-dev": { - "doctrine/coding-standard": "^6.0|^7.0|^8.0", - "phpunit/phpunit": "^7.0|^8.0|^9.0", - "psr/log": "^1.0" - }, - "suggest": { - "psr/log": "Allows logging deprecations via PSR-3 logger implementation" - }, - "type": "library", - "autoload": { - "psr-4": { - "Doctrine\\Deprecations\\": "lib/Doctrine/Deprecations" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.", - "homepage": "https://www.doctrine-project.org/", - "support": { - "issues": "https://github.com/doctrine/deprecations/issues", - "source": "https://github.com/doctrine/deprecations/tree/v0.5.3" - }, - "time": "2021-03-21T12:59:47+00:00" - }, - { - "name": "doctrine/event-manager", - "version": "1.1.1", - "source": { - "type": "git", - "url": "https://github.com/doctrine/event-manager.git", - "reference": "41370af6a30faa9dc0368c4a6814d596e81aba7f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/event-manager/zipball/41370af6a30faa9dc0368c4a6814d596e81aba7f", - "reference": "41370af6a30faa9dc0368c4a6814d596e81aba7f", - "shasum": "" - }, - "require": { - "php": "^7.1 || ^8.0" - }, - "conflict": { - "doctrine/common": "<2.9@dev" - }, - "require-dev": { - "doctrine/coding-standard": "^6.0", - "phpunit/phpunit": "^7.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Doctrine\\Common\\": "lib/Doctrine/Common" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" - }, - { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com" - } - ], - "description": "The Doctrine Event Manager is a simple PHP event system that was built to be used with the various Doctrine projects.", - "homepage": "https://www.doctrine-project.org/projects/event-manager.html", - "keywords": [ - "event", - "event dispatcher", - "event manager", - "event system", - "events" - ], - "support": { - "issues": "https://github.com/doctrine/event-manager/issues", - "source": "https://github.com/doctrine/event-manager/tree/1.1.x" - }, - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fevent-manager", - "type": "tidelift" - } - ], - "time": "2020-05-29T18:28:51+00:00" - }, - { - "name": "hansott/psr7-cookies", - "version": "3.0.0", - "source": { - "type": "git", - "url": "https://github.com/hansott/psr7-cookies.git", - "reference": "e128fc01a1b3a4247f6948ee9296b24af9149558" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/hansott/psr7-cookies/zipball/e128fc01a1b3a4247f6948ee9296b24af9149558", - "reference": "e128fc01a1b3a4247f6948ee9296b24af9149558", - "shasum": "" - }, - "require": { - "php": "~7.0", - "psr/http-message": "^1.0" - }, - "require-dev": { - "guzzlehttp/psr7": "^1.3", - "phpunit/phpunit": "~4.0||~5.0", - "scrutinizer/ocular": "~1.1", - "squizlabs/php_codesniffer": "~2.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - } - }, - "autoload": { - "psr-4": { - "HansOtt\\PSR7Cookies\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Hans Ott", - "email": "hans@iott.consulting", - "role": "Developer" - } - ], - "description": "PSR-7 Cookies", - "homepage": "https://github.com/hansott/psr7-cookies", - "keywords": [ - "cookies", - "fig", - "hansott", - "http-message", - "psr7-cookies", - "setcookie" - ], - "support": { - "issues": "https://github.com/hansott/psr7-cookies/issues", - "source": "https://github.com/hansott/psr7-cookies/tree/master" - }, - "time": "2019-04-20T10:07:10+00:00" - }, - { - "name": "knplabs/gaufrette", - "version": "v0.9.0", - "source": { - "type": "git", - "url": "https://github.com/KnpLabs/Gaufrette.git", - "reference": "786247eba04d4693e88a80ca9fdabb634675dcac" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/KnpLabs/Gaufrette/zipball/786247eba04d4693e88a80ca9fdabb634675dcac", - "reference": "786247eba04d4693e88a80ca9fdabb634675dcac", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "conflict": { - "microsoft/windowsazure": "<0.4.3" - }, - "require-dev": { - "akeneo/phpspec-skip-example-extension": "^4.0", - "amazonwebservices/aws-sdk-for-php": "1.5.*", - "aws/aws-sdk-php": "^2.4.12||~3", - "doctrine/dbal": ">=2.3", - "dropbox-php/dropbox-php": "*", - "google/apiclient": "~1.1.3", - "league/flysystem": "~1.0", - "microsoft/azure-storage-blob": "^1.0", - "mikey179/vfsstream": "~1.2.0", - "mongodb/mongodb": "^1.1", - "pedrotroller/php-cs-custom-fixer": "^2.17", - "phpseclib/phpseclib": "^2.0", - "phpspec/phpspec": "~5.1", - "phpunit/phpunit": "~7.5", - "rackspace/php-opencloud": "^1.9.2" - }, - "suggest": { - "ext-curl": "*", - "ext-fileinfo": "This extension is used to automatically detect the content-type of a file in the AwsS3, OpenCloud, AzureBlogStorage and GoogleCloudStorage adapters", - "ext-mbstring": "*", - "gaufrette/aws-s3-adapter": "to use AwsS3 adapter (supports SDK v2 and v3)", - "gaufrette/azure-blob-storage-adapter": "to use AzureBlobStorage adapter", - "gaufrette/doctrine-dbal-adapter": "to use DBAL adapter", - "gaufrette/flysystem-adapter": "to use Flysystem adapter", - "gaufrette/ftp-adapter": "to use Ftp adapter", - "gaufrette/gridfs-adapter": "to use GridFS adapter", - "gaufrette/in-memory-adapter": "to use InMemory adapter", - "gaufrette/local-adapter": "to use Local adapter", - "gaufrette/opencloud-adapter": "to use Opencloud adapter", - "gaufrette/phpseclib-sftp-adapter": "to use PhpseclibSftp adapter", - "gaufrette/zip-adapter": "to use Zip adapter", - "google/apiclient": "to use GoogleCloudStorage adapter", - "knplabs/knp-gaufrette-bundle": "to use with Symfony2" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "0.10.x-dev" - } - }, - "autoload": { - "psr-0": { - "Gaufrette": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "KnpLabs Team", - "homepage": "http://knplabs.com" - }, - { - "name": "The contributors", - "homepage": "http://github.com/knplabs/Gaufrette/contributors" - } - ], - "description": "PHP library that provides a filesystem abstraction layer", - "homepage": "http://knplabs.com", - "keywords": [ - "abstraction", - "file", - "filesystem", - "media" - ], - "support": { - "issues": "https://github.com/KnpLabs/Gaufrette/issues", - "source": "https://github.com/KnpLabs/Gaufrette/tree/master" - }, - "time": "2019-12-26T15:15:38+00:00" - }, - { - "name": "nikic/fast-route", - "version": "v1.3.0", - "source": { - "type": "git", - "url": "https://github.com/nikic/FastRoute.git", - "reference": "181d480e08d9476e61381e04a71b34dc0432e812" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/nikic/FastRoute/zipball/181d480e08d9476e61381e04a71b34dc0432e812", - "reference": "181d480e08d9476e61381e04a71b34dc0432e812", - "shasum": "" - }, - "require": { - "php": ">=5.4.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.8.35|~5.7" - }, - "type": "library", - "autoload": { - "psr-4": { - "FastRoute\\": "src/" - }, - "files": [ - "src/functions.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Nikita Popov", - "email": "nikic@php.net" - } - ], - "description": "Fast request router for PHP", - "keywords": [ - "router", - "routing" - ], - "support": { - "issues": "https://github.com/nikic/FastRoute/issues", - "source": "https://github.com/nikic/FastRoute/tree/master" - }, - "time": "2018-02-13T20:26:39+00:00" - }, - { - "name": "paragonie/random_compat", - "version": "v2.0.18", - "source": { - "type": "git", - "url": "https://github.com/paragonie/random_compat.git", - "reference": "0a58ef6e3146256cc3dc7cc393927bcc7d1b72db" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/paragonie/random_compat/zipball/0a58ef6e3146256cc3dc7cc393927bcc7d1b72db", - "reference": "0a58ef6e3146256cc3dc7cc393927bcc7d1b72db", - "shasum": "" - }, - "require": { - "php": ">=5.2.0" - }, - "require-dev": { - "phpunit/phpunit": "4.*|5.*" - }, - "suggest": { - "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes." - }, - "type": "library", - "autoload": { - "files": [ - "lib/random.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Paragon Initiative Enterprises", - "email": "security@paragonie.com", - "homepage": "https://paragonie.com" - } - ], - "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7", - "keywords": [ - "csprng", - "polyfill", - "pseudorandom", - "random" - ], - "support": { - "email": "info@paragonie.com", - "issues": "https://github.com/paragonie/random_compat/issues", - "source": "https://github.com/paragonie/random_compat" - }, - "time": "2019-01-03T20:59:08+00:00" - }, - { - "name": "pimple/pimple", - "version": "v3.2.3", - "source": { - "type": "git", - "url": "https://github.com/silexphp/Pimple.git", - "reference": "9e403941ef9d65d20cba7d54e29fe906db42cf32" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/silexphp/Pimple/zipball/9e403941ef9d65d20cba7d54e29fe906db42cf32", - "reference": "9e403941ef9d65d20cba7d54e29fe906db42cf32", - "shasum": "" - }, - "require": { - "php": ">=5.3.0", - "psr/container": "^1.0" - }, - "require-dev": { - "symfony/phpunit-bridge": "^3.2" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.2.x-dev" - } - }, - "autoload": { - "psr-0": { - "Pimple": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - } - ], - "description": "Pimple, a simple Dependency Injection Container", - "homepage": "http://pimple.sensiolabs.org", - "keywords": [ - "container", - "dependency injection" - ], - "support": { - "issues": "https://github.com/silexphp/Pimple/issues", - "source": "https://github.com/silexphp/Pimple/tree/master" - }, - "time": "2018-01-21T07:42:36+00:00" - }, - { - "name": "psr/container", - "version": "1.1.1", - "source": { - "type": "git", - "url": "https://github.com/php-fig/container.git", - "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/container/zipball/8622567409010282b7aeebe4bb841fe98b58dcaf", - "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf", - "shasum": "" - }, - "require": { - "php": ">=7.2.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Psr\\Container\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" - } - ], - "description": "Common Container Interface (PHP FIG PSR-11)", - "homepage": "https://github.com/php-fig/container", - "keywords": [ - "PSR-11", - "container", - "container-interface", - "container-interop", - "psr" - ], - "support": { - "issues": "https://github.com/php-fig/container/issues", - "source": "https://github.com/php-fig/container/tree/1.1.1" - }, - "time": "2021-03-05T17:36:06+00:00" - }, - { - "name": "psr/event-dispatcher", - "version": "1.0.0", - "source": { - "type": "git", - "url": "https://github.com/php-fig/event-dispatcher.git", - "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/event-dispatcher/zipball/dbefd12671e8a14ec7f180cab83036ed26714bb0", - "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0", - "shasum": "" - }, - "require": { - "php": ">=7.2.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\EventDispatcher\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Standard interfaces for event handling.", - "keywords": [ - "events", - "psr", - "psr-14" - ], - "support": { - "issues": "https://github.com/php-fig/event-dispatcher/issues", - "source": "https://github.com/php-fig/event-dispatcher/tree/1.0.0" - }, - "time": "2019-01-08T18:20:26+00:00" - }, - { - "name": "psr/http-message", - "version": "1.0.1", - "source": { - "type": "git", - "url": "https://github.com/php-fig/http-message.git", - "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363", - "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Http\\Message\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Common interface for HTTP messages", - "homepage": "https://github.com/php-fig/http-message", - "keywords": [ - "http", - "http-message", - "psr", - "psr-7", - "request", - "response" - ], - "support": { - "source": "https://github.com/php-fig/http-message/tree/master" - }, - "time": "2016-08-06T14:39:51+00:00" - }, - { - "name": "psr/log", - "version": "1.1.2", - "source": { - "type": "git", - "url": "https://github.com/php-fig/log.git", - "reference": "446d54b4cb6bf489fc9d75f55843658e6f25d801" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/446d54b4cb6bf489fc9d75f55843658e6f25d801", - "reference": "446d54b4cb6bf489fc9d75f55843658e6f25d801", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.1.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Log\\": "Psr/Log/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Common interface for logging libraries", - "homepage": "https://github.com/php-fig/log", - "keywords": [ - "log", - "psr", - "psr-3" - ], - "support": { - "source": "https://github.com/php-fig/log/tree/1.1.2" - }, - "time": "2019-11-01T11:05:21+00:00" - }, - { - "name": "slim/php-view", - "version": "2.2.1", - "source": { - "type": "git", - "url": "https://github.com/slimphp/PHP-View.git", - "reference": "a13ada9d7962ca1b48799c0d9ffbca4c33245aed" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/slimphp/PHP-View/zipball/a13ada9d7962ca1b48799c0d9ffbca4c33245aed", - "reference": "a13ada9d7962ca1b48799c0d9ffbca4c33245aed", - "shasum": "" - }, - "require": { - "psr/http-message": "^1.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.8", - "slim/slim": "^3.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Slim\\Views\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Glenn Eggleton", - "email": "geggleto@gmail.com" - } - ], - "description": "Render PHP view scripts into a PSR-7 Response object.", - "keywords": [ - "framework", - "php", - "phtml", - "renderer", - "slim", - "template", - "view" - ], - "support": { - "issues": "https://github.com/slimphp/PHP-View/issues", - "source": "https://github.com/slimphp/PHP-View/tree/2.2.1" - }, - "time": "2019-04-15T20:43:28+00:00" - }, - { - "name": "slim/slim", - "version": "3.12.3", - "source": { - "type": "git", - "url": "https://github.com/slimphp/Slim.git", - "reference": "1c9318a84ffb890900901136d620b4f03a59da38" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/slimphp/Slim/zipball/1c9318a84ffb890900901136d620b4f03a59da38", - "reference": "1c9318a84ffb890900901136d620b4f03a59da38", - "shasum": "" - }, - "require": { - "ext-json": "*", - "ext-libxml": "*", - "ext-simplexml": "*", - "nikic/fast-route": "^1.0", - "php": ">=5.5.0", - "pimple/pimple": "^3.0", - "psr/container": "^1.0", - "psr/http-message": "^1.0" - }, - "provide": { - "psr/http-message-implementation": "1.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.0", - "squizlabs/php_codesniffer": "^2.5" - }, - "type": "library", - "autoload": { - "psr-4": { - "Slim\\": "Slim" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Josh Lockhart", - "email": "hello@joshlockhart.com", - "homepage": "https://joshlockhart.com" - }, - { - "name": "Andrew Smith", - "email": "a.smith@silentworks.co.uk", - "homepage": "http://silentworks.co.uk" - }, - { - "name": "Rob Allen", - "email": "rob@akrabat.com", - "homepage": "http://akrabat.com" - }, - { - "name": "Gabriel Manricks", - "email": "gmanricks@me.com", - "homepage": "http://gabrielmanricks.com" - } - ], - "description": "Slim is a PHP micro framework that helps you quickly write simple yet powerful web applications and APIs", - "homepage": "https://slimframework.com", - "keywords": [ - "api", - "framework", - "micro", - "router" - ], - "support": { - "issues": "https://github.com/slimphp/Slim/issues", - "source": "https://github.com/slimphp/Slim/tree/3.x" - }, - "time": "2019-11-28T17:40:33+00:00" - }, - { - "name": "symfony/console", - "version": "v5.3.10", - "source": { - "type": "git", - "url": "https://github.com/symfony/console.git", - "reference": "d4e409d9fbcfbf71af0e5a940abb7b0b4bad0bd3" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/d4e409d9fbcfbf71af0e5a940abb7b0b4bad0bd3", - "reference": "d4e409d9fbcfbf71af0e5a940abb7b0b4bad0bd3", - "shasum": "" - }, - "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1", - "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php73": "^1.8", - "symfony/polyfill-php80": "^1.16", - "symfony/service-contracts": "^1.1|^2", - "symfony/string": "^5.1" - }, - "conflict": { - "psr/log": ">=3", - "symfony/dependency-injection": "<4.4", - "symfony/dotenv": "<5.1", - "symfony/event-dispatcher": "<4.4", - "symfony/lock": "<4.4", - "symfony/process": "<4.4" - }, - "provide": { - "psr/log-implementation": "1.0|2.0" - }, - "require-dev": { - "psr/log": "^1|^2", - "symfony/config": "^4.4|^5.0", - "symfony/dependency-injection": "^4.4|^5.0", - "symfony/event-dispatcher": "^4.4|^5.0", - "symfony/lock": "^4.4|^5.0", - "symfony/process": "^4.4|^5.0", - "symfony/var-dumper": "^4.4|^5.0" - }, - "suggest": { - "psr/log": "For using the console logger", - "symfony/event-dispatcher": "", - "symfony/lock": "", - "symfony/process": "" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Console\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Eases the creation of beautiful and testable command line interfaces", - "homepage": "https://symfony.com", - "keywords": [ - "cli", - "command line", - "console", - "terminal" - ], - "support": { - "source": "https://github.com/symfony/console/tree/v5.3.10" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2021-10-26T09:30:15+00:00" - }, - { - "name": "symfony/deprecation-contracts", - "version": "v2.4.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "5f38c8804a9e97d23e0c8d63341088cd8a22d627" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/5f38c8804a9e97d23e0c8d63341088cd8a22d627", - "reference": "5f38c8804a9e97d23e0c8d63341088cd8a22d627", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "2.4-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" - } - }, - "autoload": { - "files": [ - "function.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "A generic function and convention to trigger deprecation notices", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v2.4.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2021-03-23T23:28:01+00:00" - }, - { - "name": "symfony/dotenv", - "version": "v5.3.10", - "source": { - "type": "git", - "url": "https://github.com/symfony/dotenv.git", - "reference": "97ffd3846f8a782086e82c1b5fdefb3f3ad078db" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/dotenv/zipball/97ffd3846f8a782086e82c1b5fdefb3f3ad078db", - "reference": "97ffd3846f8a782086e82c1b5fdefb3f3ad078db", - "shasum": "" - }, - "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1" - }, - "require-dev": { - "symfony/process": "^4.4|^5.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Dotenv\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Registers environment variables from a .env file", - "homepage": "https://symfony.com", - "keywords": [ - "dotenv", - "env", - "environment" - ], - "support": { - "source": "https://github.com/symfony/dotenv/tree/v5.3.10" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2021-10-28T21:34:29+00:00" - }, - { - "name": "symfony/event-dispatcher", - "version": "v5.3.7", - "source": { - "type": "git", - "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "ce7b20d69c66a20939d8952b617506a44d102130" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/ce7b20d69c66a20939d8952b617506a44d102130", - "reference": "ce7b20d69c66a20939d8952b617506a44d102130", - "shasum": "" - }, - "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1", - "symfony/event-dispatcher-contracts": "^2", - "symfony/polyfill-php80": "^1.16" - }, - "conflict": { - "symfony/dependency-injection": "<4.4" - }, - "provide": { - "psr/event-dispatcher-implementation": "1.0", - "symfony/event-dispatcher-implementation": "2.0" - }, - "require-dev": { - "psr/log": "^1|^2|^3", - "symfony/config": "^4.4|^5.0", - "symfony/dependency-injection": "^4.4|^5.0", - "symfony/error-handler": "^4.4|^5.0", - "symfony/expression-language": "^4.4|^5.0", - "symfony/http-foundation": "^4.4|^5.0", - "symfony/service-contracts": "^1.1|^2", - "symfony/stopwatch": "^4.4|^5.0" - }, - "suggest": { - "symfony/dependency-injection": "", - "symfony/http-kernel": "" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\EventDispatcher\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v5.3.7" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2021-08-04T21:20:46+00:00" - }, - { - "name": "symfony/event-dispatcher-contracts", - "version": "v2.4.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/event-dispatcher-contracts.git", - "reference": "69fee1ad2332a7cbab3aca13591953da9cdb7a11" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/69fee1ad2332a7cbab3aca13591953da9cdb7a11", - "reference": "69fee1ad2332a7cbab3aca13591953da9cdb7a11", - "shasum": "" - }, - "require": { - "php": ">=7.2.5", - "psr/event-dispatcher": "^1" - }, - "suggest": { - "symfony/event-dispatcher-implementation": "" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "2.4-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Contracts\\EventDispatcher\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Generic abstractions related to dispatching event", - "homepage": "https://symfony.com", - "keywords": [ - "abstractions", - "contracts", - "decoupling", - "interfaces", - "interoperability", - "standards" - ], - "support": { - "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v2.4.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2021-03-23T23:28:01+00:00" - }, - { - "name": "symfony/polyfill-ctype", - "version": "v1.23.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "46cd95797e9df938fdd2b03693b5fca5e64b01ce" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/46cd95797e9df938fdd2b03693b5fca5e64b01ce", - "reference": "46cd95797e9df938fdd2b03693b5fca5e64b01ce", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "suggest": { - "ext-ctype": "For best performance" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.23-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Ctype\\": "" - }, - "files": [ - "bootstrap.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Gert de Pagter", - "email": "BackEndTea@gmail.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for ctype functions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "ctype", - "polyfill", - "portable" - ], - "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.23.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2021-02-19T12:13:01+00:00" - }, - { - "name": "symfony/polyfill-intl-grapheme", - "version": "v1.23.1", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "16880ba9c5ebe3642d1995ab866db29270b36535" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/16880ba9c5ebe3642d1995ab866db29270b36535", - "reference": "16880ba9c5ebe3642d1995ab866db29270b36535", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "suggest": { - "ext-intl": "For best performance" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.23-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Intl\\Grapheme\\": "" - }, - "files": [ - "bootstrap.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for intl's grapheme_* functions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "grapheme", - "intl", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.23.1" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2021-05-27T12:26:48+00:00" - }, - { - "name": "symfony/polyfill-intl-normalizer", - "version": "v1.23.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "8590a5f561694770bdcd3f9b5c69dde6945028e8" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8590a5f561694770bdcd3f9b5c69dde6945028e8", - "reference": "8590a5f561694770bdcd3f9b5c69dde6945028e8", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "suggest": { - "ext-intl": "For best performance" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.23-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Intl\\Normalizer\\": "" - }, - "files": [ - "bootstrap.php" - ], - "classmap": [ - "Resources/stubs" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for intl's Normalizer class and related functions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "intl", - "normalizer", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.23.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2021-02-19T12:13:01+00:00" - }, - { - "name": "symfony/polyfill-mbstring", - "version": "v1.23.1", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "9174a3d80210dca8daa7f31fec659150bbeabfc6" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9174a3d80210dca8daa7f31fec659150bbeabfc6", - "reference": "9174a3d80210dca8daa7f31fec659150bbeabfc6", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "suggest": { - "ext-mbstring": "For best performance" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.23-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Mbstring\\": "" - }, - "files": [ - "bootstrap.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for the Mbstring extension", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "mbstring", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.23.1" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2021-05-27T12:26:48+00:00" - }, - { - "name": "symfony/polyfill-php73", - "version": "v1.23.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php73.git", - "reference": "fba8933c384d6476ab14fb7b8526e5287ca7e010" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/fba8933c384d6476ab14fb7b8526e5287ca7e010", - "reference": "fba8933c384d6476ab14fb7b8526e5287ca7e010", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.23-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Php73\\": "" - }, - "files": [ - "bootstrap.php" - ], - "classmap": [ - "Resources/stubs" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-php73/tree/v1.23.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2021-02-19T12:13:01+00:00" - }, - { - "name": "symfony/polyfill-php80", - "version": "v1.23.1", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "1100343ed1a92e3a38f9ae122fc0eb21602547be" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/1100343ed1a92e3a38f9ae122fc0eb21602547be", - "reference": "1100343ed1a92e3a38f9ae122fc0eb21602547be", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.23-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Php80\\": "" - }, - "files": [ - "bootstrap.php" - ], - "classmap": [ - "Resources/stubs" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Ion Bazan", - "email": "ion.bazan@gmail.com" - }, - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.23.1" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2021-07-28T13:41:28+00:00" - }, - { - "name": "symfony/service-contracts", - "version": "v2.4.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/service-contracts.git", - "reference": "f040a30e04b57fbcc9c6cbcf4dbaa96bd318b9bb" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/f040a30e04b57fbcc9c6cbcf4dbaa96bd318b9bb", - "reference": "f040a30e04b57fbcc9c6cbcf4dbaa96bd318b9bb", - "shasum": "" - }, - "require": { - "php": ">=7.2.5", - "psr/container": "^1.1" - }, - "suggest": { - "symfony/service-implementation": "" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "2.4-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Contracts\\Service\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Generic abstractions related to writing services", - "homepage": "https://symfony.com", - "keywords": [ - "abstractions", - "contracts", - "decoupling", - "interfaces", - "interoperability", - "standards" - ], - "support": { - "source": "https://github.com/symfony/service-contracts/tree/v2.4.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2021-04-01T10:43:52+00:00" - }, - { - "name": "symfony/string", - "version": "v5.3.10", - "source": { - "type": "git", - "url": "https://github.com/symfony/string.git", - "reference": "d70c35bb20bbca71fc4ab7921e3c6bda1a82a60c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/d70c35bb20bbca71fc4ab7921e3c6bda1a82a60c", - "reference": "d70c35bb20bbca71fc4ab7921e3c6bda1a82a60c", - "shasum": "" - }, - "require": { - "php": ">=7.2.5", - "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-intl-grapheme": "~1.0", - "symfony/polyfill-intl-normalizer": "~1.0", - "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php80": "~1.15" - }, - "require-dev": { - "symfony/error-handler": "^4.4|^5.0", - "symfony/http-client": "^4.4|^5.0", - "symfony/translation-contracts": "^1.1|^2", - "symfony/var-exporter": "^4.4|^5.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\String\\": "" - }, - "files": [ - "Resources/functions.php" - ], - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way", - "homepage": "https://symfony.com", - "keywords": [ - "grapheme", - "i18n", - "string", - "unicode", - "utf-8", - "utf8" - ], - "support": { - "source": "https://github.com/symfony/string/tree/v5.3.10" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2021-10-27T18:21:46+00:00" - } - ], - "packages-dev": [], - "aliases": [], - "minimum-stability": "stable", - "stability-flags": [], - "prefer-stable": false, - "prefer-lowest": false, - "platform": { - "php": "^7.4.3 || ^8.0" - }, - "platform-dev": [], - "platform-overrides": { - "php": "7.4.3" - }, - "plugin-api-version": "2.1.0" -} diff --git a/Common/src/Archive/Zip.php b/Common/src/Archive/Zip.php index e01faf18c..3c9621aa4 100644 --- a/Common/src/Archive/Zip.php +++ b/Common/src/Archive/Zip.php @@ -85,25 +85,25 @@ protected function getErrorMessage($retval, $file) { switch ($retval) { case \ZipArchive::ER_EXISTS: - return sprintf("File '%s' already exists.", $file); + return sprintf('File \'%s\' already exists.', $file); case \ZipArchive::ER_INCONS: - return sprintf("Zip archive '%s' is inconsistent.", $file); + return sprintf('Zip archive \'%s\' is inconsistent.', $file); case \ZipArchive::ER_INVAL: return sprintf('Invalid argument (%s)', $file); case \ZipArchive::ER_MEMORY: return sprintf('Malloc failure (%s)', $file); case \ZipArchive::ER_NOENT: - return sprintf("No such zip file: '%s'", $file); + return sprintf('No such zip file: \'%s\'', $file); case \ZipArchive::ER_NOZIP: - return sprintf("'%s' is not a zip archive.", $file); + return sprintf('\'%s\' is not a zip archive.', $file); case \ZipArchive::ER_OPEN: - return sprintf("Can't open zip file: %s", $file); + return sprintf('Can\'t open zip file: %s', $file); case \ZipArchive::ER_READ: return sprintf('Zip read error (%s)', $file); case \ZipArchive::ER_SEEK: return sprintf('Zip seek error (%s)', $file); default: - return sprintf("'%s' is not a valid zip archive, got error code: %s", $file, $retval); + return sprintf('\'%s\' is not a valid zip archive, got error code: %s', $file, $retval); } } } diff --git a/Common/src/Service/JwtCertificateService.php b/Common/src/Service/JwtCertificateService.php deleted file mode 100644 index 730319701..000000000 --- a/Common/src/Service/JwtCertificateService.php +++ /dev/null @@ -1,26 +0,0 @@ -folder = $folder; - $this->jwtCertificateGenerator = $jwtCertificateGenerator; - } - - public function generate(): void - { - $this->jwtCertificateGenerator->generate( - $this->folder . '/private.pem', - $this->folder . '/public.pem' - ); - } -} diff --git a/Common/src/Service/UniqueIdGenerator.php b/Common/src/Service/UniqueIdGenerator.php deleted file mode 100644 index 789436a51..000000000 --- a/Common/src/Service/UniqueIdGenerator.php +++ /dev/null @@ -1,57 +0,0 @@ -cacheFilePath = $cacheFilePath; - } - - public function getUniqueId(): string - { - if (file_exists($this->cacheFilePath)) { - return file_get_contents($this->cacheFilePath); - } - - $uniqueId = $this->generateUniqueId(); - - $this->saveUniqueId($uniqueId); - - return $uniqueId; - } - - /** - * @param int $length - * @param string $keyspace - * - * @return string - */ - public function generateUniqueId($length = 32, $keyspace = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ') - { - $str = ''; - $max = mb_strlen($keyspace, '8bit') - 1; - for ($i = 0; $i < $length; ++$i) { - $str .= $keyspace[random_int(0, $max)]; - } - - return $str; - } - - /** - * @param string $uniqueId - */ - private function saveUniqueId($uniqueId): void - { - file_put_contents($this->cacheFilePath, $uniqueId); - } -} diff --git a/Install/.gitignore b/Install/.gitignore deleted file mode 100644 index a91529149..000000000 --- a/Install/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/data/sql/install.sql -/data/sql/snippets.sql -/data/install.lock -/data/uniqueid.txt diff --git a/Install/.htaccess b/Install/.htaccess deleted file mode 100644 index 150ed3d93..000000000 --- a/Install/.htaccess +++ /dev/null @@ -1,16 +0,0 @@ - - RewriteEngine On - - RewriteRule .* - [E=MOD_REWRITE:1] - RewriteCond %{REQUEST_FILENAME} !-f - RewriteRule ^(.*)$ index.php [QSA,L] - - # Set REQUEST_SCHEME (standard environment variable in Apache 2.4) - RewriteCond %{HTTPS} off - RewriteRule .* - [E=REQUEST_SCHEME:http] - - RewriteCond %{HTTPS} on - RewriteRule .* - [E=REQUEST_SCHEME:https] - - -DirectoryIndex index.php diff --git a/Install/check.php b/Install/check.php deleted file mode 100644 index 7743fc9c2..000000000 --- a/Install/check.php +++ /dev/null @@ -1,28 +0,0 @@ - \PHP_VERSION, -]; - -echo json_encode($result, \JSON_PRETTY_PRINT); diff --git a/Install/config/production.php b/Install/config/production.php deleted file mode 100644 index a8d1c65ba..000000000 --- a/Install/config/production.php +++ /dev/null @@ -1,43 +0,0 @@ - realpath(__DIR__ . '/../../../'), - 'check.ping_url' => 'recovery/install/ping.php', - 'check.check_url' => 'recovery/install/check.php', - 'check.token.path' => __DIR__ . '/../tmp/token', - - 'api.endpoint' => 'https://api.shopware.com', - - 'tos.urls' => [ - 'de' => 'https://api.shopware.com/gtc/de_DE.html', - 'en' => 'https://api.shopware.com/gtc/en_GB.html', - ], - - 'languages' => ['de', 'en', 'cs', 'es', 'fr', 'it', 'nl', 'pl', 'pt', 'sv', 'da'], - - 'slim' => [ - 'settings' => [ - 'httpVersion' => '1.1', - 'responseChunkSize' => 4096, - 'outputBuffering' => 'append', - 'determineRouteBeforeAppMiddleware' => false, - 'displayErrorDetails' => true, - 'addContentLengthHeader' => true, - 'routerCacheFile' => false, - ], - 'debug' => true, // set debug to false so custom error handler is used - 'templates.path' => __DIR__ . '/../templates', - ], - - 'menu.helper' => [ - 'routes' => [ - 'language-selection', - 'requirements', - 'license', - 'database-configuration', - 'database-import', - 'configuration', - 'finish', - ], - ], -]; diff --git a/Install/data/.htaccess b/Install/data/.htaccess deleted file mode 100644 index 7d2154c0f..000000000 --- a/Install/data/.htaccess +++ /dev/null @@ -1,10 +0,0 @@ -# Deny all requests from Apache 2.4+. - - Require all denied - - -# Deny all requests from Apache 2.0-2.2. - - Order Deny,Allow - Deny from all - diff --git a/Install/data/lang/cs.php b/Install/data/lang/cs.php deleted file mode 100644 index a1f8ee039..000000000 --- a/Install/data/lang/cs.php +++ /dev/null @@ -1,142 +0,0 @@ - 'Instalace', - 'menuitem_language-selection' => 'Spustit', - 'menuitem_requirements' => 'Systémové předpoklady', - 'menuitem_database-configuration' => 'Konfigurace databáze', - 'menuitem_database-import' => 'Instalace', - 'menuitem_edition' => 'Licence softwaru Shopware', - 'menuitem_configuration' => 'Konfigurace', - 'menuitem_finish' => 'Hotovo', - 'menuitem_license' => 'VOP', - 'license_incorrect' => 'Zadaný licenční klíč je neplatný.', - 'license_does_not_match' => 'Zadaný licenční klíč neodpovídá žádné komerční verzi softwaru Shopware', - 'license_domain_error' => 'Zadaný licenční klíč je neplatný pro doménu: ', - 'version_text' => 'Verze:', - 'back' => 'Zpět', - 'forward' => 'Další', - 'start' => 'Spustit', - 'start_installation' => 'Spustit instalaci', - - 'select_language_de' => 'Německy', - 'select_language_en' => 'Anglicky', - 'select_language_nl' => 'Holandsky', - 'select_language_it' => 'Italsky', - 'select_language_fr' => 'Francouzsky', - 'select_language_es' => 'Španělsky', - 'select_language_pt' => 'Portugalsky', - 'select_language_pl' => 'Polsky', - 'select_language_cs' => 'český', - 'select_language_sv' => 'švédský', - - 'language-selection_welcome_title' => 'Vítejte v aplikaci Shopware 6', - 'language-selection_select_language' => 'Jazyk průvodce instalací', - 'language-selection_header' => 'Vaše instalace softwaru Shopware', - 'language-selection_info_message' => 'Tato volba se vztahuje jen na jazyk průvodce instalací. Systémový standardní jazyk svého obchodu můžete ještě definovat později.', - 'language-selection_welcome_message' => 'Těší nás, že chcete být součástí naší celosvětové komunity Shopware! Nyní vás provedeme krok za krokem procesem instalace. Pokud budete mít otázky, podívejte se nejdříve na naše Fórum, kontaktujte nás telefonicky na čísle (+49) 2555 928850 nebo nám napište e-mail.', - - 'requirements_header' => 'Systémové předpoklady', - 'requirements_header_files' => 'Soubory a adresáře', - 'requirements_header_system' => 'Systém', - 'requirements_files_info' => 'Následující soubory a adresáře musí existovat a nesmí být chráněny proti zápisu.', - 'requirements_table_files_col_check' => 'Soubor/adresář', - 'requirements_table_files_col_status' => 'Stav', - 'requirements_error' => 'Nejsou splněny všechny předpoklady úspěšné instalace.', - 'requirements_error_title' => 'Váš systém ještě není připraven na Shopware 6', - 'requirements_success' => 'Jsou splněny všechny předpoklady úspěšné instalace.', - 'requirements_success_title' => 'Váš systém je připraven na Shopware 6', - 'requirements_php_info' => 'Váš server by měl splňovat následující systémové předpoklady, aby mohl využívat Shopware v plném rozsahu.', - 'requirements_php_max_compatible_version' => 'Tato verze Shopware podporuje PHP do verze %s. S novější verzí PHP nelze zaručit úplnou funkčnost systému Shopware.', - 'requirements_system_col_check' => 'Předpoklad', - 'requirements_system_col_required' => 'Nutný', - 'requirements_system_col_found' => 'Váš systém', - 'requirements_system_col_status' => 'Stav', - 'requirements_show_all' => '(zobrazit vše)', - 'requirements_hide_all' => '(skrýt vše)', - 'requirements_status_error' => 'Chyba', - 'requirements_status_warning' => 'Varování', - 'requirements_status_ready' => 'Připraven', - - 'license_agreement_header' => 'Všeobecné obchodní podmínky („VOP“)', - 'license_agreement_info' => 'Zde najdete naše Všeobecné obchodní podmínky. Aby bylo možné pokračovat v instalaci softwaru Shopware 6, musíte si nejdříve přečíst naše VOP a poté je přijmout. Vydání Community Edition softwaru Shopware 6 je uvolněno podle podmínek licence MIT.', - 'license_agreement_error' => 'Vyjádřete svůj souhlas s našimi VOP!', - 'license_agreement_checkbox' => 'Souhlasím s VOP!', - - 'database-configuration_header' => 'Konfigurovat databázi', - 'database-configuration_field_host' => 'Server:', - 'database-configuration_advanced_settings' => 'Rozšířená nastavení', - 'database-configuration_field_port' => 'Port:', - 'database-configuration_field_user' => 'Uživatel:', - 'database-configuration_field_password' => 'Heslo:', - 'database-configuration_field_database' => 'Název databáze:', - 'database-configuration_field_new_database' => 'Nová databáze:', - 'database-configuration_info' => 'Aby bylo možné instalovat Shopware ve vašem systému, potřebujete přístupové údaje ke své databázi. Nejste-li si jisti, co sem máte zadat, obraťte se na svého správce/hostitele.', - 'database-configuration-create_new_database' => 'Založit novou databázi', - 'database-configuration_non_empty_database' => 'Vybraná databáze již obsahuje data. Vyberte prázdnou databázi nebo vytvořte novou.', - 'database-configuration_error_required_fields' => 'Vyplňte všechna pole.', - 'database-import_header' => 'Instalace', - 'database-import_skip_import' => 'Přeskočit', - 'database-import_progress' => 'Pokrok: ', - 'database-import-hint' => 'Upozornění: Jestliže jsou v konfigurované databázi již tabulky Shopware, budou instalací/aktualizací odebrány!', - 'database-import_info_text' => 'Software Shopware 6 bude instalován ve vámi vybrané databázi. Tento proces může v závislosti na vašem systému několik minut trvat.', - 'database_import_success' => 'Software Shopware 6 byl úspěšně nainstalován!', - 'database_import_install_label' => 'Instalace databáze:', - 'database_import_install_step_text' => 'Krok', - 'database_import_install_from_text' => 'z', - - 'migration_counter_text_migrations' => 'Provádí se aktualizace databáze', - 'migration_counter_text_snippets' => 'Aktualizují se textové bloky', - 'migration_update_success' => 'Databáze úspěšně importována!', - - 'edition_header' => 'Máte již licenci softwaru Shopware?', - 'edition_info' => 'Shopware existuje v bezplatném vydání Community Edition a také v hrazených verzích Professional a Enterprise.', - 'edition_ce' => 'Ne, chci používat bezplatnou verzi Community Edition.', - 'edition_cm' => 'Ano, mám hrazenou licenci softwaru Shopware (Professional nebo Enterprise).', - 'edition_license' => 'Sem zadejte svůj licenční klíč. Ten najdete na svém účtu Shopware v části "Licence" → "Licence produktů" → "Podrobnosti/stažení":', - 'edition_license_error' => 'Pro instalaci hrazené verze softwaru Shopware je nutná platná licence.', - - 'configuration_header' => 'Konfigurace', - 'configuration_sconfig_text' => 'Už je to téměř hotovo. Nyní musíte ještě provést několik základních nastavení svého obchodu, poté je instalace dokončena.', - 'configuration_sconfig_name' => 'Název obchodu', - 'configuration_sconfig_name_info' => 'Zadejte název svého obchodu.', - 'configuration_sconfig_mail' => 'E-mailová adresa obchodu:', - 'configuration_sconfig_mail_info' => 'Zadejte e-mailovou adresu odchozích zpráv e-mailem.', - 'configuration_sconfig_domain' => 'Doména obchodu:', - 'configuration_sconfig_language' => 'Standardní jazyk systému:', - 'configuration_sconfig_currency' => 'Standardní měna:', - 'configuration_sconfig_currency_info' => 'Tato měna se použije standardně na ceny produktů.', - 'configuration_admin_currency_eur' => 'Euro', - 'configuration_admin_currency_usd' => 'Dolar (US)', - 'configuration_admin_currency_gbp' => 'Britská libra (GB)', - 'configuration_admin_currency_pln' => 'Polský zlotý', - 'configuration_admin_currency_chf' => 'Švýcarský frank', - 'configuration_admin_currency_sek' => 'Švédská koruna', - 'configuration_admin_currency_dkk' => 'Dánská koruna', - 'configuration_admin_currency_nok' => 'Norská koruna', - 'configuration_admin_currency_czk' => 'Koruna česká', - 'configuration_admin_username' => 'Přihlašovací jméno správce:', - 'configuration_admin_mail' => 'E-mailová adresa správce:', - 'configuration_admin_firstName' => 'Jméno správce:', - 'configuration_admin_lastName' => 'Příjmení správce:', - 'configuration_defaults_warning' => 'Standardní jazyk systému a standardní měnu nelze později měnit.', - 'configuration_email_help_text' => 'Tato e-mailová adresa se použije pro odchozí e-maily obchodu.', - 'configuration_admin_language_de' => 'Německy', - 'configuration_admin_language_en' => 'Anglicky', - 'configuration_admin_password' => 'Heslo správce:', - - 'finish_header' => 'Instalace je dokončena.', - 'finish_info' => 'Úspěšně jste instalovali software Shopware!', - 'finish_info_heading' => 'Jupí!', - 'finish_first_steps' => 'Příručka "První kroky"', - 'finish_frontend' => 'K rozhraní obchodu', - 'finish_backend' => 'Ke Administration (správě)', - 'finish_message' => ' -

- Vítejte v aplikaci Shopware, -

-

- těší nás, že vás můžeme uvítat v naší komunitě. Úspěšně jste instalovali software Shopware. -

Váš obchod je nyní připraven k využívání. Jestliže jste v Shopware ještě nováčci, doporučujeme vám průvodce "První kroky v Shopware". Jakmile se poprvé přihlásíte ke správě obchodu, náš průvodce prvním přihlášením vás provede základním nastavením vašeho obchodu.

-

Přejeme hodně zábavy a úspěchů s vaším novým online obchodem!

', -]; diff --git a/Install/data/lang/da.php b/Install/data/lang/da.php deleted file mode 100644 index a35b45dc8..000000000 --- a/Install/data/lang/da.php +++ /dev/null @@ -1,148 +0,0 @@ - 'Installation', - 'menuitem_language-selection' => 'Start', - 'menuitem_requirements' => 'Systemkrav', - 'menuitem_database-configuration' => 'Database konfiguration', - 'menuitem_database-import' => 'Installation', - 'menuitem_edition' => 'Shopware Licens', - 'menuitem_configuration' => 'Konfiguration', - 'menuitem_finish' => 'Færdig', - 'menuitem_license' => 'Almindelige forretningsbetingelser', - 'license_incorrect' => 'Den angivne licensnøgle er ugyldig.', - 'license_does_not_match' => 'Den angivne licensnøgle mather ikke en Shopware version', - 'license_domain_error' => 'Den angivne licensnøgle er ugyldig for domænet: ', - 'version_text' => 'Version:', - 'back' => 'Tilbage', - 'forward' => 'Videre', - 'start' => 'Start', - 'start_installation' => 'Start installationen', - - 'select_language_de' => 'Tysk', - 'select_language_en' => 'Engelsk', - 'select_language_nl' => 'Hollands', - 'select_language_it' => 'Italiensk', - 'select_language_fr' => 'Fransk', - 'select_language_es' => 'Spansk', - 'select_language_pt' => 'Portugisisk', - 'select_language_pl' => 'Polsk', - 'select_language_cs' => 'Tjekkisk', - 'select_language_sv' => 'Svensk', - 'select_language_da' => 'Dansk', - - 'language-selection_welcome_title' => 'Velkommen til Shopware 6', - 'language-selection_select_language' => 'Installationsguidens sprog', - 'language-selection_header' => 'Din Shopware installation', - 'language-selection_info_message' => 'Sproget valgt her gælder kun for installationsguiden. Du kan definere systemets standardsprog senere.', - 'language-selection_welcome_message' => 'Vi er glade for at du vil være en del af vores fantastiske Shopware Community! Vi vil nu guide dig igennem vores installationsproces. Hvis du har spørgsmål, så se på vores forum, kontakt os på telefonnummer 00 800 746 7626 0 (gratis) eller send os en e-mail.', - - 'requirements_header' => 'Systemkrav', - 'requirements_header_files' => 'Filer og mapper', - 'requirements_header_system' => 'System', - 'requirements_files_info' => 'Følgende filer og mapper skal eksistere og have skrive rettigheder.', - 'requirements_table_files_col_check' => 'Fil/mappe', - 'requirements_table_files_col_status' => 'Status', - 'requirements_error' => 'Alle krav for en succesfuld installation er ikke opfyldt.', - 'requirements_error_title' => 'Dit system er ikke klar til Shopware 6', - 'requirements_success' => 'Alle krav for en succesfuld installation er opfyldt.', - 'requirements_success_title' => 'Dit system er klar til Shopware 6', - 'requirements_php_info' => 'Din server skal opfylde følgende krav for at kunne køre Shopware.', - 'requirements_php_max_compatible_version' => 'Denne version af Shopware understøtter PHP up til version %s. Der er ingen garanti for, at alting vil virke med nyere PHP versioner.', - 'requirements_system_col_check' => 'Krav', - 'requirements_system_col_required' => 'Påkrævet', - 'requirements_system_col_found' => 'Dit system', - 'requirements_system_col_status' => 'Status', - 'requirements_show_all' => '(vis alt)', - 'requirements_hide_all' => '(skjul alt)', - 'requirements_status_error' => 'Fejl', - 'requirements_status_warning' => 'Advarsel', - 'requirements_status_ready' => 'Klar', - - 'license_agreement_header' => 'Almindelige forretningsbetingelser', - 'license_agreement_info' => 'Dette er vores almindelige forretningsbetingelser. Vil du fortsætte med at bruge installere Shopware 6, skal du først acceptere disse. Community Edition af Shopware 6 er gratis og er udgivet under MIT licensen.', - 'license_agreement_error' => 'Accepter venligst vores almindelige forretningsbetingelser', - 'license_agreement_checkbox' => 'Jeg accepterer de almindelige forretningsbetingelser', - - 'database-configuration_header' => 'Konfigurer databasen', - 'database-configuration_field_host' => 'Server:', - 'database-configuration_advanced_settings' => 'Avancerede indstillinger', - 'database-configuration_field_port' => 'Port:', - 'database-configuration_field_user' => 'Bruger:', - 'database-configuration_field_password' => 'Kodeord:', - 'database-configuration_field_database' => 'Database navn:', - 'database-configuration_field_new_database' => 'Ny database:', - 'database-configuration_info' => 'For at kunne installere Shopware på dit system har du brug for adgangsoplysningerne til din database. Er du usikker på hvad du skal angive her, så kontakt din administrator / hosting service.', - 'database-configuration-create_new_database' => 'Opret ny database', - 'database-configuration_non_empty_database' => 'Den valgte database indholder allerede data. Vælg venligst en tom database eller opret en ny.', - 'database-configuration_error_required_fields' => 'Udfyld venligst alle felter', - 'database-configuration_field_ssl_ca_path' => 'SSL certifikat authority sti', - 'database-configuration_field_ssl_cert_path' => 'SSL certifikat sti', - 'database-configuration_field_ssl_cert_key_path' => 'SSL certifikat nøgle sti', - 'database-configuration_field_ssl_dont_verify_cert' => 'Verificer ikke server certifikatet', - - 'database-import_header' => 'Installation', - 'database-import_skip_import' => 'Spring over', - 'database-import_progress' => 'Gå videre: ', - 'database-import-hint' => 'OBS: Findes der database tabeller i den konfigurerede database vil de blive slettet under installationen/opdateringen!', - 'database-import_info_text' => 'Installerer Shopware 6 med den valgte database. Denne proces kan tage flere minutter afhængig af dit system.', - 'database_import_success' => 'Shopware 6 er installeret!', - 'database_import_install_label' => 'Database installation:', - 'database_import_install_step_text' => 'Step', - 'database_import_install_from_text' => 'af', - - 'migration_counter_text_migrations' => 'Opdaterer database', - 'migration_counter_text_snippets' => 'Opdaterer tekst snippets', - 'migration_update_success' => 'Databasen blev importeret!', - - 'edition_header' => 'Har du allerede en Shopware licens?', - 'edition_info' => 'Shopware finns i en gratis Community Edition samt i en avgiftsbelagd Professional & Enterprise Edition.', - 'edition_ce' => 'Nej jag vill använda den kostnadsfria versionen Community Edition.', - 'edition_cm' => 'Ja, jag har en avgiftsbelagd Shopware-licens (Professional eller Enterprise).', - 'edition_license' => 'Ange din licensnyckel här. Du hittar denna på ditt Shopware-konto under ”Licenser” → ”Produktlicenser” → ”Detaljer/Download”:', - 'edition_license_error' => 'För att installera en betalversion av Shopware krävs en giltig licens.', - - 'configuration_header' => 'Konfiguration', - 'configuration_sconfig_text' => 'Næsten færdig. Du behøver blot nogle få indstillinger til din shop. Shopware 6 vil være færdig installeret bagefter.', - 'configuration_sconfig_name' => 'Shop navn', - 'configuration_sconfig_name_info' => 'Angiv venligst et navn til din shop', - 'configuration_sconfig_mail' => 'Shoppens email adresse:', - 'configuration_sconfig_mail_info' => 'Angiv venligst en email adresse til alle udgående emails', - 'configuration_sconfig_domain' => 'Shop domæne:', - 'configuration_sconfig_language' => 'Standard system sprog:', - 'configuration_sconfig_currency' => 'Standard valuta:', - 'configuration_sconfig_currency_info' => 'Denne valuta vil blive brugt som standard valuta hver gang produkt priser angives.', - 'configuration_admin_currency_eur' => 'Euro', - 'configuration_admin_currency_usd' => 'Dollar (US)', - 'configuration_admin_currency_gbp' => 'Britiske pund (GBP)', - 'configuration_admin_currency_pln' => 'Polske złoty', - 'configuration_admin_currency_chf' => 'Schweiziske franc', - 'configuration_admin_currency_sek' => 'Svenske kroner', - 'configuration_admin_currency_dkk' => 'Danske kroner', - 'configuration_admin_currency_nok' => 'Norske kroner', - 'configuration_admin_currency_czk' => 'Tjekkiske kroner', - 'configuration_admin_username' => 'Admin brugernavn:', - 'configuration_admin_mail' => 'Admin email:', - 'configuration_admin_firstName' => 'Admin fornavn:', - 'configuration_admin_lastName' => 'Admin efternavn:', - 'configuration_defaults_warning' => 'Tilføj flere valutaer til din shop. Hvis du vil tilføje flere senere kan det gøres fra Shopware administrationen.', - 'configuration_email_help_text' => 'Denne email adresse vil blive brugt til alle udgående emails.', - 'configuration_admin_language_de' => 'Tysk', - 'configuration_admin_language_en' => 'Engelsk', - 'configuration_admin_password' => 'Admin kodeord:', - - 'finish_header' => 'Installation fuldført', - 'finish_info' => 'Du har installeret Shopware!', - 'finish_info_heading' => 'Hurra!', - 'finish_first_steps' => '”Kom godt i gang” guide', - 'finish_frontend' => 'Til Storefront', - 'finish_backend' => 'Til Administration', - 'finish_message' => ' -

- Hjertelig velkommen til Shopware, -

-

- Du har installeret Shopware og vi glade for at byde dig velkommen til vores Community! -

Din shop er klar til brug. Er du ny til Shopware, så anbefaler vi at du ser op denne guide ”Kom godt i gang med Shopware”. Når du logger ind i administrationen for første gang vil vores ”First Run Wizard” guide dig igennem vores grundlæggende setup.

-

God fornøjelse med din nye online shop!

', -]; diff --git a/Install/data/lang/de.php b/Install/data/lang/de.php deleted file mode 100644 index d04ea3331..000000000 --- a/Install/data/lang/de.php +++ /dev/null @@ -1,404 +0,0 @@ - 'Installation', - - 'menuitem_language-selection' => 'Start', - 'menuitem_requirements' => 'Systemvoraussetzungen', - 'menuitem_database-configuration' => 'Datenbank-Konfiguration', - 'menuitem_database-import' => 'Installation', - 'menuitem_edition' => 'Shopware-Lizenz', - 'menuitem_configuration' => 'Konfiguration', - 'menuitem_finish' => 'Fertig', - 'menuitem_license' => 'AGB', - - 'license_incorrect' => 'Der eingegebene Lizenzschlüssel ist ungültig.', - 'license_does_not_match' => 'Der eingegebene Lizenzschlüssel passt zu keiner kommerziellen Shopware-Version', - 'license_domain_error' => 'Der eingegebene Lizenzschlüssel ist nicht gültig für die Domain: ', - - 'version_text' => 'Version:', - 'back' => 'Zurück', - 'forward' => 'Weiter', - 'start' => 'Starten', - 'start_installation' => 'Installation starten', - - 'select_language_de' => 'Deutsch', - 'select_language_en' => 'Englisch', - 'select_language_nl' => 'Niederländisch', - 'select_language_it' => 'Italienisch', - 'select_language_fr' => 'Französisch', - 'select_language_es' => 'Spanisch', - 'select_language_pt' => 'Portugiesisch', - 'select_language_pl' => 'Polnisch', - 'select_language_cs' => 'Tschechisch', - 'select_language_sv' => 'Schwedisch', - - 'select_country_jam' => 'Jamaika', - 'select_country_mmr' => 'Myanmar', - 'select_country_pan' => 'Panama', - 'select_country_aus' => 'Australien', - 'select_country_jpn' => 'Japan', - 'select_country_dnk' => 'Dänemark', - 'select_country_rou' => 'Rumänien', - 'select_country_bra' => 'Brasilien', - 'select_country_fin' => 'Finnland', - 'select_country_isr' => 'Israel', - 'select_country_bel' => 'Belgien', - 'select_country_usa' => 'Vereinigte Staaten', - 'select_country_lie' => 'Liechtenstein', - 'select_country_pol' => 'Polen', - 'select_country_nam' => 'Namibia', - 'select_country_aut' => 'Österreich', - 'select_country_gbr' => 'Vereinigtes Königreich', - 'select_country_cze' => 'Tschechien', - 'select_country_are' => 'Vereinigte Arabische Emirate', - 'select_country_isl' => 'Island', - 'select_country_can' => 'Kanada', - 'select_country_grc' => 'Griechenland', - 'select_country_irl' => 'Irland', - 'select_country_che' => 'Schweiz', - 'select_country_fra' => 'Frankreich', - 'select_country_swe' => 'Schweden', - 'select_country_svk' => 'Slowakei', - 'select_country_deu' => 'Deutschland', - 'select_country_lux' => 'Luxemburg', - 'select_country_ita' => 'Italien', - 'select_country_hun' => 'Ungarn', - 'select_country_nor' => 'Norwegen', - 'select_country_nld' => 'Niederlande', - 'select_country_prt' => 'Portugal', - 'select_country_tur' => 'Türkei', - 'select_country_esp' => 'Spanien', - 'select_country_bgr' => 'Bulgarien', - 'select_country_est' => 'Estland', - 'select_country_hrv' => 'Kroatien', - 'select_country_lva' => 'Lettland', - 'select_country_ltu' => 'Litauen', - 'select_country_mlt' => 'Malta', - 'select_country_svn' => 'Slowenien', - 'select_country_cyp' => 'Zypern', - 'select_country_afg' => 'Afghanistan', - 'select_country_ala' => 'Åland', - 'select_country_alb' => 'Albanien', - 'select_country_dza' => 'Algerien', - 'select_country_asm' => 'Amerikanisch-Samoa', - 'select_country_and' => 'Andorra', - 'select_country_ago' => 'Angola', - 'select_country_aia' => 'Anguilla', - 'select_country_ata' => 'Antarktika', - 'select_country_atg' => 'Antigua und Barbuda', - 'select_country_arg' => 'Argentinien', - 'select_country_arm' => 'Armenien', - 'select_country_abw' => 'Aruba', - 'select_country_aze' => 'Aserbaidschan', - 'select_country_bhs' => 'Bahamas', - 'select_country_bhr' => 'Bahrain', - 'select_country_bgd' => 'Bangladesch', - 'select_country_brb' => 'Barbados', - 'select_country_blr' => 'Weißrussland', - 'select_country_blz' => 'Belize', - 'select_country_ben' => 'Benin', - 'select_country_bmu' => 'Bermuda', - 'select_country_btn' => 'Bhutan', - 'select_country_bol' => 'Bolivien', - 'select_country_bes' => 'Bonaire, Sint Eustatius und Saba', - 'select_country_bih' => 'Bosnien und Herzegowina', - 'select_country_bwa' => 'Botswana', - 'select_country_bvt' => 'Bouvetinsel', - 'select_country_iot' => 'Britisches Territorium im Indischen Ozean', - 'select_country_umi' => 'Kleinere Inselbesitzungen der Vereinigten Staaten', - 'select_country_vgb' => 'Britische Jungferninseln', - 'select_country_vir' => 'Amerikanische Jungferninseln', - 'select_country_brn' => 'Brunei', - 'select_country_bfa' => 'Burkina Faso', - 'select_country_bdi' => 'Burundi', - 'select_country_khm' => 'Kambodscha', - 'select_country_cmr' => 'Kamerun', - 'select_country_cpv' => 'Kap Verde', - 'select_country_cym' => 'Kaimaninseln', - 'select_country_caf' => 'Zentralafrikanische Republik', - 'select_country_tcd' => 'Tschad', - 'select_country_chl' => 'Chile', - 'select_country_chn' => 'China', - 'select_country_cxr' => 'Weihnachtsinsel', - 'select_country_cck' => 'Kokosinseln', - 'select_country_col' => 'Kolumbien', - 'select_country_com' => 'Union der Komoren', - 'select_country_cog' => 'Kongo', - 'select_country_cod' => 'Kongo (Dem. Rep.)', - 'select_country_cok' => 'Cookinseln', - 'select_country_cri' => 'Costa Rica', - 'select_country_cub' => 'Kuba', - 'select_country_cuw' => 'Curaçao', - 'select_country_dji' => 'Dschibuti', - 'select_country_dma' => 'Dominica', - 'select_country_dom' => 'Dominikanische Republik', - 'select_country_ecu' => 'Ecuador', - 'select_country_egy' => 'Ägypten', - 'select_country_slv' => 'El Salvador', - 'select_country_gnq' => 'Äquatorial-Guinea', - 'select_country_eri' => 'Eritrea', - 'select_country_eth' => 'Äthiopien', - 'select_country_flk' => 'Falklandinseln', - 'select_country_fro' => 'Färöer-Inseln', - 'select_country_fji' => 'Fidschi', - 'select_country_guf' => 'Französisch Guyana', - 'select_country_pyf' => 'Französisch-Polynesien', - 'select_country_atf' => 'Französische Süd- und Antarktisgebiete', - 'select_country_gab' => 'Gabun', - 'select_country_gmb' => 'Gambia', - 'select_country_geo' => 'Georgien', - 'select_country_gha' => 'Ghana', - 'select_country_gib' => 'Gibraltar', - 'select_country_grl' => 'Grönland', - 'select_country_grd' => 'Grenada', - 'select_country_glp' => 'Guadeloupe', - 'select_country_gum' => 'Guam', - 'select_country_gtm' => 'Guatemala', - 'select_country_ggy' => 'Guernsey', - 'select_country_gin' => 'Guinea', - 'select_country_gnb' => 'Guinea-Bissau', - 'select_country_guy' => 'Guyana', - 'select_country_hti' => 'Haiti', - 'select_country_hmd' => 'Heard und die McDonaldinseln', - 'select_country_vat' => 'Heiliger Stuhl', - 'select_country_hnd' => 'Honduras', - 'select_country_hkg' => 'Hong Kong', - 'select_country_ind' => 'Indien', - 'select_country_idn' => 'Indonesien', - 'select_country_civ' => 'Elfenbeinküste', - 'select_country_irn' => 'Iran', - 'select_country_irq' => 'Irak', - 'select_country_imn' => 'Insel Man', - 'select_country_jey' => 'Jersey', - 'select_country_jor' => 'Jordanien', - 'select_country_kaz' => 'Kasachstan', - 'select_country_ken' => 'Kenia', - 'select_country_kir' => 'Kiribati', - 'select_country_kwt' => 'Kuwait', - 'select_country_kgz' => 'Kirgistan', - 'select_country_lao' => 'Laos', - 'select_country_lbn' => 'Libanon', - 'select_country_lso' => 'Lesotho', - 'select_country_lbr' => 'Liberia', - 'select_country_lby' => 'Libyen', - 'select_country_mac' => 'Macao', - 'select_country_mkd' => 'Mazedonien', - 'select_country_mdg' => 'Madagaskar', - 'select_country_mwi' => 'Malawi', - 'select_country_mys' => 'Malaysia', - 'select_country_mdv' => 'Maledieven', - 'select_country_mli' => 'Mali', - 'select_country_mhl' => 'Marshallinseln', - 'select_country_mtq' => 'Martinique', - 'select_country_mrt' => 'Mauretanien', - 'select_country_mus' => 'Mauritius', - 'select_country_myt' => 'Mayotte', - 'select_country_mex' => 'Mexiko', - 'select_country_fsm' => 'Mikronesien', - 'select_country_mda' => 'Moldawie', - 'select_country_mco' => 'Monaco', - 'select_country_mng' => 'Mongolei', - 'select_country_mne' => 'Montenegro', - 'select_country_msr' => 'Montserrat', - 'select_country_mar' => 'Marokko', - 'select_country_moz' => 'Mosambik', - 'select_country_mnr' => 'Myanmar', - 'select_country_nru' => 'Nauru', - 'select_country_npl' => 'Nèpal', - 'select_country_ncl' => 'Neukaledonien', - 'select_country_nzl' => 'Neuseeland', - 'select_country_nic' => 'Nicaragua', - 'select_country_ner' => 'Niger', - 'select_country_nga' => 'Nigeria', - 'select_country_niu' => 'Niue', - 'select_country_nfk' => 'Norfolkinseln', - 'select_country_prk' => 'Nordkorea', - 'select_country_mnp' => 'Nördliche Marianen', - 'select_country_omn' => 'Oman', - 'select_country_pak' => 'Pakistan', - 'select_country_plw' => 'Palau', - 'select_country_pse' => 'Palästina', - 'select_country_png' => 'Papua-Neuguinea', - 'select_country_pry' => 'Paraguay', - 'select_country_per' => 'Peru', - 'select_country_phl' => 'Philippinen', - 'select_country_pcn' => 'Pitcairn', - 'select_country_pri' => 'Puerto Rico', - 'select_country_qat' => 'Katar', - 'select_country_kos' => 'Kosovo', - 'select_country_reu' => 'Réunion', - 'select_country_rus' => 'Russland', - 'select_country_rwa' => 'Ruanda', - 'select_country_blm' => 'Saint-Barthélemy', - 'select_country_shn' => 'Sankt Helena', - 'select_country_kna' => 'St. Kitts und Nevis', - 'select_country_lca' => 'Sain Lucia', - 'select_country_maf' => 'Saint Martin', - 'select_country_spm' => 'Saint-Pierre und Miquelon', - 'select_country_vct' => 'Saint Vincent und die Grenadinen', - 'select_country_wsm' => 'Samoa', - 'select_country_smr' => 'San Marino', - 'select_country_stp' => 'São Tomé und Príncipe', - 'select_country_sau' => 'Saudi-Arabien', - 'select_country_sen' => 'Senegal', - 'select_country_srb' => 'Serbien', - 'select_country_syc' => 'Seychellen', - 'select_country_sle' => 'Sierra Leone', - 'select_country_sgp' => 'Singapur', - 'select_country_sxm' => 'Saint Maarten (niederl. Teil)', - 'select_country_slb' => 'Salomonen', - 'select_country_som' => 'Somalia', - 'select_country_zaf' => 'Republik Südafrika', - 'select_country_sgs' => 'Südgeorgien und die Südlichen Sandwichinseln', - 'select_country_kor' => 'Südkorea', - 'select_country_ssd' => 'Südsudan', - 'select_country_lka' => 'Sri Lanka', - 'select_country_sdn' => 'Sudan', - 'select_country_sur' => 'Suriname', - 'select_country_sjm' => 'Svalbard und Jan Mayen', - 'select_country_swz' => 'Swasiland', - 'select_country_syr' => 'Syrien', - 'select_country_twn' => 'Taiwan', - 'select_country_tjk' => 'Tadschikistan', - 'select_country_tza' => 'Tansania', - 'select_country_tha' => 'Thailand', - 'select_country_tls' => 'Timor-Leste', - 'select_country_tgo' => 'Togo', - 'select_country_tkl' => 'Tokelau', - 'select_country_ton' => 'Tonga', - 'select_country_tto' => 'Trinidad und Tobago', - 'select_country_tun' => 'Tunesien', - 'select_country_tkm' => 'Turkmenistan', - 'select_country_tca' => 'Turks- und Caicosinseln', - 'select_country_tuv' => 'Tuvalu', - 'select_country_uga' => 'Uganda', - 'select_country_ukr' => 'Ukraine', - 'select_country_ury' => 'Uruguay', - 'select_country_uzb' => 'Usbekistan', - 'select_country_vut' => 'Vanuatu', - 'select_country_ven' => 'Venezuela', - 'select_country_vnm' => 'Vietnam', - 'select_country_wlf' => 'Wallis und Futuna', - 'select_country_esh' => 'Westsahara', - 'select_country_yem' => 'Jemen', - 'select_country_zmb' => 'Sambia', - 'select_country_zwe' => 'Simbabwe', - - 'language-selection_welcome_title' => 'Willkommen in Shopware 6', - 'language-selection_select_language' => 'Sprache des Installations-Assistenten', - 'language-selection_header' => 'Deine Shopware-Installation', - 'language-selection_info_message' => 'Diese Auswahl bezieht sich nur auf die Sprache des Installations-Assistenten. Die Systemstandard-Sprache Deines Shops kannst Du später noch definieren.', - 'language-selection_welcome_message' => 'Wir freuen uns, dass Du Teil unserer großartigen, weltweiten Shopware-Community werden möchtest! Jetzt begleiten wir Dich Schritt für Schritt durch den Installationsprozess. Sollten sich Fragen ergeben, schaue bitte zuerst in unser Forum, kontaktiere uns telefonisch unter (+49) 2555 928850 oder schreibe uns eine E-Mail.', - 'requirements_header' => 'Systemvoraussetzungen', - 'requirements_header_files' => 'Dateien und Verzeichnisse', - 'requirements_header_system' => 'System', - 'requirements_files_info' => 'Die nachfolgenden Dateien und Verzeichnisse müssen vorhanden und dürfen nicht schreibgeschützt sein.', - 'requirements_table_files_col_check' => 'Datei/Verzeichnis', - 'requirements_table_files_col_status' => 'Status', - 'requirements_error' => 'Es sind nicht alle Voraussetzungen für eine erfolgreiche Installation erfüllt.', - 'requirements_error_title' => 'Dein System ist noch nicht bereit für Shopware 6', - 'requirements_success' => 'Alle Voraussetzungen für eine erfolgreiche Installation sind erfüllt.', - 'requirements_success_title' => 'Dein System ist bereit für Shopware 6', - 'requirements_php_info' => 'Dein Server sollte die folgenden Systemvoraussetzungen erfüllen, um Shopware im ganzen Ausmaß nutzen zu können.', - 'requirements_php_max_compatible_version' => 'Diese Version von Shopware unterstützt PHP bis Version %s. Eine vollständige Funktionalität kann mit neueren PHP-Versionen nicht garantiert werden.', - 'requirements_system_col_check' => 'Voraussetzung', - 'requirements_system_col_required' => 'Erforderlich', - 'requirements_system_col_found' => 'Dein System', - 'requirements_system_col_status' => 'Status', - 'requirements_show_all' => '(alles anzeigen)', - 'requirements_hide_all' => '(alles ausblenden)', - 'requirements_status_error' => 'Fehler', - 'requirements_status_warning' => 'Warnung', - 'requirements_status_ready' => 'Bereit', - - 'license_agreement_header' => 'Allgemeine Geschäftsbedingungen („AGB“)', - 'license_agreement_info' => 'Hier findest Du unsere Allgemeinen Geschäftsbedingungen. Um die Installation von Shopware 6 fortzusetzen, musst Du die AGB zunächst lesen und dann akzeptieren. Die Community Edition von Shopware 6 ist nach den Bedingungen der MIT-Lizenz freigegeben.', - 'license_agreement_error' => 'Bitte stimme unseren AGB zu!', - 'license_agreement_checkbox' => 'Ich stimme den AGB zu!', - - 'database-configuration_header' => 'Datenbank konfigurieren', - 'database-configuration_field_host' => 'Server:', - 'database-configuration_advanced_settings' => 'Erweiterte Einstellungen', - 'database-configuration_field_port' => 'Port:', - 'database-configuration_field_user' => 'Benutzer:', - 'database-configuration_field_password' => 'Passwort:', - 'database-configuration_field_database' => 'Datenbank-Name:', - 'database-configuration_field_new_database' => 'Neue Datenbank:', - 'database-configuration_info' => 'Um Shopware auf Deinem System zu installieren, brauchst Du die Zugangsdaten zu Deiner Datenbank. Wenn Du Dir nicht sicher bist, was Du hier eintragen musst, kontaktiere bitte Deinen Administrator/Hoster.', - 'database-configuration-create_new_database' => 'Neue Datenbank anlegen', - 'database-configuration_non_empty_database' => 'Die ausgewählte Datenbank enthält bereits Daten. Bitte wähle eine leere Datenbank aus oder erstelle eine neue.', - 'database-configuration_error_required_fields' => 'Bitte fülle alle Felder aus.', - 'database-configuration_field_ssl_ca_path' => 'Dateipfad zur SSL-Zertifizierungsstelle', - 'database-configuration_field_ssl_cert_path' => 'Dateipfad zum SSL-Zertifikat', - 'database-configuration_field_ssl_cert_key_path' => 'Dateipfad zum SSL-Zertifikatsschlüssel', - 'database-configuration_field_ssl_dont_verify_cert' => 'Server-Zertifikat nicht überprüfen', - - 'database-import_header' => 'Installation', - 'database-import_skip_import' => 'Überspringen', - 'database-import_progress' => 'Fortschritt: ', - 'database-import-hint' => 'Hinweis: Falls in der konfigurierten Datenbank bereits Shopware-Tabellen bestehen, werden diese durch die Installation/das Update entfernt!', - 'database-import_info_text' => 'Shopware 6 wird auf der von Dir ausgewählten Datenbank installiert. Dieser Vorgang kann einige Minuten dauern, abhängig von Deinem System.', - 'database_import_success' => 'Shopware 6 wurde erfolgreich installiert!', - 'database_import_install_label' => 'Datenbank-Installation:', - 'database_import_install_step_text' => 'Schritt', - 'database_import_install_from_text' => 'von', - - 'migration_counter_text_migrations' => 'Datenbank-Update wird durchgeführt', - 'migration_counter_text_snippets' => 'Textbausteine werden aktualisiert', - 'migration_update_success' => 'Datenbank erfolgreich importiert!', - - 'edition_header' => 'Hast Du bereits eine Shopware-Lizenz?', - 'edition_info' => 'Shopware gibt es in einer kostenlosen Community Edition sowie in kostenpflichtigen Professional und Enterprise Editionen.', - 'edition_ce' => 'Nein, ich möchte die kostenfreie Community Edition verwenden.', - 'edition_cm' => 'Ja, ich habe eine kostenpflichtige Shopware-Lizenz (Professional oder Enterprise).', - 'edition_license' => 'Trage hier Deinen Lizenzschlüssel ein. Diesen findest Du in Deinem Shopware-Account unter "Lizenzen" → "Produktlizenzen" → "Details / Download":', - 'edition_license_error' => 'Für die Installation einer kostenpflichtigen Shopware-Version ist eine gültige Lizenz erforderlich.', - - 'configuration_header' => 'Konfiguration', - 'configuration_sconfig_text' => 'Fast geschafft. Jetzt musst Du nur noch einige grundlegende Einstellungen für Deinen Shop festlegen, dann ist die Installation abgeschlossen.', - 'configuration_sconfig_name' => 'Shopname', - 'configuration_sconfig_name_info' => 'Bitte gib den Namen Deines Shops ein', - 'configuration_sconfig_mail' => 'Shop-E-Mail-Adresse:', - 'configuration_sconfig_mail_info' => 'Bitte gib die E-Mail-Adresse für ausgehende E-Mails ein', - 'configuration_sconfig_domain' => 'Shop-Domain:', - 'configuration_sconfig_language' => 'System-Standardsprache:', - 'configuration_sconfig_currency' => 'Standardwährung:', - 'configuration_sconfig_country' => 'Standardland:', - 'configuration_sconfig_currency_info' => 'Diese Währung wird standardmäßig für Produktpreise genutzt.', - 'configuration_admin_currency_eur' => 'Euro', - 'configuration_admin_currency_usd' => 'Dollar (US)', - 'configuration_admin_currency_gbp' => 'Britisches Pfund (GB)', - 'configuration_admin_currency_pln' => 'Polnische Zloty', - 'configuration_admin_currency_chf' => 'Schweizer Franken', - 'configuration_admin_currency_sek' => 'Schwedische Krone', - 'configuration_admin_currency_dkk' => 'Dänische Krone', - 'configuration_admin_currency_nok' => 'Norwegische Krone', - 'configuration_admin_currency_czk' => 'Tschechische Krone', - 'configuration_admin_username' => 'Admin-Login-Name:', - 'configuration_admin_mail' => 'Admin-E-Mail-Adresse:', - 'configuration_admin_firstName' => 'Admin-Vorname:', - 'configuration_admin_lastName' => 'Admin-Nachname:', - 'configuration_defaults_warning' => 'Die System-Standardsprache und System-Standardwährung können nachträglich nicht geändert werden.', - 'configuration_admin_currency_headline' => 'Verfügbare Währungen', - 'configuration_admin_currency_text' => 'Füge mehrere Währungen zu Deinem Shopware-Shop hinzu. Du kannst weitere Sprachen im Nachhinein in der Administration erstellen.', - 'configuration_email_help_text' => 'Diese E-Mail-Adresse wird für ausgehende Shop-E-Mails genutzt.', - 'configuration_admin_language_de' => 'Deutsch', - 'configuration_admin_language_en' => 'Englisch', - 'configuration_admin_password' => 'Admin-Passwort:', - - 'finish_header' => 'Installation abgeschlossen', - 'finish_info' => 'Du hast Shopware erfolgreich installiert!', - 'finish_info_heading' => 'Juhu!', - 'finish_first_steps' => '"Erste Schritte"-Anleitung', - 'finish_frontend' => 'Zur Storefront', - 'finish_backend' => 'Zur Administration', - 'finish_message' => ' -

- Herzlich Willkommen in Shopware, -

-

- wir freuen uns Dich in unserer Community begrüßen zu dürfen. Du hast Shopware erfolgreich installiert. -

Dein Shop ist jetzt einsatzbereit. Falls Du noch neu in Shopware bist, empfehlen wir die Anleitung "Erste Schritte in Shopware". Wenn Du Dich zum ersten Mal in der Administration anmeldest, wird Dich unser Ersteinrichtungs-Assistent durch die grundlegende Einrichtung Deines Shops führen.

-

Viel Spaß und Erfolg mit Deinem neuen Onlineshop!

', -]; diff --git a/Install/data/lang/en.php b/Install/data/lang/en.php deleted file mode 100644 index b2dba9a38..000000000 --- a/Install/data/lang/en.php +++ /dev/null @@ -1,405 +0,0 @@ - 'Setup', - - 'menuitem_language-selection' => 'Start', - 'menuitem_requirements' => 'System requirements', - 'menuitem_database-configuration' => 'Database configuration', - 'menuitem_database-import' => 'Installation', - 'menuitem_edition' => 'Shopware licence', - 'menuitem_configuration' => 'Configuration', - 'menuitem_finish' => 'Done', - 'menuitem_license' => 'GTC', - - 'license_incorrect' => 'The licence key you have entered does not appear to be valid.', - 'license_does_not_match' => 'The licence key you have entered does not match any commercial Shopware version.', - 'license_domain_error' => 'The licence key you have entered is not valid for the domain: ', - - 'version_text' => 'Version:', - 'back' => 'Back', - 'forward' => 'Next', - 'start' => 'Start', - 'start_installation' => 'Start installation', - - 'select_language_de' => 'German', - 'select_language_en' => 'English', - 'select_language_nl' => 'Dutch', - 'select_language_it' => 'Italian', - 'select_language_fr' => 'French', - 'select_language_es' => 'Spanish', - 'select_language_pt' => 'Portuguese', - 'select_language_pl' => 'Polish', - 'select_language_cs' => 'Czech', - 'select_language_sv' => 'Swedish', - 'select_language_da' => 'Danish', - - 'select_country_jam' => 'Jamaica', - 'select_country_mmr' => 'Myanmar', - 'select_country_pan' => 'Panama', - 'select_country_aus' => 'Australia', - 'select_country_jpn' => 'Japan', - 'select_country_dnk' => 'Denmark', - 'select_country_rou' => 'Romania', - 'select_country_bra' => 'Brazil', - 'select_country_fin' => 'Finland', - 'select_country_isr' => 'Israel', - 'select_country_bel' => 'Belgium', - 'select_country_usa' => 'United States', - 'select_country_lie' => 'Liechtenstein', - 'select_country_pol' => 'Poland', - 'select_country_nam' => 'Namibia', - 'select_country_aut' => 'Austria', - 'select_country_gbr' => 'United Kingdom', - 'select_country_cze' => 'Czech Republic', - 'select_country_are' => 'United Arab Emirates', - 'select_country_isl' => 'Iceland', - 'select_country_can' => 'Canada', - 'select_country_grc' => 'Greece', - 'select_country_irl' => 'Ireland', - 'select_country_che' => 'Switzerland', - 'select_country_fra' => 'France', - 'select_country_swe' => 'Sweden', - 'select_country_svk' => 'Slovakia', - 'select_country_deu' => 'Germany', - 'select_country_lux' => 'Luxembourg', - 'select_country_ita' => 'Italy', - 'select_country_hun' => 'Hungary', - 'select_country_nor' => 'Norway', - 'select_country_nld' => 'Netherlands', - 'select_country_prt' => 'Portugal', - 'select_country_tur' => 'Turkey', - 'select_country_esp' => 'Spain', - 'select_country_bgr' => 'Bulgaria', - 'select_country_est' => 'Estonia', - 'select_country_hrv' => 'Croatia', - 'select_country_lva' => 'Latvia', - 'select_country_ltu' => 'Lithuania', - 'select_country_mlt' => 'Malta', - 'select_country_svn' => 'Slovenia', - 'select_country_cyp' => 'Cyprus', - 'select_country_afg' => 'Afghanistan', - 'select_country_ala' => 'Åland', - 'select_country_alb' => 'Albania', - 'select_country_dza' => 'Algeria', - 'select_country_asm' => 'American Samoa', - 'select_country_and' => 'Andorra', - 'select_country_ago' => 'Angola', - 'select_country_aia' => 'Anguilla', - 'select_country_ata' => 'Antarctica', - 'select_country_atg' => 'Antigua and Barbuda', - 'select_country_arg' => 'Argentina', - 'select_country_arm' => 'Armenien', - 'select_country_abw' => 'Aruba', - 'select_country_aze' => 'Azerbaijan', - 'select_country_bhs' => 'Bahamas', - 'select_country_bhr' => 'Bahrain', - 'select_country_bgd' => 'Bangladesh', - 'select_country_brb' => 'Barbados', - 'select_country_blr' => 'Belarus', - 'select_country_blz' => 'Belize', - 'select_country_ben' => 'Benin', - 'select_country_bmu' => 'Bermuda', - 'select_country_btn' => 'Bhutan', - 'select_country_bol' => 'Bolivia', - 'select_country_bes' => 'Bonaire, Sint Eustatius and Saba', - 'select_country_bih' => 'Bosnia and Herzegovina', - 'select_country_bwa' => 'Botswana', - 'select_country_bvt' => 'Bouvet Island', - 'select_country_iot' => 'British Indian Ocean Territory', - 'select_country_umi' => 'United States Minor Outlying Islands', - 'select_country_vgb' => 'Virgin Islands (British)', - 'select_country_vir' => 'Virgin Islands (U.S.)', - 'select_country_brn' => 'Brunei Darussalam', - 'select_country_bfa' => 'Burkina Faso', - 'select_country_bdi' => 'Burundi', - 'select_country_khm' => 'Cambodia', - 'select_country_cmr' => 'Cameroon', - 'select_country_cpv' => 'Cabo Verde', - 'select_country_cym' => 'Cayman Islands', - 'select_country_caf' => 'Central African Republic', - 'select_country_tcd' => 'Chad', - 'select_country_chl' => 'Chile', - 'select_country_chn' => 'China', - 'select_country_cxr' => 'Christmas Island', - 'select_country_cck' => 'Cocos (Keeling) Islands', - 'select_country_col' => 'Columbia', - 'select_country_com' => 'Comoros', - 'select_country_cog' => 'Congo', - 'select_country_cod' => 'Congo (the Democratic Republic of the)', - 'select_country_cok' => 'Cook Islands', - 'select_country_cri' => 'Costa Rica', - 'select_country_cub' => 'Cuba', - 'select_country_cuw' => 'Curaçao', - 'select_country_dji' => 'Djibouti', - 'select_country_dma' => 'Dominica', - 'select_country_dom' => 'Dominican Republic', - 'select_country_ecu' => 'Ecuador', - 'select_country_egy' => 'Egypt', - 'select_country_slv' => 'El Salvador', - 'select_country_gnq' => 'Equatorial Guinea', - 'select_country_eri' => 'Eritrea', - 'select_country_eth' => 'Ethiopia', - 'select_country_flk' => 'Falkland Islands', - 'select_country_fro' => 'Faroe Islands', - 'select_country_fji' => 'Fiji', - 'select_country_guf' => 'French Guiana', - 'select_country_pyf' => 'French Polynesia', - 'select_country_atf' => 'French Southern Territories', - 'select_country_gab' => 'Gabon', - 'select_country_gmb' => 'Gambia', - 'select_country_geo' => 'Georgia', - 'select_country_gha' => 'Ghana', - 'select_country_gib' => 'Gibraltar', - 'select_country_grl' => 'Greenland', - 'select_country_grd' => 'Grenada', - 'select_country_glp' => 'Guadeloupe', - 'select_country_gum' => 'Guam', - 'select_country_gtm' => 'Guatemala', - 'select_country_ggy' => 'Guernsey', - 'select_country_gin' => 'Guinea', - 'select_country_gnb' => 'Guinea-Bissau', - 'select_country_guy' => 'Guyana', - 'select_country_hti' => 'Haiti', - 'select_country_hmd' => 'Territory of Heard Island and McDonald Islands', - 'select_country_vat' => 'Holy See', - 'select_country_hnd' => 'Honduras', - 'select_country_hkg' => 'Hong Kong', - 'select_country_ind' => 'India', - 'select_country_idn' => 'Indonesia', - 'select_country_civ' => 'Ivory Coast', - 'select_country_irn' => 'Iran', - 'select_country_irq' => 'Iraq', - 'select_country_imn' => 'Isle of Man', - 'select_country_jey' => 'Jersey', - 'select_country_jor' => 'Jordan', - 'select_country_kaz' => 'Kazakhstan', - 'select_country_ken' => 'Kenya', - 'select_country_kir' => 'Kiribati', - 'select_country_kwt' => 'Kuwait', - 'select_country_kgz' => 'Kyrgyzstan', - 'select_country_lao' => 'Lao People\'s Democratic Republic', - 'select_country_lbn' => 'Lebanon', - 'select_country_lso' => 'Lesotho', - 'select_country_lbr' => 'Liberia', - 'select_country_lby' => 'Libya', - 'select_country_mac' => 'Macao', - 'select_country_mkd' => 'Republic of North Macedonia', - 'select_country_mdg' => 'Madagascar', - 'select_country_mwi' => 'Malawi', - 'select_country_mys' => 'Malaysia', - 'select_country_mdv' => 'Maldives', - 'select_country_mli' => 'Mali', - 'select_country_mhl' => 'Marshall Islands', - 'select_country_mtq' => 'Martinique', - 'select_country_mrt' => 'Mauritania', - 'select_country_mus' => 'Mauritius', - 'select_country_myt' => 'Mayotte', - 'select_country_mex' => 'Mexico', - 'select_country_fsm' => 'Micronesia (Federated States of)', - 'select_country_mda' => 'Moldova (the Republic of)', - 'select_country_mco' => 'Monaco', - 'select_country_mng' => 'Mongolia', - 'select_country_mne' => 'Montenegro', - 'select_country_msr' => 'Montserrat', - 'select_country_mar' => 'Morocco', - 'select_country_moz' => 'Mozambique', - 'select_country_mnr' => 'Myanmar', - 'select_country_nru' => 'Nauru', - 'select_country_npl' => 'Nepal', - 'select_country_ncl' => 'New Caledonia', - 'select_country_nzl' => 'New Zealand', - 'select_country_nic' => 'Nicaragua', - 'select_country_ner' => 'Niger', - 'select_country_nga' => 'Nigeria', - 'select_country_niu' => 'Niue', - 'select_country_nfk' => 'Norfolk Island', - 'select_country_prk' => 'North Korea', - 'select_country_mnp' => 'Northern Mariana Islands', - 'select_country_omn' => 'Oman', - 'select_country_pak' => 'Pakistan', - 'select_country_plw' => 'Palau', - 'select_country_pse' => 'Palestine, State of', - 'select_country_png' => 'Papua New Guinea', - 'select_country_pry' => 'Paraguay', - 'select_country_per' => 'Peru', - 'select_country_phl' => 'Philippines', - 'select_country_pcn' => 'Pitcairn', - 'select_country_pri' => 'Puerto Rico', - 'select_country_qat' => 'Qatar', - 'select_country_kos' => 'Kosovo', - 'select_country_reu' => 'Réunion', - 'select_country_rus' => 'Russia', - 'select_country_rwa' => 'Rwanda', - 'select_country_blm' => 'Saint Barthélemy', - 'select_country_shn' => 'Saint Helena, Ascension and Tristan da Cunha', - 'select_country_kna' => 'Saint Kitts and Nevis', - 'select_country_lca' => 'Saint Lucia', - 'select_country_maf' => 'Saint Martin', - 'select_country_spm' => 'Saint Pierre and Miquelon', - 'select_country_vct' => 'Saint Vincent and the Grenadines', - 'select_country_wsm' => 'Samoa', - 'select_country_smr' => 'San Marino', - 'select_country_stp' => 'São Tomé and Príncipe', - 'select_country_sau' => 'Saudi Arabia', - 'select_country_sen' => 'Senegal', - 'select_country_srb' => 'Serbia', - 'select_country_syc' => 'Seychelles', - 'select_country_sle' => 'Sierra Leone', - 'select_country_sgp' => 'Singapore', - 'select_country_sxm' => 'Sint Maarten (Dutch part)', - 'select_country_slb' => 'Solomon Islands', - 'select_country_som' => 'Somalia', - 'select_country_zaf' => 'South Africa', - 'select_country_sgs' => 'South Georgia and the South Sandwich Islands', - 'select_country_kor' => 'South Korea', - 'select_country_ssd' => 'South Sudan', - 'select_country_lka' => 'Sri Lanka', - 'select_country_sdn' => 'Sudan', - 'select_country_sur' => 'Suriname', - 'select_country_sjm' => 'Svalbard and Jan Mayen', - 'select_country_swz' => 'Eswatini', - 'select_country_syr' => 'Syrian Arab Republic', - 'select_country_twn' => 'Taiwan (Province of China)', - 'select_country_tjk' => 'Tajikistan', - 'select_country_tza' => 'Tanzania, United Republic of', - 'select_country_tha' => 'Thailand', - 'select_country_tls' => 'Timor-Leste', - 'select_country_tgo' => 'Togo', - 'select_country_tkl' => 'Tokelau', - 'select_country_ton' => 'Tonga', - 'select_country_tto' => 'Trinidad and Tobago', - 'select_country_tun' => 'Tunisia', - 'select_country_tkm' => 'Turkmenistan', - 'select_country_tca' => 'Turks and Caicos Islands', - 'select_country_tuv' => 'Tuvalu', - 'select_country_uga' => 'Uganda', - 'select_country_ukr' => 'Ukraine', - 'select_country_ury' => 'Uruguay', - 'select_country_uzb' => 'Uzbekistan', - 'select_country_vut' => 'Vanuatu', - 'select_country_ven' => 'Venezuela (Bolivarian Republic of)', - 'select_country_vnm' => 'Vietnam', - 'select_country_wlf' => 'Wallis and Futuna', - 'select_country_esh' => 'Western Sahara', - 'select_country_yem' => 'Yemen', - 'select_country_zmb' => 'Zambia', - 'select_country_zwe' => 'Zimbabwe', - - 'language-selection_welcome_title' => 'Welcome to Shopware 6', - 'language-selection_select_language' => 'Installation wizard language', - 'language-selection_header' => 'Your Shopware installation', - 'language-selection_info_message' => 'The language selected here only applies to this installation wizard. If you like, you can specify another language for your shop later.', - 'language-selection_welcome_message' => 'We are delighted you want to join our fantastic, global Shopware community. We will now take you through the installation process step by step. If you have any queries, simply take a look in our forum, give us a call on 00 800 746 7626 0 (free of charge) or send us an email.', - 'requirements_header' => 'System requirements', - 'requirements_header_files' => 'Files and directories', - 'requirements_header_system' => 'System', - 'requirements_files_info' => 'The following files and directories must be present and have write permissions.', - 'requirements_table_files_col_check' => 'File/directory', - 'requirements_table_files_col_status' => 'Status', - 'requirements_error' => 'Not all of the requirements for successful installation have been met.', - 'requirements_error_title' => 'Your system is not yet ready for Shopware 6', - 'requirements_success' => 'All of the requirements for successful installation have been met.', - 'requirements_success_title' => 'Your system is ready for Shopware 6', - 'requirements_php_info' => 'Your server must meet the following system requirements in order to run Shopware.', - 'requirements_php_max_compatible_version' => 'This Shopware version supports PHP up to version %s. There is no guarantee that everything will work with newer PHP versions.', - 'requirements_system_col_check' => 'Requirement', - 'requirements_system_col_required' => 'Required', - 'requirements_system_col_found' => 'Your system', - 'requirements_system_col_status' => 'Status', - 'requirements_show_all' => '(show all)', - 'requirements_hide_all' => '(hide all)', - 'requirements_status_error' => 'Error', - 'requirements_status_warning' => 'Warning', - 'requirements_status_ready' => 'Ready', - - 'license_agreement_header' => 'General Terms and Conditions of Business ("GTC")', - 'license_agreement_info' => 'These are our General Terms and Conditions of Business. You will have to read and accept the GTC in order to successfully install Shopware 6. The Community Edition is completely free of charge and has been released under the MIT License.', - 'license_agreement_error' => 'Please accept our GTC.', - 'license_agreement_checkbox' => 'I agree to the General Terms and Conditions of Business (GTC)', - - 'database-configuration_header' => 'Configure database', - 'database-configuration_field_host' => 'Server:', - 'database-configuration_advanced_settings' => 'Advanced settings', - 'database-configuration_field_port' => 'Port:', - 'database-configuration_field_user' => 'User:', - 'database-configuration_field_password' => 'Password:', - 'database-configuration_field_database' => 'Database name:', - 'database-configuration_field_new_database' => 'New database:', - 'database-configuration_info' => 'In order to install Shopware on your system, you will need the access credentials to your database. If you are not sure what to put here, contact your administrator/hosting service.', - 'database-configuration-create_new_database' => 'Create new database', - 'database-configuration_non_empty_database' => 'The selected database already contains data. Please select an empty database or create a new one from scratch.', - 'database-configuration_error_required_fields' => 'Please fill in all the blanks.', - 'database-configuration_field_ssl_ca_path' => 'SSL certificate authority path', - 'database-configuration_field_ssl_cert_path' => 'SSL certificate path', - 'database-configuration_field_ssl_cert_key_path' => 'SSL certificate key path', - 'database-configuration_field_ssl_dont_verify_cert' => 'Don\'t verify server certificate', - - 'database-import_header' => 'Installation', - 'database-import_skip_import' => 'Skip', - 'database-import_progress' => 'Progress: ', - 'database-import-hint' => 'Note: If there are any Shopware tables found in the configured database, they will be removed by the installation/update!', - 'database-import_info_text' => 'Installing Shopware 6 using the selected database. This process may take several minutes, depending on your overall system.', - 'database_import_success' => 'Shopware 6 has been installed!', - 'database_import_install_label' => 'Database installation:', - 'database_import_install_step_text' => 'Step', - 'database_import_install_from_text' => 'of', - - 'migration_counter_text_migrations' => 'Updating database', - 'migration_counter_text_snippets' => 'Updating text snippets', - 'migration_update_success' => 'Database has been imported!', - - 'edition_header' => 'Have you already purchased a Shopware licence?', - 'edition_info' => 'Shopware is available in different versions. There is the free Community Edition, and there are the Professional or Enterprise Edition, that are available for a one time fee.', - 'edition_ce' => 'No, I would like to use the free Community Edition.', - 'edition_cm' => 'Yes, I have already purchased a Shopware licence (Professional or Enterprise).', - 'edition_license' => 'Please enter your licence key here. You can find it in your Shopware Account under "Licences" → "Product licences" → "Details / Download":', - 'edition_license_error' => 'A valid licence is required in order to install any of the Shopware versions that come with a fee.', - - 'configuration_header' => 'Configuration', - 'configuration_sconfig_text' => 'Almost done. You just need to make some few basic settings in your shop, Shopware 6 will be installed completely afterwards.', - 'configuration_sconfig_name' => 'Shop name', - 'configuration_sconfig_name_info' => 'Please enter the name of your shop.', - 'configuration_sconfig_mail' => 'Shop email address:', - 'configuration_sconfig_mail_info' => 'Please enter an email address for outgoing emails', - 'configuration_sconfig_domain' => 'Shop domain:', - 'configuration_sconfig_language' => 'Default system language:', - 'configuration_sconfig_currency' => 'Default currency:', - 'configuration_sconfig_country' => 'Default country:', - 'configuration_sconfig_currency_info' => 'This currency will be used as the standard currency, everytime item prices are set.', - 'configuration_admin_currency_eur' => 'Euro', - 'configuration_admin_currency_usd' => 'Dollar (US)', - 'configuration_admin_currency_gbp' => 'Pound sterling (UK)', - 'configuration_admin_currency_pln' => 'Polish zloty', - 'configuration_admin_currency_chf' => 'Swiss francs', - 'configuration_admin_currency_sek' => 'Swedish kronor', - 'configuration_admin_currency_dkk' => 'Danish kroner', - 'configuration_admin_currency_nok' => 'Norwegian kroner', - 'configuration_admin_currency_czk' => 'Czech koruna', - 'configuration_admin_username' => 'Admin login name:', - 'configuration_admin_mail' => 'Admin email:', - 'configuration_admin_firstName' => 'Admin first name:', - 'configuration_admin_lastName' => 'Admin last name:', - 'configuration_defaults_warning' => 'Beware! The settings for your default system language as well as the default currency are permanent and cannot be changed ever again.', - 'configuration_admin_currency_headline' => 'Available currencies', - 'configuration_admin_currency_text' => 'Add more currencies to your Shopware shop. If you want to add currencies afterwards, you can create them at any time in the Administration.', - 'configuration_email_help_text' => 'This email address will be used for outgoing shop emails.', - 'configuration_admin_language_de' => 'German', - 'configuration_admin_language_en' => 'English', - 'configuration_admin_password' => 'Admin password:', - - 'finish_header' => 'Installation completed', - 'finish_info' => 'You have successfully installed Shopware!', - 'finish_info_heading' => 'Hooray!', - 'finish_first_steps' => '"First steps" guide', - 'finish_frontend' => 'Open Storefront', - 'finish_backend' => 'Open Administration', - 'finish_message' => ' -

- Welcome to Shopware, -

-

- You have installed Shopware successfully and we are delighted to welcome you to our community! -

Your shop is now ready to use. If you are new to Shopware, we recommend taking a look at this guide "First steps in Shopware". When you log in to the administration for the first time, our "First Run Wizard" will take you through the basic setup.

-

Enjoy your new online shop!

', -]; diff --git a/Install/data/lang/es.php b/Install/data/lang/es.php deleted file mode 100644 index f764b4946..000000000 --- a/Install/data/lang/es.php +++ /dev/null @@ -1,145 +0,0 @@ - 'Instalación', - 'menuitem_language-selection' => 'Iniciar', - 'menuitem_requirements' => 'Requisitos del sistema', - 'menuitem_database-configuration' => 'Configuración de la base de datos', - 'menuitem_database-import' => 'Instalación', - 'menuitem_edition' => 'Licencia Shopware', - 'menuitem_configuration' => 'Configuración', - 'menuitem_finish' => 'Terminado', - 'menuitem_license' => 'CGV', - 'license_incorrect' => 'La clave de licencia introducida no es válida.', - 'license_does_not_match' => 'La clave de licencia introducida no corresponde a ninguna versión comercial de Shopware', - 'license_domain_error' => 'La clave de licencia introducida no es válida para el dominio: ', - 'version_text' => 'Versión:', - 'back' => 'Atrás', - 'forward' => 'Continuar', - 'start' => 'Iniciar', - 'start_installation' => 'Iniciar instalación', - - 'select_language_de' => 'Alemán', - 'select_language_en' => 'Inglés', - 'select_language_nl' => 'Holandés', - 'select_language_it' => 'Italiano', - 'select_language_fr' => 'Francés', - 'select_language_es' => 'Español', - 'select_language_pt' => 'Portugués', - 'select_language_pl' => 'Polaco', - 'select_language_cs' => 'Checo', - 'select_language_sv' => 'Sueco', - - 'language-selection_welcome_title' => 'Bienvenido/a a Shopware 6', - 'language-selection_select_language' => 'Idioma del asistente de instalación', - 'language-selection_header' => 'Tu instalación de Shopware', - 'language-selection_info_message' => 'Esta selección solo se aplica al idioma del asistente de instalación. El idioma estándar de sistema de tu tienda lo podrás definir posteriormente.', - 'language-selection_welcome_message' => '¡Nos complace que quieras entrar a formar parte de nuestra extraordinaria Shopware Community global! Ahora te acompañaremos paso a paso en el proceso de instalación. Si tienes dudas, echa primero un vistazo en nuestro Foro, contacta con nosotros por teléfono llamando al (+49) 2555 928850, o mándanos un correo electrónico.', - - 'requirements_header' => 'Requisitos del sistema', - 'requirements_header_files' => 'Archivos y directorios', - 'requirements_header_system' => 'Sistema', - 'requirements_files_info' => 'Los siguientes archivos y directorios tienen que estar disponibles y no pueden estar protegidos contra escritura.', - 'requirements_table_files_col_check' => 'Archivo / directorio', - 'requirements_table_files_col_status' => 'Estado', - 'requirements_error' => 'No se cumplen todos los requisitos para completar con éxito la instalación.', - 'requirements_error_title' => 'Tu sistema aún no está listo para Shopware 6', - 'requirements_success' => 'Se cumplen todos los requisitos para completar con éxito la instalación.', - 'requirements_success_title' => 'Tu sistema está listo para Shopware 6', - 'requirements_php_info' => 'Tu servidor tiene que cumplir los siguientes requisitos de sistema para poder aprovechar al máximo todas las funcionalidades de Shopware.', - 'requirements_php_max_compatible_version' => 'Esta versión de Shopware es compatible con PHP hasta la versión %s. En caso de versiones nuevas de PHP, no se puede garantizar una funcionalidad completa.', - 'requirements_system_col_check' => 'Requisito', - 'requirements_system_col_required' => 'Obligatorio', - 'requirements_system_col_found' => 'Tu sistema', - 'requirements_system_col_status' => 'Estado', - 'requirements_show_all' => '(mostrar todo)', - 'requirements_hide_all' => '(ocultar todo)', - 'requirements_status_error' => 'Error', - 'requirements_status_warning' => 'Advertencia', - 'requirements_status_ready' => 'Listo', - - 'license_agreement_header' => 'Condiciones generales de venta ("CGV")', - 'license_agreement_info' => 'A continuación se describen nuestras Condiciones generales de venta. Para continuar con la instalación de Shopware 6, tienes que leer y aceptar las CGV. La edición Community de Shopware 6 está autorizada conforme a las condiciones de la licencia MIT.', - 'license_agreement_error' => '¡Por favor, acepta nuestras CGV!', - 'license_agreement_checkbox' => '¡Acepto las CGV!', - - 'database-configuration_header' => 'Configurar base de datos', - 'database-configuration_field_host' => 'Servidor:', - 'database-configuration_advanced_settings' => 'Ajustes avanzados', - 'database-configuration_field_port' => 'Puerto:', - 'database-configuration_field_user' => 'Usuario:', - 'database-configuration_field_password' => 'Contraseña:', - 'database-configuration_field_database' => 'Nombre de la base de datos:', - 'database-configuration_field_new_database' => 'Nueva base de datos:', - 'database-configuration_info' => 'Para instalar Shopware en tu sistema, necesitas los datos de acceso a tu base de datos. Si no estás seguro/a de lo que tienes que indicar, ponte en contacto con tu administrador / proveedor de alojamiento.', - 'database-configuration-create_new_database' => 'Crear nueva base de datos', - 'database-configuration_non_empty_database' => 'La base de datos seleccionada ya contiene datos. Por favor, selecciona una base de datos vacía o crea una nueva.', - 'database-configuration_error_required_fields' => 'Rellena todos los campos.', - 'database-import_header' => 'Instalación', - 'database-import_skip_import' => 'Omitir', - 'database-import_progress' => 'Continuar: ', - 'database-import-hint' => 'Nota: ¡Si en la base datos configurada ya existen tablas de Shopware, se tienen que eliminar mediante la instalación / actualización!', - 'database-import_info_text' => 'Shopware 6 se instalará en la base de datos que has seleccionado previamente. Este proceso puede tardar unos minutos, en función de tu sistema.', - 'database_import_success' => '¡Shopware 6 se ha instalado correctamente!', - 'database_import_install_label' => 'Instalación de la base de datos:', - 'database_import_install_step_text' => 'Paso', - 'database_import_install_from_text' => 'de', - - 'migration_counter_text_migrations' => 'Ejecutando actualización de la base de datos', - 'migration_counter_text_snippets' => 'Actualizando bloques de texto', - 'migration_update_success' => '¡La base de datos se ha importado con éxito!', - - 'edition_header' => '¿Ya tienes una licencia de Shopware?', - 'edition_info' => 'Shopware dispone de una edición Community gratuita, así como de las ediciones Professional y Enterprise de pago.', - 'edition_ce' => 'No, gracias, quiero utilizar la edición Community gratuita.', - 'edition_cm' => 'Sí, tengo una licencia de pago de Shopware (Professional o Enterprise).', - 'edition_license' => 'Introduce aquí tu clave de licencia. La encontrarás en tu cuenta Shopware, en "Licencias" → "Licencias de producto" → "Detalles / Descargar":', - 'edition_license_error' => 'Para la instalación de una versión Shopware de pago, es necesaria una licencia válida.', - - 'configuration_header' => 'Configuración', - 'configuration_sconfig_text' => 'Ya casi está. Ya solo te quedan algunos ajustes básicos para dar los últimos toques a tu tienda, y la instalación habrá terminado.', - 'configuration_sconfig_name' => 'Nombre de la tienda', - 'configuration_sconfig_name_info' => 'Por favor, indica el nombre de tu tienda', - 'configuration_sconfig_mail' => 'Dirección de correo electrónico de la tienda', - 'configuration_sconfig_mail_info' => 'Por favor, indica la dirección de correo electrónico para los correos salientes', - 'configuration_sconfig_domain' => 'Dominio de la tienda:', - 'configuration_sconfig_language' => 'Idioma estándar del sistema:', - 'configuration_sconfig_currency' => 'Moneda estándar:', - 'configuration_sconfig_currency_info' => 'Esta moneda se utilizará por defecto para los precios de los productos.', - 'configuration_admin_currency_eur' => 'Euro', - 'configuration_admin_currency_usd' => 'Dólar (US)', - 'configuration_admin_currency_gbp' => 'Libra esterlina (GB)', - 'configuration_admin_currency_pln' => 'Złoty polaco', - 'configuration_admin_currency_chf' => 'Franco suizo', - 'configuration_admin_currency_sek' => 'Corona sueca', - 'configuration_admin_currency_dkk' => 'Corona danesa', - 'configuration_admin_currency_nok' => 'Corona noruega', - 'configuration_admin_currency_czk' => 'Corona checa', - 'configuration_admin_username' => 'Nombre de inicio de sesión del administrador:', - 'configuration_admin_mail' => 'Dirección de correo electrónico del administrador:', - 'configuration_admin_firstName' => 'Nombre del administrador:', - 'configuration_admin_lastName' => 'Apellido(s) del administrador:', - 'configuration_defaults_warning' => '.El idioma estándar y la moneda estándar del sistema no se podrán modificar posteriormente:', - 'configuration_email_help_text' => 'Esta dirección de correo electrónico se utilizará para los correos electrónicos salientes de la tienda.', - 'configuration_admin_currency_headline' => 'Monedas disponibles', - 'configuration_admin_currency_text' => 'Añade más monedas a tu tienda de Shopware. Si quieres añadir monedas después, puedes hacerlo en cualquier momento en la administración.', - 'configuration_admin_language_de' => 'Alemán', - 'configuration_admin_language_en' => 'Inglés', - 'configuration_admin_password' => 'Contraseña del administrador:', - - 'finish_header' => 'Instalación terminada', - 'finish_info' => '¡Has completado con éxito la instalación de Shopware!', - 'finish_info_heading' => '¡Genial!', - 'finish_first_steps' => 'Guía "Primeros pasos"', - 'finish_frontend' => 'Ir a escaparate', - 'finish_backend' => 'Ir a Administration (administración)', - 'finish_message' => ' -

- Bienvenido/a a Shopware, -

-

- te damos la bienvenida a nuestra comunidad. Has completado con éxito la instalación de Shopware. -

Tu tienda ya está lista para usar. Si eres nuevo/a en Shopware, te recomendamos la guía "Primeros pasos en Shopware". Cuando inicies sesión por primera vez en Administración, nuestro asistente de primera ejecución te guiará en el proceso de configuración básica de tu tienda.

-

¡Que disfrutes de tu nueva tienda online!

', -]; diff --git a/Install/data/lang/fr.php b/Install/data/lang/fr.php deleted file mode 100644 index 48e98211c..000000000 --- a/Install/data/lang/fr.php +++ /dev/null @@ -1,145 +0,0 @@ - 'Installation', - 'menuitem_language-selection' => 'Démarrer', - 'menuitem_requirements' => 'Conditions du système', - 'menuitem_database-configuration' => 'Configuration de la base de données', - 'menuitem_database-import' => 'Installation', - 'menuitem_edition' => 'Licence Shopware', - 'menuitem_configuration' => 'Configuration', - 'menuitem_finish' => 'Terminé', - 'menuitem_license' => 'CGV', - 'license_incorrect' => 'La clé de licence saisie n\'est pas valide.', - 'license_does_not_match' => 'La clé de licence saisie correspond à une version Shopware non commerciale', - 'license_domain_error' => 'La clé de licence saisie n\'est pas valide pour le domaine : ', - 'version_text' => 'Version :', - 'back' => 'Retour', - 'forward' => 'Continuer', - 'start' => 'Démarrer', - 'start_installation' => 'Démarrer l\'installation', - - 'select_language_de' => 'Allemand', - 'select_language_en' => 'Anglais', - 'select_language_nl' => 'Néerlandais', - 'select_language_it' => 'Italien', - 'select_language_fr' => 'Français', - 'select_language_es' => 'Espagnol', - 'select_language_pt' => 'Portugais', - 'select_language_pl' => 'Polonais', - 'select_language_cs' => 'Tchèque', - 'select_language_sv' => 'Suédois', - - 'language-selection_welcome_title' => 'Bienvenue sur Shopware 6', - 'language-selection_select_language' => 'Langue de l\'assistant d\'installation', - 'language-selection_header' => 'Votre installation de Shopware', - 'language-selection_info_message' => 'Cette sélection concerne uniquement la langue de l\'assistant d\'installation. Vous pourrez définir ultérieurement la langue système standard de votre boutique.', - 'language-selection_welcome_message' => 'Nous sommes heureux que vous souhaitiez faire partie de notre fantastique communauté Shopware mondiale ! Nous vous accompagnons maintenant pas à pas pour le processus d\'installation. Si vous avez des questions, veuillez commencer par consulter notre forum ou bien contactez-nous par téléphone au (+49) 2555 928850 ou envoyez-nous un e-mail.', - - 'requirements_header' => 'Conditions du système', - 'requirements_header_files' => 'Fichiers et répertoires', - 'requirements_header_system' => 'Système', - 'requirements_files_info' => 'Les fichiers et répertoires suivants doivent exister et ne doivent pas être protégés en écriture.', - 'requirements_table_files_col_check' => 'Fichier/Répertoire', - 'requirements_table_files_col_status' => 'Statut', - 'requirements_error' => 'Toutes les conditions préalables à la réussite de l\'installation ne sont pas remplies.', - 'requirements_error_title' => 'Votre système n\'est pas encore prêt pour Shopware 6', - 'requirements_success' => 'Toutes les conditions préalables à la réussite de l\'installation sont remplies.', - 'requirements_success_title' => 'Votre système est prêt pour Shopware 6', - 'requirements_php_info' => 'Votre serveur doit remplir les conditions système suivantes pour pouvoir utiliser Shopware dans son intégralité.', - 'requirements_php_max_compatible_version' => 'Cette version de Shopware prend en charge PHP jusqu\'à la version %s. L\'intégralité de la fonctionnalité ne peut pas être garantie avec les versions PHP plus récentes.', - 'requirements_system_col_check' => 'Condition', - 'requirements_system_col_required' => 'Obligatoire', - 'requirements_system_col_found' => 'Votre système', - 'requirements_system_col_status' => 'Statut', - 'requirements_show_all' => '(tout afficher)', - 'requirements_hide_all' => '(tout masquer)', - 'requirements_status_error' => 'Erreur', - 'requirements_status_warning' => 'Avertissement', - 'requirements_status_ready' => 'Prêt', - - 'license_agreement_header' => 'Conditions générales de vente (« CGV »)', - 'license_agreement_info' => 'Vous trouverez ci-joint les conditions générales de vente. Pour poursuivre l\'installation de Shopware 6, vous devez tout d\'abord lire les CGV et les accepter. L\'édition Community de Shopware 6 est publiée conformément aux conditions de la licence MIT.', - 'license_agreement_error' => 'Veuillez accepter nos CGV !', - 'license_agreement_checkbox' => 'J\'accepte les CGV !', - - 'database-configuration_header' => 'Configurer la base de données', - 'database-configuration_field_host' => 'Serveur :', - 'database-configuration_advanced_settings' => 'Paramètres avancés', - 'database-configuration_field_port' => 'Port :', - 'database-configuration_field_user' => 'Utilisateur :', - 'database-configuration_field_password' => 'Mot de passe :', - 'database-configuration_field_database' => 'Nom base de données :', - 'database-configuration_field_new_database' => 'Nouvelle base de données :', - 'database-configuration_info' => 'Pour installer Shopware sur votre système, vous avez besoin des données d\'accès à votre base de données. Si vous n\'êtes pas sûr de ce que vous devez saisir, veuillez contacter votre administrateur/hébergeur.', - 'database-configuration-create_new_database' => 'Créer un nouvelle base de données', - 'database-configuration_non_empty_database' => 'La base de données sélectionnée contient déjà des données. Veuillez sélectionner une base de données vide ou bien veuillez-en créer une nouvelle.', - 'database-configuration_error_required_fields' => 'Veuillez remplir tous les champs.', - 'database-import_header' => 'Installation', - 'database-import_skip_import' => 'Ignorer', - 'database-import_progress' => 'Progression : ', - 'database-import-hint' => 'Remarque : si des tables Shopware existent déjà dans la base de données configurée, celles-ci seront effacées lors de l\'installation/la mise à jour !', - 'database-import_info_text' => 'Shopware 6 est installé sur la base de données que vous avez sélectionnée. En fonction de votre système, ce processus peut durer quelques minutes.', - 'database_import_success' => 'Shopware 6 a été installé avec succès !', - 'database_import_install_label' => 'Installation base de données :', - 'database_import_install_step_text' => 'Étape', - 'database_import_install_from_text' => 'sur', - - 'migration_counter_text_migrations' => 'La mise à jour de la base de données est en cours', - 'migration_counter_text_snippets' => 'Les modules de texte sont mis à jour', - 'migration_update_success' => 'Importation de la base de données réussie !', - - 'edition_header' => 'Avez-vous déjà une licence Shopware ?', - 'edition_info' => 'Shopware existe dans une version gratuite Community Edition et dans des versions payantes, Professional Edition et Enterprise Edition.', - 'edition_ce' => 'Non, je souhaite utiliser la version gratuite Community Edition.', - 'edition_cm' => 'Oui, je possède une licence Shopware payante (Professional ou Enterprise).', - 'edition_license' => 'Saisissez ici votre clé de licence. Vous la trouverez ici dans votre compte Shopware sous « Licences » → « Licences produits » → « Détails / Télécharger » :', - 'edition_license_error' => 'Pour l\'installation d\'une version Shopware payante, une licence valide est nécessaire.', - - 'configuration_header' => 'Configuration', - 'configuration_sconfig_text' => 'Presque terminé. Vous devez maintenant définir quelques paramètres fondamentaux pour votre boutique, ensuite l\'installation sera terminée.', - 'configuration_sconfig_name' => 'Shopname', - 'configuration_sconfig_name_info' => 'Veuillez saisir le nom de votre boutique', - 'configuration_sconfig_mail' => 'Adresse e-mail de la boutique :', - 'configuration_sconfig_mail_info' => 'Veuillez saisir l\'adresse e-mail pour les e-mails sortants', - 'configuration_sconfig_domain' => 'Shop-Domain :', - 'configuration_sconfig_language' => 'Langue système standard :', - 'configuration_sconfig_currency' => 'Devise par défaut :', - 'configuration_sconfig_country' => 'Pays par défaut :', - 'configuration_sconfig_currency_info' => 'Cette devise est utilisée par défaut pour le prix des produits.', - 'configuration_admin_currency_eur' => 'Euro', - 'configuration_admin_currency_usd' => 'Dollar (US)', - 'configuration_admin_currency_gbp' => 'Livre britannique (GB)', - 'configuration_admin_currency_pln' => 'Złoty polonais', - 'configuration_admin_currency_chf' => 'Franc suisse', - 'configuration_admin_currency_sek' => 'Couronne suédoise', - 'configuration_admin_currency_dkk' => 'Couronne danoise', - 'configuration_admin_currency_nok' => 'Couronne norvégienne', - 'configuration_admin_currency_czk' => 'Couronne tchèques', - 'configuration_admin_username' => 'Admin-Login-Name :', - 'configuration_admin_mail' => 'Adresse e-mail Admin :', - 'configuration_admin_firstName' => 'Nom Admin :', - 'configuration_admin_lastName' => 'Prénom Admin :', - 'configuration_defaults_warning' => 'La langue système standard et la devise par défaut ne peuvent pas être modifiées ultérieurement.', - 'configuration_email_help_text' => 'Cette adresse e-mail est utilisée pour les e-mails sortants de la boutique.', - 'configuration_admin_currency_headline' => 'Monnaies disponibles', - 'configuration_admin_currency_text' => 'Ajoutez d\'autres devises à votre boutique Shopware. Si vous souhaitez ajouter des devises par la suite, vous pouvez le faire à tout moment dans l\'administration.', - 'configuration_admin_language_de' => 'Allemand', - 'configuration_admin_language_en' => 'Anglais', - 'configuration_admin_password' => 'Mot de passe Admin :', - - 'finish_header' => 'Installation terminée', - 'finish_info' => 'Vous avez installé Shopware avec succès!', - 'finish_info_heading' => 'Super!', - 'finish_first_steps' => 'Guide « Premiers pas »', - 'finish_frontend' => 'Aller au storefront', - 'finish_backend' => 'Aller à l\'Administration', - 'finish_message' => ' -

- Bienvenue sur Shopware, -

-

- Nous sommes heureux de vous accueillir dans notre communauté. Vous avez installé Shopware avec succès. -

Votre boutique est désormais prête à être utilisée. Si vous utilisez Shopware pour la première fois, nous vous recommandons le guide « Premiers pas dans Shopware ». Si vous vous connectez pour la première fois dans l\'administration, notre assistant First Run vous guidera pour la configuration initiale de votre boutique.

-

Nous vous souhaitons beaucoup de plaisir et de réussite avec votre nouvelle boutique en ligne !

', -]; diff --git a/Install/data/lang/it.php b/Install/data/lang/it.php deleted file mode 100644 index a8f99eb00..000000000 --- a/Install/data/lang/it.php +++ /dev/null @@ -1,144 +0,0 @@ - 'Installazione', - 'menuitem_language-selection' => 'Avvia', - 'menuitem_requirements' => 'Requisiti di sistema', - 'menuitem_database-configuration' => 'Configurazione database', - 'menuitem_database-import' => 'Installazione', - 'menuitem_edition' => 'Licenza Shopware', - 'menuitem_configuration' => 'Configurazione', - 'menuitem_finish' => 'Finito', - 'menuitem_license' => 'CGV', - 'license_incorrect' => 'La chiave di licenza inserita non è valida.', - 'license_does_not_match' => 'La chiave di licenza inserita non è adatta ad alcuna versione commerciale dello Shopware', - 'license_domain_error' => 'La chiave di licenza inserita non è valida per il dominio: ', - 'version_text' => 'Versione:', - 'back' => 'Indietro', - 'forward' => 'Avanti', - 'start' => 'Avvia', - 'start_installation' => 'Avvia installazione', - - 'select_language_de' => 'Tedesco', - 'select_language_en' => 'Inglese', - 'select_language_nl' => 'Olandese', - 'select_language_it' => 'Italiano', - 'select_language_fr' => 'Francese', - 'select_language_es' => 'Spagnolo', - 'select_language_pt' => 'Portoghese', - 'select_language_pl' => 'Polacco', - 'select_language_cs' => 'Ceco', - 'select_language_sv' => 'Svedese', - - 'language-selection_welcome_title' => 'Benvenuto in Shopware 6', - 'language-selection_select_language' => 'Lingua dell’assistente di installazione', - 'language-selection_header' => 'La tua installazione Shopware', - 'language-selection_info_message' => 'Questa selezione si riferisce solo alla lingua dell’assistente di installazione. La lingua standard del sistema del tuo shop può essere definita in un secondo momento.', - 'language-selection_welcome_message' => 'Siamo contenti di accoglierti nella nostra grandiosa Shopware Community mondiale! Ti accompagneremo passo passo lungo il processo di installazione. Per eventuali domande, ti preghiamo di consultare prima il nostro forum, di contattarci telefonicamente allo (+49) 2555 928850 o di inviarci una mail.', - - 'requirements_header' => 'Requisiti di sistema', - 'requirements_header_files' => 'File e directory', - 'requirements_header_system' => 'Sistema', - 'requirements_files_info' => 'I seguenti file e directory devono essere presenti e non devono essere protetti in scrittura.', - 'requirements_table_files_col_check' => 'File/Directory', - 'requirements_table_files_col_status' => 'Stato', - 'requirements_error' => 'Non sono stati rispettati tutti i requisiti per l’installazione.', - 'requirements_error_title' => 'Il tuo sistema non è ancora pronto per Shopware 6', - 'requirements_success' => 'Sono stati rispettati tutti i requisiti per l’installazione.', - 'requirements_success_title' => 'Il tuo sistema è pronto per Shopware 6', - 'requirements_php_info' => 'Il tuo server deve soddisfare i seguenti requisiti di sistema per poter utilizzare appieno Shopware.', - 'requirements_php_max_compatible_version' => 'Questa versione di Shopware supporta PHP fino alla versione %s. Non è possibile garantire una funzionalità completa con le versioni più recenti di PHP.', - 'requirements_system_col_check' => 'Requisito', - 'requirements_system_col_required' => 'Necessario', - 'requirements_system_col_found' => 'Il tuo sistema', - 'requirements_system_col_status' => 'Stato', - 'requirements_show_all' => '(mostra tutti)', - 'requirements_hide_all' => '(nascondi tutti)', - 'requirements_status_error' => 'Errore', - 'requirements_status_warning' => 'Avviso', - 'requirements_status_ready' => 'Pronto', - - 'license_agreement_header' => 'Condizioni generali di vendita (“CGV”)', - 'license_agreement_info' => 'Qui puoi trovare le nostre condizioni generali di vendita. Per continuare l\'installazione di Shopware 6, è necessario prima leggere e accettare le CGV. La Community Edition di Shopware 6 è rilasciata secondo le condizioni della licenza MIT.', - 'license_agreement_error' => 'Ti preghiamo di accettare le nostre CGV.', - 'license_agreement_checkbox' => 'Accetto le CGV.', - - 'database-configuration_header' => 'Configurazione database', - 'database-configuration_field_host' => 'Server:', - 'database-configuration_advanced_settings' => 'Impostazioni estese', - 'database-configuration_field_port' => 'Porta:', - 'database-configuration_field_user' => 'Utente:', - 'database-configuration_field_password' => 'Password:', - 'database-configuration_field_database' => 'Nome database:', - 'database-configuration_field_new_database' => 'Nuovo database:', - 'database-configuration_info' => 'Per installare Shopware sul tuo sistema, ti servono i dati di accesso al tuo database. In caso di dubbi sui dati da inserire, contatta il tuo amministratore / hosting.', - 'database-configuration-create_new_database' => 'Crea nuovo database', - 'database-configuration_non_empty_database' => 'Il database selezionato contiene già i dati. Seleziona un database vuoto o creane uno nuovo.', - 'database-configuration_error_required_fields' => 'Ti preghiamo di compilare tutti i campi.', - 'database-import_header' => 'Installazione', - 'database-import_skip_import' => 'Salta', - 'database-import_progress' => 'Progresso: ', - 'database-import-hint' => 'Avvertenza: Se nel database configurato sono già presenti tabelle Shopware, verranno rimosse attraverso l’installazione/l’aggiornamento!', - 'database-import_info_text' => 'Shopware 6 è installato dal database selezionato. Questo processo può richiedere qualche minuto, a seconda del tuo sistema.', - 'database_import_success' => 'Shopware 6 è stato installato con successo.', - 'database_import_install_label' => 'Installazione database:', - 'database_import_install_step_text' => 'Fase', - 'database_import_install_from_text' => 'di', - - 'migration_counter_text_migrations' => 'Aggiornamento database in corso', - 'migration_counter_text_snippets' => 'Aggiornamento moduli di testo in corso', - 'migration_update_success' => 'Import database riuscito!', - - 'edition_header' => 'Hai già una licenza Shopware?', - 'edition_info' => 'Shopware è disponibile nella Community Edition gratuita e nelle edizioni Professional ed Enterprise a pagamento.', - 'edition_ce' => 'No, desidero utilizzare la Community Edition gratuita.', - 'edition_cm' => 'Sì, ho una licenza Shopware a pagamento (Professional o Enterprise).', - 'edition_license' => 'Inserisci qui la tua chiave di licenza. La trovi nel tuo account Shopware sotto “Licenze" → “Licenze dei prodotti" → “Dettagli / Download":', - 'edition_license_error' => 'Per l’installazione di una versione di Shopware a pagamento, è necessaria una licenza valida.', - - 'configuration_header' => 'Configurazione', - 'configuration_sconfig_text' => 'Quasi finito. Adesso devi solo definire alcune impostazioni fondamentali per il tuo shop, poi avrai concluso l’installazione.', - 'configuration_sconfig_name' => 'Nome shop', - 'configuration_sconfig_name_info' => 'Inserisci il nome del tuo shop', - 'configuration_sconfig_mail' => 'Indirizzo e-mail dello shop:', - 'configuration_sconfig_mail_info' => 'Inserisci l’indirizzo e-mail per la posta in uscita', - 'configuration_sconfig_domain' => 'Dominio shop:', - 'configuration_sconfig_language' => 'Lingua standard di sistema:', - 'configuration_sconfig_currency' => 'Valuta standard:', - 'configuration_sconfig_currency_info' => 'Questa valuta è normalmente utilizzata per i prezzi dei prodotti.', - 'configuration_admin_currency_eur' => 'Euro', - 'configuration_admin_currency_usd' => 'Dollari (US)', - 'configuration_admin_currency_gbp' => 'Sterlina britannica (GB)', - 'configuration_admin_currency_pln' => 'Złoty polacco', - 'configuration_admin_currency_chf' => 'Franco svizzero', - 'configuration_admin_currency_sek' => 'Corona svedese', - 'configuration_admin_currency_dkk' => 'Corona danese', - 'configuration_admin_currency_nok' => 'Corona norvegese', - 'configuration_admin_currency_czk' => 'Corona ceca', - 'configuration_admin_username' => 'Nome login admin:', - 'configuration_admin_mail' => 'Indirizzo e-mail admin:', - 'configuration_admin_firstName' => 'Nome admin:', - 'configuration_admin_lastName' => 'Cognome admin:', - 'configuration_defaults_warning' => 'La lingua e la valuta standard di sistema non possono essere modificate in un secondo momento.', - 'configuration_email_help_text' => 'Questo indirizzo e-mail verrà utilizzato per le mail in uscita del negozio.', - 'configuration_admin_currency_headline' => 'Valute disponibili', - 'configuration_admin_currency_text' => 'Aggiungi altre valute al tuo negozio Shopware. Se volete aggiungere altre valute in seguito, potete farlo in qualsiasi momento nell\'amministrazione.', - 'configuration_admin_language_de' => 'Tedesco', - 'configuration_admin_language_en' => 'Inglese', - 'configuration_admin_password' => 'Password admin:', - - 'finish_header' => 'Installazione completata', - 'finish_info' => 'Installazione Shopware riuscita!', - 'finish_info_heading' => 'Evvai!', - 'finish_first_steps' => 'Guida “Primi passi”', - 'finish_frontend' => 'Vai allo storefront', - 'finish_backend' => 'Vai alla Administration (gestione)', - 'finish_message' => ' -

- Benvenuto in Shopware, -

-

- siamo lieti di accoglierti nella nostra Community. Hai installato Shopware correttamente! -

Il tuo shop è ora pronto per l’utilizzo. Se non conosci ancora bene Shopware, ti suggeriamo di consultare la guida “Primi passi in Shopware". Se è la prima volta che ti colleghi a Gestione, il nostro First Run Wizard ti accompagnerà lungo la creazione del tuo shop.

-

Ti auguriamo buon divertimento e tanto successo con il tuo shop online!

', -]; diff --git a/Install/data/lang/nl.php b/Install/data/lang/nl.php deleted file mode 100644 index 640f50fb4..000000000 --- a/Install/data/lang/nl.php +++ /dev/null @@ -1,139 +0,0 @@ - 'Installatie', - 'menuitem_language-selection' => 'Start', - 'menuitem_requirements' => 'Systeemvereisten', - 'menuitem_database-configuration' => 'Configuratie databank', - 'menuitem_database-import' => 'Installatie', - 'menuitem_edition' => 'Shopware-licentie', - 'menuitem_configuration' => 'Configuratie', - 'menuitem_finish' => 'Gereed', - 'menuitem_license' => 'Algemene voorwaarden', - 'license_incorrect' => 'De ingevoerde licentiesleutel is ongeldig.', - 'license_does_not_match' => 'De ingevoerde licentiesleutel past niet bij een commerciële Shopware-versie', - 'license_domain_error' => 'De ingevoerde licentiesleutel is niet geldig voor het domein: ', - 'version_text' => 'Versie:', - 'back' => 'Terug', - 'forward' => 'Verder', - 'start' => 'Starten', - 'start_installation' => 'Installatie starten', - - 'select_language_de' => 'Duits', - 'select_language_en' => 'Engels', - 'select_language_nl' => 'Nederlands', - 'select_language_it' => 'Italiaans', - 'select_language_fr' => 'Frans', - 'select_language_es' => 'Spaans', - 'select_language_pt' => 'Portugees', - 'select_language_pl' => 'Pools', - 'select_language_cs' => 'Tsjechisch', - 'select_language_sv' => 'Zweeds', - - 'language-selection_welcome_title' => 'Welkom bij Shopware 6', - 'language-selection_select_language' => 'Taal van de installatie-assistent', - 'language-selection_header' => 'Je Shopware-installatie', - 'language-selection_info_message' => 'Deze selectie heeft alleen betrekking op de taal van de installatie-assistent. De standaardtaal van je shop kun je later vastleggen.', - 'language-selection_welcome_message' => 'We zijn blij dat je deel wilt uitmaken van onze wereldwijde Shopware-community! Nu begeleiden we je stap voor stap door het installatieproces. Ga voor vragen naar ons forum, bel ons op (+49) 2555 928850 of schrijf een e-mail.', - 'requirements_header' => 'Systeemvereisten', - 'requirements_header_files' => 'Bestanden en mappen', - 'requirements_header_system' => 'Systeem', - 'requirements_files_info' => 'De volgende bestanden en mappen moeten aanwezig zijn met schrijfrechten.', - 'requirements_table_files_col_check' => 'Bestand/map', - 'requirements_table_files_col_status' => 'Status', - 'requirements_error' => 'Er is niet aan alle voorwaarden voor een succesvolle installatie voldaan.', - 'requirements_error_title' => 'Je systeem is nog niet gereed voor Shopware 6', - 'requirements_success' => 'Er is niet aan alle voorwaarden voor een succesvolle installatie voldaan.', - 'requirements_success_title' => 'Je systeem is gereed voor Shopware 6', - 'requirements_php_info' => 'Je server moet aan de volgende systeemvereisten voldoen, om Shopware in zijn geheel te kunnen gebruiken.', - 'requirements_php_max_compatible_version' => 'Deze versie van shopware ondersteunt PHP tot versie %s. Een volledige functionaliteit kan met een nieuwere PHP-versie niet worden gegarandeerd.', - 'requirements_system_col_check' => 'Voorwaarde', - 'requirements_system_col_required' => 'Vereist', - 'requirements_system_col_found' => 'Je systeem', - 'requirements_system_col_status' => 'Status', - 'requirements_show_all' => '(alles tonen)', - 'requirements_hide_all' => '(alles verbergen)', - 'requirements_status_error' => 'Fout', - 'requirements_status_warning' => 'Waarschuwing', - 'requirements_status_ready' => 'Gereed', - 'license_agreement_header' => 'Algemene voorwaarden', - 'license_agreement_info' => 'Lees hier de algemene voorwaarden. Lees en accepteer eerst de algemene voorwaarden om de installatie van Shopware 6 voort te zetten. De community edition van Shopware 6 is volgens de voorwaarden van de MIT-licentie vrijgegeven.', - 'license_agreement_error' => 'Geef toestemming voor onze algemene voorwaarden!', - 'license_agreement_checkbox' => 'Ik ga akkoord met de algemene voorwaarden.', - 'database-configuration_header' => 'Databank configureren', - 'database-configuration_field_host' => 'Server:', - 'database-configuration_advanced_settings' => 'Meer instellingen', - 'database-configuration_field_port' => 'Port:', - 'database-configuration_field_user' => 'Gebruiker:', - 'database-configuration_field_password' => 'Wachtwoord:', - 'database-configuration_field_database' => 'Naam databank:', - 'database-configuration_field_new_database' => 'Nieuwe databank:', - 'database-configuration_info' => 'Je hebt de toegangsgegevens van de databank nodig om Shopware op je systeem te installeren. Neem contact op met je beheerder/hoster, als je niet zeker weet wat je hier moet invullen.', - 'database-configuration-create_new_database' => 'Nieuwe databank aanleggen', - 'database-configuration_non_empty_database' => 'De uitgekozen databank bevat al gegevens Kies een lege databank uit of maak een nieuwe.', - 'database-configuration_error_required_fields' => 'Vul alle velden in.', - 'database-import_header' => 'Installatie', - 'database-import_skip_import' => 'Overslaan', - 'database-import_progress' => 'Voortgang: ', - 'database-import-hint' => 'Opmerking Bestaan er in de geconfigureerde databank al Shopware-tabellen, dan worden die door de installatie / de update verwijderd.', - 'database-import_info_text' => 'Shopware 6 wordt op de door jou gekozen databank geïnstalleerd. Dit proces kan enige minuten duren, afhankelijk van je systeem.', - 'database_import_success' => 'De installatie van Shopware 6 is geslaagd.', - 'database_import_install_label' => 'Installatie databank:', - 'database_import_install_step_text' => 'Stap', - 'database_import_install_from_text' => 'van', - 'migration_counter_text_migrations' => 'Databank-update wordt uitgevoerd', - 'migration_counter_text_snippets' => 'Tekstbouwstenen worden bijgewerkt', - 'migration_update_success' => 'Installatie databank is geslaagd!', - 'edition_header' => 'Heb je al een Shopware-licentie?', - 'edition_info' => 'Shopware is verkrijgbaar in de gratis Community Edition en in de professionele betaalversies Professional en Enterprise.', - 'edition_ce' => 'Nee, ik wil de gratis Community Edition gebruiken.', - 'edition_cm' => 'Ja, ik heb een betaalde Shopware-licentie (Professional of Enterprise).', - 'edition_license' => 'Voer hier je licentiecode in. Deze is te vinden in uw Shopware-account bij \'Licenties\' → \'Productlicenties\' → \'Details / Download\':', - 'edition_license_error' => 'Voor de installatie van een gratis Shopware-versie is een geldige licentie nodig.', - 'configuration_header' => 'Configuratie', - 'configuration_sconfig_text' => 'Bijna klaar. Nu hoef je alleen nog een paar basisinstellingen voor je shop vast te leggen, dan is de installatie voltooid.', - 'configuration_sconfig_name' => 'Shopnaam', - 'configuration_sconfig_name_info' => 'Geef de naam van je shop aan', - 'configuration_sconfig_mail' => 'Shop-e-mailadres:', - 'configuration_sconfig_mail_info' => 'Geef het e-mailadres voor uitgaande mails aan', - 'configuration_sconfig_domain' => 'Shop-domein:', - 'configuration_sconfig_language' => 'Systeem-standaardtaal:', - 'configuration_sconfig_currency' => 'Standaardmunteenheid:', - 'configuration_sconfig_currency_info' => 'Deze wordt standaard voor productprijzen gebruikt.', - 'configuration_admin_currency_eur' => 'Euro', - 'configuration_admin_currency_usd' => 'Dollar (US)', - 'configuration_admin_currency_gbp' => 'Britse pond (GB)', - 'configuration_admin_currency_pln' => 'Poolse zloty', - 'configuration_admin_currency_chf' => 'Zwitserse frank', - 'configuration_admin_currency_sek' => 'Zweedse kroon', - 'configuration_admin_currency_dkk' => 'Deense kroon', - 'configuration_admin_currency_nok' => 'Noorse kroon', - 'configuration_admin_currency_czk' => 'Tsjechische kroon', - 'configuration_admin_username' => 'Gebruikersnaam beheerder:', - 'configuration_admin_mail' => 'E-mailadres beheerder:', - 'configuration_admin_firstName' => 'Voornaam beheerder:', - 'configuration_admin_lastName' => 'Achternaam beheerder:', - 'configuration_defaults_warning' => 'De systeem-standaardtaal en standaardmunteenheid kunnen achteraf niet gewijzigd worden.', - 'configuration_email_help_text' => 'Dit e-mailadres wordt voor uitgaande shop-mails gebruikt.', - 'configuration_admin_currency_headline' => 'Beschikbare valuta\'s', - 'configuration_admin_currency_text' => 'Voeg meer valuta toe aan uw Shopware shop. Als u achteraf valuta\'s wilt toevoegen, kunt u dit op elk gewenst moment in de administratie doen.', - - 'configuration_admin_language_de' => 'Duits', - 'configuration_admin_language_en' => 'Engels', - 'configuration_admin_password' => 'Beheerderswachtwoord:', - - 'finish_header' => 'Installatie voltooid', - 'finish_info' => 'De installatie van Shopware is geslaagd.', - 'finish_info_heading' => 'Jippie!', - 'finish_first_steps' => 'Handleiding \'Eerste stappen\'', - 'finish_frontend' => 'Ga naar storefront', - 'finish_backend' => 'Ga naar Administration (beheer)', - 'finish_message' => ' -

- Hartelijk welkom bij Shopware, -

-

- we zijn blij je in onze community te mogen begroeten. Je installatie van Shopware is geslaagd. -

Je shop is nu gereed voor gebruik. Ben je nieuw bij Shopware, dan raden we de handleiding \'Eerste stappen bij Shopware\' aan. Ben je voor de eerste keer als beheerder aangemeld, dan zal de First Run Wizard je door de basisprincipes van je shop geleiden.

-

Veel plezier en succes met je nieuwe onlineshop!

', -]; diff --git a/Install/data/lang/pl.php b/Install/data/lang/pl.php deleted file mode 100644 index 97b2a86eb..000000000 --- a/Install/data/lang/pl.php +++ /dev/null @@ -1,144 +0,0 @@ - 'Instalacja', - 'menuitem_language-selection' => 'Start', - 'menuitem_requirements' => 'Wymagania systemowe', - 'menuitem_database-configuration' => 'Konfiguracja bazy danych', - 'menuitem_database-import' => 'Instalacja', - 'menuitem_edition' => 'Licencja Shopware', - 'menuitem_configuration' => 'Konfiguracja', - 'menuitem_finish' => 'Gotowe', - 'menuitem_license' => 'OWH', - 'license_incorrect' => 'Wprowadzony klucz licencyjny jest nieprawidłowy.', - 'license_does_not_match' => 'Wprowadzony klucz licencyjny nie pasuje do żadnej komercyjnej wersji oprogramowania Shopware.', - 'license_domain_error' => 'Wprowadzony klucz licencyjny nie jest ważny dla domeny: ', - 'version_text' => 'Wersja:', - 'back' => 'Wróć', - 'forward' => 'Dalej', - 'start' => 'Start', - 'start_installation' => 'Rozpocznij instalację', - - 'select_language_de' => 'Język niemiecki', - 'select_language_en' => 'Język angielski', - 'select_language_nl' => 'Język niderlandzki', - 'select_language_it' => 'Język włoski', - 'select_language_fr' => 'Język francuski', - 'select_language_es' => 'Język hiszpański', - 'select_language_pt' => 'Język portugalski', - 'select_language_pl' => 'Język polski', - 'select_language_cs' => 'Język czech', - 'select_language_sv' => 'Język szwedzki', - - 'language-selection_welcome_title' => 'Witaj w Shopware 6', - 'language-selection_select_language' => 'Język asystenta instalacji', - 'language-selection_header' => 'Twoja instalacja Shopware', - 'language-selection_info_message' => 'Wybór ten odnosi się tylko do języka asystenta instalacji. Możesz później zdefiniować domyślny język systemu dla Twojego sklepu.', - 'language-selection_welcome_message' => 'Cieszymy się, że chcesz być częścią naszej wielkiej światowej społeczności Shopware! Teraz pomożemy Ci przejść krok po kroku przez proces instalacji. Jeśli masz jakieś pytania, najpierw odwiedź nasze forum, skontaktuj się z nami telefonicznie pod numerem (+49) 2555 928850 lub wyślij nam e-mail.', - - 'requirements_header' => 'Wymagania systemowe', - 'requirements_header_files' => 'Pliki i katalogi', - 'requirements_header_system' => 'System', - 'requirements_files_info' => 'Następujące pliki i katalogi muszą zostać utworzone i nie mogą być zabezpieczone przed zapisem.', - 'requirements_table_files_col_check' => 'Plik / katalog', - 'requirements_table_files_col_status' => 'Status', - 'requirements_error' => 'Nie wszystkie wymagania dotyczące udanej instalacji zostały spełnione.', - 'requirements_error_title' => 'Twój system nie jest jeszcze gotowy do pracy z Shopware 6', - 'requirements_success' => 'Wszystkie wymagania dotyczące udanej instalacji zostały spełnione.', - 'requirements_success_title' => 'Twój system jest gotowy do pracy z Shopware 6', - 'requirements_php_info' => 'Twój serwer powinien spełniać następujące wymagania systemowe, aby móc w pełni korzystać z Shopware.', - 'requirements_php_max_compatible_version' => 'Ta wersja Shopware obsługuje PHP do wersji %s. Pełna funkcjonalność nie może być zagwarantowana w przypadku nowszych wersji PHP.', - 'requirements_system_col_check' => 'Wymagania', - 'requirements_system_col_required' => 'Wymagane', - 'requirements_system_col_found' => 'Twój system', - 'requirements_system_col_status' => 'Status', - 'requirements_show_all' => '(Wyświetl wszystko)', - 'requirements_hide_all' => '(Ukryj wszystko)', - 'requirements_status_error' => 'Błąd', - 'requirements_status_warning' => 'Ostrzeżenie', - 'requirements_status_ready' => 'Gotowe', - - 'license_agreement_header' => 'Ogólne Warunki Handlowe („OWH”)', - 'license_agreement_info' => 'Tutaj znajdziesz nasze Ogólne Warunki Handlowe. Aby kontynuować instalację Shopware 6, musisz najpierw przeczytać warunki i zasady, a następnie je zaakceptować. Community Edition dla Shopware 6 jest wydawana na warunkach licencji MIT.', - 'license_agreement_error' => 'Prosimy o wyrażenie zgody na nasze OWH!', - 'license_agreement_checkbox' => 'Wyrażam zgodę na OWH!', - - 'database-configuration_header' => 'Konfiguracja bazy danych', - 'database-configuration_field_host' => 'Serwer:', - 'database-configuration_advanced_settings' => 'Ustawienia zaawansowane', - 'database-configuration_field_port' => 'Port:', - 'database-configuration_field_user' => 'Użytkownik:', - 'database-configuration_field_password' => 'Hasło:', - 'database-configuration_field_database' => 'Nazwa bazy danych:', - 'database-configuration_field_new_database' => 'Nowa baza danych:', - 'database-configuration_info' => 'Aby zainstalować Shopware w Twoim systemie, potrzebujesz danych dostępu do Twojej bazy danych. Jeśli nie jesteś pewien, jakie dane wprowadzić, skontaktuj się z administratorem / dostawcą usług hostingowych.', - 'database-configuration-create_new_database' => 'Zakładanie nowej bazy danych', - 'database-configuration_non_empty_database' => 'Wybrana baza danych zawiera już dane. Wybierz pustą bazę danych lub utwórz nową.', - 'database-configuration_error_required_fields' => 'Wypełnij wszystkie pola.', - 'database-import_header' => 'Instalacja', - 'database-import_skip_import' => 'Pomiń', - 'database-import_progress' => 'Postęp: ', - 'database-import-hint' => 'Wskazówka: Jeśli w skonfigurowanej bazie danych znajdują się już tabele Shopware, zostaną one usunięte na skutek instalacji / aktualizacji!', - 'database-import_info_text' => 'Shopware 6 zostanie zainstalowany na wybranej bazie danych. Proces ten może trwać kilka minut, w zależności od systemu.', - 'database_import_success' => 'Shopware 6 został pomyślnie zainstalowany!', - 'database_import_install_label' => 'Instalacja bazy danych:', - 'database_import_install_step_text' => 'Etap', - 'database_import_install_from_text' => 'od', - - 'migration_counter_text_migrations' => 'Trwa aktualizacja bazy danych', - 'migration_counter_text_snippets' => 'Trwa aktualizacja modułów tekstowych', - 'migration_update_success' => 'Baza danych została pomyślnie zaimportowana!', - - 'edition_header' => 'Czy posiadasz już licencję Shopware?', - 'edition_info' => 'Shopware jest dostępny w bezpłatnej wersji Community Edition, jak również w wersji Professional i Enterprise Edition.', - 'edition_ce' => 'Nie, chcę skorzystać z darmowej wersji Community Edition.', - 'edition_cm' => 'Tak, mam płatną licencję Shopware (Professional lub Enterprise).', - 'edition_license' => 'Wprowadź tutaj swój klucz licencyjny. Znajdziesz go na swoim koncie Shopware w zakładce „Licencje” → „Licencje na produkty” → „Szczegóły / Pobierz”:', - 'edition_license_error' => 'Do instalacji płatnej wersji Shopware wymagana jest ważna licencja.', - - 'configuration_header' => 'Konfiguracja', - 'configuration_sconfig_text' => 'Prawie gotowe. Teraz musisz tylko zdefiniować podstawowe ustawienia dla swojego sklepu, a następnie instalacja zostanie zakończona.', - 'configuration_sconfig_name' => 'Nazwa sklepu', - 'configuration_sconfig_name_info' => 'Podaj nazwę swojego sklepu', - 'configuration_sconfig_mail' => 'Adres e-mail sklepu:', - 'configuration_sconfig_mail_info' => 'Wprowadź adres e-mail dla wiadomości wychodzących', - 'configuration_sconfig_domain' => 'Domena sklepu:', - 'configuration_sconfig_language' => 'Domyślny język systemu:', - 'configuration_sconfig_currency' => 'Standardowa waluta:', - 'configuration_sconfig_currency_info' => 'Ta waluta będzie domyślnie używana dla cen produktów.', - 'configuration_admin_currency_eur' => 'Euro', - 'configuration_admin_currency_usd' => 'Dolar (USA)', - 'configuration_admin_currency_gbp' => 'Funt brytyjski (GB)', - 'configuration_admin_currency_pln' => 'Złoty polski', - 'configuration_admin_currency_chf' => 'Frank szwajcarski', - 'configuration_admin_currency_sek' => 'Korona szwedzka', - 'configuration_admin_currency_dkk' => 'Korona duńska', - 'configuration_admin_currency_nok' => 'Korona norweska', - 'configuration_admin_currency_czk' => 'Korona czeska', - 'configuration_admin_username' => 'Nazwa logowania administratora:', - 'configuration_admin_mail' => 'Adres e-mail administratora:', - 'configuration_admin_firstName' => 'Imię administratora:', - 'configuration_admin_lastName' => 'Nazwisko administratora:', - 'configuration_defaults_warning' => 'Standardowy język i waluta systemu nie mogą zostać zmienione w późniejszym terminie.', - 'configuration_email_help_text' => 'Ten adres e-mail jest wykorzystywany do wysyłania wiadomości e-mail od sklepu.', - 'configuration_admin_currency_headline' => 'Dostępne waluty', - 'configuration_admin_currency_text' => 'Dodaj więcej walut do swojego sklepu Shopware. Jeśli chcesz później dodać walutę, możesz to zrobić w dowolnym momencie w administracji.', - 'configuration_admin_language_de' => 'Niemiecki', - 'configuration_admin_language_en' => 'Angielski', - 'configuration_admin_password' => 'Hasło administratora:', - - 'finish_header' => 'Zakończono instalację', - 'finish_info' => 'Udało Ci się zainstalować Shopware!', - 'finish_info_heading' => 'Hurra!', - 'finish_first_steps' => '„Pierwsze kroki” – przewodnik', - 'finish_frontend' => 'Przejdź do sklepu', - 'finish_backend' => 'Przejdź do Administration (panelu administracyjnego)', - 'finish_message' => ' -

- Witaj w Shopware, -

-

- cieszymy się, że możemy powitać Cię w naszej społeczności. Udało Ci się zainstalować Shopware. -

Twój sklep jest gotowy. Jeśli jesteś nowym członkiem Shopware, polecamy przewodnik „pierwsze kroki w Shopware”. Po pierwszym zalogowaniu się do panelu administracyjnego, nasz Asystent Pierwszego Uruchomienia przeprowadzi Cię przez podstawową konfigurację Twojego sklepu.

-

Życzymy przyjemnego korzystania i sukcesów w prowadzeniu Twojego sklepu internetowego!

', -]; diff --git a/Install/data/lang/pt.php b/Install/data/lang/pt.php deleted file mode 100644 index 0fb13dbbf..000000000 --- a/Install/data/lang/pt.php +++ /dev/null @@ -1,144 +0,0 @@ - 'Instalação', - 'menuitem_language-selection' => 'Iniciar', - 'menuitem_requirements' => 'Requisitos do sistema', - 'menuitem_database-configuration' => 'Configuração de base de dados', - 'menuitem_database-import' => 'Instalação', - 'menuitem_edition' => 'Licença de Shopware', - 'menuitem_configuration' => 'Configuração', - 'menuitem_finish' => 'Concluído', - 'menuitem_license' => 'CGV', - 'license_incorrect' => 'O código de licença introduzido é inválido.', - 'license_does_not_match' => 'O código de licença introduzido não é compatível com nenhuma versão comercial do Shopware', - 'license_domain_error' => 'O código de licença introduzido não é válido para o domínio: ', - 'version_text' => 'Versão:', - 'back' => 'Voltar', - 'forward' => 'Continuar', - 'start' => 'Iniciar', - 'start_installation' => 'Iniciar instalação', - - 'select_language_de' => 'Alemão', - 'select_language_en' => 'Inglês', - 'select_language_nl' => 'Holandês', - 'select_language_it' => 'Italiano', - 'select_language_fr' => 'Francês', - 'select_language_es' => 'Espanhol', - 'select_language_pt' => 'Português', - 'select_language_pl' => 'Polonês', - 'select_language_cs' => 'Tcheco', - 'select_language_sv' => 'Sueco', - - 'language-selection_welcome_title' => 'Bem-vindo ao Shopware 6', - 'language-selection_select_language' => 'Idioma do assistente de instalação', - 'language-selection_header' => 'A tua instalação de Shopware', - 'language-selection_info_message' => 'Esta seleção refere-se apenas ao idioma do assistente de instalação. Podes definir posteriormente o idioma padrão do sistema da tua loja.', - 'language-selection_welcome_message' => 'Ficamos contentes por quereres fazer parte da nossa fantástica Shopware Community, presente em todo o mundo! Vamos acompanhar-te passo a passo no processo de instalação. Se tiveres dúvidas, visita primeiro o nosso Fórum, contacta-nos telefonicamente pelo (+49) 2555 928850 ou escreve-nos um e-mail.', - - 'requirements_header' => 'Requisitos do sistema', - 'requirements_header_files' => 'Ficheiros e diretórios', - 'requirements_header_system' => 'Sistema', - 'requirements_files_info' => 'Os ficheiros e diretórios seguintes devem estar disponíveis e não podem estar protegidos contra escrita.', - 'requirements_table_files_col_check' => 'Ficheiro/Diretório', - 'requirements_table_files_col_status' => 'Estado', - 'requirements_error' => 'Não estão reunidas todas as condições para uma instalação bem sucedida.', - 'requirements_error_title' => 'O teu sistema ainda não está preparado para o Shopware 6', - 'requirements_success' => 'Estão reunidas todas as condições para uma instalação bem sucedida.', - 'requirements_success_title' => 'O teu sistema está preparado para o Shopware 6', - 'requirements_php_info' => 'O teu servidor deve cumprir os seguintes requisitos do sistema, para poder utilizar o Shopware em toda a sua amplitude.', - 'requirements_php_max_compatible_version' => 'Esta versão do Shopware suporta PHP até à versão %s. Não é possível garantir todas as suas funcionalidades com versões de PHP mais recentes.', - 'requirements_system_col_check' => 'Requisito', - 'requirements_system_col_required' => 'Obrigatório', - 'requirements_system_col_found' => 'O teu sistema', - 'requirements_system_col_status' => 'Estado', - 'requirements_show_all' => '(mostrar tudo)', - 'requirements_hide_all' => '(ocultar tudo)', - 'requirements_status_error' => 'Erro', - 'requirements_status_warning' => 'Aviso', - 'requirements_status_ready' => 'Preparado', - - 'license_agreement_header' => 'Condições Gerais de Venda ("CGV")', - 'license_agreement_info' => 'Encontras aqui as nossas Condições Gerais de Venda. Para continuares a instalação do Shopware 6, deves começar por ler as CGV e, em seguida, aceitá-las. A Edição Community do Shopware 6 é disponibilizada ao abrigo das condições da licença MIT.', - 'license_agreement_error' => 'Aceita as nossas CGV!', - 'license_agreement_checkbox' => 'Aceito as CGV!', - - 'database-configuration_header' => 'Configurar base de dados', - 'database-configuration_field_host' => 'Servidor:', - 'database-configuration_advanced_settings' => 'Configurações avançadas', - 'database-configuration_field_port' => 'Porta:', - 'database-configuration_field_user' => 'Utilizador:', - 'database-configuration_field_password' => 'Palavra-passe:', - 'database-configuration_field_database' => 'Nome da base de dados:', - 'database-configuration_field_new_database' => 'Nova base de dados:', - 'database-configuration_info' => 'Para instalares o Shopware no teu sistema, necessitas dos dados de acesso à tua base de dados. Se não tiveres a certeza do que deves registar aqui, contacta o teu Administrador / Hoster.', - 'database-configuration-create_new_database' => 'Criar nova base de dados', - 'database-configuration_non_empty_database' => 'A base de dados selecionada já contém dados. Seleciona uma base de dados vazia ou cria uma nova.', - 'database-configuration_error_required_fields' => 'Preenche todos os campos.', - 'database-import_header' => 'Instalação', - 'database-import_skip_import' => 'Saltar', - 'database-import_progress' => 'Progressão: ', - 'database-import-hint' => 'Nota: Se já existirem tabelas de Shopware na base de dados configurada, estas serão eliminadas através da instalação/atualização!', - 'database-import_info_text' => 'O Shopware 6 está a ser instalado na base de dados que selecionaste. Este processo pode demorar alguns minutos, dependendo do teu sistema.', - 'database_import_success' => 'O Shopware 6 foi instalado com sucesso.', - 'database_import_install_label' => 'Instalação da base de dados:', - 'database_import_install_step_text' => 'Passo', - 'database_import_install_from_text' => 'de', - - 'migration_counter_text_migrations' => 'A atualização da base de dados está a ser executada', - 'migration_counter_text_snippets' => 'Os módulos de texto estão a ser atualizados', - 'migration_update_success' => 'A base de dados foi importada com sucesso!', - - 'edition_header' => 'Já tens uma licença de Shopware?', - 'edition_info' => 'O Shopware está disponível na Edição Community gratuita e também nas Edições Professional e Enterprise, que são pagas.', - 'edition_ce' => 'Não, desejo utilizar a Edição Community gratuita.', - 'edition_cm' => 'Sim, tenho uma licença Shopware paga (Professional ou Enterprise).', - 'edition_license' => 'Indica aqui o teu código de licença. Encontra-lo na tua conta do Shopware, em "Licenças" → "Licenças de produto" → "Pormenores / Download":', - 'edition_license_error' => 'Para a instalação de uma versão de Shopware paga, é necessária uma licença válida.', - - 'configuration_header' => 'Configuração', - 'configuration_sconfig_text' => 'Faz-se depressa. Agora só precisas de definir algumas configurações básicas para a tua loja, para terminar a instalação.', - 'configuration_sconfig_name' => 'Nome da loja', - 'configuration_sconfig_name_info' => 'Indica o nome da tua loja', - 'configuration_sconfig_mail' => 'Endereço de e-mail da loja:', - 'configuration_sconfig_mail_info' => 'Indica o endereço eletrónico de onde vão ser enviados e-mails', - 'configuration_sconfig_domain' => 'Domínio da loja:', - 'configuration_sconfig_language' => 'Idioma padrão do sistema:', - 'configuration_sconfig_currency' => 'Moeda padrão:', - 'configuration_sconfig_currency_info' => 'Esta é a moeda utilizada por norma para os preços dos produtos.', - 'configuration_admin_currency_eur' => 'Euro', - 'configuration_admin_currency_usd' => 'Dólar (EUA)', - 'configuration_admin_currency_gbp' => 'Libra esterlina (RU)', - 'configuration_admin_currency_pln' => 'Zloty polonês', - 'configuration_admin_currency_chf' => 'Franco suíço', - 'configuration_admin_currency_sek' => 'Coroa sueca', - 'configuration_admin_currency_dkk' => 'Coroa dinamarquesa', - 'configuration_admin_currency_nok' => 'Coroa norueguesa', - 'configuration_admin_currency_czk' => 'Coroa checa', - 'configuration_admin_username' => 'Nome de utilizador do Admin:', - 'configuration_admin_mail' => 'Endereço de e-mail do Admin:', - 'configuration_admin_firstName' => 'Nome do Admin:', - 'configuration_admin_lastName' => 'Apelido do Admin:', - 'configuration_defaults_warning' => 'O idioma padrão e a moeda padrão do sistema não podem ser alterados posteriormente.', - 'configuration_email_help_text' => 'Este endereço de e-mail é utilizado para enviar e-mails da loja.', - 'configuration_admin_currency_headline' => 'Moedas disponíveis', - 'configuration_admin_currency_text' => 'Adicione mais moedas à sua loja de lojinhas. Se você quiser adicionar moedas depois, você pode fazer isso a qualquer momento na administração.', - 'configuration_admin_language_de' => 'Alemão', - 'configuration_admin_language_en' => 'Inglês', - 'configuration_admin_password' => 'Palavra-passe do Admin:', - - 'finish_header' => 'Instalação concluída', - 'finish_info' => 'Instalaste o Shopware com sucesso!', - 'finish_info_heading' => 'Boa!', - 'finish_first_steps' => 'Guia "Primeiros Passos"', - 'finish_frontend' => 'Para a montra', - 'finish_backend' => 'Para a Administration (administração)', - 'finish_message' => ' -

- Bem-vindo ao Shopware, -

-

- temos muito gosto em te receber na nossa Community. Instalaste o Shopware com sucesso. -

A tua loja já está pronta para funcionar. Caso ainda não tenhas muita experiência no Shopware, recomendamos o guia "Primeiros passos no Shopware". Quando iniciares sessão pela primeira vez como Administrador, o nosso First Run Wizard irá guiar-te para a configuração básica da tua loja.

-

Desejamos-te o maior sucesso com a tua nova loja online!

', -]; diff --git a/Install/data/lang/sv.php b/Install/data/lang/sv.php deleted file mode 100644 index 4140c0ce5..000000000 --- a/Install/data/lang/sv.php +++ /dev/null @@ -1,142 +0,0 @@ - 'Installation', - 'menuitem_language-selection' => 'Start', - 'menuitem_requirements' => 'Systemkrav', - 'menuitem_database-configuration' => 'Databas-Konfiguration', - 'menuitem_database-import' => 'Installation', - 'menuitem_edition' => 'Shopware-Licens', - 'menuitem_configuration' => 'Konfiguration', - 'menuitem_finish' => 'Klart', - 'menuitem_license' => 'Allmänna affärsvillkor', - 'license_incorrect' => 'Den angivna licensnyckeln är ogiltig.', - 'license_does_not_match' => 'Den angivna licensnyckeln matchar inte någon kommersiell Shopware-version', - 'license_domain_error' => 'Den angivna licensnyckeln är ogiltig för domänen: ', - 'version_text' => 'Version:', - 'back' => 'Tillbaka', - 'forward' => 'Vidare', - 'start' => 'Start', - 'start_installation' => 'Starta installation', - - 'select_language_de' => 'Tyska', - 'select_language_en' => 'Engelska', - 'select_language_nl' => 'Nederländska', - 'select_language_it' => 'Italienska', - 'select_language_fr' => 'Franska', - 'select_language_es' => 'Spanska', - 'select_language_pt' => 'Portugisiska', - 'select_language_pl' => 'Putsa', - 'select_language_cs' => 'Tjeck', - 'select_language_sv' => 'Svenska', - - 'language-selection_welcome_title' => 'Välkommen till Shopware 6', - 'language-selection_select_language' => 'Installationsguidens språk', - 'language-selection_header' => 'Din Shopware-installation', - 'language-selection_info_message' => 'Detta val gäller endast för språket i installationsguiden. Du kan definiera systemets standardspråk i din butik senare.', - 'language-selection_welcome_message' => 'Vi är glada över att du vill vara en del av vår världsomspännande Shopware Community! Nu följer vi dig steg för steg genom installationsprocessen. Om du har frågor, vänligen se först efter svar i vårt Forum, kontakta oss på telefon på telefonnummer (+49) 2555 928850 eller skriv till oss via e-mail.', - - 'requirements_header' => 'Systemkrav', - 'requirements_header_files' => 'Filer och kataloger', - 'requirements_header_system' => 'System', - 'requirements_files_info' => 'Följande filer och kataloger måste finnas tillgängliga och får inte vara skrivskyddade.', - 'requirements_table_files_col_check' => 'Fil/Katalog', - 'requirements_table_files_col_status' => 'Status', - 'requirements_error' => 'Samtliga krav för en framgångsrik installation är inte uppfyllda.', - 'requirements_error_title' => 'Ditt system är inte klart för Shopware 6', - 'requirements_success' => 'Samtliga krav för en framgångsrik installation är uppfyllda.', - 'requirements_success_title' => 'Ditt system är klart för Shopware 6', - 'requirements_php_info' => 'Din server bör uppfylla följande systemkrav för att kunna använda Shopware till fullo.', - 'requirements_php_max_compatible_version' => 'Denna version av Shopware stöder PHP upp till version %s. Full funktionalitet kan inte garanteras med nyare PHP-versioner.', - 'requirements_system_col_check' => 'Krav', - 'requirements_system_col_required' => 'Krävs', - 'requirements_system_col_found' => 'Ditt system', - 'requirements_system_col_status' => 'Status', - 'requirements_show_all' => '(visa allt)', - 'requirements_hide_all' => '(dölj allt)', - 'requirements_status_error' => 'Fel', - 'requirements_status_warning' => 'Varning', - 'requirements_status_ready' => 'Klart', - - 'license_agreement_header' => 'Allmänna affärsvillkor', - 'license_agreement_info' => 'Här hittar du våra allmänna affärsvillkor. Om du vill fortsätta att installera Shopware 6, måste du först läsa och acceptera de allmänna affärsvillkoren. Community Edition av Shopware 6 släpps under villkoren för MIT-licensen.', - 'license_agreement_error' => 'Vänligen godkänn våra allmänna affärsvillkor!', - 'license_agreement_checkbox' => 'Jag godkänner de allmänna affärsvillkoren!', - - 'database-configuration_header' => 'Konfigurera databasen', - 'database-configuration_field_host' => 'Server:', - 'database-configuration_advanced_settings' => 'Avancerade inställningar', - 'database-configuration_field_port' => 'Port:', - 'database-configuration_field_user' => 'Användare:', - 'database-configuration_field_password' => 'Lösenord:', - 'database-configuration_field_database' => 'Databas, namn:', - 'database-configuration_field_new_database' => 'Ny databas:', - 'database-configuration_info' => 'För att kunna installera Shopware på ditt system behöver du åtkomstdata till din databas. Om du inte är säker på vad du ska ange här, vänligen kontakta din administratör/värd.', - 'database-configuration-create_new_database' => 'Skapa ny databas', - 'database-configuration_non_empty_database' => 'Den valda databasen innehåller redan data. Välj en tom databas eller skapa en ny.', - 'database-configuration_error_required_fields' => 'Vänligen fyll i alla fält.', - 'database-import_header' => 'Installation', - 'database-import_skip_import' => 'Hoppa över', - 'database-import_progress' => 'Gå vidare: ', - 'database-import-hint' => 'Råd: Om det redan finns Shopware-tabeller i den konfigurerade databasen tas dessa bort av installationen/uppdateringen!', - 'database-import_info_text' => 'Shopware 6 kommer att installeras i den databas du har valt. Denna process kan ta några minuter, beroende på ditt system.', - 'database_import_success' => 'Shopware 6 installerades framgångsrikt!', - 'database_import_install_label' => 'Databasinstallation:', - 'database_import_install_step_text' => 'Steg', - 'database_import_install_from_text' => 'från', - - 'migration_counter_text_migrations' => 'Databasuppdatering utförs', - 'migration_counter_text_snippets' => 'Textmoduler uppdateras', - 'migration_update_success' => 'Databasen importerades framgångsrikt!', - - 'edition_header' => 'Har du redan en Shopware-licens?', - 'edition_info' => 'Shopware finns i en gratis Community Edition samt i en avgiftsbelagd Professional & Enterprise Edition.', - 'edition_ce' => 'Nej jag vill använda den kostnadsfria versionen Community Edition.', - 'edition_cm' => 'Ja, jag har en avgiftsbelagd Shopware-licens (Professional eller Enterprise).', - 'edition_license' => 'Ange din licensnyckel här. Du hittar denna på ditt Shopware-konto under ”Licenser” → ”Produktlicenser” → ”Detaljer/Download”:', - 'edition_license_error' => 'För att installera en betalversion av Shopware krävs en giltig licens.', - - 'configuration_header' => 'Konfiguration', - 'configuration_sconfig_text' => 'Nästan färdigt. Nu behöver du bara ställa in några grundinställningar för din butik, därefter är installationen klar.', - 'configuration_sconfig_name' => 'Butiksnamn', - 'configuration_sconfig_name_info' => 'Vänligen ange ett namn för din butik eller shop', - 'configuration_sconfig_mail' => 'Butikens e-postadress:', - 'configuration_sconfig_mail_info' => 'Ange e-postadressen för utgående e-postmeddelanden', - 'configuration_sconfig_domain' => 'Shop-domän:', - 'configuration_sconfig_language' => 'Systemstandardspråk:', - 'configuration_sconfig_currency' => 'Standardvaluta:', - 'configuration_sconfig_currency_info' => 'Denna valuta används som standard för produktpriser.', - 'configuration_admin_currency_eur' => 'Euro', - 'configuration_admin_currency_usd' => 'Dollar (US)', - 'configuration_admin_currency_gbp' => 'Brittiska pund (GBP)', - 'configuration_admin_currency_pln' => 'Polsk złoty', - 'configuration_admin_currency_chf' => 'Schweizisk franc', - 'configuration_admin_currency_sek' => 'Svensk krona', - 'configuration_admin_currency_dkk' => 'Dansk krona', - 'configuration_admin_currency_nok' => 'Norsk krona', - 'configuration_admin_currency_czk' => 'Tjeckisk krona', - 'configuration_admin_username' => 'Admin-Login-Namn:', - 'configuration_admin_mail' => 'Admin-e-postadress:', - 'configuration_admin_firstName' => 'Admin-förnamn:', - 'configuration_admin_lastName' => 'Admin-efternamn:', - 'configuration_defaults_warning' => 'Systemets standardspråk och standardvaluta kan inte ändras senare.', - 'configuration_email_help_text' => 'Den här e-postadressen kommer att användas för utgående e-postmeddelanden.', - 'configuration_admin_language_de' => 'Tyska', - 'configuration_admin_language_en' => 'Engelska', - 'configuration_admin_password' => 'Admin-lösenord:', - - 'finish_header' => 'Installationen slutförd', - 'finish_info' => 'Du har framgångsrikt installerat Shopware!', - 'finish_info_heading' => 'Juhu!', - 'finish_first_steps' => '”Komma igång”-guide', - 'finish_frontend' => 'Till Storefront', - 'finish_backend' => 'Till Administration', - 'finish_message' => ' -

- Hjärtligt välkommen till Shopware, -

-

- vi är glada att få välkomna dig i vår Community. Du har framgångsrikt installerat Shopware. -

Din butik är nu klar för användning. Om Shopware är nytt för dig rekommenderar vi guiden ”Kom igång med Shopware”. När du registrerar dig för första gången i administrationen kommer vår ”First Run Wizard” att guida dig genom den grundläggande installationen av din butik.

-

Vi hoppas att du får både roligt och har framgång med din nya onlinebutik!

', -]; diff --git a/Install/index.php b/Install/index.php deleted file mode 100644 index 6c6a4e639..000000000 --- a/Install/index.php +++ /dev/null @@ -1,74 +0,0 @@ - platform only - $rootDir = dirname($parent); -} - -$lockFile = $rootDir . '/install.lock'; - -if (is_file($lockFile)) { - header('Content-type: text/html; charset=utf-8', true, 503); - echo '

Der Installer wurde bereits ausgeführt.

Wenn Sie den Installationsvorgang erneut ausführen möchten, löschen Sie die Datei install.lock!


'; - echo '

The installation process has already been finished.

If you want to run the installation process again, delete the file install.lock!'; - exit; -} - -// Check the minimum required php version -if (\PHP_VERSION_ID < 70403) { - header('Content-type: text/html; charset=utf-8', true, 503); - echo '

Fehler

'; - echo 'Auf Ihrem Server läuft PHP version ' . \PHP_VERSION . ', Shopware 6 benötigt mindestens PHP 7.4.3.'; - echo '

Error

'; - echo 'Your server is running PHP version ' . \PHP_VERSION . ' but Shopware 6 requires at least PHP 7.4.3.'; - exit; -} - -error_reporting(\E_ALL & ~\E_DEPRECATED); -ini_set('display_errors', '1'); -date_default_timezone_set('UTC'); -set_time_limit(0); - -use Shopware\Core\HttpKernel; -use Shopware\Recovery\Install\Console\Application; -use Symfony\Component\Console\Input\ArgvInput; -use Symfony\Component\Dotenv\Dotenv; - -require_once dirname(__DIR__) . '/autoload.php'; - -$classLoader = require $rootDir . '/vendor/autoload.php'; -$kernel = new HttpKernel('prod', false, $classLoader); -$kernel->setPluginLoader(new \Shopware\Core\Framework\Plugin\KernelPluginLoader\ComposerPluginLoader($classLoader)); - -if (file_exists($rootDir . '/.env')) { - (new Dotenv())->usePutenv()->bootEnv($rootDir . '/.env'); -} - -if (!\Shopware\Core\DevOps\Environment\EnvironmentHelper::hasVariable('DATABASE_URL')) { - // Dummy setting to be able to boot the kernel - $_SERVER['DATABASE_URL'] = 'mysql://_placeholder.test'; -} - -if (\PHP_SAPI === 'cli') { - $input = new ArgvInput(); - $env = $input->getParameterOption(['--env', '-e'], 'production'); - - return (new Application($env, $kernel->getKernel()))->run($input); -} - -//the execution time will be increased, because the import can take a while -ini_set('max_execution_time', '120'); - -require_once __DIR__ . '/src/app.php'; -getApplication($kernel->getKernel())->run(); diff --git a/Install/ping.php b/Install/ping.php deleted file mode 100644 index 8505bfc1e..000000000 --- a/Install/ping.php +++ /dev/null @@ -1,11 +0,0 @@ -setName('install'); - $this->setDescription('Installs and does the initial configuration of Shopware'); - - $this->addDbOptions(); - $this->addShopOptions(); - $this->addAdminOptions(); - } - - /** - * {@inheritdoc} - */ - protected function execute(InputInterface $input, OutputInterface $output): int - { - $this->IOHelper = new IOHelper( - $input, - $output, - $this->getHelper('question') - ); - - /** @var Container $container */ - $container = $this->container = $this->getApplication()->getContainer(); - $container->offsetSet('install.language', 'en'); - $container->offsetGet('shopware.notify')->doTrackEvent('Installer started'); - - if ($this->IOHelper->isInteractive()) { - $this->printStartMessage(); - } - - $this->checkRequirements($container); - - /** @var JwtCertificateService $jwtCertificateService */ - $jwtCertificateService = $container->offsetGet('jwt_certificate.writer'); - $jwtCertificateService->generate(); - - $connectionInfo = DatabaseConnectionInformation::fromCommandInputs($input); - $connectionInfo = $this->getConnectionInfoFromInteractiveShell( - $this->IOHelper, - $connectionInfo - ); - - $conn = $this->initDatabaseConnection($connectionInfo, $container); - $databaseInitializer = new DatabaseInitializer($conn); - $databaseInitializer->createDatabase($connectionInfo->getDatabaseName()); - - $conn->executeStatement('USE `' . $connectionInfo->getDatabaseName() . '`'); - - /** @var BlueGreenDeploymentService $blueGreenDeploymentService */ - $blueGreenDeploymentService = $container->offsetGet('blue.green.deployment.service'); - $blueGreenDeploymentService->setEnvironmentVariable(); - - $skipImport = $databaseInitializer->hasShopwareTables($connectionInfo->getDatabaseName()) - && $input->getOption('no-skip-import') - && $this->shouldSkipImport(); - - if (!$skipImport) { - $this->importDatabase($databaseInitializer, $connectionInfo->getDatabaseName()); - } - - $shop = new Shop(); - $shop = $this->getShopInfoFromArgs($input, $shop); - $shop = $this->getShopInfoFromInteractiveShell($shop); - - /** @var EnvConfigWriter $configWriter */ - $configWriter = $this->container->offsetGet('config.writer'); - $configWriter->writeConfig($connectionInfo, $shop); - - if ($this->IOHelper->isInteractive() && !$this->webserverCheck($container, $shop)) { - $this->IOHelper->writeln('Could not verify'); - if (!$this->IOHelper->askConfirmation('Continue?')) { - return self::FAILURE; - } - } - - $adminUser = new AdminUser(); - if (!$input->getOption('skip-admin-creation')) { - $adminUser = $this->getAdminInfoFromArgs($input, $adminUser); - $adminUser = $this->getAdminInfoFromInteractiveShell($adminUser); - } - - /** @var ShopService $shopService */ - $shopService = $container->offsetGet('shop.service'); - $shopService->updateShop($shop); - - if (!$input->getOption('skip-admin-creation')) { - $adminService = $container->offsetGet('admin.service'); - $adminService->createAdmin($adminUser); - } - - /** @var \Shopware\Recovery\Common\SystemLocker $systemLocker */ - $systemLocker = $this->container->offsetGet('system.locker'); - $systemLocker(); - - $additionalInformation = [ - 'method' => 'console', - ]; - - $container->offsetGet('shopware.notify')->doTrackEvent('Installer finished', $additionalInformation); - - if ($this->IOHelper->isInteractive()) { - $this->IOHelper->writeln('Shop successfully installed.'); - } - - return self::SUCCESS; - } - - protected function checkRequirements(Container $container): void - { - $shopwareSystemCheck = $container->offsetGet('install.requirements'); - $systemCheckResults = $shopwareSystemCheck->toArray(); - - $hasError = false; - - foreach ($systemCheckResults['checks'] as $checkResult) { - $status = $checkResult['status']; - if ($status === 'ok') { - continue; - } - - if ($status === 'error') { - $hasError = true; - } - - $this->IOHelper->writeln(sprintf( - '%s: %s %s%s required. %s', - $status, - $checkResult['group'], - $checkResult['name'], - $checkResult['required'] === '1' ? '' : (' ' . $checkResult['required']), - $checkResult['notice'] - )); - } - - // TODO: check paths - - if ($hasError) { - exit(1); - } - } - - /** - * @return bool - */ - protected function webserverCheck(Container $container, Shop $shop) - { - /** @var WebserverCheck $webserverCheck */ - $webserverCheck = $container->offsetGet('webserver.check'); - $pingUrl = $webserverCheck->buildPingUrl($shop); - - try { - $this->IOHelper->writeln('Checking ping to: ' . $pingUrl); - $webserverCheck->checkPing($shop); - } catch (\Exception $e) { - $this->IOHelper->writeln('Could not verify web server' . $e->getMessage()); - - return false; - } - - return true; - } - - /** - * @param string[] $locales - * - * @throws \RuntimeException - * - * @return string - */ - protected function askForAdminLocale($locales) - { - $question = new ChoiceQuestion('Please select your admin locale', $locales); - $question->setErrorMessage('Locale %s is invalid.'); - - $shopLocale = $this->IOHelper->ask($question); - - return $shopLocale; - } - - /** - * @param string[] $locales - * - * @return string - */ - protected function askForShopShopLocale($locales, $default = null) - { - $question = new ChoiceQuestion('Please select your shop locale', $locales, $default); - $question->setErrorMessage('Locale %s is invalid.'); - - $shopLocale = $this->IOHelper->ask($question); - - return $shopLocale; - } - - /** - * @return AdminUser - */ - protected function getAdminInfoFromArgs(InputInterface $input, AdminUser $adminUser) - { - $adminUser->username = $input->getOption('admin-username'); - $adminUser->email = $input->getOption('admin-email'); - $adminUser->password = $input->getOption('admin-password'); - $adminUser->locale = $input->getOption('admin-locale'); - $adminUser->firstName = $input->getOption('admin-firstname'); - $adminUser->lastName = $input->getOption('admin-lastname'); - - if ($adminUser->locale && !\in_array($adminUser->locale, Locale::getValidLocales(), true)) { - throw new \RuntimeException('Invalid admin-locale provided'); - } - - return $adminUser; - } - - /** - * @return AdminUser - */ - protected function getAdminInfoFromInteractiveShell(AdminUser $adminUser) - { - if (!$this->IOHelper->isInteractive()) { - return $adminUser; - } - $this->IOHelper->cls(); - $this->IOHelper->writeln('=== Admin Information ==='); - - $question = new Question('Admin username (demo): ', 'demo'); - $adminUsername = $this->IOHelper->ask($question); - - $question = new Question('Admin first name (John): ', 'John'); - $adminFirstName = $this->IOHelper->ask($question); - - $question = new Question('Admin last name (Doe): ', 'Doe'); - $adminLastName = $this->IOHelper->ask($question); - - $question = new Question('Admin email (your.email@shop.com): ', 'your.email@shop.com'); - $adminEmail = $this->IOHelper->ask($question); - - $question = new Question('Admin password (demo): ', 'demo'); - $adminPassword = $this->IOHelper->ask($question); - - $adminLocale = $this->askForAdminLocale(Locale::getValidLocales()); - - $adminUser->username = $adminUsername; - $adminUser->email = $adminEmail; - $adminUser->password = $adminPassword; - $adminUser->locale = $adminLocale; - $adminUser->firstName = $adminFirstName; - $adminUser->lastName = $adminLastName; - - return $adminUser; - } - - protected function getShopInfoFromInteractiveShell(Shop $shop): Shop - { - if (!$this->IOHelper->isInteractive()) { - return $shop; - } - - $this->IOHelper->cls(); - $this->IOHelper->writeln('=== Shop Information ==='); - - $shop->locale = $this->askForShopShopLocale(Locale::getValidLocales(), $shop->locale); - $shop->host = $this->IOHelper->ask(sprintf('Shop host (%s): ', $shop->host), $shop->host); - $shop->basePath = $this->IOHelper->ask(sprintf('Shop base path (%s): ', $shop->basePath), $shop->basePath); - $shop->name = $this->IOHelper->ask(sprintf('Shop name (%s): ', $shop->name), $shop->name); - $shop->email = $this->IOHelper->ask(sprintf('Shop email (%s): ', $shop->email), $shop->email); - - $question = new ChoiceQuestion( - sprintf('Shop currency (%s): ', $shop->currency), - Currency::getValidCurrencies(), - $shop->currency - ); - $question->setErrorMessage('Currency %s is invalid.'); - $shop->currency = $this->IOHelper->ask($question); - $shop->country = $this->IOHelper->ask(sprintf('Shop default country (%s): ', $shop->country), $shop->country); - - return $shop; - } - - protected function getShopInfoFromArgs(InputInterface $input, Shop $shop): Shop - { - $shop->name = $input->getOption('shop-name'); - $shop->email = $input->getOption('shop-email'); - $shop->host = $input->getOption('shop-host'); - $shop->basePath = $input->getOption('shop-path'); - $shop->locale = $input->getOption('shop-locale'); - $shop->currency = $input->getOption('shop-currency'); - $shop->country = $input->getOption('shop-country'); - - if ($shop->locale && !\in_array($shop->locale, Locale::getValidLocales(), true)) { - throw new \RuntimeException('Invalid shop-locale provided'); - } - - return $shop; - } - - protected function initDatabaseConnection(DatabaseConnectionInformation $connectionInfo, Container $container): Connection - { - $connection = DatabaseConnectionFactory::createConnection($connectionInfo, true); - - $container->offsetSet('dbal', $connection); - - return $connection; - } - - protected function shouldSkipImport(): bool - { - if (!$this->IOHelper->isInteractive()) { - return true; - } - - $question = new ConfirmationQuestion( - 'The database already contains shopware tables. Skip import? (yes/no) [yes]', - true - ); - $skipImport = $this->IOHelper->ask($question); - - return (bool) $skipImport; - } - - protected function getConnectionInfoFromInteractiveShell( - IOHelper $IOHelper, - DatabaseConnectionInformation $connectionInfo - ): DatabaseConnectionInformation { - if (!$IOHelper->isInteractive()) { - return $connectionInfo; - } - - $IOHelper->writeln('=== Database configuration ==='); - $databaseInteractor = new DatabaseInteractor($IOHelper); - - $connectionInfo = $databaseInteractor->askDatabaseConnectionInformation( - $connectionInfo - ); - - do { - $connection = null; - - try { - $connection = DatabaseConnectionFactory::createConnection($connectionInfo, true); - } catch (\Doctrine\DBAL\Exception $e) { - $IOHelper->writeln(''); - $IOHelper->writeln(sprintf('Got database error: %s', $e->getMessage())); - $IOHelper->writeln(''); - - $connectionInfo = $databaseInteractor->askDatabaseConnectionInformation( - $connectionInfo - ); - } - } while (!$connection); - - $databaseInitializer = new DatabaseInitializer($connection); - - $ignoredSchemas = ['information_schema', 'mysql', 'sys', 'performance_schema']; - $databaseNames = $databaseInitializer->getExistingDatabases($ignoredSchemas); - - $defaultChoice = null; - if ($connectionInfo->getDatabaseName()) { - if (\in_array($connectionInfo->getDatabaseName(), $databaseNames, true)) { - $defaultChoice = array_search($connectionInfo->getDatabaseName(), $databaseNames, true); - } - } - - $choices = $databaseNames; - array_unshift($choices, '[create new database]'); - $question = new ChoiceQuestion('Please select your database', $choices, $defaultChoice); - $question->setErrorMessage('Database %s is invalid.'); - $databaseName = $databaseInteractor->askQuestion($question); - - if ($databaseName === $choices[0]) { - $databaseName = $databaseInteractor->createDatabase($databaseInitializer); - } - - if (!$databaseInteractor->continueWithExistingTables($databaseName, $databaseInitializer)) { - $IOHelper->writeln('Installation aborted.'); - - exit; - } - - $connectionInfo->setDatabaseName($databaseName); - - return $connectionInfo; - } - - private function addDbOptions(): void - { - $this - ->addOption( - 'db-host', - null, - InputOption::VALUE_REQUIRED, - 'Database host', - 'localhost' - ) - ->addOption( - 'db-port', - null, - InputOption::VALUE_REQUIRED, - 'Database port', - '3306' - ) - ->addOption( - 'db-user', - null, - InputOption::VALUE_REQUIRED, - 'Database user' - ) - ->addOption( - 'db-password', - null, - InputOption::VALUE_REQUIRED, - 'Database password' - ) - ->addOption( - 'db-name', - null, - InputOption::VALUE_REQUIRED, - 'Database name' - ) - - ->addOption( - 'no-skip-import', - null, - InputOption::VALUE_NONE, - 'Import database data even if a valid schema already exists' - ) - - ->addOption( - 'db-ssl-ca', - null, - InputOption::VALUE_OPTIONAL, - 'Database SSL CA path' - ) - - ->addOption( - 'db-ssl-cert', - null, - InputOption::VALUE_OPTIONAL, - 'Database SSL Cert path' - ) - - ->addOption( - 'db-ssl-key', - null, - InputOption::VALUE_OPTIONAL, - 'Database SSL Key path' - ) - - ->addOption( - 'db-ssl-dont-verify-cert', - null, - InputOption::VALUE_OPTIONAL, - 'Don\'t verify server cert' - ) - ; - } - - private function addShopOptions(): void - { - $this - ->addOption( - 'shop-locale', - null, - InputOption::VALUE_REQUIRED, - 'Shop locale' - ) - ->addOption( - 'shop-host', - null, - InputOption::VALUE_REQUIRED, - 'Shop host', - 'localhost' - ) - ->addOption( - 'shop-path', - null, - InputOption::VALUE_REQUIRED, - 'Shop path' - ) - ->addOption( - 'shop-name', - null, - InputOption::VALUE_REQUIRED, - 'Shop name', - 'Demo shop' - ) - ->addOption( - 'shop-email', - null, - InputOption::VALUE_REQUIRED, - 'Shop email address', - 'your.email@shop.com' - ) - ->addOption( - 'shop-currency', - null, - InputOption::VALUE_REQUIRED, - 'Shop currency' - ) - ->addOption( - 'shop-country', - null, - InputOption::VALUE_REQUIRED, - 'Expects an ISO-3166 three-letter country-code. This parameter sets the default country for the default sales-channel.', - 'GBR' - ) - ; - } - - private function addAdminOptions(): void - { - $this - ->addOption( - 'skip-admin-creation', - null, - InputOption::VALUE_NONE, - 'If provided, no admin user will be created.' - ) - - ->addOption( - 'admin-username', - null, - InputOption::VALUE_REQUIRED, - 'Administrator username' - ) - ->addOption( - 'admin-password', - null, - InputOption::VALUE_REQUIRED, - 'Administrator password' - ) - ->addOption( - 'admin-email', - null, - InputOption::VALUE_REQUIRED, - 'Administrator email address' - ) - ->addOption( - 'admin-locale', - null, - InputOption::VALUE_REQUIRED, - 'Administrator locale' - ) - ->addOption( - 'admin-firstname', - null, - InputOption::VALUE_REQUIRED, - 'Administrator firstname' - ) - ->addOption( - 'admin-lastname', - null, - InputOption::VALUE_REQUIRED, - 'Administrator lastname' - ) - ; - } - - private function importDatabase(DatabaseInitializer $databaseInitializer, string $database): void - { - $this->IOHelper->cls(); - $this->IOHelper->writeln('=== Import Database ==='); - - $databaseInitializer->initializeShopwareDb($database); - - $this->runMigrations(); - } - - private function runMigrations(): void - { - /** @var MigrationCollectionLoader $migrationCollectionLoader */ - $migrationCollectionLoader = $this->container->offsetGet('migration.collection.loader'); - - $coreMigrations = $migrationCollectionLoader->collectAllForVersion( - $this->container->offsetGet('shopware.version'), - MigrationCollectionLoader::VERSION_SELECTION_ALL - ); - - $coreMigrations->sync(); - - $total = \count($coreMigrations->getExecutableMigrations()); - - $progress = $this->IOHelper->createProgressBar($total); - $progress->setRedrawFrequency(20); - $progress->start(); - - foreach ($coreMigrations->migrateInSteps() as $null) { - $coreMigrations->migrateDestructiveInPlace(null, 1); - $progress->advance(); - } - - $progress->finish(); - $this->IOHelper->writeln(''); - } - - private function printStartMessage(): void - { - $version = $this->container->offsetGet('shopware.version'); - - $this->IOHelper->cls(); - $this->IOHelper->printBanner(); - $this->IOHelper->writeln(sprintf('Welcome to the Shopware %s installer', $version)); - $this->IOHelper->writeln(''); - $this->IOHelper->ask(new Question('Press return to start installation.')); - $this->IOHelper->cls(); - } -} diff --git a/Install/src/Console/Application.php b/Install/src/Console/Application.php deleted file mode 100644 index 305f04608..000000000 --- a/Install/src/Console/Application.php +++ /dev/null @@ -1,80 +0,0 @@ -boot(); - - $config = require __DIR__ . '/../../config/' . $env . '.php'; - $this->container = new Container(); - $this->container->offsetSet('shopware.kernel', $kernel); - $this->container->register(new ContainerProvider($config)); - - $this->getDefinition()->addOption(new InputOption('--env', '-e', InputOption::VALUE_REQUIRED, 'The Environment name.', $env)); - } - - /** - * @return Container - */ - public function getContainer() - { - return $this->container; - } - - /** - * Overridden so that the application doesn't expect the command - * name to be the first argument. - */ - public function getDefinition() - { - $inputDefinition = parent::getDefinition(); - // clear out the normal first argument, which is the command name - $inputDefinition->setArguments(); - - return $inputDefinition; - } - - /** - * Gets the name of the command based on input. - * - * @param InputInterface $input The input interface - * - * @return string The command name - */ - protected function getCommandName(InputInterface $input) - { - // This should return the name of your command. - return 'install'; - } - - /** - * Gets the default commands that should always be available. - * - * @return array An array of default Command instances - */ - protected function getDefaultCommands() - { - // Keep the core default commands to have the HelpCommand - // which is used when using the --help option - $defaultCommands = parent::getDefaultCommands(); - - $defaultCommands[] = new InstallCommand(); - - return $defaultCommands; - } -} diff --git a/Install/src/ContainerProvider.php b/Install/src/ContainerProvider.php deleted file mode 100644 index a569e5607..000000000 --- a/Install/src/ContainerProvider.php +++ /dev/null @@ -1,229 +0,0 @@ -config = $config; - } - - /** - * {@inheritdoc} - */ - public function register(Container $container): void - { - $recoveryRoot = \dirname(__DIR__, 2); - $container['config'] = $this->config; - $container['install.language'] = ''; - - $container['shopware.version'] = static function ($c) { - return $c['shopware.kernel']->getContainer()->getParameter('kernel.shopware_version'); - }; - - $container['default.env.path'] = static function () { - return SW_PATH . '/.env.defaults'; - }; - - $container['default.env'] = static function ($c) { - if (!is_readable($c['default.env.path'])) { - return []; - } - - return (new DotEnv()) - ->usePutenv(true) - ->parse(file_get_contents($c['default.env.path']), $c['default.env.path']); - }; - - $container['env.path'] = static function () { - return SW_PATH . '/.env'; - }; - - $container['env.load'] = static function ($c) { - $defaultPath = $c['default.env.path']; - $path = $c['env.path']; - - return static function () use ($defaultPath, $path): void { - if (is_readable((string) $defaultPath)) { - (new Dotenv()) - ->usePutenv(true) - ->load((string) $defaultPath); - } - if (is_readable((string) $path)) { - (new Dotenv()) - ->usePutenv(true) - ->load((string) $path); - } - }; - }; - - $container['feature.isActive'] = static function ($c) { - // load .env on first call - $c['env.load'](); - - return static function (string $featureName): bool { - return Feature::isActive($featureName); - }; - }; - - $container['slim.app'] = static function ($c) { - foreach ($c['config']['slim'] as $k => $v) { - $c[$k] = $v; - } - - return new App($c); - }; - - $container['renderer'] = static function ($c) { - return new PhpRenderer($c['config']['slim']['templates.path']); - }; - - $container['system.locker'] = static function () { - return new SystemLocker( - SW_PATH . '/install.lock' - ); - }; - - $container['translations'] = static function (Container $c) { - // load 'en' as fallback translation - $fallbackTranslation = require __DIR__ . '/../data/lang/en.php'; - - $selectedLanguage = $c->offsetGet('install.language') ?: 'en'; - $selectedTranslation = require __DIR__ . "/../data/lang/$selectedLanguage.php"; - - return array_merge($fallbackTranslation, $selectedTranslation); - }; - - $container['translation.service'] = static function (Container $c) { - return new TranslationService($c->offsetGet('translations')); - }; - - $container['http-client'] = static function () { - return new CurlClient(); - }; - - $container['install.requirements'] = static function ($c) use ($recoveryRoot) { - return new Requirements($recoveryRoot . '/Common/requirements.php', $c['translation.service']); - }; - - $container['install.requirementsPath'] = static function () use ($recoveryRoot) { - $check = new RequirementsPath(SW_PATH, $recoveryRoot . '/Common/requirements.php'); - - return $check; - }; - - $container['uniqueid.generator'] = static function () { - return new UniqueIdGenerator( - SW_PATH . '/.uniqueid.txt' - ); - }; - - $container['config.writer'] = static function ($c) { - return new EnvConfigWriter( - SW_PATH . '/.env', - $c['uniqueid.generator']->getUniqueId(), - $c['default.env'], - $c['shopware.kernel'] - ); - }; - - $container['jwt_certificate.writer'] = static function () { - return new JwtCertificateService( - SW_PATH . '/config/jwt/', - new JwtCertificateGenerator() - ); - }; - - $container['webserver.check'] = static function ($c) { - return new WebserverCheck( - $c['config']['check.ping_url'], - $c['http-client'] - ); - }; - - $container['menu.helper'] = static function ($c) { - $routes = $c['config']['menu.helper']['routes']; - - return new MenuHelper( - $c['slim.app'], - $c['translation.service'], - $routes - ); - }; - - $container['shopware.notify'] = static function ($c) { - return new Notification( - $c['config']['api.endpoint'], - $c['uniqueid.generator']->getUniqueId(), - $c['http-client'], - $c['shopware.version'] - ); - }; - - $container['dbal'] = static function (): void { - throw new \RuntimeException('Identifier dbal not initialized yet'); - }; - - $container['migration.sources'] = static function ($c) { - return MigrationSourceCollector::collect(); - }; - - $container['migration.runtime'] = static function ($c) { - return new CoreMigrationRuntime($c['dbal'], new NullLogger()); - }; - - $container['migration.collection.loader'] = static function ($c) { - $sources = $c['migration.sources']; - - return new CoreMigrationCollectionLoader($c['dbal'], $c['migration.runtime'], $sources); - }; - - $container['blue.green.deployment.service'] = static function ($c) { - return new BlueGreenDeploymentService($c['dbal']); - }; - - $container['shop.configurator'] = static function ($c) { - return new ShopConfigurator($c['dbal']); - }; - - $container['shop.service'] = static function ($c) { - return new ShopService($c['dbal'], $c['shop.configurator'], $c['shopware.kernel']->getContainer()->get(SalesChannelCreator::class)); - }; - - $container['admin.service'] = static function ($c) { - return new AdminService($c['dbal'], $c['shopware.kernel']->getContainer()->get(UserProvisioner::class)); - }; - } -} diff --git a/Install/src/DatabaseInteractor.php b/Install/src/DatabaseInteractor.php deleted file mode 100644 index d8c90af5b..000000000 --- a/Install/src/DatabaseInteractor.php +++ /dev/null @@ -1,152 +0,0 @@ -IOHelper = $IOHelper; - } - - public function askDatabaseConnectionInformation( - DatabaseConnectionInformation $connectionInformation - ): DatabaseConnectionInformation { - $databaseHost = $this->askForDatabaseHostname($connectionInformation->getHostname()); - $databasePort = $this->askForDatabasePort($connectionInformation->getPort()); - $databaseUser = $this->askForDatabaseUsername($connectionInformation->getUsername()); - $databasePassword = $this->askForDatabasePassword($connectionInformation->getPassword()); - - $dbSslCa = $this->IOHelper->ask('Please enter database SSL CA path: ', ''); - $dbSslCert = $this->IOHelper->ask('Please enter database SSL cerificate path: ', ''); - $dbSslKey = $this->IOHelper->ask('Please enter database SSL key path: ', ''); - $dbSslDontVerify = $this->IOHelper->askConfirmation(new ConfirmationQuestion('Don\'t verify database server certificate?')); - - return (new DatabaseConnectionInformation())->assign([ - 'hostname' => $databaseHost, - 'port' => $databasePort, - 'username' => $databaseUser, - 'password' => $databasePassword, - 'sslCaPath' => $dbSslCa, - 'sslCertPath' => $dbSslCert, - 'sslCertKeyPath' => $dbSslKey, - 'sslDontVerifyServerCert' => $dbSslDontVerify ? true : false, - ]); - } - - public function createDatabase(DatabaseInitializer $initializer): string - { - $question = new Question('Please enter the name database to be created: '); - $databaseName = $this->askQuestion($question); - - $initializer->createDatabase($databaseName); - - return $databaseName; - } - - /** - * @return bool|string|null - */ - public function continueWithExistingTables(string $databaseName, DatabaseInitializer $initializer) - { - $tableCount = $initializer->getTableCount($databaseName); - if ($tableCount === 0) { - return true; - } - - $question = new ConfirmationQuestion( - sprintf( - 'The database %s already contains %s tables. Continue? (yes/no) [no]', - $databaseName, - $tableCount - ), - false - ); - - return $this->askQuestion($question); - } - - /** - * @return bool|string|null - */ - public function askQuestion(Question $question) - { - return $this->IOHelper->ask($question); - } - - protected function askForDatabaseHostname(string $defaultHostname): string - { - $question = new Question(sprintf('Please enter database host (%s): ', $defaultHostname), $defaultHostname); - $question->setValidator( - function ($answer) { - if (trim((string) $answer) === '') { - throw new \Exception('The database user can not be empty'); - } - - return $answer; - } - ); - - return (string) $this->askQuestion($question); - } - - protected function askForDatabaseUsername(?string $defaultUsername): string - { - if (empty($defaultUsername)) { - $question = new Question('Please enter database user: '); - } else { - $question = new Question(sprintf('Please enter database user (%s): ', $defaultUsername), $defaultUsername); - } - - $question->setValidator( - static function ($answer) { - if (trim((string) $answer) === '') { - throw new \Exception('The database user can not be empty'); - } - - return $answer; - } - ); - - return (string) $this->askQuestion($question); - } - - protected function askForDatabasePassword(?string $defaultPassword): string - { - if (empty($defaultPassword)) { - $question = new Question('Please enter database password: '); - } else { - $question = new Question(sprintf('Please enter database password: (%s): ', $defaultPassword), $defaultPassword); - } - - return (string) $this->askQuestion($question); - } - - private function askForDatabasePort(int $defaultPort): string - { - $question = new Question(sprintf('Please enter database port (%s): ', $defaultPort), $defaultPort); - $question->setValidator( - static function ($answer) { - if (trim((string) $answer) === '') { - throw new \Exception('The database port can not be empty'); - } - - if (!is_numeric($answer)) { - throw new \Exception('The database port must be a number'); - } - - return $answer; - } - ); - - return (string) $this->askQuestion($question); - } -} diff --git a/Install/src/MenuHelper.php b/Install/src/MenuHelper.php deleted file mode 100644 index da86c144d..000000000 --- a/Install/src/MenuHelper.php +++ /dev/null @@ -1,95 +0,0 @@ -entries = $entries; - $this->slim = $slim; - $this->translator = $translator; - } - - public function printMenu(): void - { - $result = []; - $complete = true; - foreach ($this->entries as $entry) { - $active = $entry === current($this->entries); - if ($active) { - $complete = false; - } - - $key = 'menuitem_' . $entry; - $label = $this->translator->translate($key); - - $result[] = [ - 'label' => $label, - 'complete' => $complete, - 'active' => $active, - ]; - } - - echo $this->slim->getContainer()->get('renderer')->fetch('/_menu.php', ['entries' => $result]); - } - - /** - * @param string $name - * - * @throws \Exception - */ - public function setCurrent($name): void - { - if (!\in_array($name, $this->entries, true)) { - throw new \Exception('could not find entry'); - } - - reset($this->entries); - while ($name !== current($this->entries)) { - next($this->entries); - } - } - - public function getNextUrl(array $params = []): string - { - $entries = $this->entries; - $currentEntry = next($entries); - - return $this->slim->getContainer()->get('router')->pathFor($currentEntry, $params); - } - - public function getPreviousUrl(array $params = []): string - { - $entries = $this->entries; - $currentEntry = prev($entries); - - return $this->slim->getContainer()->get('router')->pathFor($currentEntry, $params); - } - - public function getCurrentUrl(array $data = [], array $queryParams = []): string - { - $entries = $this->entries; - $currentEntry = current($entries); - - return $this->slim->getContainer()->get('router')->pathFor($currentEntry, $data, $queryParams); - } -} diff --git a/Install/src/Requirements.php b/Install/src/Requirements.php deleted file mode 100644 index b5a314869..000000000 --- a/Install/src/Requirements.php +++ /dev/null @@ -1,500 +0,0 @@ -sourceFile = $sourceFile; - $this->translator = $translator; - } - - public function toArray(): array - { - $result = [ - 'hasErrors' => false, - 'hasWarnings' => false, - 'checks' => [], - 'phpVersionNotSupported' => false, - ]; - - $checks = []; - foreach ($this->runChecks() as $requirement) { - $check = []; - - $name = (string) $requirement['name']; - if ($name === 'mod_rewrite' && \PHP_SAPI === 'cli') { - continue; - } - - // Skip database checks because we don't have a db connection yet - if (isset($requirement['database'])) { - continue; - } - - if ($name === 'mod_rewrite' && isset($_SERVER['SERVER_SOFTWARE']) && mb_stripos($_SERVER['SERVER_SOFTWARE'], 'apache') === false) { - continue; - } - - $check['name'] = (string) $requirement['name']; - $check['group'] = (string) $requirement['group']; - $check['notice'] = $requirement['notice'] ?? ''; - $check['required'] = (string) $requirement['required']; - $check['version'] = (string) $requirement['version']; - $check['maxCompatibleVersion'] = $requirement['maxCompatibleVersion'] ?? ''; - $check['check'] = (bool) ($requirement['result'] ?? false); - $check['error'] = (bool) ($requirement['error'] ?? false); - - if ($check['maxCompatibleVersion'] && $check['check']) { - $check = $this->handleMaxCompatibleVersion($check); - if ($check['notice']) { - $result['phpVersionNotSupported'] = $check['notice']; - } - } - - $checks[] = $check; - } - - $checks = array_merge($checks, $this->checkOpcache()); - - foreach ($checks as $check) { - if (!$check['check'] && $check['error']) { - $check['status'] = 'error'; - $result['hasErrors'] = true; - } elseif (!$check['check']) { - $check['status'] = 'warning'; - $result['hasWarnings'] = true; - } else { - $check['status'] = 'ok'; - } - unset($check['check'], $check['error']); - - $result['checks'][] = $check; - } - - return $result; - } - - /** - * Checks a requirement - * - * @param string $name - * - * @return bool|string|int|null - */ - private function getRuntimeValue($name) - { - $m = 'check' . str_replace(' ', '', ucwords(str_replace(['_', '.'], ' ', $name))); - if (method_exists($this, $m)) { - return $this->$m(); - } - - if (\extension_loaded($name)) { - return true; - } - - if (\function_exists($name)) { - return true; - } - - if (($value = ini_get($name)) !== false) { - $value = (string) $value; - - if (mb_strtolower($value) === 'off') { - return false; - } - - if (mb_strtolower($value) === 'on') { - return true; - } - - return $value; - } - - return null; - } - - /** - * Returns the check list - * - * @return array - */ - private function runChecks() - { - $checks = include $this->sourceFile; - - $requirements = []; - - foreach ($checks['system'] as $requirement) { - $name = (string) $requirement['name']; - $value = $this->getRuntimeValue($name); - $requirement['result'] = $this->compare( - $name, - $value, - (string) $requirement['required'] - ); - $requirement['version'] = $value; - - $requirements[] = $requirement; - } - - return $requirements; - } - - /** - * Compares the requirement with the version - * - * @param string $name - * @param bool|string|null $value - * @param string $requiredValue - * - * @return bool - */ - private function compare($name, $value, $requiredValue) - { - $m = 'compare' . str_replace(' ', '', ucwords(str_replace(['_', '.'], ' ', $name))); - if (method_exists($this, $m)) { - return $this->$m($value, $requiredValue); - } - - if (!\is_string($value)) { - return (string) $requiredValue === (string) $value; - } - - if (preg_match('#^[0-9]+[A-Z]$#', $requiredValue)) { - return $this->decodePhpSize($requiredValue) <= $this->decodePhpSize($value); - } - - if (preg_match('#^[0-9]+ [A-Z]+$#i', $requiredValue)) { - return $this->decodeSize($requiredValue) <= $this->decodeSize($value); - } - - if (preg_match('#^[0-9][0-9\.]+$#', $requiredValue)) { - return version_compare($requiredValue, $value, '<='); - } - - return (string) $requiredValue === (string) $value; - } - - /** - * Checks the php version - * - * @return bool|string - */ - private function checkPhp() - { - if (mb_strpos(\PHP_VERSION, '-')) { - return mb_substr(\PHP_VERSION, 0, mb_strpos(\PHP_VERSION, '-')); - } - - return \PHP_VERSION; - } - - /** - * Checks the php version - * - * @return bool - */ - private function checkModRewrite() - { - return isset($_SERVER['MOD_REWRITE']); - } - - /** - * Checks the opcache configuration if the opcache exists. - */ - private function checkOpcache() - { - if (!\extension_loaded('Zend OPcache')) { - return []; - } - - $useCwdOption = $this->compare('opcache.use_cwd', ini_get('opcache.use_cwd'), '1'); - $opcacheRequirements = [[ - 'name' => 'opcache.use_cwd', - 'group' => 'core', - 'required' => 1, - 'version' => ini_get('opcache.use_cwd'), - 'result' => ini_get('opcache.use_cwd'), - 'notice' => '', - 'check' => $this->compare('opcache.use_cwd', ini_get('opcache.use_cwd'), '1'), - 'error' => '', - ]]; - - if (fileinode('/') > 2) { - $validateRootOption = $this->compare('opcache.validate_root', ini_get('opcache.validate_root'), '1'); - $opcacheRequirements[] = [ - 'name' => 'opcache.validate_root', - 'group' => 'core', - 'required' => 1, - 'version' => ini_get('opcache.validate_root'), - 'result' => ini_get('opcache.validate_root'), - 'notice' => '', - 'check' => $this->compare('opcache.validate_root', ini_get('opcache.validate_root'), '1'), - 'error' => '', - ]; - } - - return $opcacheRequirements; - } - - /** - * Checks the curl version - * - * @return bool|string - */ - private function checkCurl() - { - if (\function_exists('curl_version')) { - $curl = curl_version(); - - return $curl['version']; - } elseif (\function_exists('curl_init')) { - return true; - } - - return false; - } - - /** - * Checks the lib xml version - * - * @return bool|string - */ - private function checkLibXml() - { - if (\defined('LIBXML_DOTTED_VERSION')) { - return \LIBXML_DOTTED_VERSION; - } - - return false; - } - - /** - * Checks the gd version - * - * @return bool|string - */ - private function checkGd() - { - if (\function_exists('gd_info')) { - $gd = gd_info(); - if (preg_match('#[0-9.]+#', $gd['GD Version'], $match)) { - if (mb_substr_count($match[0], '.') === 1) { - $match[0] .= '.0'; - } - - return $match[0]; - } - - return $gd['GD Version']; - } - - return false; - } - - /** - * Checks the gd jpg support - * - * @return bool|string - */ - private function checkGdJpg() - { - if (\function_exists('gd_info')) { - $gd = gd_info(); - - return !empty($gd['JPEG Support']) || !empty($gd['JPG Support']); - } - - return false; - } - - /** - * Checks the freetype support - * - * @return bool|string - */ - private function checkFreetype() - { - if (\function_exists('gd_info')) { - $gd = gd_info(); - - return !empty($gd['FreeType Support']); - } - - return false; - } - - /** - * Checks the session save path config - * - * @return bool|string - */ - private function checkSessionSavePath() - { - if (\function_exists('session_save_path')) { - return (bool) session_save_path(); - } elseif (ini_get('session.save_path')) { - return true; - } - - return false; - } - - /** - * Checks the suhosin.get.max_value_length which limits the max get parameter length. - * - * @return int - */ - private function checkSuhosinGetMaxValueLength() - { - $length = (int) ini_get('suhosin.get.max_value_length'); - if ($length === 0) { - return 2000; - } - - return $length; - } - - /** - * Checks the include path config - * - * @return bool - */ - private function checkIncludePath() - { - $old = set_include_path(get_include_path() . \PATH_SEPARATOR . __DIR__ . \DIRECTORY_SEPARATOR); - - return $old && get_include_path() !== $old; - } - - /** - * Compare max execution time config - * - * @param string $version - * @param string $required - * - * @return bool - */ - private function compareMaxExecutionTime($version, $required) - { - if (!$version) { - return true; - } - - return version_compare($required, $version, '<='); - } - - /** - * Decode php size format - * - * @param string $val - * - * @return float - */ - private function decodePhpSize($val) - { - $val = mb_strtolower(trim($val)); - $last = mb_substr($val, -1); - - $val = (float) $val; - switch ($last) { - /* @noinspection PhpMissingBreakStatementInspection */ - case 'g': - $val *= 1024; - /* @noinspection PhpMissingBreakStatementInspection */ - // no break - case 'm': - $val *= 1024; - // no break - case 'k': - $val *= 1024; - } - - return $val; - } - - /** - * Decode byte size format - * - * @param string $val - * - * @return float - */ - private function decodeSize($val) - { - $val = trim($val); - list($val, $last) = explode(' ', $val); - $val = (float) $val; - switch (mb_strtoupper($last)) { - /* @noinspection PhpMissingBreakStatementInspection */ - case 'TB': - $val *= 1024; - // no break - case 'GB': - $val *= 1024; - // no break - case 'MB': - $val *= 1024; - // no break - case 'KB': - $val *= 1024; - // no break - case 'B': - $val = (float) $val; - } - - return $val; - } - - /** - * Encode byte size format - * - * @param float $bytes - * - * @return string - */ - private function encodeSize($bytes) - { - $types = ['B', 'KB', 'MB', 'GB', 'TB']; - for ($i = 0; $bytes >= 1024 && $i < (\count($types) - 1); $bytes /= 1024, $i++); - - return round($bytes, 2) . ' ' . $types[$i]; - } - - /** - * @return array - */ - private function handleMaxCompatibleVersion(array $check) - { - if (version_compare($check['version'], $check['maxCompatibleVersion'], '>')) { - $check['check'] = false; - $maxCompatibleVersion = str_replace('.99', '', $check['maxCompatibleVersion']); - $key = 'requirements_php_max_compatible_version'; - - $check['notice'] = sprintf($this->translator->translate($key), $maxCompatibleVersion); - } - - return $check; - } -} diff --git a/Install/src/RequirementsPath.php b/Install/src/RequirementsPath.php deleted file mode 100644 index c4a406085..000000000 --- a/Install/src/RequirementsPath.php +++ /dev/null @@ -1,70 +0,0 @@ - - * - * - * var/log/ - * config.php - * - * - */ -class RequirementsPath -{ - /** - * @var string - */ - private $basePath; - - /** - * @var array - */ - private $files; - - /** - * @param string $basePath - * @param string $sourceFile - */ - public function __construct($basePath, $sourceFile) - { - $this->basePath = rtrim($basePath, '/') . '/'; - - $this->files = $this->readList($sourceFile); - } - - public function addFile($file): void - { - $this->files[] = $file; - } - - public function check(): RequirementsPathResult - { - $result = []; - - foreach ($this->files as $file) { - $entry['name'] = $file === '.' ? $this->basePath : $file; - $entry['existsAndWriteable'] = $this->checkExits($file); - $result[] = $entry; - } - - return new RequirementsPathResult($result); - } - - private function readList(string $sourceFile): array - { - $checks = include $sourceFile; - - return $checks['paths']; - } - - private function checkExits(string $name): bool - { - $name = $this->basePath . $name; - - return file_exists($name) && is_readable($name) && is_writable($name); - } -} diff --git a/Install/src/RequirementsPathResult.php b/Install/src/RequirementsPathResult.php deleted file mode 100644 index 200d2b535..000000000 --- a/Install/src/RequirementsPathResult.php +++ /dev/null @@ -1,32 +0,0 @@ -result = $result; - } - - public function toArray(): array - { - return $this->result; - } - - public function hasError(): bool - { - foreach ($this->result as $entry) { - if (!$entry['existsAndWriteable']) { - return true; - } - } - - return false; - } -} diff --git a/Install/src/Service/AdminService.php b/Install/src/Service/AdminService.php deleted file mode 100644 index 2558d3ad7..000000000 --- a/Install/src/Service/AdminService.php +++ /dev/null @@ -1,53 +0,0 @@ -connection = $connection; - $this->userProvisioner = $userProvisioner; - } - - public function createAdmin(AdminUser $user): void - { - $localeId = $this->getLocaleId($user); - - $this->userProvisioner->provision( - $user->username, - $user->password, - [ - 'firstName' => $user->firstName, - 'lastName' => $user->lastName, - 'email' => $user->email, - 'localeId' => $localeId, - ] - ); - } - - private function getLocaleId(AdminUser $user): string - { - $sql = 'SELECT locale.id FROM language INNER JOIN locale ON(locale.id = language.locale_id) WHERE language.id = ?'; - - $localeId = $this->connection->prepare($sql); - $localeId->execute([Uuid::fromHexToBytes(Defaults::LANGUAGE_SYSTEM)]); - $localeId = $localeId->fetchColumn(); - - if (!$localeId) { - throw new \RuntimeException('Could not resolve language ' . $user->locale); - } - - return (string) $localeId; - } -} diff --git a/Install/src/Service/BlueGreenDeploymentService.php b/Install/src/Service/BlueGreenDeploymentService.php deleted file mode 100644 index 110ecd414..000000000 --- a/Install/src/Service/BlueGreenDeploymentService.php +++ /dev/null @@ -1,58 +0,0 @@ -connection = $connection; - } - - public function setEnvironmentVariable(): void - { - $_ENV[self::ENV_NAME] = $_SESSION[self::ENV_NAME] = $this->checkIfMayCreateTrigger(); - } - - private function checkIfMayCreateTrigger(): bool - { - try { - $this->connection->executeQuery($this->getCreateTableQuery()); - $this->connection->executeQuery($this->getTriggerQuery()); - } catch (\Doctrine\DBAL\DBALException $exception) { - return false; - } finally { - $this->connection->executeQuery('DROP TABLE IF EXISTS example'); - } - - return true; - } - - private function getCreateTableQuery(): string - { - return <<<'SQL' - CREATE TABLE IF NOT EXISTS `example` ( - `id` int NOT NULL - ); -SQL; - } - - private function getTriggerQuery(): string - { - return <<<'SQL' - CREATE TRIGGER example_trigger BEFORE UPDATE ON `example` - FOR EACH ROW - BEGIN - END; -SQL; - } -} diff --git a/Install/src/Service/EnvConfigWriter.php b/Install/src/Service/EnvConfigWriter.php deleted file mode 100644 index 3fdec226e..000000000 --- a/Install/src/Service/EnvConfigWriter.php +++ /dev/null @@ -1,126 +0,0 @@ -configPath = $configPath; - $this->instanceId = $instanceId; - $this->defaultEnvVars = $defaultEnvVars; - $this->kernel = $kernel; - } - - public function writeConfig(DatabaseConnectionInformation $info, Shop $shop): void - { - $tpl = '# This file is a "template" of which env vars need to be defined for your application -# Copy this file to .env file for development, create environment variables when deploying to production -# https://symfony.com/doc/current/best_practices/configuration.html#infrastructure-related-configuration - -###> symfony/framework-bundle ### -%s -#TRUSTED_PROXIES=127.0.0.1,127.0.0.2 -#TRUSTED_HOSTS=localhost,example.com -###< symfony/framework-bundle ### - -###> symfony/swiftmailer-bundle ### -# For Gmail as a transport, use: "gmail://username:password@localhost" -# For a generic SMTP server, use: "smtp://localhost:25?encryption=&auth_mode=" -# Delivery is disabled by default via "null://localhost" -MAILER_URL=null://localhost -###< symfony/swiftmailer-bundle ### - -%s -'; - $key = Key::createNewRandomKey(); - $secret = $key->saveToAsciiSafeString(); - - $defaults = $this->defaultEnvVars; - $appEnvVars = array_filter([ - 'APP_ENV' => 'prod', - 'APP_SECRET' => $secret, - 'APP_URL' => 'http://' . $shop->host . $shop->basePath, - 'DATABASE_SSL_CA' => $info->getSslCaPath(), - 'DATABASE_SSL_CERT' => $info->getSslCertPath(), - 'DATABASE_SSL_KEY' => $info->getSslCertKeyPath(), - 'DATABASE_SSL_DONT_VERIFY_SERVER_CERT' => $info->getSslDontVerifyServerCert() ? '1' : '', - ]); - - // override app env vars - foreach ($appEnvVars as $key => $value) { - if (\array_key_exists($key, $defaults)) { - $appEnvVars[$key] = $defaults[$key]; - unset($defaults[$key]); - } - } - - $additionalEnvVars = array_merge( - [ - 'DATABASE_URL' => $info->asDsn(), - 'COMPOSER_HOME' => SW_PATH . '/var/cache/composer', - 'INSTANCE_ID' => $this->instanceId, - 'BLUE_GREEN_DEPLOYMENT' => (int) $_ENV['BLUE_GREEN_DEPLOYMENT'], - 'SHOPWARE_HTTP_CACHE_ENABLED' => '1', - 'SHOPWARE_HTTP_DEFAULT_TTL' => '7200', - 'SHOPWARE_ES_HOSTS' => '', - 'SHOPWARE_ES_ENABLED' => '0', - 'SHOPWARE_ES_INDEXING_ENABLED' => '0', - 'SHOPWARE_ES_INDEX_PREFIX' => 'sw', - 'SHOPWARE_CDN_STRATEGY_DEFAULT' => 'id', - ], - // override and extend env vars - $defaults - ); - - $envFile = sprintf( - $tpl, - $this->toEnv($appEnvVars), - $this->toEnv($additionalEnvVars) - ); - - file_put_contents($this->configPath, $envFile); - - $htaccessPath = SW_PATH . '/public/.htaccess'; - - if (file_exists($htaccessPath . '.dist') && !file_exists($htaccessPath)) { - $perms = fileperms($htaccessPath . '.dist'); - copy($htaccessPath . '.dist', $htaccessPath); - - if ($perms) { - chmod($htaccessPath, $perms | 0644); - } - } - - // reboot shopware kernel, to get new DB connection - // Don't use `reboot()` directly as that does not reinitialize the connection - $this->kernel->shutdown(); - (new Dotenv())->usePutenv()->overload($this->configPath); - $this->kernel->boot(); - } - - private function toEnv(array $keyValuePairs): string - { - $lines = []; - - foreach ($keyValuePairs as $key => $value) { - $lines[] = $key . '="' . $value . '"'; - } - - return implode(\PHP_EOL, $lines); - } -} diff --git a/Install/src/Service/ShopService.php b/Install/src/Service/ShopService.php deleted file mode 100644 index 1dc3927f0..000000000 --- a/Install/src/Service/ShopService.php +++ /dev/null @@ -1,200 +0,0 @@ -connection = $connection; - $this->shopConfigurator = $shopConfigurator; - $this->salesChannelCreator = $salesChannelCreator; - } - - public function updateShop(Shop $shop): void - { - if (empty($shop->locale) || empty($shop->host)) { - throw new \RuntimeException('Please fill in all required fields. (shop configuration)'); - } - - try { - $this->shopConfigurator->updateBasicInformation($shop->name, $shop->email); - $this->shopConfigurator->setDefaultLanguage($shop->locale); - $this->shopConfigurator->setDefaultCurrency($shop->currency); - - $this->deleteAllSalesChannelCurrencies(); - - $snippetSetId = $this->getSnippetSet($shop->locale) - ?? $this->getSnippetSet('en-GB'); - $salesChannelOverwrites = [ - 'domains' => [ - [ - 'url' => 'http://' . $shop->host . $shop->basePath, - 'languageId' => Defaults::LANGUAGE_SYSTEM, - 'snippetSetId' => Uuid::fromBytesToHex($snippetSetId), - 'currencyId' => Defaults::CURRENCY, - ], - [ - 'url' => 'https://' . $shop->host . $shop->basePath, - 'languageId' => Defaults::LANGUAGE_SYSTEM, - 'snippetSetId' => Uuid::fromBytesToHex($snippetSetId), - 'currencyId' => Defaults::CURRENCY, - ], - ], - ]; - - $salesChannelId = Uuid::randomHex(); - $this->salesChannelCreator->createSalesChannel( - $salesChannelId, - $shop->name, - Defaults::SALES_CHANNEL_TYPE_STOREFRONT, - Defaults::LANGUAGE_SYSTEM, - Defaults::CURRENCY, - null, - null, - $this->getCountryId($shop->country), - null, - null, - [], - [], - [], - [], - [], - $salesChannelOverwrites - ); - - $this->addAdditionalCurrenciesToSalesChannel($shop, Uuid::fromHexToBytes($salesChannelId)); - $this->removeUnwantedCurrencies($shop); - } catch (\Exception $e) { - throw new \RuntimeException($e->getMessage(), 0, $e); - } - } - - private function getCurrencyId(string $currencyName): string - { - $stmt = $this->connection->prepare( - 'SELECT id FROM currency WHERE LOWER(iso_code) = LOWER(?)' - ); - $stmt->execute([$currencyName]); - $fetchCurrencyId = $stmt->fetchColumn(); - - if (!$fetchCurrencyId) { - throw new \RuntimeException('Currency with iso-code ' . $currencyName . ' not found'); - } - - return (string) $fetchCurrencyId; - } - - private function getSnippetSet(string $iso): ?string - { - return $this->connection->fetchOne( - 'SELECT id FROM snippet_set WHERE LOWER(iso) = LOWER(:iso)', - ['iso' => $iso] - ) ?: null; - } - - private function getCountryId(string $iso): string - { - $stmt = $this->connection->prepare( - 'SELECT id FROM country WHERE LOWER(iso3) = LOWER(?)' - ); - $stmt->execute([$iso]); - $fetchCountryId = $stmt->fetchColumn(); - if (!$fetchCountryId) { - throw new \RuntimeException('Country with iso-code ' . $iso . ' not found'); - } - - return Uuid::fromBytesToHex($fetchCountryId); - } - - /** - * get the id of the sales channel via the sales channel type id - */ - private function getIdOfSalesChannelViaTypeId(string $typeId): string - { - $statement = $this->connection->prepare('SELECT id FROM sales_channel WHERE type_id = UNHEX(?)'); - $statement->execute([$typeId]); - $salesChannelId = $statement->fetchColumn(); - - return $salesChannelId; - } - - private function addAdditionalCurrenciesToSalesChannel(Shop $shop, string $salesChannelId): void - { - $idOfHeadlessSalesChannel = $this->getIdOfSalesChannelViaTypeId(Defaults::SALES_CHANNEL_TYPE_API); - - // set the default currency of the headless sales channel - $statement = $this->connection->prepare('UPDATE sales_channel SET currency_id = ? WHERE id = ?'); - $defaultCurrencyId = $this->getCurrencyId($shop->currency); - $statement->execute([$defaultCurrencyId, $idOfHeadlessSalesChannel]); - - // remove all currencies from the headless sales channel, except the default currency - $statement = $this->connection->prepare('DELETE FROM sales_channel_currency WHERE sales_channel_id = ? AND currency_id != UNHEX(?)'); - $statement->execute([$idOfHeadlessSalesChannel, $defaultCurrencyId]); - - if ($shop->additionalCurrencies === null) { - return; - } - - $salesChannelsToBeEdited = []; - $salesChannelsToBeEdited[] = $idOfHeadlessSalesChannel; - $salesChannelsToBeEdited[] = $salesChannelId; - - // set the currencies of the headless sales channel to the ones from the default sales channel - foreach ($salesChannelsToBeEdited as $currentSalesChannelId) { - foreach ($shop->additionalCurrencies as $additionalCurrency) { - $currencyId = $this->getCurrencyId($additionalCurrency); - - // add additional currencies - $statement = $this->connection->prepare('INSERT INTO sales_channel_currency (sales_channel_id, currency_id) VALUES (?, ?)'); - $statement->execute([$currentSalesChannelId, $currencyId]); - } - } - } - - private function removeUnwantedCurrencies(Shop $shop): void - { - // change default currency for dummy sales channel domain to the default currency to avoid foreign key constraints - $this->connection->executeStatement( - 'UPDATE sales_channel_domain SET currency_id = :currencyId', - ['currencyId' => $this->getCurrencyId($shop->currency)] - ); - - // remove all currencies except the default currency when no additional currency is selected - if ($shop->additionalCurrencies === null) { - $this->connection->executeStatement( - 'DELETE FROM currency WHERE iso_code != :currency', - ['currency' => $shop->currency] - ); - - return; - } - - $selectedCurrencies = $shop->additionalCurrencies; - $selectedCurrencies[] = $shop->currency; - - $this->connection->executeStatement( - 'DELETE FROM currency WHERE iso_code NOT IN (:currencies)', - ['currencies' => array_unique($selectedCurrencies)], - ['currencies' => Connection::PARAM_STR_ARRAY] - ); - } - - private function deleteAllSalesChannelCurrencies(): void - { - $this->connection->executeStatement('DELETE FROM sales_channel_currency'); - } -} diff --git a/Install/src/Service/TranslationService.php b/Install/src/Service/TranslationService.php deleted file mode 100644 index f1ee78a2a..000000000 --- a/Install/src/Service/TranslationService.php +++ /dev/null @@ -1,29 +0,0 @@ -mappings = $mappings; - } - - public function translate(string $key): string - { - return $this->mappings[$key] ?? '(!)' . $key; - } - - public function t(string $key): string - { - return $this->translate($key); - } -} diff --git a/Install/src/Service/WebserverCheck.php b/Install/src/Service/WebserverCheck.php deleted file mode 100644 index 7e13e1466..000000000 --- a/Install/src/Service/WebserverCheck.php +++ /dev/null @@ -1,59 +0,0 @@ -pingUrl = $pingUrl; - $this->httpClient = $httpClient; - } - - /** - * @throws \RuntimeException - */ - public function checkPing(Shop $shop): bool - { - $pingUrl = $this->buildPingUrl($shop); - - try { - $response = $this->httpClient->get($pingUrl); - } catch (ClientException $e) { - throw new \RuntimeException('Could not check web server', $e->getCode(), $e); - } - - if ($response->getCode() !== 200) { - throw new \RuntimeException('Wrong http code ' . $response->getCode()); - } - - if ($response->getBody() !== 'pong') { - throw new \RuntimeException('Content ' . $response->getBody()); - } - - return true; - } - - public function buildPingUrl(Shop $shop): string - { - if ($shop->basePath) { - $shop->basePath = '/' . trim($shop->basePath, '/'); - } - - return 'http://' . $shop->host . $shop->basePath . '/' . $this->pingUrl; - } -} diff --git a/Install/src/Struct/AdminUser.php b/Install/src/Struct/AdminUser.php deleted file mode 100644 index c09193b82..000000000 --- a/Install/src/Struct/AdminUser.php +++ /dev/null @@ -1,36 +0,0 @@ -currency = $Currency; - } - - /** - * @return string - */ - public function __toString() - { - return $this->currency; - } - - /** - * Returns a list of valid Currencies - * - * @return array - */ - public static function getValidCurrencies() - { - return [ - 'EUR', - 'USD', - 'GBP', - ]; - } - - /** - * @param string $Currency - * - * @return Currency - */ - public static function createFromString($Currency) - { - return new self($Currency); - } -} diff --git a/Install/src/Struct/DatabaseConnectionInformation.php b/Install/src/Struct/DatabaseConnectionInformation.php deleted file mode 100644 index 530b01b4a..000000000 --- a/Install/src/Struct/DatabaseConnectionInformation.php +++ /dev/null @@ -1,39 +0,0 @@ -assign([ - 'hostname' => $input->getOption('db-host'), - 'port' => $input->getOption('db-port'), - 'username' => $input->getOption('db-user'), - 'password' => $input->getOption('db-password'), - 'databaseName' => $input->getOption('db-name'), - 'sslCaPath' => $input->getOption('db-ssl-ca'), - 'sslCertPath' => $input->getOption('db-ssl-cert'), - 'sslCertKeyPath' => $input->getOption('db-ssl-key'), - 'sslDontVerifyServerCert' => $input->getOption('db-ssl-dont-verify-cert') === '1' ? true : false, - ]); - } - - public static function fromPostData(array $postData): self - { - return (new self())->assign([ - 'username' => $postData['c_database_user'], - 'hostname' => $postData['c_database_host'], - 'port' => (int) ($postData['c_database_port'] ?? '3306'), - 'databaseName' => $postData['c_database_schema'] ?? '', - 'password' => $postData['c_database_password'], - 'sslCaPath' => $postData['c_database_ssl_ca_path'], - 'sslCertPath' => $postData['c_database_ssl_cert_path'], - 'sslCertKeyPath' => $postData['c_database_ssl_cert_key_path'], - 'sslDontVerifyServerCert' => isset($postData['c_database_ssl_dont_verify_cert']) ? true : false, - ]); - } -} diff --git a/Install/src/Struct/Locale.php b/Install/src/Struct/Locale.php deleted file mode 100644 index ccd4058d8..000000000 --- a/Install/src/Struct/Locale.php +++ /dev/null @@ -1,50 +0,0 @@ -locale = $locale; - } - - /** - * @return string - */ - public function __toString() - { - return $this->locale; - } - - /** - * Returns a list of valid locales - * - * @return array - */ - public static function getValidLocales() - { - return [ - 'de-DE', - 'en-GB', - ]; - } - - /** - * @param string $locale - * - * @return Locale - */ - public static function createFromString($locale) - { - return new self($locale); - } -} diff --git a/Install/src/Struct/Shop.php b/Install/src/Struct/Shop.php deleted file mode 100644 index 528299dc4..000000000 --- a/Install/src/Struct/Shop.php +++ /dev/null @@ -1,71 +0,0 @@ - $value) { - $this->$name = $value; - } - } -} diff --git a/Install/src/app.php b/Install/src/app.php deleted file mode 100644 index 0ec8501c3..000000000 --- a/Install/src/app.php +++ /dev/null @@ -1,670 +0,0 @@ -boot(); - - $config = require __DIR__ . '/../config/production.php'; - $container = new Container(); - $container->offsetSet('shopware.kernel', $kernel); - $container->register(new ContainerProvider($config)); - - /** @var App $app */ - $app = $container->offsetGet('slim.app'); - - if (!isset($_SESSION['parameters'])) { - $_SESSION['parameters'] = []; - } - - if (isset($_SESSION['databaseConnectionInfo'])) { - $connectionInfo = $_SESSION['databaseConnectionInfo']; - - try { - $connection = DatabaseConnectionFactory::createConnection($connectionInfo); - - // Init db in container - $container->offsetSet('dbal', $connection); - } catch (\Exception $e) { - // Jump to form - throw $e; - } - } - - $localeForLanguage = static function (string $language): string { - switch (mb_strtolower($language)) { - case 'de': - return 'de-DE'; - case 'en': - return 'en-GB'; - case 'nl': - return 'nl-NL'; - case 'it': - return 'it-IT'; - case 'fr': - return 'fr-FR'; - case 'es': - return 'es-ES'; - case 'pt': - return 'pt-PT'; - case 'pl': - return 'pl-PL'; - case 'sv': - return 'sv-SE'; - case 'cs': - return 'cs-CZ'; - case 'da': - return 'da-DK'; - } - - return mb_strtolower($language) . '-' . mb_strtoupper($language); - }; - - $app->add(function (ServerRequestInterface $request, ResponseInterface $response, callable $next) use ($container, $localeForLanguage) { - // load .env and .env.defaults - $container->offsetGet('env.load')(); - - $selectLanguage = function (array $allowedLanguages): string { - /** - * Load language file - */ - $selectedLanguage = 'de'; - if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) { - $selectedLanguage = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']); - $selectedLanguage = mb_strtolower(mb_substr($selectedLanguage[0], 0, 2)); - } - if (empty($selectedLanguage) || !in_array($selectedLanguage, $allowedLanguages, true)) { - $selectedLanguage = 'en'; - } - - if (isset($_REQUEST['language']) && in_array($_REQUEST['language'], $allowedLanguages, true)) { - $selectedLanguage = $_REQUEST['language']; - - if (isset($_SESSION['parameters']['c_config_shop_currency'])) { - unset($_SESSION['parameters']['c_config_shop_currency']); - } - - if (isset($_SESSION['parameters']['c_config_admin_language'])) { - unset($_SESSION['parameters']['c_config_admin_language']); - } - $_SESSION['language'] = $selectedLanguage; - - return $selectedLanguage; - } - - if (isset($_SESSION['language']) && in_array($_SESSION['language'], $allowedLanguages, true)) { - $selectedLanguage = $_SESSION['language']; - - return $selectedLanguage; - } - $_SESSION['language'] = $selectedLanguage; - - return $selectedLanguage; - }; - - if ($request->getParsedBody()) { - foreach ($request->getParsedBody() as $key => $value) { - if (mb_strpos($key, 'c_') !== false) { - $_SESSION['parameters'][$key] = $value; - } - } - } - - $allowedLanguages = $container->offsetGet('config')['languages']; - $selectedLanguage = $selectLanguage($allowedLanguages); - - $container->offsetSet('install.language', $selectedLanguage); - - $cookie = new SetCookie('installed-locale', $localeForLanguage($selectedLanguage), time() + 7200, '/'); - $response = $cookie->addToResponse($response); - - $viewAttributes = []; - - $viewAttributes['version'] = $container->offsetGet('shopware.version'); - $viewAttributes['t'] = $container->offsetGet('translation.service'); - $viewAttributes['menuHelper'] = $container->offsetGet('menu.helper'); - $viewAttributes['languages'] = $allowedLanguages; - $viewAttributes['languageIsos'] = array_map($localeForLanguage, $allowedLanguages); - $viewAttributes['selectedLanguage'] = $selectedLanguage; - $viewAttributes['translations'] = $container->offsetGet('translations'); - $viewAttributes['baseUrl'] = Utils::getBaseUrl(); - $viewAttributes['error'] = false; - $viewAttributes['parameters'] = $_SESSION['parameters']; - $viewAttributes['app'] = $container->offsetGet('slim.app'); - - $container->offsetGet('renderer')->setAttributes($viewAttributes); - - return $next($request, $response); - }); - - $app->any('/', function (ServerRequestInterface $request, ResponseInterface $response) use ($container) { - $menuHelper = $container->offsetGet('menu.helper'); - $menuHelper->setCurrent('language-selection'); - - $container['shopware.notify']->doTrackEvent('Installer started'); - - $viewVars = [ - 'languages' => $container->offsetGet('config')['languages'], - ]; - - return $this->renderer->render($response, 'language-selection.php', $viewVars); - })->setName('language-selection'); - - $app->any('/requirements/', function (ServerRequestInterface $request, ResponseInterface $response) use ($container) { - $menuHelper = $container->offsetGet('menu.helper'); - $menuHelper->setCurrent('requirements'); - - // Check system requirements - /** @var Requirements $shopwareSystemCheck */ - $shopwareSystemCheck = $container->offsetGet('install.requirements'); - $systemCheckResults = $shopwareSystemCheck->toArray(); - - $viewAttributes = []; - - $viewAttributes['warning'] = (bool) $systemCheckResults['hasWarnings']; - $viewAttributes['error'] = (bool) $systemCheckResults['hasErrors']; - $viewAttributes['systemError'] = (bool) $systemCheckResults['hasErrors']; - $viewAttributes['phpVersionNotSupported'] = $systemCheckResults['phpVersionNotSupported']; - - // Check file & directory permissions - /** @var RequirementsPath $shopwareSystemCheckPath */ - $shopwareSystemCheckPath = $container->offsetGet('install.requirementsPath'); - $shopwareSystemCheckPathResult = $shopwareSystemCheckPath->check(); - - $viewAttributes['pathError'] = false; - - if ($shopwareSystemCheckPathResult->hasError()) { - $viewAttributes['error'] = true; - $viewAttributes['pathError'] = true; - } - - if ($request->getMethod() === 'POST' && $viewAttributes['error'] === false) { - return $response->withRedirect($menuHelper->getNextUrl()); - } - - $viewAttributes['systemCheckResults'] = $systemCheckResults['checks']; - $viewAttributes['systemCheckResultsWritePermissions'] = $shopwareSystemCheckPathResult->toArray(); - - return $this->renderer->render($response, 'requirements.php', $viewAttributes); - })->setName('requirements'); - - $app->any('/license', function (ServerRequestInterface $request, ResponseInterface $response) use ($container) { - $menuHelper = $container->offsetGet('menu.helper'); - $menuHelper->setCurrent('license'); - $viewAttributes = []; - - if ($request->getMethod() === 'POST') { - $body = $request->getParsedBody(); - - if (isset($body['tos'])) { - return $response->withRedirect($menuHelper->getNextUrl()); - } - - $viewAttributes['error'] = true; - } - - $tosUrls = $container->offsetGet('config')['tos.urls']; - $tosUrl = $tosUrls['en']; - - if (array_key_exists($container->offsetGet('install.language'), $tosUrls)) { - $tosUrl = $tosUrls[$container->offsetGet('install.language')]; - } - $viewAttributes['tosUrl'] = $tosUrl; - $viewAttributes['tos'] = ''; - - /** @var Client $client */ - $client = $container->offsetGet('http-client'); - - try { - $tosResponse = $client->get($tosUrl); - $viewAttributes['tos'] = $tosResponse->getBody(); - $viewAttributes['error'] = $tosResponse->getCode() >= 400; - } catch (Exception $e) { - $viewAttributes['error'] = $e->getMessage(); - } - - return $this->renderer->render($response, 'license.php', $viewAttributes); - })->setName('license'); - - $app->any('/database-configuration/', function (ServerRequestInterface $request, ResponseInterface $response) use ($container) { - $menuHelper = $container->offsetGet('menu.helper'); - $menuHelper->setCurrent('database-configuration'); - - /** @var \Shopware\Recovery\Install\Service\TranslationService $translationService */ - $translationService = $container->offsetGet('translation.service'); - - if ($request->getMethod() !== 'POST') { - return $this->renderer->render($response, 'database-configuration.php', []); - } - - $postData = (array) $request->getParsedBody(); - - if (empty($postData['c_database_user']) - || empty($postData['c_database_host']) - || empty($postData['c_database_port']) - || empty($postData['c_database_schema']) - ) { - return $this->renderer->render($response, 'database-configuration.php', [ - 'error' => $translationService->t('database-configuration_error_required_fields'), - ]); - } - - $connectionInfo = DatabaseConnectionInformation::fromPostData($postData); - - try { - try { - // check connection - $connection = DatabaseConnectionFactory::createConnection($connectionInfo); - } catch (\Doctrine\DBAL\Exception\DriverException $e) { - // Unknown database https://dev.mysql.com/doc/refman/8.0/en/server-error-reference.html#error_er_bad_db_error - if ($e->getErrorCode() !== 1049) { - throw $e; - } - - $connection = DatabaseConnectionFactory::createConnection($connectionInfo, true); - - $service = new DatabaseInitializer($connection); - $service->createDatabase($connectionInfo->getDatabaseName()); - - $connection->executeStatement('USE `' . $connectionInfo->getDatabaseName() . '`'); - $connection = DatabaseConnectionFactory::createConnection($connectionInfo); - } - } catch (\Exception $e) { - return $this->renderer->render($response, 'database-configuration.php', ['error' => $e->getMessage()]); - } finally { - // Init db in container - $container->offsetSet('dbal', $connection ?? null); - } - - $_SESSION['databaseConnectionInfo'] = $connectionInfo; - - /** @var BlueGreenDeploymentService $blueGreenDeploymentService */ - $blueGreenDeploymentService = $container->offsetGet('blue.green.deployment.service'); - $blueGreenDeploymentService->setEnvironmentVariable(); - - $service = new DatabaseInitializer($container->offsetGet('dbal')); - - if ($service->getTableCount($connectionInfo->getDatabaseName())) { - return $this->renderer->render($response, 'database-configuration.php', [ - 'error' => $translationService->t('database-configuration_non_empty_database'), - ]); - } - - try { - /** @var JwtCertificateService $jwtCertificateService */ - $jwtCertificateService = $container->offsetGet('jwt_certificate.writer'); - $jwtCertificateService->generate(); - } catch (\Exception $e) { - return $this->renderer->render($response, 'database-configuration.php', ['error' => $e->getMessage()]); - } - - return $response->withRedirect($menuHelper->getNextUrl()); - })->setName('database-configuration'); - - $app->any('/database-import/', function (ServerRequestInterface $request, ResponseInterface $response) use ($container) { - $menuHelper = $container->offsetGet('menu.helper'); - $menuHelper->setCurrent('database-import'); - - /** @var \Shopware\Recovery\Install\Service\TranslationService $translationService */ - $translationService = $container->offsetGet('translation.service'); - - if ($request->getMethod() === 'POST') { - return $response->withRedirect($menuHelper->getNextUrl()); - } - - if (!isset($_SESSION[BlueGreenDeploymentService::ENV_NAME])) { - $menuHelper->setCurrent('database-configuration'); - - return $this->renderer->render($response, 'database-configuration.php', [ - 'error' => $translationService->t('database-configuration_error_required_fields'), - ]); - } - - try { - $container->offsetGet('dbal'); - } catch (\Exception $e) { - $menuHelper->setCurrent('database-configuration'); - - return $this->renderer->render($response, 'database-configuration.php', [ - 'error' => $translationService->t('database-configuration_error_required_fields'), - ]); - } - $container->offsetGet('renderer')->addAttribute('languages', []); - - return $this->renderer->render($response, 'database-import.php', []); - })->setName('database-import'); - - $app->any('/configuration/', function (ServerRequestInterface $request, ResponseInterface $response) use ($app, $container, $localeForLanguage) { - $menuHelper = $container->offsetGet('menu.helper'); - $menuHelper->setCurrent('configuration'); - - /** @var \Shopware\Recovery\Install\Service\TranslationService $translationService */ - $translationService = $container->offsetGet('translation.service'); - - try { - $connection = $container->offsetGet('dbal'); - } catch (\Exception $e) { - $menuHelper->setCurrent('database-configuration'); - - return $this->renderer->render($response, 'database-configuration.php', [ - 'error' => $translationService->t('database-configuration_error_required_fields'), - ]); - } - - // getting iso code of all countries - $countries = $connection->fetchAllAssociative('SELECT iso3, iso FROM country'); - - // formatting string e.g. "en-GB" to "GB" - $localeIsoCode = mb_substr($localeForLanguage($_SESSION['language']), -2, 2); - - // flattening array - $countryIsos = array_map(function ($country) use ($localeIsoCode) { - return [ - 'iso3' => $country['iso3'], - 'default' => $country['iso'] === $localeIsoCode ? true : false, - ]; - }, $countries); - - // make iso codes available for the select field - $viewAttributes['countryIsos'] = $countryIsos; - - if ($request->getMethod() === 'POST') { - $adminUser = new AdminUser([ - 'email' => $_SESSION['parameters']['c_config_admin_email'], - 'username' => $_SESSION['parameters']['c_config_admin_username'], - 'firstName' => $_SESSION['parameters']['c_config_admin_firstName'], - 'lastName' => $_SESSION['parameters']['c_config_admin_lastName'], - 'password' => $_SESSION['parameters']['c_config_admin_password'], - 'locale' => $localeForLanguage($_SESSION['language']), - ]); - - $shop = new Shop([ - 'name' => $_SESSION['parameters']['c_config_shopName'], - 'locale' => $_SESSION['parameters']['c_config_shop_language'], - 'currency' => $_SESSION['parameters']['c_config_shop_currency'], - 'additionalCurrencies' => empty($_SESSION['parameters']['c_available_currencies']) ? null : $_SESSION['parameters']['c_available_currencies'], - 'country' => $_SESSION['parameters']['c_config_shop_country'], - 'email' => $_SESSION['parameters']['c_config_mail'], - 'host' => $_SERVER['HTTP_HOST'], - 'basePath' => str_replace('/recovery/install/index.php', '', $_SERVER['SCRIPT_NAME']), - ]); - - if (!isset($_SESSION[BlueGreenDeploymentService::ENV_NAME])) { - $menuHelper->setCurrent('database-configuration'); - - return $this->renderer->render($response, 'database-configuration.php', [ - 'error' => $translationService->t('database-configuration_error_required_fields'), - ]); - } - - $_ENV[BlueGreenDeploymentService::ENV_NAME] = $_SESSION[BlueGreenDeploymentService::ENV_NAME]; - - /** @var EnvConfigWriter $configWriter */ - $configWriter = $container->offsetGet('config.writer'); - $configWriter->writeConfig($_SESSION['databaseConnectionInfo'], $shop); - - $hasErrors = false; - - /** @var ShopService $shopService */ - $shopService = $container->offsetGet('shop.service'); - $adminService = $container->offsetGet('admin.service'); - - try { - $shopService->updateShop($shop); - $adminService->createAdmin($adminUser); - } catch (\Exception $e) { - $hasErrors = true; - $viewAttributes['error'] = $e->getMessage() . "\n" . $e->getTraceAsString(); - } - - if (!$hasErrors) { - return $response->withRedirect($app->getContainer()->get('router')->pathFor('finish')); - } - } - - $domain = $_SERVER['HTTP_HOST']; - $basepath = str_replace('/recovery/install/index.php', '', $_SERVER['SCRIPT_NAME']); - - // Load shop-url - $viewAttributes['shop'] = ['domain' => $domain, 'basepath' => $basepath]; - - $selectedLanguage = $container->offsetGet('install.language'); - $locale = ''; - - if ($selectedLanguage === 'en') { - $locale = 'en-GB'; - } elseif ($selectedLanguage === 'de') { - $locale = 'de-DE'; - } - - if (empty($_SESSION['parameters']['c_config_shop_language'])) { - $_SESSION['parameters']['c_config_shop_language'] = $locale; - } - if (empty($_SESSION['parameters']['c_config_shop_currency'])) { - $translationService = $container->offsetGet('translation.service'); - $_SESSION['parameters']['c_config_shop_currency'] = $translationService->translate('currency'); - } - if (empty($_SESSION['parameters']['c_config_admin_language'])) { - $_SESSION['parameters']['c_config_admin_language'] = $locale; - } - - $viewAttributes['parameters'] = $_SESSION['parameters']; - - return $this->renderer->render($response, 'configuration.php', $viewAttributes); - })->setName('configuration'); - - $app->any('/finish/', function (ServerRequestInterface $request, ResponseInterface $response) use ($container) { - $menuHelper = $container->offsetGet('menu.helper'); - $menuHelper->setCurrent('finish'); - - $basepath = str_replace('/recovery/install/index.php', '', $_SERVER['SCRIPT_NAME']); - - /** @var \Shopware\Recovery\Common\SystemLocker $systemLocker */ - $systemLocker = $container->offsetGet('system.locker'); - $systemLocker(); - - $additionalInformation = [ - 'language' => $container->offsetGet('install.language'), - 'method' => 'installer', - ]; - - $container->offsetGet('shopware.notify')->doTrackEvent('Installer finished', $additionalInformation); - - $schema = 'http'; - // This is for supporting Apache 2.2 - if (array_key_exists('HTTPS', $_SERVER) && mb_strtolower($_SERVER['HTTPS']) === 'on') { - $schema = 'https'; - } - if (array_key_exists('REQUEST_SCHEME', $_SERVER)) { - $schema = $_SERVER['REQUEST_SCHEME']; - } - - $url = $schema . '://' . $_SERVER['HTTP_HOST'] . $basepath . '/api/oauth/token'; - $data = json_encode([ - 'grant_type' => 'password', - 'client_id' => 'administration', - 'scopes' => 'write', - 'username' => $_SESSION['parameters']['c_config_admin_username'], - 'password' => $_SESSION['parameters']['c_config_admin_password'], - ]); - - session_destroy(); - - /** @var \Shopware\Recovery\Common\HttpClient\Client $client */ - $client = $container->offsetGet('http-client'); - $loginResponse = $client->post($url, $data, ['Content-Type: application/json']); - - $data = json_decode($loginResponse->getBody(), true); - $loginTokenData = [ - 'access' => $data['access_token'], 'refresh' => $data['refresh_token'], 'expiry' => $data['expires_in'], - ]; - - return $this->renderer->render( - $response, - 'finish.php', - [ - 'url' => $schema . '://' . $_SERVER['HTTP_HOST'] . $basepath, - 'loginTokenData' => $loginTokenData, - 'basePath' => $basepath, - 'host' => explode(':', $_SERVER['HTTP_HOST'])[0], - ] - ); - })->setName('finish'); - - $app->any('/database-import/importDatabase', function (ServerRequestInterface $request, ResponseInterface $response) use ($container) { - $response = $response->withHeader('Content-Type', 'application/json') - ->withStatus(200); - - /** @var MigrationCollectionLoader $migrationCollectionLoader */ - $migrationCollectionLoader = $container->offsetGet('migration.collection.loader'); - $_SERVER[MigrationStep::INSTALL_ENVIRONMENT_VARIABLE] = true; - - $coreMigrations = $migrationCollectionLoader->collectAllForVersion( - $container->offsetGet('shopware.version'), - MigrationCollectionLoader::VERSION_SELECTION_ALL - ); - - $resultMapper = new ResultMapper(); - - if (!isset($_SESSION[BlueGreenDeploymentService::ENV_NAME])) { - return $response - ->withStatus(500) - ->write(json_encode($resultMapper->toExtJs(new ErrorResult('Session expired, please go back to database configuration.')))); - } - - $_ENV[BlueGreenDeploymentService::ENV_NAME] = $_SESSION[BlueGreenDeploymentService::ENV_NAME]; - - $parameters = $request->getParsedBody(); - - $offset = isset($parameters['offset']) ? (int) $parameters['offset'] : 0; - $total = isset($parameters['total']) ? (int) $parameters['total'] : 0; - - if ($offset === 0) { - /** @var Connection $db */ - $connection = $container->offsetGet('dbal'); - - $databaseInitializer = new DatabaseInitializer($connection); - $databaseInitializer->initializeShopwareDb(); - - $coreMigrations->sync(); - } - - if (!$total) { - $total = count($coreMigrations->getExecutableMigrations()) * 2; - } - - // use 10 s as max execution time, so the UI stays responsive - $maxExecutionTime = min(ini_get('max_execution_time'), 10); - $startTime = microtime(true); - $executedMigrations = $offset; - - try { - while (iterator_count($coreMigrations->migrateInSteps(null, 1)) === 1) { - $runningSince = microtime(true) - $startTime; - ++$executedMigrations; - - // if there are more than 5 seconds execution time left, we execute more migrations in this request, otherwise we return the result - if ($runningSince + 5 > $maxExecutionTime) { - break; - } - } - - while (iterator_count($coreMigrations->migrateDestructiveInSteps(null, 1)) === 1) { - $runningSince = microtime(true) - $startTime; - ++$executedMigrations; - - // if there are more than 5 seconds execution time left, we execute more migrations in this request, otherwise we return the result - if ($runningSince + 5 > $maxExecutionTime) { - break; - } - } - } catch (\Throwable $e) { - return $response - ->withStatus(500) - ->write(json_encode($resultMapper->toExtJs(new ErrorResult($e->getMessage(), $e)))); - } - - if ($executedMigrations > $offset) { - return $response->write(json_encode($resultMapper->toExtJs(new ValidResult($executedMigrations, $total)))); - } - - return $response->write(json_encode($resultMapper->toExtJs(new FinishResult($offset, $total)))); - })->setName('applyMigrations'); - - $app->post('/check-database-connection', function (ServerRequestInterface $request, ResponseInterface $response) use ($container) { - $postData = (array) $request->getParsedBody(); - - $connectionInfo = DatabaseConnectionInformation::fromPostData($postData); - - try { - $connection = DatabaseConnectionFactory::createConnection($connectionInfo, true); - } catch (\Exception $e) { - return $response->withHeader('Content-Type', 'application/json') - ->withStatus(200) - ->write(json_encode([])); - } - - // Init db in container - $container->offsetSet('dbal', $connection); - - $databaseInitializer = new DatabaseInitializer($connection); - - // No need for listing the following schemas - $ignoredSchemas = ['information_schema', 'performance_schema', 'sys', 'mysql']; - $databaseNames = $databaseInitializer->getExistingDatabases($ignoredSchemas); - - $result = []; - foreach ($databaseNames as $databaseName) { - $result[] = [ - 'value' => $databaseName, - 'display' => $databaseName, - 'hasTables' => $databaseInitializer->getTableCount($databaseName) > 0, - ]; - } - - return $response->withHeader('Content-Type', 'application/json') - ->withStatus(200) - ->write(json_encode($result)); - })->setName('database'); - - return $app; -} diff --git a/Install/templates/_footer.php b/Install/templates/_footer.php deleted file mode 100644 index 42758a4dd..000000000 --- a/Install/templates/_footer.php +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - diff --git a/Install/templates/_header.php b/Install/templates/_header.php deleted file mode 100644 index 1b14c41a6..000000000 --- a/Install/templates/_header.php +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - <?= $t->t('header_title'); ?> | Shopware 6 - - - - - - - - - - - - - - - -
-
- -
- t('header_title'); ?> -
-
- -
- t('version_text'); ?> -
-
- -
- -
- printMenu(); ?> -
diff --git a/Install/templates/_menu.php b/Install/templates/_menu.php deleted file mode 100644 index a4c519f35..000000000 --- a/Install/templates/_menu.php +++ /dev/null @@ -1,10 +0,0 @@ - - diff --git a/Install/templates/configuration.php b/Install/templates/configuration.php deleted file mode 100644 index 9b64a986f..000000000 --- a/Install/templates/configuration.php +++ /dev/null @@ -1,285 +0,0 @@ -getContainer()->get('renderer')->fetch('_header.php'); ?> - -
-

t('configuration_header'); ?>

-
- -
-
- -
-
-
- - -

t('configuration_sconfig_text'); ?>

- -

- - -

- -

- - -

- -
-
- -
- -
-
- -
- -
- -
- -
- -
- -
- -
-
-
- -
- - t('configuration_defaults_warning'); ?> -
- -

t('configuration_admin_currency_headline'); ?>

-

t('configuration_admin_currency_text'); ?>

- -
- -
- - -
- -
- - -
-
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
-
- -
- -

- - -

- -
-

- - -

- -

- - -

-
- -
-

- - -

- -

- - -

-
-
- - -
- - - - - -getContainer()->get('renderer')->fetch('_footer.php'); ?> diff --git a/Install/templates/database-configuration.php b/Install/templates/database-configuration.php deleted file mode 100644 index db3d5f62f..000000000 --- a/Install/templates/database-configuration.php +++ /dev/null @@ -1,115 +0,0 @@ -getContainer()->get('renderer')->fetch('_header.php'); ?> - -
-

t('database-configuration_header'); ?>

-
- - -
- -
- -
- -
- - -

- t('database-configuration_info'); ?> -

- -

- - -

- -
-

- - -

- -

- - -

-
- -
- /> - -
- -
-

- - -

- -

- - -

- -

- - -

- -

- - -

- - -
- - value="1"/> - -
-
- -

- - -

-
- - t('database-configuration_non_empty_database'); ?> -
-

-

- - -
- - -

- -
- - -
- - -getContainer()->get('renderer')->fetch('_footer.php'); ?> diff --git a/Install/templates/database-import.php b/Install/templates/database-import.php deleted file mode 100644 index 89e2ea92a..000000000 --- a/Install/templates/database-import.php +++ /dev/null @@ -1,55 +0,0 @@ -getContainer()->get('renderer')->fetch('_header.php'); ?> - -
-

t('database-import_header'); ?>

-
- -
- -
-
- -
-

t('database_import_error_title'); ?>

-
-
- - - - -
-

t('database-import_info_text'); ?>

- -
- t('database_import_install_label'); ?> t('database_import_install_step_text'); ?> - 0 - t('database_import_install_from_text'); ?> - 0 -
-
-
-
-
- -
-
-
- -
-

t('database_import_success'); ?>

-
-
-
- - - - -getContainer()->get('renderer')->fetch('_footer.php'); ?> diff --git a/Install/templates/finish.php b/Install/templates/finish.php deleted file mode 100644 index 967a8ea37..000000000 --- a/Install/templates/finish.php +++ /dev/null @@ -1,12 +0,0 @@ - - - - - diff --git a/Install/templates/language-selection.php b/Install/templates/language-selection.php deleted file mode 100644 index 66f8eea96..000000000 --- a/Install/templates/language-selection.php +++ /dev/null @@ -1,51 +0,0 @@ -getContainer()->get('renderer')->fetch('_header.php'); ?> - -
-

t('language-selection_header'); ?>

-
- -
-
- -
- -
- -
-

t('language-selection_welcome_title'); ?>

- -

t('language-selection_welcome_message'); ?>

- - - - - -
- <?= $selectedLanguage; ?> - -
-
-
- - -
- -getContainer()->get('renderer')->fetch('_footer.php'); ?> diff --git a/Install/templates/license.php b/Install/templates/license.php deleted file mode 100644 index e8b7b8755..000000000 --- a/Install/templates/license.php +++ /dev/null @@ -1,33 +0,0 @@ -getContainer()->get('renderer')->fetch('_header.php'); ?> - -
-

t('license_agreement_header'); ?>

-
- -
-
- -
- t('license_agreement_error'); ?> -
- - -

- t('license_agreement_info'); ?> -

- -
- -
- - -
-
- -
- -getContainer()->get('renderer')->fetch('_footer.php'); ?> diff --git a/Install/templates/requirements.php b/Install/templates/requirements.php deleted file mode 100644 index 7e54fdae2..000000000 --- a/Install/templates/requirements.php +++ /dev/null @@ -1,133 +0,0 @@ -getContainer()->get('renderer')->fetch('_header.php'); ?> - -
-

t('requirements_header'); ?>

-
- -
- -
-
- -
-

t('requirements_error_title'); ?>

-
t('requirements_error'); ?>
-
- -
-
- -
-

t('requirements_success_title'); ?>

-
t('requirements_success'); ?>
-
- - -

- t('requirements_header_files'); ?> - -

- -
-

- t('requirements_files_info'); ?> -

- - - - - - - - - - - - - - -
t('requirements_table_files_col_check'); ?>t('requirements_table_files_col_status'); ?>
- - t('requirements_status_ready') : $t->t('requirements_status_error'); ?> -
-
- -

- t('requirements_header_system'); ?> - -

- -
-

- t('requirements_php_info'); ?> -

- - - - - - - - - - - - - - - - - - - - - - - - - - - -
t('requirements_system_col_check'); ?>t('requirements_system_col_status'); ?>t('requirements_system_col_required'); ?>t('requirements_system_col_found'); ?>
- t('requirements_status_ready'); - } else { - if ($systemCheckResult['status'] === 'error') { - echo $t->t('requirements_status_error'); - } else { - echo $t->t('requirements_status_warning'); - } - } - ?> -
-

-
-
-
- - - -getContainer()->get('renderer')->fetch('_footer.php'); ?> diff --git a/PLATFORM_COMMIT_SHA b/PLATFORM_COMMIT_SHA new file mode 100644 index 000000000..2c240a0f1 --- /dev/null +++ b/PLATFORM_COMMIT_SHA @@ -0,0 +1 @@ +a6f324bb4756e78c524a5284dc13b5f63cb7d4ea diff --git a/Resources/public/assets/install/images/logo-small.png b/Resources/public/assets/install/images/logo-small.png deleted file mode 100644 index 9cd73053c..000000000 Binary files a/Resources/public/assets/install/images/logo-small.png and /dev/null differ diff --git a/Resources/public/assets/install/images/logo.png b/Resources/public/assets/install/images/logo.png deleted file mode 100644 index eaf04b9f6..000000000 Binary files a/Resources/public/assets/install/images/logo.png and /dev/null differ diff --git a/Resources/public/assets/install/javascript/jquery.installer.js b/Resources/public/assets/install/javascript/jquery.installer.js deleted file mode 100644 index 17d0720a5..000000000 --- a/Resources/public/assets/install/javascript/jquery.installer.js +++ /dev/null @@ -1,342 +0,0 @@ -/** - * Plugin to check the database configuration and automatically display the available database tables - */ -(function ($, window, document, undefined) { - "use strict"; - - /** - * Formats a string and replaces the placeholders. - * - * @example format('
%1
, [value for %0], [value for %1], ...) - * - * @param {String} str - * @param {Mixed} - * @returns {String} - */ - const format = function (str) { - for (let i = 1; i < arguments.length; i++) { - str = str.replace('%' + (i - 1), arguments[i]); - } - return str; - }; - - const pluginName = 'ajaxDatabaseSelection'; - const defaults = {url: 'your-url.json'}; - - function Plugin(element, options) { - this.$el = $(element); - this.opts = $.extend({}, defaults, options); - - this._defaults = defaults; - this._name = pluginName; - - this.init(); - } - - Plugin.prototype.toggleState = function (checkbox) { - - let select = document.getElementById('c_database_schema'); - let new_input = document.getElementById('c_database_schema_new'); - - $(select).attr('disabled', checkbox.checked); - $(new_input).attr('disabled', !checkbox.checked); - }; - - Plugin.prototype.init = function () { - const me = this; - const $el = me.$el; - - const schemaNewCheckbox = document.getElementById('c_database_create_schema_new'); - schemaNewCheckbox.addEventListener('change', e => { - this.toggleState(e.target); - }); - this.toggleState(schemaNewCheckbox); - - $el.on('focus', $.proxy(me.onFocus, me)); - }; - - Plugin.prototype.onFocus = function () { - const me = this; - const $el = me.$el; - const url = $el.attr('data-url') || me.opts.url; - - $.ajax({ - method: 'post', - url: url, - data: $el.parents('form').serialize(), - dataType: 'json', - success: $.proxy(me.onSuccess, me) - }); - }; - - Plugin.prototype.onSuccess = function (data) { - if (data.length === 0) { - return; - } - - let indexedData = {}; - - for(var key in data) { - indexedData[data[key].value] = data[key]; - } - - const me = this; - const oldValue = me.$el.val() || ''; - const fieldName = me.$el.attr('name'); - const opts = me.createSelectOptions(indexedData, oldValue); - - let select = $('
', { - class: 'select-wrapper' - }).append($('