mirror of
https://github.com/silverstripe/silverstripe-framework
synced 2024-10-22 14:05:37 +02:00
Merge branch '3'
This commit is contained in:
commit
1d1227cc9a
@ -433,6 +433,7 @@ class ArrayList extends ViewableData implements SS_List, SS_Filterable, SS_Sorta
|
||||
// This the main sorting algorithm that supports infinite sorting params
|
||||
$multisortArgs = array();
|
||||
$values = array();
|
||||
$firstRun = true;
|
||||
foreach($columnsToSort as $column => $direction) {
|
||||
// The reason these are added to columns is of the references, otherwise when the foreach
|
||||
// is done, all $values and $direction look the same
|
||||
@ -440,7 +441,7 @@ class ArrayList extends ViewableData implements SS_List, SS_Filterable, SS_Sorta
|
||||
$sortDirection[$column] = $direction;
|
||||
// We need to subtract every value into a temporary array for sorting
|
||||
foreach($this->items as $index => $item) {
|
||||
$values[$column][] = $this->extractValue($item, $column);
|
||||
$values[$column][] = strtolower($this->extractValue($item, $column));
|
||||
}
|
||||
// PHP 5.3 requires below arguments to be reference when using array_multisort together
|
||||
// with call_user_func_array
|
||||
@ -448,6 +449,10 @@ class ArrayList extends ViewableData implements SS_List, SS_Filterable, SS_Sorta
|
||||
$multisortArgs[] = &$values[$column];
|
||||
// First argument is the direction to be sorted,
|
||||
$multisortArgs[] = &$sortDirection[$column];
|
||||
if ($firstRun) {
|
||||
$multisortArgs[] = defined('SORT_NATURAL') ? SORT_NATURAL : SORT_STRING;
|
||||
}
|
||||
$firstRun = false;
|
||||
}
|
||||
|
||||
$multisortArgs[] = &$originalKeys;
|
||||
|
@ -123,7 +123,7 @@ class DataList extends ViewableData implements SS_List, SS_Filterable, SS_Sortab
|
||||
* alterDataQuery
|
||||
*
|
||||
* @param callable $callback
|
||||
* @return DataList
|
||||
* @return static
|
||||
* @throws Exception
|
||||
*/
|
||||
public function alterDataQuery($callback) {
|
||||
@ -157,7 +157,7 @@ class DataList extends ViewableData implements SS_List, SS_Filterable, SS_Sortab
|
||||
* Return a new DataList instance with the underlying {@link DataQuery} object changed
|
||||
*
|
||||
* @param DataQuery $dataQuery
|
||||
* @return DataList
|
||||
* @return static
|
||||
*/
|
||||
public function setDataQuery(DataQuery $dataQuery) {
|
||||
$clone = clone $this;
|
||||
@ -206,7 +206,7 @@ class DataList extends ViewableData implements SS_List, SS_Filterable, SS_Sortab
|
||||
*
|
||||
* @param string|array|SQLConditionGroup $filter Predicate(s) to set, as escaped SQL statements or
|
||||
* paramaterised queries
|
||||
* @return DataList
|
||||
* @return static
|
||||
*/
|
||||
public function where($filter) {
|
||||
return $this->alterDataQuery(function(DataQuery $query) use ($filter){
|
||||
@ -224,7 +224,7 @@ class DataList extends ViewableData implements SS_List, SS_Filterable, SS_Sortab
|
||||
*
|
||||
* @param string|array|SQLConditionGroup $filter Predicate(s) to set, as escaped SQL statements or
|
||||
* paramaterised queries
|
||||
* @return DataList
|
||||
* @return static
|
||||
*/
|
||||
public function whereAny($filter) {
|
||||
return $this->alterDataQuery(function(DataQuery $query) use ($filter){
|
||||
@ -245,12 +245,24 @@ class DataList extends ViewableData implements SS_List, SS_Filterable, SS_Sortab
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns true if this DataList can be filtered by the given field.
|
||||
*
|
||||
* @param string $fieldName
|
||||
* @param string $fieldName (May be a related field in dot notation like Member.FirstName)
|
||||
* @return boolean
|
||||
*/
|
||||
public function canFilterBy($fieldName) {
|
||||
if($t = singleton($this->dataClass)->hasDatabaseField($fieldName)){
|
||||
$model = singleton($this->dataClass);
|
||||
$relations = explode(".", $fieldName);
|
||||
// First validate the relationships
|
||||
$fieldName = array_pop($relations);
|
||||
foreach ($relations as $r) {
|
||||
$relationClass = $model->getRelationClass($r);
|
||||
if (!$relationClass) return false;
|
||||
$model = singleton($relationClass);
|
||||
if (!$model) return false;
|
||||
}
|
||||
// Then check field
|
||||
if ($model->hasDatabaseField($fieldName)){
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
@ -262,7 +274,7 @@ class DataList extends ViewableData implements SS_List, SS_Filterable, SS_Sortab
|
||||
*
|
||||
* @param int $limit
|
||||
* @param int $offset
|
||||
* @return DataList
|
||||
* @return static
|
||||
*/
|
||||
public function limit($limit, $offset = 0) {
|
||||
return $this->alterDataQuery(function(DataQuery $query) use ($limit, $offset){
|
||||
@ -274,7 +286,7 @@ class DataList extends ViewableData implements SS_List, SS_Filterable, SS_Sortab
|
||||
* Return a new DataList instance with distinct records or not
|
||||
*
|
||||
* @param bool $value
|
||||
* @return DataList
|
||||
* @return static
|
||||
*/
|
||||
public function distinct($value) {
|
||||
return $this->alterDataQuery(function(DataQuery $query) use ($value){
|
||||
@ -294,7 +306,7 @@ class DataList extends ViewableData implements SS_List, SS_Filterable, SS_Sortab
|
||||
* @example $list = $list->sort(array('Name'=>'ASC', 'Age'=>'DESC'));
|
||||
*
|
||||
* @param String|array Escaped SQL statement. If passed as array, all keys and values are assumed to be escaped.
|
||||
* @return DataList
|
||||
* @return static
|
||||
*/
|
||||
public function sort() {
|
||||
$count = func_num_args();
|
||||
@ -367,7 +379,7 @@ class DataList extends ViewableData implements SS_List, SS_Filterable, SS_Sortab
|
||||
* @todo extract the sql from $customQuery into a SQLGenerator class
|
||||
*
|
||||
* @param string|array Escaped SQL statement. If passed as array, all keys and values will be escaped internally
|
||||
* @return DataList
|
||||
* @return $this
|
||||
*/
|
||||
public function filter() {
|
||||
// Validate and process arguments
|
||||
@ -386,7 +398,7 @@ class DataList extends ViewableData implements SS_List, SS_Filterable, SS_Sortab
|
||||
* Return a new instance of the list with an added filter
|
||||
*
|
||||
* @param array $filterArray
|
||||
* @return DataList
|
||||
* @return $this
|
||||
*/
|
||||
public function addFilter($filterArray) {
|
||||
$list = $this;
|
||||
@ -424,7 +436,7 @@ class DataList extends ViewableData implements SS_List, SS_Filterable, SS_Sortab
|
||||
* @todo extract the sql from this method into a SQLGenerator class
|
||||
*
|
||||
* @param string|array See {@link filter()}
|
||||
* @return DataList
|
||||
* @return static
|
||||
*/
|
||||
public function filterAny() {
|
||||
$numberFuncArgs = count(func_get_args());
|
||||
@ -498,7 +510,7 @@ class DataList extends ViewableData implements SS_List, SS_Filterable, SS_Sortab
|
||||
* @param string &$columnName Quoted column name
|
||||
* @param bool $linearOnly Set to true to restrict to linear relations only. Set this
|
||||
* if this relation will be used for sorting, and should not include duplicate rows.
|
||||
* @return DataList DataList with this relation applied
|
||||
* @return $this DataList with this relation applied
|
||||
*/
|
||||
public function applyRelation($field, &$columnName = null, $linearOnly = false) {
|
||||
// If field is invalid, return it without modification
|
||||
@ -544,7 +556,7 @@ class DataList extends ViewableData implements SS_List, SS_Filterable, SS_Sortab
|
||||
* @param string $filter - example StartsWith, relates to a filtercontext
|
||||
* @param array $modifiers - Modifiers to pass to the filter, ie not,nocase
|
||||
* @param string $value - the value that the filtercontext will use for matching
|
||||
* @return DataList
|
||||
* @return static
|
||||
*/
|
||||
private function applyFilterContext($field, $filter, $modifiers, $value) {
|
||||
if($filter) {
|
||||
@ -578,7 +590,7 @@ class DataList extends ViewableData implements SS_List, SS_Filterable, SS_Sortab
|
||||
* @todo extract the sql from this method into a SQLGenerator class
|
||||
*
|
||||
* @param string|array Escaped SQL statement. If passed as array, all keys and values will be escaped internally
|
||||
* @return DataList
|
||||
* @return $this
|
||||
*/
|
||||
public function exclude() {
|
||||
$numberFuncArgs = count(func_get_args());
|
||||
@ -622,7 +634,7 @@ class DataList extends ViewableData implements SS_List, SS_Filterable, SS_Sortab
|
||||
* The $list passed needs to contain the same dataclass as $this
|
||||
*
|
||||
* @param DataList $list
|
||||
* @return DataList
|
||||
* @return static
|
||||
* @throws BadMethodCallException
|
||||
*/
|
||||
public function subtract(DataList $list) {
|
||||
@ -645,7 +657,7 @@ class DataList extends ViewableData implements SS_List, SS_Filterable, SS_Sortab
|
||||
* will cause the query to appear first. The default is 20, and joins created automatically by the
|
||||
* ORM have a value of 10.
|
||||
* @param array $parameters Any additional parameters if the join is a parameterised subquery
|
||||
* @return DataList
|
||||
* @return static
|
||||
*/
|
||||
public function innerJoin($table, $onClause, $alias = null, $order = 20, $parameters = array()) {
|
||||
return $this->alterDataQuery(function(DataQuery $query) use ($table, $onClause, $alias, $order, $parameters){
|
||||
@ -663,7 +675,7 @@ class DataList extends ViewableData implements SS_List, SS_Filterable, SS_Sortab
|
||||
* will cause the query to appear first. The default is 20, and joins created automatically by the
|
||||
* ORM have a value of 10.
|
||||
* @param array $parameters Any additional parameters if the join is a parameterised subquery
|
||||
* @return DataList
|
||||
* @return static
|
||||
*/
|
||||
public function leftJoin($table, $onClause, $alias = null, $order = 20, $parameters = array()) {
|
||||
return $this->alterDataQuery(function(DataQuery $query) use ($table, $onClause, $alias, $order, $parameters){
|
||||
@ -708,7 +720,7 @@ class DataList extends ViewableData implements SS_List, SS_Filterable, SS_Sortab
|
||||
* Walks the list using the specified callback
|
||||
*
|
||||
* @param callable $callback
|
||||
* @return DataList
|
||||
* @return $this
|
||||
*/
|
||||
public function each($callback) {
|
||||
foreach($this as $row) {
|
||||
@ -881,7 +893,7 @@ class DataList extends ViewableData implements SS_List, SS_Filterable, SS_Sortab
|
||||
* Restrict the columns to fetch into this DataList
|
||||
*
|
||||
* @param array $queriedColumns
|
||||
* @return DataList
|
||||
* @return static
|
||||
*/
|
||||
public function setQueriedColumns($queriedColumns) {
|
||||
return $this->alterDataQuery(function(DataQuery $query) use ($queriedColumns){
|
||||
@ -893,7 +905,7 @@ class DataList extends ViewableData implements SS_List, SS_Filterable, SS_Sortab
|
||||
* Filter this list to only contain the given Primary IDs
|
||||
*
|
||||
* @param array $ids Array of integers
|
||||
* @return DataList
|
||||
* @return $this
|
||||
*/
|
||||
public function byIDs($ids) {
|
||||
return $this->filter('ID', $ids);
|
||||
@ -987,7 +999,7 @@ class DataList extends ViewableData implements SS_List, SS_Filterable, SS_Sortab
|
||||
* Add a number of items to the component set.
|
||||
*
|
||||
* @param array $items Items to add, as either DataObjects or IDs.
|
||||
* @return DataList
|
||||
* @return $this
|
||||
*/
|
||||
public function addMany($items) {
|
||||
foreach($items as $item) {
|
||||
@ -1000,7 +1012,7 @@ class DataList extends ViewableData implements SS_List, SS_Filterable, SS_Sortab
|
||||
* Remove the items from this list with the given IDs
|
||||
*
|
||||
* @param array $idList
|
||||
* @return DataList
|
||||
* @return $this
|
||||
*/
|
||||
public function removeMany($idList) {
|
||||
foreach($idList as $id) {
|
||||
@ -1013,7 +1025,7 @@ class DataList extends ViewableData implements SS_List, SS_Filterable, SS_Sortab
|
||||
* Remove every element in this DataList matching the given $filter.
|
||||
*
|
||||
* @param string $filter - a sql type where filter
|
||||
* @return DataList
|
||||
* @return $this
|
||||
*/
|
||||
public function removeByFilter($filter) {
|
||||
foreach($this->where($filter) as $item) {
|
||||
@ -1025,7 +1037,7 @@ class DataList extends ViewableData implements SS_List, SS_Filterable, SS_Sortab
|
||||
/**
|
||||
* Remove every element in this DataList.
|
||||
*
|
||||
* @return DataList
|
||||
* @return $this
|
||||
*/
|
||||
public function removeAll() {
|
||||
foreach($this as $item) {
|
||||
@ -1085,7 +1097,7 @@ class DataList extends ViewableData implements SS_List, SS_Filterable, SS_Sortab
|
||||
/**
|
||||
* Reverses a list of items.
|
||||
*
|
||||
* @return DataList
|
||||
* @return static
|
||||
*/
|
||||
public function reverse() {
|
||||
return $this->alterDataQuery(function(DataQuery $query){
|
||||
|
@ -12,6 +12,9 @@ use InvalidArgumentException;
|
||||
*/
|
||||
class HasManyList extends RelationList {
|
||||
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
protected $foreignKey;
|
||||
|
||||
/**
|
||||
@ -38,6 +41,10 @@ class HasManyList extends RelationList {
|
||||
return $this->foreignKey;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param null|int $id
|
||||
* @return array
|
||||
*/
|
||||
protected function foreignIDFilter($id = null) {
|
||||
if ($id === null) {
|
||||
$id = $this->getForeignID();
|
||||
|
@ -158,6 +158,14 @@ class ManyManyList extends RelationList {
|
||||
return $dataObject;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return a filter expression for when getting the contents of the
|
||||
* relationship for some foreign ID
|
||||
*
|
||||
* @param int|null $id
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
protected function foreignIDFilter($id = null) {
|
||||
if ($id === null) {
|
||||
$id = $this->getForeignID();
|
||||
@ -179,7 +187,7 @@ class ManyManyList extends RelationList {
|
||||
* entries. However some subclasses of ManyManyList (Member_GroupSet) modify foreignIDFilter to
|
||||
* include additional calculated entries, so we need different filters when reading and when writing
|
||||
*
|
||||
* @param array|integer $id (optional) An ID or an array of IDs - if not provided, will use the current ids
|
||||
* @param array|int|null $id (optional) An ID or an array of IDs - if not provided, will use the current ids
|
||||
* as per getForeignID
|
||||
* @return array Condition In array(SQL => parameters format)
|
||||
*/
|
||||
@ -191,7 +199,10 @@ class ManyManyList extends RelationList {
|
||||
* Add an item to this many_many relationship
|
||||
* Does so by adding an entry to the joinTable.
|
||||
*
|
||||
* @param mixed $item
|
||||
* @throws InvalidArgumentException
|
||||
* @throws Exception
|
||||
*
|
||||
* @param DataObject|int $item
|
||||
* @param array $extraFields A map of additional columns to insert into the joinTable.
|
||||
* Column names should be ANSI quoted.
|
||||
* @throws Exception
|
||||
|
@ -14,6 +14,9 @@ use Exception;
|
||||
*/
|
||||
abstract class RelationList extends DataList implements Relation {
|
||||
|
||||
/**
|
||||
* @return string|null
|
||||
*/
|
||||
public function getForeignID() {
|
||||
return $this->dataQuery->getQueryParam('Foreign.ID');
|
||||
}
|
||||
@ -37,6 +40,7 @@ abstract class RelationList extends DataList implements Relation {
|
||||
* the given foreign ID.
|
||||
*
|
||||
* @param int|array $id An ID or an array of IDs.
|
||||
*
|
||||
* @return static
|
||||
*/
|
||||
public function forForeignID($id) {
|
||||
@ -46,7 +50,8 @@ abstract class RelationList extends DataList implements Relation {
|
||||
// Calculate the new filter
|
||||
$filter = $this->foreignIDFilter($id);
|
||||
|
||||
$list = $this->alterDataQuery(function($query, $list) use ($id, $filter){
|
||||
$list = $this->alterDataQuery(function($query) use ($id, $filter){
|
||||
/** @var DataQuery $query */
|
||||
// Check if there is an existing filter, remove if there is
|
||||
$currentFilter = $query->getQueryParam('Foreign.Filter');
|
||||
if($currentFilter) {
|
||||
|
@ -51,7 +51,7 @@ class CMSMemberLoginForm extends LoginForm {
|
||||
);
|
||||
|
||||
if(Security::config()->autologin_enabled) {
|
||||
$fields->push(new CheckboxField(
|
||||
$fields->push(CheckboxField::create(
|
||||
"Remember",
|
||||
_t('Member.REMEMBERME', "Remember me next time?")
|
||||
));
|
||||
|
@ -111,16 +111,19 @@ class ChangePasswordForm extends Form {
|
||||
else if($data['NewPassword1'] == $data['NewPassword2']) {
|
||||
$isValid = $member->changePassword($data['NewPassword1']);
|
||||
if($isValid->valid()) {
|
||||
$member->logIn();
|
||||
|
||||
// TODO Add confirmation message to login redirect
|
||||
Session::clear('AutoLoginHash');
|
||||
|
||||
// Clear locked out status
|
||||
$member->LockedOutUntil = null;
|
||||
$member->FailedLoginCount = null;
|
||||
$member->write();
|
||||
|
||||
if ($member->canLogIn()->valid()) {
|
||||
$member->logIn();
|
||||
}
|
||||
|
||||
// TODO Add confirmation message to login redirect
|
||||
Session::clear('AutoLoginHash');
|
||||
|
||||
if (!empty($_REQUEST['BackURL'])
|
||||
// absolute redirection URLs may cause spoofing
|
||||
&& Director::is_site_url($_REQUEST['BackURL'])
|
||||
|
@ -131,12 +131,24 @@ class Member extends DataObject implements TemplateGlobalProvider {
|
||||
'Email',
|
||||
);
|
||||
|
||||
/**
|
||||
* @config
|
||||
* @var array
|
||||
*/
|
||||
private static $summary_fields = array(
|
||||
'FirstName',
|
||||
'Surname',
|
||||
'Email',
|
||||
);
|
||||
|
||||
/**
|
||||
* @config
|
||||
* @var array
|
||||
*/
|
||||
private static $casting = array(
|
||||
'Name' => 'Varchar',
|
||||
);
|
||||
|
||||
/**
|
||||
* Internal-use only fields
|
||||
*
|
||||
@ -505,24 +517,39 @@ class Member extends DataObject implements TemplateGlobalProvider {
|
||||
// This lets apache rules detect whether the user has logged in
|
||||
if(Member::config()->login_marker_cookie) Cookie::set(Member::config()->login_marker_cookie, 1, 0);
|
||||
|
||||
if (Security::config()->autologin_enabled) {
|
||||
// Cleans up any potential previous hash for this member on this device
|
||||
if ($alcDevice = Cookie::get('alc_device')) {
|
||||
RememberLoginHash::get()->filter('DeviceID', $alcDevice)->removeAll();
|
||||
}
|
||||
if($remember) {
|
||||
if ($remember) {
|
||||
$rememberLoginHash = RememberLoginHash::generate($this);
|
||||
$tokenExpiryDays = Config::inst()->get('SilverStripe\\Security\\RememberLoginHash', 'token_expiry_days');
|
||||
$deviceExpiryDays = Config::inst()->get('SilverStripe\\Security\\RememberLoginHash', 'device_expiry_days');
|
||||
Cookie::set('alc_enc', $this->ID . ':' . $rememberLoginHash->getToken(),
|
||||
$tokenExpiryDays, null, null, null, true);
|
||||
$tokenExpiryDays = Config::inst()->get(
|
||||
'SilverStripe\\Security\\RememberLoginHash',
|
||||
'token_expiry_days'
|
||||
);
|
||||
$deviceExpiryDays = Config::inst()->get(
|
||||
'SilverStripe\\Security\\RememberLoginHash',
|
||||
'device_expiry_days'
|
||||
);
|
||||
Cookie::set(
|
||||
'alc_enc',
|
||||
$this->ID . ':' . $rememberLoginHash->getToken(),
|
||||
$tokenExpiryDays,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
true
|
||||
);
|
||||
Cookie::set('alc_device', $rememberLoginHash->DeviceID, $deviceExpiryDays, null, null, null, true);
|
||||
} else {
|
||||
}
|
||||
else {
|
||||
Cookie::set('alc_enc', null);
|
||||
Cookie::set('alc_device', null);
|
||||
Cookie::force_expiry('alc_enc');
|
||||
Cookie::force_expiry('alc_device');
|
||||
}
|
||||
|
||||
}
|
||||
// Clear the incorrect log-in count
|
||||
$this->registerSuccessfulLogin();
|
||||
|
||||
@ -580,7 +607,8 @@ class Member extends DataObject implements TemplateGlobalProvider {
|
||||
self::$_already_tried_to_auto_log_in = true;
|
||||
}
|
||||
|
||||
if(strpos(Cookie::get('alc_enc'), ':') === false
|
||||
if(!Security::config()->autologin_enabled
|
||||
|| strpos(Cookie::get('alc_enc'), ':') === false
|
||||
|| Session::get("loggedInAs")
|
||||
|| !Security::database_is_ready()
|
||||
) {
|
||||
@ -905,7 +933,7 @@ class Member extends DataObject implements TemplateGlobalProvider {
|
||||
} else {
|
||||
$random = rand();
|
||||
$string = md5($random);
|
||||
$output = substr($string, 0, 6);
|
||||
$output = substr($string, 0, 8);
|
||||
return $output;
|
||||
}
|
||||
}
|
||||
@ -964,6 +992,9 @@ class Member extends DataObject implements TemplateGlobalProvider {
|
||||
// Note that this only works with cleartext passwords, as we can't rehash
|
||||
// existing passwords.
|
||||
if((!$this->ID && $this->Password) || $this->isChanged('Password')) {
|
||||
//reset salt so that it gets regenerated - this will invalidate any persistant login cookies
|
||||
// or other information encrypted with this Member's settings (see self::encryptWithUserSettings)
|
||||
$this->Salt = '';
|
||||
// Password was changed: encrypt the password according the settings
|
||||
$encryption_details = Security::encrypt_password(
|
||||
$this->Password, // this is assumed to be cleartext
|
||||
|
@ -372,10 +372,8 @@ class Security extends Controller implements TemplateGlobalProvider {
|
||||
if(in_array($authenticator, $authenticators)) {
|
||||
return $authenticator;
|
||||
}
|
||||
} else {
|
||||
return Authenticator::get_default_authenticator();
|
||||
}
|
||||
|
||||
return Authenticator::get_default_authenticator();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -6,25 +6,25 @@ if (typeof(ss) === 'undefined' || typeof(ss.i18n) === 'undefined') {
|
||||
}
|
||||
} else {
|
||||
ss.i18n.addDictionary('fa_IR', {
|
||||
"CMSMAIN.BATCH_ARCHIVE_PROMPT": "You have {num} page(s) selected.\n\nAre you sure you want to archive these pages?\n\nThese pages and all of their children pages will be unpublished and sent to the archive.",
|
||||
"CMSMAIN.BATCH_DELETELIVE_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to delete these pages from live?",
|
||||
"CMSMAIN.BATCH_DELETE_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to delete?",
|
||||
"CMSMAIN.BATCH_PUBLISH_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to publish?",
|
||||
"CMSMAIN.BATCH_ARCHIVE_PROMPT": "شما {num} صفحه(صفحهها) را انتخاب کردهاید.\n\n\nآیا از اینکه میخواهید بایگانی شوند اطمینان دارید؟\n\nتمامی این صفحات و تمامی صفحات فرزند آنها عدم انتشار میشوند و به بایگانی ارسال میگردند.",
|
||||
"CMSMAIN.BATCH_DELETELIVE_PROMPT": "شما {num} صفحه(صفحهها) را انتخاب کردهاید.\n\nآیا واقعاً میخواهید آنها از لایو را حذف نمایید؟",
|
||||
"CMSMAIN.BATCH_DELETE_PROMPT": "شما {num} صفحه(صفحهها) را انتخاب کردهاید.\n\nآیا واقعاً میخواهید آنها را حذف نمایید؟",
|
||||
"CMSMAIN.BATCH_PUBLISH_PROMPT": "شما {num} صفحه(صفحهها) را انتخاب کردهاید.\n\nآیا واقعاً میخواهید آنها را منتشر نمایید؟",
|
||||
"CMSMAIN.BATCH_RESTORE_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to restore to stage?\n\nChildren of archived pages will be restored to the root level, unless those pages are also being restored.",
|
||||
"CMSMAIN.BATCH_UNPUBLISH_PROMPT": "شما {num} صفحه را انتخاب کردهاید.\n\nآیا واقعاً میخواهید انتشار آنها را لغو نمایید",
|
||||
"CMSMAIN.SELECTONEPAGE": "لطفاً حداقل ۱ صفحه را انتخاب نمایید.",
|
||||
"Campaigns.ADDCAMPAIGN": "Add campaign",
|
||||
"Campaigns.ITEM_SUMMARY_PLURAL": "%s items",
|
||||
"Campaigns.ITEM_SUMMARY_SINGULAR": "%s item",
|
||||
"Campaigns.PUBLISHCAMPAIGN": "Publish campaign",
|
||||
"Campaigns.REVERTCAMPAIGN": "Revert",
|
||||
"Campaigns.ADDCAMPAIGN": "افزودن کمپین",
|
||||
"Campaigns.ITEM_SUMMARY_PLURAL": "%s آیتم",
|
||||
"Campaigns.ITEM_SUMMARY_SINGULAR": "%s آیتم",
|
||||
"Campaigns.PUBLISHCAMPAIGN": "انتشار کمپین",
|
||||
"Campaigns.REVERTCAMPAIGN": "بازگرداندن",
|
||||
"LeftAndMain.CONFIRMUNSAVED": "Are you sure you want to navigate away from this page?\n\nWARNING: Your changes have not been saved.\n\nPress OK to continue, or Cancel to stay on the current page.",
|
||||
"LeftAndMain.CONFIRMUNSAVEDSHORT": "WARNING: Your changes have not been saved.",
|
||||
"LeftAndMain.PAGEWASDELETED": "This page was deleted. To edit a page, select it from the left.",
|
||||
"LeftAndMain.CONFIRMUNSAVEDSHORT": "هشدار: تغییرات شما ذخیره نشدهاند.",
|
||||
"LeftAndMain.PAGEWASDELETED": "این صفحه حذف شده است. برای ویرایش یک صفحه، آنرا از لیست چپ انتخاب نمایید.",
|
||||
"ModelAdmin.DELETED": "حذف شده",
|
||||
"ModelAdmin.REALLYDELETE": "Do you really want to delete?",
|
||||
"ModelAdmin.REALLYDELETE": "آیا واقعاً میخواهید حذف نمایید؟",
|
||||
"ModelAdmin.SAVED": "ذخیره شده",
|
||||
"ModelAdmin.VALIDATIONERROR": "خطای اعتبارسنجی",
|
||||
"SecurityAdmin.BATCHACTIONSDELETECONFIRM": "Do you really want to delete %s groups?"
|
||||
"SecurityAdmin.BATCHACTIONSDELETECONFIRM": "آیا واقعاً میخواهید %s گروه را حذف نمایید؟"
|
||||
});
|
||||
}
|
@ -13,11 +13,11 @@ if (typeof(ss) === 'undefined' || typeof(ss.i18n) === 'undefined') {
|
||||
"CMSMAIN.BATCH_RESTORE_PROMPT": "Hai selezionato {num} pagina(e).\n\nSei sicuri di volerle ripristinare?\n\nI figli delle pagine archiviate saranno ripristinati nel primo livello, a meno anche i genitori non vengano ripristinati.",
|
||||
"CMSMAIN.BATCH_UNPUBLISH_PROMPT": "Hai {num} pagine selezionate.\n\nVuoi veramente nasconderle?",
|
||||
"CMSMAIN.SELECTONEPAGE": "Per favore selezionare almeno una pagina",
|
||||
"Campaigns.ADDCAMPAIGN": "Add campaign",
|
||||
"Campaigns.ITEM_SUMMARY_PLURAL": "%s items",
|
||||
"Campaigns.ITEM_SUMMARY_SINGULAR": "%s item",
|
||||
"Campaigns.PUBLISHCAMPAIGN": "Publish campaign",
|
||||
"Campaigns.REVERTCAMPAIGN": "Revert",
|
||||
"Campaigns.ADDCAMPAIGN": "Aggiungi campagna",
|
||||
"Campaigns.ITEM_SUMMARY_PLURAL": "%s elementi",
|
||||
"Campaigns.ITEM_SUMMARY_SINGULAR": "%s elemento",
|
||||
"Campaigns.PUBLISHCAMPAIGN": "Pubblica campagna",
|
||||
"Campaigns.REVERTCAMPAIGN": "Ripristina",
|
||||
"LeftAndMain.CONFIRMUNSAVED": "Siete sicuri di voler uscire da questa pagina?\n\nATTENZIONE: I vostri cambiamenti non sono stati salvati.\n\nCliccare OK per continuare, o su Annulla per rimanere sulla pagina corrente.",
|
||||
"LeftAndMain.CONFIRMUNSAVEDSHORT": "ATTENZIONE: le tue modifiche non sono state salvate.",
|
||||
"LeftAndMain.PAGEWASDELETED": "Questa pagina è stata eliminata. Per modificare questa pagine, selezionarla a sinistra.",
|
||||
|
@ -6,18 +6,18 @@ if (typeof(ss) === 'undefined' || typeof(ss.i18n) === 'undefined') {
|
||||
}
|
||||
} else {
|
||||
ss.i18n.addDictionary('ru', {
|
||||
"CMSMAIN.BATCH_ARCHIVE_PROMPT": "You have {num} page(s) selected.\n\nAre you sure you want to archive these pages?\n\nThese pages and all of their children pages will be unpublished and sent to the archive.",
|
||||
"CMSMAIN.BATCH_DELETELIVE_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to delete these pages from live?",
|
||||
"CMSMAIN.BATCH_DELETE_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to delete?",
|
||||
"CMSMAIN.BATCH_PUBLISH_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to publish?",
|
||||
"CMSMAIN.BATCH_RESTORE_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to restore to stage?\n\nChildren of archived pages will be restored to the root level, unless those pages are also being restored.",
|
||||
"CMSMAIN.BATCH_UNPUBLISH_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to unpublish",
|
||||
"CMSMAIN.SELECTONEPAGE": "Please select at least one page",
|
||||
"Campaigns.ADDCAMPAIGN": "Add campaign",
|
||||
"Campaigns.ITEM_SUMMARY_PLURAL": "%s items",
|
||||
"Campaigns.ITEM_SUMMARY_SINGULAR": "%s item",
|
||||
"Campaigns.PUBLISHCAMPAIGN": "Publish campaign",
|
||||
"Campaigns.REVERTCAMPAIGN": "Revert",
|
||||
"CMSMAIN.BATCH_ARCHIVE_PROMPT": "Вы выбрали {num} страниц(у)\nВы уверены что хотите отправить их в архив?\n\nПубликации этих страниц и их под-страниц будут отменены и отправлены в архив. ",
|
||||
"CMSMAIN.BATCH_DELETELIVE_PROMPT": "Вы выбрали {num} страниц(у)\n\nВы уверены что хотите отменить публикацию этих страниц?",
|
||||
"CMSMAIN.BATCH_DELETE_PROMPT": "Вы выбрали {num} страниц(у)\n\nВы уверены что хотите их удалить?",
|
||||
"CMSMAIN.BATCH_PUBLISH_PROMPT": "Вы выбрали {num} страниц(у)\n\nВы уверены что хотите их опубликовать?",
|
||||
"CMSMAIN.BATCH_RESTORE_PROMPT": "Вы выбрали {num} страниц(у)\n\nВы уверены что хотите восстановить эти страницы в черновик?\n\nПод-страницы архивных страниц будут восстановлены в корень если эти страницы также не отмечены для восстановления.",
|
||||
"CMSMAIN.BATCH_UNPUBLISH_PROMPT": "Вы выбрали {num} страниц(у)\n\nВы уверены что хотите отменить их публикацию?",
|
||||
"CMSMAIN.SELECTONEPAGE": "Пожалуйста, выберите хотя бы одну страницу.",
|
||||
"Campaigns.ADDCAMPAIGN": "Добавить кампанию",
|
||||
"Campaigns.ITEM_SUMMARY_PLURAL": "%s элементов",
|
||||
"Campaigns.ITEM_SUMMARY_SINGULAR": "%s элемент",
|
||||
"Campaigns.PUBLISHCAMPAIGN": "Опубликовать кампанию",
|
||||
"Campaigns.REVERTCAMPAIGN": "Отменить",
|
||||
"LeftAndMain.CONFIRMUNSAVED": "Вы действительно хотите покинуть эту страницу?\n\nВНИМАНИЕ: Ваши изменения не были сохранены.\n\nНажмите ОК, чтобы продолжить или Отмена, чтобы остаться на текущей странице.",
|
||||
"LeftAndMain.CONFIRMUNSAVEDSHORT": "ВНИМАНИЕ: Ваши изменения не были сохранены",
|
||||
"LeftAndMain.PAGEWASDELETED": "Эта страница была удалена. Чтобы изменить страницу, выберите её из списка слева.",
|
||||
|
@ -1,22 +1,22 @@
|
||||
{
|
||||
"CMSMAIN.BATCH_ARCHIVE_PROMPT": "You have {num} page(s) selected.\n\nAre you sure you want to archive these pages?\n\nThese pages and all of their children pages will be unpublished and sent to the archive.",
|
||||
"CMSMAIN.BATCH_DELETELIVE_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to delete these pages from live?",
|
||||
"CMSMAIN.BATCH_DELETE_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to delete?",
|
||||
"CMSMAIN.BATCH_PUBLISH_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to publish?",
|
||||
"CMSMAIN.BATCH_ARCHIVE_PROMPT": "شما {num} صفحه(صفحهها) را انتخاب کردهاید.\n\n\nآیا از اینکه میخواهید بایگانی شوند اطمینان دارید؟\n\nتمامی این صفحات و تمامی صفحات فرزند آنها عدم انتشار میشوند و به بایگانی ارسال میگردند.",
|
||||
"CMSMAIN.BATCH_DELETELIVE_PROMPT": "شما {num} صفحه(صفحهها) را انتخاب کردهاید.\n\nآیا واقعاً میخواهید آنها از لایو را حذف نمایید؟",
|
||||
"CMSMAIN.BATCH_DELETE_PROMPT": "شما {num} صفحه(صفحهها) را انتخاب کردهاید.\n\nآیا واقعاً میخواهید آنها را حذف نمایید؟",
|
||||
"CMSMAIN.BATCH_PUBLISH_PROMPT": "شما {num} صفحه(صفحهها) را انتخاب کردهاید.\n\nآیا واقعاً میخواهید آنها را منتشر نمایید؟",
|
||||
"CMSMAIN.BATCH_RESTORE_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to restore to stage?\n\nChildren of archived pages will be restored to the root level, unless those pages are also being restored.",
|
||||
"CMSMAIN.BATCH_UNPUBLISH_PROMPT": "شما {num} صفحه را انتخاب کردهاید.\n\nآیا واقعاً میخواهید انتشار آنها را لغو نمایید",
|
||||
"CMSMAIN.SELECTONEPAGE": "لطفاً حداقل ۱ صفحه را انتخاب نمایید.",
|
||||
"Campaigns.ADDCAMPAIGN": "Add campaign",
|
||||
"Campaigns.ITEM_SUMMARY_PLURAL": "%s items",
|
||||
"Campaigns.ITEM_SUMMARY_SINGULAR": "%s item",
|
||||
"Campaigns.PUBLISHCAMPAIGN": "Publish campaign",
|
||||
"Campaigns.REVERTCAMPAIGN": "Revert",
|
||||
"Campaigns.ADDCAMPAIGN": "افزودن کمپین",
|
||||
"Campaigns.ITEM_SUMMARY_PLURAL": "%s آیتم",
|
||||
"Campaigns.ITEM_SUMMARY_SINGULAR": "%s آیتم",
|
||||
"Campaigns.PUBLISHCAMPAIGN": "انتشار کمپین",
|
||||
"Campaigns.REVERTCAMPAIGN": "بازگرداندن",
|
||||
"LeftAndMain.CONFIRMUNSAVED": "Are you sure you want to navigate away from this page?\n\nWARNING: Your changes have not been saved.\n\nPress OK to continue, or Cancel to stay on the current page.",
|
||||
"LeftAndMain.CONFIRMUNSAVEDSHORT": "WARNING: Your changes have not been saved.",
|
||||
"LeftAndMain.PAGEWASDELETED": "This page was deleted. To edit a page, select it from the left.",
|
||||
"LeftAndMain.CONFIRMUNSAVEDSHORT": "هشدار: تغییرات شما ذخیره نشدهاند.",
|
||||
"LeftAndMain.PAGEWASDELETED": "این صفحه حذف شده است. برای ویرایش یک صفحه، آنرا از لیست چپ انتخاب نمایید.",
|
||||
"ModelAdmin.DELETED": "حذف شده",
|
||||
"ModelAdmin.REALLYDELETE": "Do you really want to delete?",
|
||||
"ModelAdmin.REALLYDELETE": "آیا واقعاً میخواهید حذف نمایید؟",
|
||||
"ModelAdmin.SAVED": "ذخیره شده",
|
||||
"ModelAdmin.VALIDATIONERROR": "خطای اعتبارسنجی",
|
||||
"SecurityAdmin.BATCHACTIONSDELETECONFIRM": "Do you really want to delete %s groups?"
|
||||
"SecurityAdmin.BATCHACTIONSDELETECONFIRM": "آیا واقعاً میخواهید %s گروه را حذف نمایید؟"
|
||||
}
|
@ -6,11 +6,11 @@
|
||||
"CMSMAIN.BATCH_RESTORE_PROMPT": "Hai selezionato {num} pagina(e).\n\nSei sicuri di volerle ripristinare?\n\nI figli delle pagine archiviate saranno ripristinati nel primo livello, a meno anche i genitori non vengano ripristinati.",
|
||||
"CMSMAIN.BATCH_UNPUBLISH_PROMPT": "Hai {num} pagine selezionate.\n\nVuoi veramente nasconderle?",
|
||||
"CMSMAIN.SELECTONEPAGE": "Per favore selezionare almeno una pagina",
|
||||
"Campaigns.ADDCAMPAIGN": "Add campaign",
|
||||
"Campaigns.ITEM_SUMMARY_PLURAL": "%s items",
|
||||
"Campaigns.ITEM_SUMMARY_SINGULAR": "%s item",
|
||||
"Campaigns.PUBLISHCAMPAIGN": "Publish campaign",
|
||||
"Campaigns.REVERTCAMPAIGN": "Revert",
|
||||
"Campaigns.ADDCAMPAIGN": "Aggiungi campagna",
|
||||
"Campaigns.ITEM_SUMMARY_PLURAL": "%s elementi",
|
||||
"Campaigns.ITEM_SUMMARY_SINGULAR": "%s elemento",
|
||||
"Campaigns.PUBLISHCAMPAIGN": "Pubblica campagna",
|
||||
"Campaigns.REVERTCAMPAIGN": "Ripristina",
|
||||
"LeftAndMain.CONFIRMUNSAVED": "Siete sicuri di voler uscire da questa pagina?\n\nATTENZIONE: I vostri cambiamenti non sono stati salvati.\n\nCliccare OK per continuare, o su Annulla per rimanere sulla pagina corrente.",
|
||||
"LeftAndMain.CONFIRMUNSAVEDSHORT": "ATTENZIONE: le tue modifiche non sono state salvate.",
|
||||
"LeftAndMain.PAGEWASDELETED": "Questa pagina è stata eliminata. Per modificare questa pagine, selezionarla a sinistra.",
|
||||
|
@ -1,16 +1,16 @@
|
||||
{
|
||||
"CMSMAIN.BATCH_ARCHIVE_PROMPT": "You have {num} page(s) selected.\n\nAre you sure you want to archive these pages?\n\nThese pages and all of their children pages will be unpublished and sent to the archive.",
|
||||
"CMSMAIN.BATCH_DELETELIVE_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to delete these pages from live?",
|
||||
"CMSMAIN.BATCH_DELETE_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to delete?",
|
||||
"CMSMAIN.BATCH_PUBLISH_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to publish?",
|
||||
"CMSMAIN.BATCH_RESTORE_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to restore to stage?\n\nChildren of archived pages will be restored to the root level, unless those pages are also being restored.",
|
||||
"CMSMAIN.BATCH_UNPUBLISH_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to unpublish",
|
||||
"CMSMAIN.SELECTONEPAGE": "Please select at least one page",
|
||||
"Campaigns.ADDCAMPAIGN": "Add campaign",
|
||||
"Campaigns.ITEM_SUMMARY_PLURAL": "%s items",
|
||||
"Campaigns.ITEM_SUMMARY_SINGULAR": "%s item",
|
||||
"Campaigns.PUBLISHCAMPAIGN": "Publish campaign",
|
||||
"Campaigns.REVERTCAMPAIGN": "Revert",
|
||||
"CMSMAIN.BATCH_ARCHIVE_PROMPT": "Вы выбрали {num} страниц(у)\nВы уверены что хотите отправить их в архив?\n\nПубликации этих страниц и их под-страниц будут отменены и отправлены в архив. ",
|
||||
"CMSMAIN.BATCH_DELETELIVE_PROMPT": "Вы выбрали {num} страниц(у)\n\nВы уверены что хотите отменить публикацию этих страниц?",
|
||||
"CMSMAIN.BATCH_DELETE_PROMPT": "Вы выбрали {num} страниц(у)\n\nВы уверены что хотите их удалить?",
|
||||
"CMSMAIN.BATCH_PUBLISH_PROMPT": "Вы выбрали {num} страниц(у)\n\nВы уверены что хотите их опубликовать?",
|
||||
"CMSMAIN.BATCH_RESTORE_PROMPT": "Вы выбрали {num} страниц(у)\n\nВы уверены что хотите восстановить эти страницы в черновик?\n\nПод-страницы архивных страниц будут восстановлены в корень если эти страницы также не отмечены для восстановления.",
|
||||
"CMSMAIN.BATCH_UNPUBLISH_PROMPT": "Вы выбрали {num} страниц(у)\n\nВы уверены что хотите отменить их публикацию?",
|
||||
"CMSMAIN.SELECTONEPAGE": "Пожалуйста, выберите хотя бы одну страницу.",
|
||||
"Campaigns.ADDCAMPAIGN": "Добавить кампанию",
|
||||
"Campaigns.ITEM_SUMMARY_PLURAL": "%s элементов",
|
||||
"Campaigns.ITEM_SUMMARY_SINGULAR": "%s элемент",
|
||||
"Campaigns.PUBLISHCAMPAIGN": "Опубликовать кампанию",
|
||||
"Campaigns.REVERTCAMPAIGN": "Отменить",
|
||||
"LeftAndMain.CONFIRMUNSAVED": "Вы действительно хотите покинуть эту страницу?\n\nВНИМАНИЕ: Ваши изменения не были сохранены.\n\nНажмите ОК, чтобы продолжить или Отмена, чтобы остаться на текущей странице.",
|
||||
"LeftAndMain.CONFIRMUNSAVEDSHORT": "ВНИМАНИЕ: Ваши изменения не были сохранены",
|
||||
"LeftAndMain.PAGEWASDELETED": "Эта страница была удалена. Чтобы изменить страницу, выберите её из списка слева.",
|
||||
|
@ -1813,6 +1813,9 @@ class LeftAndMain extends Controller implements PermissionProvider {
|
||||
public function currentPageID() {
|
||||
if($this->getRequest()->requestVar('ID') && is_numeric($this->getRequest()->requestVar('ID'))) {
|
||||
return $this->getRequest()->requestVar('ID');
|
||||
} elseif ($this->getRequest()->requestVar('CMSMainCurrentPageID') && is_numeric($this->getRequest()->requestVar('CMSMainCurrentPageID'))) {
|
||||
// see GridFieldDetailForm::ItemEditForm
|
||||
return $this->getRequest()->requestVar('CMSMainCurrentPageID');
|
||||
} elseif (isset($this->urlParams['ID']) && is_numeric($this->urlParams['ID'])) {
|
||||
return $this->urlParams['ID'];
|
||||
} elseif(Session::get($this->sessionNamespace() . ".currentPage")) {
|
||||
|
30
admin/javascript/lang/hr.js
Normal file
30
admin/javascript/lang/hr.js
Normal file
@ -0,0 +1,30 @@
|
||||
// This file was generated by silverstripe/cow from admin/javascript/lang/src/hr.js.
|
||||
// See https://github.com/tractorcow/cow for details
|
||||
if (typeof(ss) === 'undefined' || typeof(ss.i18n) === 'undefined') {
|
||||
if (typeof(console) !== 'undefined') { // eslint-disable-line no-console
|
||||
console.error('Class ss.i18n not defined'); // eslint-disable-line no-console
|
||||
}
|
||||
} else {
|
||||
ss.i18n.addDictionary('hr', {
|
||||
"CMSMAIN.BATCH_ARCHIVE_PROMPT": "You have {num} page(s) selected.\n\nAre you sure you want to archive these pages?\n\nThese pages and all of their children pages will be unpublished and sent to the archive.",
|
||||
"CMSMAIN.BATCH_DELETELIVE_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to delete these pages from live?",
|
||||
"CMSMAIN.BATCH_DELETE_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to delete?",
|
||||
"CMSMAIN.BATCH_PUBLISH_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to publish?",
|
||||
"CMSMAIN.BATCH_RESTORE_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to restore to stage?\n\nChildren of archived pages will be restored to the root level, unless those pages are also being restored.",
|
||||
"CMSMAIN.BATCH_UNPUBLISH_PROMPT": "Označili ste {num} stranicu(a).\n\nJeste li sigurni da želite odjaviti?",
|
||||
"CMSMAIN.SELECTONEPAGE": "Molimo odaberite bar jednu stranicu",
|
||||
"Campaigns.ADDCAMPAIGN": "Dodaj kampanju",
|
||||
"Campaigns.ITEM_SUMMARY_PLURAL": "%s stavki",
|
||||
"Campaigns.ITEM_SUMMARY_SINGULAR": "%s stavka",
|
||||
"Campaigns.PUBLISHCAMPAIGN": "Objavi kampanju",
|
||||
"Campaigns.REVERTCAMPAIGN": "Vrati",
|
||||
"LeftAndMain.CONFIRMUNSAVED": "Jeste li sigurni da želite otići s ove stranice?\n\nUPOZORENJE: Vaše promjene nisu spremljene.\n\nPritisnike OK za nastavka, ili Odustani za ostati na trenutnoj stranici.",
|
||||
"LeftAndMain.CONFIRMUNSAVEDSHORT": "UPOZORENJE: Vaše promjene nisu spremljene.",
|
||||
"LeftAndMain.PAGEWASDELETED": "Ova stranica je obrisana. Za uređivanje stranice, odaberite je s lijeve stranice.",
|
||||
"ModelAdmin.DELETED": "Obrisano",
|
||||
"ModelAdmin.REALLYDELETE": "Jeste li sigurni da želite obrisati?",
|
||||
"ModelAdmin.SAVED": "Spremljeno",
|
||||
"ModelAdmin.VALIDATIONERROR": "Greška validacije",
|
||||
"SecurityAdmin.BATCHACTIONSDELETECONFIRM": "Jeste li sigurni da želite obrisati %s grupe?"
|
||||
});
|
||||
}
|
30
admin/javascript/lang/sl_SI.js
Normal file
30
admin/javascript/lang/sl_SI.js
Normal file
@ -0,0 +1,30 @@
|
||||
// This file was generated by silverstripe/cow from admin/javascript/lang/src/sl_SI.js.
|
||||
// See https://github.com/tractorcow/cow for details
|
||||
if (typeof(ss) === 'undefined' || typeof(ss.i18n) === 'undefined') {
|
||||
if (typeof(console) !== 'undefined') { // eslint-disable-line no-console
|
||||
console.error('Class ss.i18n not defined'); // eslint-disable-line no-console
|
||||
}
|
||||
} else {
|
||||
ss.i18n.addDictionary('sl_SI', {
|
||||
"CMSMAIN.BATCH_ARCHIVE_PROMPT": "Izbrano število strani: {num}\n\nSte prepričani, da želite arhivirati te strani?\n\nTe strani in vse ostale podstrani bodo odstranjene iz objave in premaknjene v arhiv.",
|
||||
"CMSMAIN.BATCH_DELETELIVE_PROMPT": "Izbrali ste {num} strani.\n\nAli ste prepričani, da želite izbrisati te strani iz objave?",
|
||||
"CMSMAIN.BATCH_DELETE_PROMPT": "Izbrali ste {num} strani.\n\nAli ste prepričani, da jih želite izbrisati?",
|
||||
"CMSMAIN.BATCH_PUBLISH_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to publish?",
|
||||
"CMSMAIN.BATCH_RESTORE_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to restore to stage?\n\nChildren of archived pages will be restored to the root level, unless those pages are also being restored.",
|
||||
"CMSMAIN.BATCH_UNPUBLISH_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to unpublish",
|
||||
"CMSMAIN.SELECTONEPAGE": "Prosimo izberite vsaj eno stran",
|
||||
"Campaigns.ADDCAMPAIGN": "Dodaj kampanjo",
|
||||
"Campaigns.ITEM_SUMMARY_PLURAL": "% predmetov",
|
||||
"Campaigns.ITEM_SUMMARY_SINGULAR": "%s predmet",
|
||||
"Campaigns.PUBLISHCAMPAIGN": "Objavi kampanjo",
|
||||
"Campaigns.REVERTCAMPAIGN": "Povrni",
|
||||
"LeftAndMain.CONFIRMUNSAVED": "Are you sure you want to navigate away from this page?\n\nWARNING: Your changes have not been saved.\n\nPress OK to continue, or Cancel to stay on the current page.",
|
||||
"LeftAndMain.CONFIRMUNSAVEDSHORT": "POZOR: Spremembe niso bile shranjene.",
|
||||
"LeftAndMain.PAGEWASDELETED": "Ta stran je bila izbrisana. Če želite urediti stran, jo najprej izberite na levi strani.",
|
||||
"ModelAdmin.DELETED": "Izbrisano",
|
||||
"ModelAdmin.REALLYDELETE": "Ste prepričani, da želite izbrisati?",
|
||||
"ModelAdmin.SAVED": "Shranjeno",
|
||||
"ModelAdmin.VALIDATIONERROR": "Napaka pri validaciji",
|
||||
"SecurityAdmin.BATCHACTIONSDELETECONFIRM": "Ste prepričani, da želite pobrisati grupe: %s ?"
|
||||
});
|
||||
}
|
22
admin/javascript/lang/src/hr.js
Normal file
22
admin/javascript/lang/src/hr.js
Normal file
@ -0,0 +1,22 @@
|
||||
{
|
||||
"CMSMAIN.BATCH_ARCHIVE_PROMPT": "You have {num} page(s) selected.\n\nAre you sure you want to archive these pages?\n\nThese pages and all of their children pages will be unpublished and sent to the archive.",
|
||||
"CMSMAIN.BATCH_DELETELIVE_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to delete these pages from live?",
|
||||
"CMSMAIN.BATCH_DELETE_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to delete?",
|
||||
"CMSMAIN.BATCH_PUBLISH_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to publish?",
|
||||
"CMSMAIN.BATCH_RESTORE_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to restore to stage?\n\nChildren of archived pages will be restored to the root level, unless those pages are also being restored.",
|
||||
"CMSMAIN.BATCH_UNPUBLISH_PROMPT": "Označili ste {num} stranicu(a).\n\nJeste li sigurni da želite odjaviti?",
|
||||
"CMSMAIN.SELECTONEPAGE": "Molimo odaberite bar jednu stranicu",
|
||||
"Campaigns.ADDCAMPAIGN": "Dodaj kampanju",
|
||||
"Campaigns.ITEM_SUMMARY_PLURAL": "%s stavki",
|
||||
"Campaigns.ITEM_SUMMARY_SINGULAR": "%s stavka",
|
||||
"Campaigns.PUBLISHCAMPAIGN": "Objavi kampanju",
|
||||
"Campaigns.REVERTCAMPAIGN": "Vrati",
|
||||
"LeftAndMain.CONFIRMUNSAVED": "Jeste li sigurni da želite otići s ove stranice?\n\nUPOZORENJE: Vaše promjene nisu spremljene.\n\nPritisnike OK za nastavka, ili Odustani za ostati na trenutnoj stranici.",
|
||||
"LeftAndMain.CONFIRMUNSAVEDSHORT": "UPOZORENJE: Vaše promjene nisu spremljene.",
|
||||
"LeftAndMain.PAGEWASDELETED": "Ova stranica je obrisana. Za uređivanje stranice, odaberite je s lijeve stranice.",
|
||||
"ModelAdmin.DELETED": "Obrisano",
|
||||
"ModelAdmin.REALLYDELETE": "Jeste li sigurni da želite obrisati?",
|
||||
"ModelAdmin.SAVED": "Spremljeno",
|
||||
"ModelAdmin.VALIDATIONERROR": "Greška validacije",
|
||||
"SecurityAdmin.BATCHACTIONSDELETECONFIRM": "Jeste li sigurni da želite obrisati %s grupe?"
|
||||
}
|
22
admin/javascript/lang/src/sl_SI.js
Normal file
22
admin/javascript/lang/src/sl_SI.js
Normal file
@ -0,0 +1,22 @@
|
||||
{
|
||||
"CMSMAIN.BATCH_ARCHIVE_PROMPT": "Izbrano število strani: {num}\n\nSte prepričani, da želite arhivirati te strani?\n\nTe strani in vse ostale podstrani bodo odstranjene iz objave in premaknjene v arhiv.",
|
||||
"CMSMAIN.BATCH_DELETELIVE_PROMPT": "Izbrali ste {num} strani.\n\nAli ste prepričani, da želite izbrisati te strani iz objave?",
|
||||
"CMSMAIN.BATCH_DELETE_PROMPT": "Izbrali ste {num} strani.\n\nAli ste prepričani, da jih želite izbrisati?",
|
||||
"CMSMAIN.BATCH_PUBLISH_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to publish?",
|
||||
"CMSMAIN.BATCH_RESTORE_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to restore to stage?\n\nChildren of archived pages will be restored to the root level, unless those pages are also being restored.",
|
||||
"CMSMAIN.BATCH_UNPUBLISH_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to unpublish",
|
||||
"CMSMAIN.SELECTONEPAGE": "Prosimo izberite vsaj eno stran",
|
||||
"Campaigns.ADDCAMPAIGN": "Dodaj kampanjo",
|
||||
"Campaigns.ITEM_SUMMARY_PLURAL": "% predmetov",
|
||||
"Campaigns.ITEM_SUMMARY_SINGULAR": "%s predmet",
|
||||
"Campaigns.PUBLISHCAMPAIGN": "Objavi kampanjo",
|
||||
"Campaigns.REVERTCAMPAIGN": "Povrni",
|
||||
"LeftAndMain.CONFIRMUNSAVED": "Are you sure you want to navigate away from this page?\n\nWARNING: Your changes have not been saved.\n\nPress OK to continue, or Cancel to stay on the current page.",
|
||||
"LeftAndMain.CONFIRMUNSAVEDSHORT": "POZOR: Spremembe niso bile shranjene.",
|
||||
"LeftAndMain.PAGEWASDELETED": "Ta stran je bila izbrisana. Če želite urediti stran, jo najprej izberite na levi strani.",
|
||||
"ModelAdmin.DELETED": "Izbrisano",
|
||||
"ModelAdmin.REALLYDELETE": "Ste prepričani, da želite izbrisati?",
|
||||
"ModelAdmin.SAVED": "Shranjeno",
|
||||
"ModelAdmin.VALIDATIONERROR": "Napaka pri validaciji",
|
||||
"SecurityAdmin.BATCHACTIONSDELETECONFIRM": "Ste prepričani, da želite pobrisati grupe: %s ?"
|
||||
}
|
@ -10,40 +10,40 @@ if (typeof(ss) === 'undefined' || typeof(ss.i18n) === 'undefined') {
|
||||
"FILEIFRAMEFIELD.DELETEFILE": "حذف فایل",
|
||||
"FILEIFRAMEFIELD.DELETEIMAGE": "حذف تصویر",
|
||||
"FILEIFRAMEFIELD.UNATTACHFILE": "حذف ضمیمه فایل",
|
||||
"GRIDFIELD.ERRORINTRANSACTION": "An error occured while fetching data from the server\n Please try again later.",
|
||||
"GRIDFIELD.ERRORINTRANSACTION": "یک خطا هنگام دستیابی به دادههای سرور روی داد\nلطفاً بعداً تلاش نمایید.",
|
||||
"HASMANYFILEFIELD.UPLOADING": "در حال آپلود... %s",
|
||||
"HtmlEditorField.SelectAnchor": "Select an anchor",
|
||||
"HtmlEditorField.SelectAnchor": "انتخاب یک محل ارجاع لینک",
|
||||
"LOADING": "بارگذاری...",
|
||||
"LeftAndMain.IncompatBrowserWarning": "Your browser is not compatible with the CMS interface. Please use Internet Explorer 7+, Google Chrome 10+ or Mozilla Firefox 3.5+.",
|
||||
"RESTRICTEDTEXTFIELD.CHARCANTBEUSED": "The character '%s' cannot be used in this field",
|
||||
"LeftAndMain.IncompatBrowserWarning": "مرورگر شما با محیط کاربری سیاماس سازگار نیست. لطفاً از اینترنت اکسپلورر نسخه 7 به بعد، گوگل کروم 10 به بعد یا موزیلا فایرفاکس 3.5 به بعد استفاده کنید.",
|
||||
"RESTRICTEDTEXTFIELD.CHARCANTBEUSED": "کاراکتر '%s' نمیتواند در این فیلد استفاده شود",
|
||||
"TABLEFIELD.DELETECONFIRMMESSAGE": "آیا مطمئن هستید که میخواهید این رکورد حذف شود؟",
|
||||
"TreeDropdownField.ENTERTOSEARCH": "Press enter to search",
|
||||
"TreeDropdownField.FieldTitle": "انتخاب کنید",
|
||||
"TreeDropdownField.ENTERTOSEARCH": "جهت جستجو دکمهی enter را بزنید",
|
||||
"TreeDropdownField.FieldTitle": "انتخاب",
|
||||
"TreeDropdownField.OpenLink": "باز کنید",
|
||||
"TreeDropdownField.SearchFieldTitle": "گزینش یا جستجو",
|
||||
"UNIQUEFIELD.CANNOTLEAVEEMPTY": "This field cannot be left empty",
|
||||
"UNIQUEFIELD.ENTERNEWVALUE": "You will need to enter a new value for this field",
|
||||
"UNIQUEFIELD.SUGGESTED": "Changed value to '%s' : %s",
|
||||
"UPDATEURL.CONFIRM": "Would you like me to change the URL to:\n\n%s/\n\nClick Ok to change the URL, click Cancel to leave it as:\n\n%s",
|
||||
"UPDATEURL.CONFIRMURLCHANGED": "The URL has been changed to\n'%s'",
|
||||
"UploadField.ConfirmDelete": "Are you sure you want to remove this file from the server filesystem?",
|
||||
"UploadField.EMPTYRESULT": "Empty file upload result",
|
||||
"UploadField.Editing": "Editing ...",
|
||||
"UploadField.HTML_MAXFILESIZE": "File exceeds MAX_FILE_SIZE (HTML form directive)",
|
||||
"TreeDropdownField.SearchFieldTitle": "انتخاب یا جستجو",
|
||||
"UNIQUEFIELD.CANNOTLEAVEEMPTY": "این فیلد نمیتواند خالی بماند",
|
||||
"UNIQUEFIELD.ENTERNEWVALUE": "شما نیازمند این هستید که ارزش جدیدی برای این فیلد وارد نمایید",
|
||||
"UNIQUEFIELD.SUGGESTED": "ارزش به '%s' : %s تغییر کرد",
|
||||
"UPDATEURL.CONFIRM": "آیا میخواهید که نشانی اینترنتی را تغییر دهم به:\n\n%s/\n\nبله را کلیک نمایید تا نشانی تغییر یابد، لغو را کلیک کنید تا بدین شکل باقی بماند:\n\n%s",
|
||||
"UPDATEURL.CONFIRMURLCHANGED": "نشانی اینترنتی تغییر یافت به\n'%s'",
|
||||
"UploadField.ConfirmDelete": "آیا مطمئن هستید که میخواهید این فایل از فایلسیستم سرور حذف شود؟",
|
||||
"UploadField.EMPTYRESULT": "نتیجهی آپلود فایل خالی است",
|
||||
"UploadField.Editing": "ویراستن ...",
|
||||
"UploadField.HTML_MAXFILESIZE": "فایل از MAX_FILE_SIZE تجاوز میکند (اچتیامال از متضمن دستور)",
|
||||
"UploadField.INVALIDEXTENSION": "قالب مجاز نیست",
|
||||
"UploadField.LOADING": "بارگذاری...",
|
||||
"UploadField.MAXNUMBEROFFILESSIMPLE": "Max number of files exceeded",
|
||||
"UploadField.MAXNUMBEROFFILESSIMPLE": "از حداکثر تعداد فایل تجاوز کرد",
|
||||
"UploadField.NOFILEUPLOADED": "هیچ فایلی آپلود نشد",
|
||||
"UploadField.NOTMPFOLDER": "Missing a temporary folder",
|
||||
"UploadField.ONLYPARTIALUPLOADED": "File was only partially uploaded",
|
||||
"UploadField.NOTMPFOLDER": "پوشهی موقت پیدا نشد",
|
||||
"UploadField.ONLYPARTIALUPLOADED": "تنها بخشهایی از فایل آپلود شده است",
|
||||
"UploadField.OVERWRITEWARNING": "فایل با نام یکسان از پیش وجود دارد",
|
||||
"UploadField.PHP_MAXFILESIZE": "File exceeds upload_max_filesize (php.ini directive)",
|
||||
"UploadField.STOPEDBYEXTENSION": "File upload stopped by extension",
|
||||
"UploadField.TOOLARGE": "Filesize is too large",
|
||||
"UploadField.TOOSMALL": "Filesize is too small",
|
||||
"UploadField.UPLOADEDBYTES": "Uploaded bytes exceed file size",
|
||||
"UploadField.PHP_MAXFILESIZE": "فایل از upload_max_filesize تجاوز میکند (متضمن دستور php.ini)",
|
||||
"UploadField.STOPEDBYEXTENSION": "آپلود فایل به دلیل قالب متوقف شد",
|
||||
"UploadField.TOOLARGE": "حجم فایل بسیار زیاد است",
|
||||
"UploadField.TOOSMALL": "حجم فایل بسیار کم است",
|
||||
"UploadField.UPLOADEDBYTES": "بایتهای آپلودشده از سایز فایل تجاوز میکند",
|
||||
"UploadField.Uploaded": "آپلودشده",
|
||||
"UploadField.WRITEFAILED": "Failed to write file to disk",
|
||||
"UploadField.WRITEFAILED": "ناتوان از نگارش فایل بر هارددیسک",
|
||||
"VALIDATOR.FIELDREQUIRED": "لطفاً \"%s\" را تکمیل نمایید، پرکردن آن الزامی است."
|
||||
});
|
||||
}
|
@ -3,39 +3,39 @@
|
||||
"FILEIFRAMEFIELD.DELETEFILE": "حذف فایل",
|
||||
"FILEIFRAMEFIELD.DELETEIMAGE": "حذف تصویر",
|
||||
"FILEIFRAMEFIELD.UNATTACHFILE": "حذف ضمیمه فایل",
|
||||
"GRIDFIELD.ERRORINTRANSACTION": "An error occured while fetching data from the server\n Please try again later.",
|
||||
"GRIDFIELD.ERRORINTRANSACTION": "یک خطا هنگام دستیابی به دادههای سرور روی داد\nلطفاً بعداً تلاش نمایید.",
|
||||
"HASMANYFILEFIELD.UPLOADING": "در حال آپلود... %s",
|
||||
"HtmlEditorField.SelectAnchor": "Select an anchor",
|
||||
"HtmlEditorField.SelectAnchor": "انتخاب یک محل ارجاع لینک",
|
||||
"LOADING": "بارگذاری...",
|
||||
"LeftAndMain.IncompatBrowserWarning": "Your browser is not compatible with the CMS interface. Please use Internet Explorer 7+, Google Chrome 10+ or Mozilla Firefox 3.5+.",
|
||||
"RESTRICTEDTEXTFIELD.CHARCANTBEUSED": "The character '%s' cannot be used in this field",
|
||||
"LeftAndMain.IncompatBrowserWarning": "مرورگر شما با محیط کاربری سیاماس سازگار نیست. لطفاً از اینترنت اکسپلورر نسخه 7 به بعد، گوگل کروم 10 به بعد یا موزیلا فایرفاکس 3.5 به بعد استفاده کنید.",
|
||||
"RESTRICTEDTEXTFIELD.CHARCANTBEUSED": "کاراکتر '%s' نمیتواند در این فیلد استفاده شود",
|
||||
"TABLEFIELD.DELETECONFIRMMESSAGE": "آیا مطمئن هستید که میخواهید این رکورد حذف شود؟",
|
||||
"TreeDropdownField.ENTERTOSEARCH": "Press enter to search",
|
||||
"TreeDropdownField.FieldTitle": "انتخاب کنید",
|
||||
"TreeDropdownField.ENTERTOSEARCH": "جهت جستجو دکمهی enter را بزنید",
|
||||
"TreeDropdownField.FieldTitle": "انتخاب",
|
||||
"TreeDropdownField.OpenLink": "باز کنید",
|
||||
"TreeDropdownField.SearchFieldTitle": "گزینش یا جستجو",
|
||||
"UNIQUEFIELD.CANNOTLEAVEEMPTY": "This field cannot be left empty",
|
||||
"UNIQUEFIELD.ENTERNEWVALUE": "You will need to enter a new value for this field",
|
||||
"UNIQUEFIELD.SUGGESTED": "Changed value to '%s' : %s",
|
||||
"UPDATEURL.CONFIRM": "Would you like me to change the URL to:\n\n%s/\n\nClick Ok to change the URL, click Cancel to leave it as:\n\n%s",
|
||||
"UPDATEURL.CONFIRMURLCHANGED": "The URL has been changed to\n'%s'",
|
||||
"UploadField.ConfirmDelete": "Are you sure you want to remove this file from the server filesystem?",
|
||||
"UploadField.EMPTYRESULT": "Empty file upload result",
|
||||
"UploadField.Editing": "Editing ...",
|
||||
"UploadField.HTML_MAXFILESIZE": "File exceeds MAX_FILE_SIZE (HTML form directive)",
|
||||
"TreeDropdownField.SearchFieldTitle": "انتخاب یا جستجو",
|
||||
"UNIQUEFIELD.CANNOTLEAVEEMPTY": "این فیلد نمیتواند خالی بماند",
|
||||
"UNIQUEFIELD.ENTERNEWVALUE": "شما نیازمند این هستید که ارزش جدیدی برای این فیلد وارد نمایید",
|
||||
"UNIQUEFIELD.SUGGESTED": "ارزش به '%s' : %s تغییر کرد",
|
||||
"UPDATEURL.CONFIRM": "آیا میخواهید که نشانی اینترنتی را تغییر دهم به:\n\n%s/\n\nبله را کلیک نمایید تا نشانی تغییر یابد، لغو را کلیک کنید تا بدین شکل باقی بماند:\n\n%s",
|
||||
"UPDATEURL.CONFIRMURLCHANGED": "نشانی اینترنتی تغییر یافت به\n'%s'",
|
||||
"UploadField.ConfirmDelete": "آیا مطمئن هستید که میخواهید این فایل از فایلسیستم سرور حذف شود؟",
|
||||
"UploadField.EMPTYRESULT": "نتیجهی آپلود فایل خالی است",
|
||||
"UploadField.Editing": "ویراستن ...",
|
||||
"UploadField.HTML_MAXFILESIZE": "فایل از MAX_FILE_SIZE تجاوز میکند (اچتیامال از متضمن دستور)",
|
||||
"UploadField.INVALIDEXTENSION": "قالب مجاز نیست",
|
||||
"UploadField.LOADING": "بارگذاری...",
|
||||
"UploadField.MAXNUMBEROFFILESSIMPLE": "Max number of files exceeded",
|
||||
"UploadField.LOADING": "بارگذاری ...",
|
||||
"UploadField.MAXNUMBEROFFILESSIMPLE": "از حداکثر تعداد فایل تجاوز کرد",
|
||||
"UploadField.NOFILEUPLOADED": "هیچ فایلی آپلود نشد",
|
||||
"UploadField.NOTMPFOLDER": "Missing a temporary folder",
|
||||
"UploadField.ONLYPARTIALUPLOADED": "File was only partially uploaded",
|
||||
"UploadField.NOTMPFOLDER": "پوشهی موقت پیدا نشد",
|
||||
"UploadField.ONLYPARTIALUPLOADED": "تنها بخشهایی از فایل آپلود شده است",
|
||||
"UploadField.OVERWRITEWARNING": "فایل با نام یکسان از پیش وجود دارد",
|
||||
"UploadField.PHP_MAXFILESIZE": "File exceeds upload_max_filesize (php.ini directive)",
|
||||
"UploadField.STOPEDBYEXTENSION": "File upload stopped by extension",
|
||||
"UploadField.TOOLARGE": "Filesize is too large",
|
||||
"UploadField.TOOSMALL": "Filesize is too small",
|
||||
"UploadField.UPLOADEDBYTES": "Uploaded bytes exceed file size",
|
||||
"UploadField.PHP_MAXFILESIZE": "فایل از upload_max_filesize تجاوز میکند (متضمن دستور php.ini)",
|
||||
"UploadField.STOPEDBYEXTENSION": "آپلود فایل به دلیل قالب متوقف شد",
|
||||
"UploadField.TOOLARGE": "حجم فایل بسیار زیاد است",
|
||||
"UploadField.TOOSMALL": "حجم فایل بسیار کم است",
|
||||
"UploadField.UPLOADEDBYTES": "بایتهای آپلودشده از سایز فایل تجاوز میکند",
|
||||
"UploadField.Uploaded": "آپلودشده",
|
||||
"UploadField.WRITEFAILED": "Failed to write file to disk",
|
||||
"UploadField.WRITEFAILED": "ناتوان از نگارش فایل بر هارددیسک",
|
||||
"VALIDATOR.FIELDREQUIRED": "لطفاً \"%s\" را تکمیل نمایید، پرکردن آن الزامی است."
|
||||
}
|
@ -335,6 +335,9 @@ class HTTP {
|
||||
* @param string $etag
|
||||
*/
|
||||
public static function register_etag($etag) {
|
||||
if (0 !== strpos('"')) {
|
||||
$etag = sprintf('"%s"', $etag);
|
||||
}
|
||||
self::$etag = $etag;
|
||||
}
|
||||
|
||||
@ -486,6 +489,11 @@ class HTTP {
|
||||
$responseHeaders['ETag'] = self::$etag;
|
||||
}
|
||||
|
||||
// etag needs to be a quoted string according to HTTP spec
|
||||
if (!empty($responseHeaders['ETag']) && 0 !== strpos($responseHeaders['ETag'], '"')) {
|
||||
$responseHeaders['ETag'] = sprintf('"%s"', $responseHeaders['ETag']);
|
||||
}
|
||||
|
||||
// Now that we've generated them, either output them or attach them to the SS_HTTPResponse as appropriate
|
||||
foreach($responseHeaders as $k => $v) {
|
||||
if($body) {
|
||||
|
@ -254,6 +254,10 @@ EOT
|
||||
if(!headers_sent($file, $line)) {
|
||||
header($_SERVER['SERVER_PROTOCOL'] . " $this->statusCode " . $this->getStatusDescription());
|
||||
foreach($this->headers as $header => $value) {
|
||||
//etags need to be quoted
|
||||
if (strcasecmp('etag', $header) === 0 && 0 !== strpos($value, '"')) {
|
||||
$value = sprintf('"%s"', $value);
|
||||
}
|
||||
header("$header: $value", true, $this->statusCode);
|
||||
}
|
||||
} else {
|
||||
|
@ -28,7 +28,7 @@ class VersionedRequestFilter implements RequestFilter {
|
||||
'You must log in with your CMS password in order to view the draft or archived content. '.
|
||||
'<a href="%s">Click here to go back to the published site.</a>'
|
||||
),
|
||||
Controller::join_links(Director::baseURL(), $request->getURL(), "?stage=Live")
|
||||
Convert::raw2xml(Controller::join_links(Director::baseURL(), $request->getURL(), "?stage=Live"))
|
||||
);
|
||||
|
||||
// Force output since RequestFilter::preRequest doesn't support response overriding
|
||||
|
@ -918,6 +918,7 @@ class Config_ForClass {
|
||||
|
||||
/**
|
||||
* @param string $name
|
||||
* @return mixed
|
||||
*/
|
||||
public function __get($name) {
|
||||
return Config::inst()->get($this->class, $name);
|
||||
@ -931,6 +932,16 @@ class Config_ForClass {
|
||||
return Config::inst()->update($this->class, $name, $val);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $name
|
||||
* @return bool
|
||||
*/
|
||||
public function __isset($name)
|
||||
{
|
||||
$val = $this->__get($name);
|
||||
return isset($val);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $name
|
||||
* @param int $sourceOptions
|
||||
|
@ -172,8 +172,10 @@ class MySQLDatabaseConfigurationHelper implements DatabaseConfigurationHelper {
|
||||
if(!$this->checkValidDatabaseName($database)) return false;
|
||||
|
||||
// Escape all valid database patterns (permission must exist on all tables)
|
||||
$sqlDatabase = addcslashes($database, '_%'); // See http://dev.mysql.com/doc/refman/5.7/en/string-literals.html
|
||||
$dbPattern = sprintf(
|
||||
'((%s)|(%s)|(%s))',
|
||||
'((%s)|(%s)|(%s)|(%s))',
|
||||
preg_quote("\"$sqlDatabase\".*"), // Regexp escape sql-escaped db identifier
|
||||
preg_quote("\"$database\".*"),
|
||||
preg_quote('"%".*'),
|
||||
preg_quote('*.*')
|
||||
|
@ -19,7 +19,7 @@ name, and normally they all exist under the `Root` [api:TabSet].
|
||||
display up to two levels of tabs in the interface. If you want to group data further than that, try [api:ToggleField].
|
||||
</div>
|
||||
|
||||
## Adding a field from a tab.
|
||||
## Adding a field to a tab
|
||||
|
||||
:::php
|
||||
$fields->addFieldToTab('Root.Main', new TextField(..));
|
||||
|
@ -11,6 +11,11 @@ SilverStripe lets you customise the style of content in the CMS. This is done by
|
||||
|
||||
Will load the `mysite/css/editor.css` file.
|
||||
|
||||
If using this config option in `mysite/_config.php`, you will have to instead call:
|
||||
|
||||
:::php
|
||||
HtmlEditorConfig::get('cms')->setOption('content_css', project() . '/css/editor.css');
|
||||
|
||||
Any CSS classes within this file will be automatically added to the `WYSIWYG` editors 'style' dropdown. For instance, to
|
||||
add the color 'red' as an option within the `WYSIWYG` add the following to the `editor.css`
|
||||
|
||||
|
23
docs/en/04_Changelogs/3.1.20.md
Normal file
23
docs/en/04_Changelogs/3.1.20.md
Normal file
@ -0,0 +1,23 @@
|
||||
# 3.1.20
|
||||
|
||||
<!--- Changes below this line will be automatically regenerated -->
|
||||
|
||||
## Change Log
|
||||
|
||||
### Security
|
||||
|
||||
* 2016-08-02 [62a2421](https://github.com/silverstripe/silverstripe-framework/commit/62a242154ec3508fe9b174a40713c8520ac1684c) Fix value / title escaping in CheckboxSetField and OptionsetField (Damian Mooyman) - See [ss-2016-015](http://www.silverstripe.org/download/security-releases/ss-2016-015)
|
||||
* 2016-07-25 [1c7d5de](https://github.com/silverstripe/silverstripe-framework/commit/1c7d5de51bcdf16ebb21c5a0ebe5fe9e31f9a822) Autologin cookies are ignored if autologin is disabled (Daniel Hensby) - See [ss-2016-014](http://www.silverstripe.org/download/security-releases/ss-2016-014)
|
||||
* 2016-07-22 [6817c57](https://github.com/silverstripe/silverstripe-framework/commit/6817c57f64b9eb2b271b81662cd83b074a3daee4) Uncasted member name (Daniel Hensby) - See [ss-2016-013](http://www.silverstripe.org/download/security-releases/ss-2016-013)
|
||||
* 2016-07-15 [298f615](https://github.com/silverstripe/silverstripe-framework/commit/298f61521c55b07e5c898a92264dbe111735a87a) Reset `Member::Salt` on password change (Daniel Hensby) - See [ss-2016-008](http://www.silverstripe.org/download/security-releases/ss-2016-008)
|
||||
* 2016-07-14 [6606d98](https://github.com/silverstripe/silverstripe-framework/commit/6606d986634f5b5dec16462acaa8d9a513c29fec) ChangePasswordForm does not check $member->canLogin before login (Daniel Hensby) - See [ss-2016-011](http://www.silverstripe.org/download/security-releases/ss-2016-011)
|
||||
* 2016-07-14 [5f73d34](https://github.com/silverstripe/silverstripe-cms/commit/5f73d3454ecbc4850e91a0a3007102f6d4d9b853) Missing ACL check on ReportAdmin (Daniel Hensby) - See [ss-2016-012](http://www.silverstripe.org/download/security-releases/ss-2016-012)
|
||||
|
||||
### Bugfixes
|
||||
|
||||
* 2016-08-15 [95c640a](https://github.com/silverstripe/silverstripe-cms/commit/95c640ae6b5620be83d38e8060317554bc0820ed) Fix regression in FormField casting (Damian Mooyman)
|
||||
* 2016-05-20 [8382685](https://github.com/silverstripe/silverstripe-framework/commit/83826850346bc486bc4599dca56067897961cbfa) #5557 Tests with no DB requirements wont create test DB (Daniel Hensby)
|
||||
* 2016-05-18 [62bd26d](https://github.com/silverstripe/silverstripe-framework/commit/62bd26d11ab9c9bf5b91ba8abb776ab3a4813a18) Fix suppression of display_errors in ErrorControlChain (Damian Mooyman)
|
||||
* 2016-05-10 [3738d88](https://github.com/silverstripe/silverstripe-framework/commit/3738d888e0fbce48e0d88735edd3455a116937b5) Empty FROM clause (Daniel Hensby)
|
||||
* 2016-05-05 [cc7a2ae](https://github.com/silverstripe/silverstripe-installer/commit/cc7a2aeb1e03f3f8db67a1ca547280b05dd9372a) Add framework/admin tests (#118) (Daniel Hensby)
|
||||
* 2015-04-21 [a7100e9](https://github.com/silverstripe/silverstripe-framework/commit/a7100e9006b27e7885eb2ce851d9bc0839ca4468) Object::parse_class_spec failed to parse associative arrays (Loz Calver)
|
31
docs/en/04_Changelogs/3.2.5.md
Normal file
31
docs/en/04_Changelogs/3.2.5.md
Normal file
@ -0,0 +1,31 @@
|
||||
# 3.2.5
|
||||
|
||||
<!--- Changes below this line will be automatically regenerated -->
|
||||
|
||||
## Change Log
|
||||
|
||||
### Security
|
||||
|
||||
* 2016-08-02 [12a6b35](https://github.com/silverstripe/silverstripe-framework/commit/12a6b357e761f09d818fd0013eb2d85014de79a0) Fix value / title escaping in CheckboxSetField and OptionsetField (Damian Mooyman) - See [ss-2016-015](http://www.silverstripe.org/download/security-releases/ss-2016-015)
|
||||
* 2016-07-25 [b1f4497](https://github.com/silverstripe/silverstripe-framework/commit/b1f449762b5d11658b11d5036d5ae361a95fd61e) Autologin cookies are ignored if autologin is disabled (Daniel Hensby) - See [ss-2016-014](http://www.silverstripe.org/download/security-releases/ss-2016-014)
|
||||
* 2016-07-22 [281b0de](https://github.com/silverstripe/silverstripe-framework/commit/281b0de571fe0ae159ac47891c02acf2214fa619) Uncasted member name (Daniel Hensby) - See [ss-2016-013](http://www.silverstripe.org/download/security-releases/ss-2016-013)
|
||||
* 2016-07-15 [dc47f7e](https://github.com/silverstripe/silverstripe-framework/commit/dc47f7ec9adf67a3f31887467de5b110e8e5b285) Reset `Member::Salt` on password change (Daniel Hensby) - See [ss-2016-008](http://www.silverstripe.org/download/security-releases/ss-2016-008)
|
||||
* 2016-07-14 [2b30ade](https://github.com/silverstripe/silverstripe-framework/commit/2b30ade44d333a4da4d13b31ffa28d0a34597442) ChangePasswordForm does not check $member->canLogin before login (Daniel Hensby) - See [ss-2016-011](http://www.silverstripe.org/download/security-releases/ss-2016-011)
|
||||
* 2016-07-14 [cff2ea9](https://github.com/silverstripe-labs/silverstripe-reports/commit/cff2ea9a98f592d80083633aef6bd082480281d9) Missing ACL check on ReportAdmin (Daniel Hensby) - See [ss-2016-012](http://www.silverstripe.org/download/security-releases/ss-2016-012)
|
||||
|
||||
### Bugfixes
|
||||
|
||||
* 2016-08-15 [5ad8157](https://github.com/silverstripe/silverstripe-cms/commit/5ad8157655a5dd581cbc90a95e8588907794a9c9) Fix regression in FormField casting (Damian Mooyman)
|
||||
* 2016-07-07 [4aa1fc2](https://github.com/silverstripe/silverstripe-framework/commit/4aa1fc2d2cafd1c90401896cefb03e64b530a59c) Changed form fields that call renderWith in Field() to call parent::Field() instead (#5783) (Ed Chipman)
|
||||
* 2016-07-07 [27cea80](https://github.com/silverstripe/silverstripe-framework/commit/27cea80b15a986d43b832658b13d01c08a5cfce1) SS_ConfigStaticManifest_Parser failed to handle ::class syntax (fixes #5701) (#5781) (Loz Calver)
|
||||
* 2016-07-01 [39238d9](https://github.com/silverstripe/silverstripe-framework/commit/39238d908e0ed077d7aaf773562749468b6827ee) falsey attribute values in shortcodes now work (Daniel Hensby)
|
||||
* 2016-06-30 [2cdfe6c](https://github.com/silverstripe/silverstripe-framework/commit/2cdfe6cc21f0cb253401fa169b5e1c3bb8738d43) Use RAW for DBField template helpers (Daniel Hensby)
|
||||
* 2016-06-30 [b0f237b](https://github.com/silverstripe/silverstripe-framework/commit/b0f237bb3a336eea9f3a9f9bece2b65661c03cbc) Use RAW instead of Value for parsing shortcodes (Daniel Hensby)
|
||||
* 2016-05-31 [eba89b9](https://github.com/silverstripe/silverstripe-cms/commit/eba89b9520a0103e4c0cb4b6730c3c0742f8b0d9) OldPageRedirector no longer loops infinitely if 404 thrown on existing page (Daniel Hensby)
|
||||
* 2016-05-31 [341f49c](https://github.com/silverstripe/silverstripe-framework/commit/341f49c630c23ee665c195250c19935763172e36) Fixed lookup of next closest visible field for focus restoring (fixes #5618) (UndefinedOffset)
|
||||
* 2016-05-20 [8382685](https://github.com/silverstripe/silverstripe-framework/commit/83826850346bc486bc4599dca56067897961cbfa) #5557 Tests with no DB requirements wont create test DB (Daniel Hensby)
|
||||
* 2016-05-18 [62bd26d](https://github.com/silverstripe/silverstripe-framework/commit/62bd26d11ab9c9bf5b91ba8abb776ab3a4813a18) Fix suppression of display_errors in ErrorControlChain (Damian Mooyman)
|
||||
* 2016-05-10 [3738d88](https://github.com/silverstripe/silverstripe-framework/commit/3738d888e0fbce48e0d88735edd3455a116937b5) Empty FROM clause (Daniel Hensby)
|
||||
* 2016-05-05 [cc7a2ae](https://github.com/silverstripe/silverstripe-installer/commit/cc7a2aeb1e03f3f8db67a1ca547280b05dd9372a) Add framework/admin tests (#118) (Daniel Hensby)
|
||||
* 2016-04-19 [43dcde5](https://github.com/silverstripe/silverstripe-framework/commit/43dcde5197e0995225235f69937ed57bec0cd7e2) Hierarchy was incorrectly unexpanding nodes that had been previously expanded (madmatt)
|
||||
* 2015-04-21 [a7100e9](https://github.com/silverstripe/silverstripe-framework/commit/a7100e9006b27e7885eb2ce851d9bc0839ca4468) Object::parse_class_spec failed to parse associative arrays (Loz Calver)
|
49
docs/en/04_Changelogs/3.3.3.md
Normal file
49
docs/en/04_Changelogs/3.3.3.md
Normal file
@ -0,0 +1,49 @@
|
||||
# 3.3.3
|
||||
|
||||
<!--- Changes below this line will be automatically regenerated -->
|
||||
|
||||
## Change Log
|
||||
|
||||
### Security
|
||||
|
||||
* 2016-08-02 [049cdef](https://github.com/silverstripe/silverstripe-framework/commit/049cdefacfd3122d59d5488c1317f999fe8aacc4) Fix value / title escaping in CheckboxSetField and OptionsetField (Damian Mooyman) - See [ss-2016-015](http://www.silverstripe.org/download/security-releases/ss-2016-015)
|
||||
* 2016-07-25 [fa7f5af](https://github.com/silverstripe/silverstripe-framework/commit/fa7f5af8618a83c865b11fd6cc981ad9661046e6) Autologin cookies are ignored if autologin is disabled (Daniel Hensby) - See [ss-2016-014](http://www.silverstripe.org/download/security-releases/ss-2016-014)
|
||||
* 2016-07-22 [83e3302](https://github.com/silverstripe/silverstripe-framework/commit/83e3302c0425d9b0e4fe42e82e3df03379f4dca5) Uncasted member name (Daniel Hensby) - See [ss-2016-013](http://www.silverstripe.org/download/security-releases/ss-2016-013)
|
||||
* 2016-07-15 [f85dea2](https://github.com/silverstripe/silverstripe-framework/commit/f85dea2e6d5b303abd43b5e5efc07c66c8d2acf4) Reset `Member::Salt` on password change (Daniel Hensby) - See [ss-2016-008](http://www.silverstripe.org/download/security-releases/ss-2016-008)
|
||||
* 2016-07-14 [6d41db7](https://github.com/silverstripe/silverstripe-framework/commit/6d41db77fa78f473db7bcff389456c980ef4e412) ChangePasswordForm does not check $member->canLogin before login (Daniel Hensby) - See [ss-2016-011](http://www.silverstripe.org/download/security-releases/ss-2016-011)
|
||||
* 2016-07-14 [efa20d2](https://github.com/silverstripe-labs/silverstripe-reports/commit/efa20d2da03f80758cce7fe697c62f7f42fe098a) Missing ACL check on ReportAdmin (Daniel Hensby) - See [ss-2016-012](http://www.silverstripe.org/download/security-releases/ss-2016-012)
|
||||
* 2016-05-03 [3fa84cf](https://github.com/silverstripe/silverstripe-framework/commit/3fa84cf0c64a539d78600c36364817a8e38411d8) Encode user supplied URL for embeding into page (Daniel Hensby) - See [ss-2016-007](http://www.silverstripe.org/download/security-releases/ss-2016-007)
|
||||
|
||||
### Bugfixes
|
||||
|
||||
* 2016-08-15 [a6a9cd7](https://github.com/silverstripe/silverstripe-cms/commit/a6a9cd729fd24b19f7b39fdeb867a491489687e0) Fix regression in FormField casting (Damian Mooyman)
|
||||
* 2016-08-02 [cd80d50](https://github.com/silverstripe/silverstripe-framework/commit/cd80d501f9eb12d9aca3e65f742041b142ee659f) Fix unset config options returning isset() = true (Damian Mooyman)
|
||||
* 2016-07-25 [3306deb](https://github.com/silverstripe/silverstripe-cms/commit/3306deb69b88473efac009f46a90cbaa6bb27351) Fix link concatenation in SilverStripeNavigator (#1560) (Damian Mooyman)
|
||||
* 2016-07-20 [319d6d2](https://github.com/silverstripe/silverstripe-framework/commit/319d6d293e873d989c55473a0aa7ae1679010474) Fix doclink (#5827) (Damian Mooyman)
|
||||
* 2016-07-19 [10e06dc](https://github.com/silverstripe/silverstripe-cms/commit/10e06dce507c6f9b3588e4f8669ce36ee843f79e) Fixes #1054 By preventing errors in the CMS _only_. (Russell Michell)
|
||||
* 2016-07-15 [b3fea37](https://github.com/silverstripe/silverstripe-framework/commit/b3fea3723fae822068a6b761a682011b0970fff5) Fixes support for "inline" form actions (fixes #2534) (Loz Calver)
|
||||
* 2016-07-12 [24efc7e](https://github.com/silverstripe/silverstripe-framework/commit/24efc7edf83bb06b5a01080d2742c07ef68d21b2) Fix sorting ArrayList with sql-like syntax (Damian Mooyman)
|
||||
* 2016-07-12 [8123c43](https://github.com/silverstripe/silverstripe-cms/commit/8123c433f01ca1ce59062e45ad90bac13be1e990) Fix getAbsoluteLiveLink() concatenation (Damian Mooyman)
|
||||
* 2016-07-12 [87477a1](https://github.com/silverstripe-labs/silverstripe-reports/commit/87477a1e01d03ebee7eb71c352b3da47da73a9f2) Fix incorrect url manipulation (Damian Mooyman)
|
||||
* 2016-07-07 [4aa1fc2](https://github.com/silverstripe/silverstripe-framework/commit/4aa1fc2d2cafd1c90401896cefb03e64b530a59c) Changed form fields that call renderWith in Field() to call parent::Field() instead (#5783) (Ed Chipman)
|
||||
* 2016-07-07 [27cea80](https://github.com/silverstripe/silverstripe-framework/commit/27cea80b15a986d43b832658b13d01c08a5cfce1) SS_ConfigStaticManifest_Parser failed to handle ::class syntax (fixes #5701) (#5781) (Loz Calver)
|
||||
* 2016-07-01 [39238d9](https://github.com/silverstripe/silverstripe-framework/commit/39238d908e0ed077d7aaf773562749468b6827ee) falsey attribute values in shortcodes now work (Daniel Hensby)
|
||||
* 2016-06-30 [2cdfe6c](https://github.com/silverstripe/silverstripe-framework/commit/2cdfe6cc21f0cb253401fa169b5e1c3bb8738d43) Use RAW for DBField template helpers (Daniel Hensby)
|
||||
* 2016-06-30 [b0f237b](https://github.com/silverstripe/silverstripe-framework/commit/b0f237bb3a336eea9f3a9f9bece2b65661c03cbc) Use RAW instead of Value for parsing shortcodes (Daniel Hensby)
|
||||
* 2016-06-13 [f0d4951](https://github.com/silverstripe/silverstripe-framework/commit/f0d49518152bb9743e32174bc870fac6951c161d) for #5683: Address security warning in CMS when attempting to access <iframe> contents (Back-porting fix from PR #5163) (Patrick Nelson)
|
||||
* 2016-06-08 [bf00810](https://github.com/silverstripe/silverstripe-framework/commit/bf00810e1f5a7164d74ad66f3d03e813d81dfa25) Fix buttonClicked() error (Damian Mooyman)
|
||||
* 2016-05-31 [eba89b9](https://github.com/silverstripe/silverstripe-cms/commit/eba89b9520a0103e4c0cb4b6730c3c0742f8b0d9) OldPageRedirector no longer loops infinitely if 404 thrown on existing page (Daniel Hensby)
|
||||
* 2016-05-31 [341f49c](https://github.com/silverstripe/silverstripe-framework/commit/341f49c630c23ee665c195250c19935763172e36) Fixed lookup of next closest visible field for focus restoring (fixes #5618) (UndefinedOffset)
|
||||
* 2016-05-27 [f1a0aef](https://github.com/silverstripe/silverstripe-framework/commit/f1a0aef0d7e18b921b53a381ff8489bc5c12740b) fix CMS_ACCESS permission being ignored if in incorrect order in array (Damian Mooyman)
|
||||
* 2016-05-21 [decd7e5](https://github.com/silverstripe/silverstripe-framework/commit/decd7e5c57a0839cb873c86782a870326ffa175a) Fix getFinalisedQuery not including all queried columns (Damian Mooyman)
|
||||
* 2016-05-20 [8382685](https://github.com/silverstripe/silverstripe-framework/commit/83826850346bc486bc4599dca56067897961cbfa) #5557 Tests with no DB requirements wont create test DB (Daniel Hensby)
|
||||
* 2016-05-18 [62bd26d](https://github.com/silverstripe/silverstripe-framework/commit/62bd26d11ab9c9bf5b91ba8abb776ab3a4813a18) Fix suppression of display_errors in ErrorControlChain (Damian Mooyman)
|
||||
* 2016-05-16 [79d0590](https://github.com/silverstripe/silverstripe-framework/commit/79d05906286698e7cf7274703088a47c54b106f2) Fix singleton('DBLocale') (Damian Mooyman)
|
||||
* 2016-05-10 [3738d88](https://github.com/silverstripe/silverstripe-framework/commit/3738d888e0fbce48e0d88735edd3455a116937b5) Empty FROM clause (Daniel Hensby)
|
||||
* 2016-05-10 [d1df67d](https://github.com/silverstripe/silverstripe-framework/commit/d1df67d3089a51c0db63fbaed869738453bee482) SQLSelect count methods now cast to int (fixes #5498) (Loz Calver)
|
||||
* 2016-05-05 [cc7a2ae](https://github.com/silverstripe/silverstripe-installer/commit/cc7a2aeb1e03f3f8db67a1ca547280b05dd9372a) Add framework/admin tests (#118) (Daniel Hensby)
|
||||
* 2016-05-02 [096f30e](https://github.com/silverstripe/silverstripe-framework/commit/096f30ebe5ff6446a399abc92813a6ff2d02e04e) Fix GridFieldAddExistingAutocompleter (Damian Mooyman)
|
||||
* 2016-04-28 [6934083](https://github.com/silverstripe/silverstripe-framework/commit/693408330bdd235b92690912ad36ba8adbebdbef) for #5410 to help focus errors occurring on tabs within GridField controlled DataObjects (et al). (Patrick Nelson)
|
||||
* 2016-04-19 [43dcde5](https://github.com/silverstripe/silverstripe-framework/commit/43dcde5197e0995225235f69937ed57bec0cd7e2) Hierarchy was incorrectly unexpanding nodes that had been previously expanded (madmatt)
|
||||
* 2016-01-22 [4bd66b9](https://github.com/silverstripe/silverstripe-framework/commit/4bd66b9d3693492806bb4e9a512f8ae623c6a306) for #4909: Ensure RSSFeed_Entry is instantiated using the injector. (Patrick Nelson)
|
||||
* 2015-04-21 [a7100e9](https://github.com/silverstripe/silverstripe-framework/commit/a7100e9006b27e7885eb2ce851d9bc0839ca4468) Object::parse_class_spec failed to parse associative arrays (Loz Calver)
|
50
docs/en/04_Changelogs/3.4.1.md
Normal file
50
docs/en/04_Changelogs/3.4.1.md
Normal file
@ -0,0 +1,50 @@
|
||||
# 3.4.1
|
||||
|
||||
<!--- Changes below this line will be automatically regenerated -->
|
||||
|
||||
## Change Log
|
||||
|
||||
### Security
|
||||
|
||||
* 2016-08-02 [b0ba201](https://github.com/silverstripe/silverstripe-framework/commit/b0ba2015d9684ee7b124dafcf6b59b046e20f8ed) Fix value / title escaping in CheckboxSetField and OptionsetField (Damian Mooyman) - See [ss-2016-015](http://www.silverstripe.org/download/security-releases/ss-2016-015)
|
||||
* 2016-07-25 [d1163d8](https://github.com/silverstripe/silverstripe-framework/commit/d1163d87b70e3e147f22a1e423b9f70f6fd85e8f) Autologin cookies are ignored if autologin is disabled (Daniel Hensby) - See [ss-2016-014](http://www.silverstripe.org/download/security-releases/ss-2016-014)
|
||||
* 2016-07-22 [8bbf1ca](https://github.com/silverstripe/silverstripe-framework/commit/8bbf1caae665a07b3e44e8d5d32556a03d38c296) Uncasted member name (Daniel Hensby) - See [ss-2016-013](http://www.silverstripe.org/download/security-releases/ss-2016-013)
|
||||
* 2016-07-15 [08384bb](https://github.com/silverstripe/silverstripe-framework/commit/08384bb4d6b98c44388ffb4727c317ed14fe3c81) Reset `Member::Salt` on password change (Daniel Hensby) - See [ss-2016-008](http://www.silverstripe.org/download/security-releases/ss-2016-008)
|
||||
* 2016-07-14 [782c18f](https://github.com/silverstripe/silverstripe-framework/commit/782c18fd13b9fb92707d0ea3b231023204928297) ChangePasswordForm does not check $member->canLogin before login (Daniel Hensby) - See [ss-2016-011](http://www.silverstripe.org/download/security-releases/ss-2016-011)
|
||||
* 2016-07-14 [c1525c8](https://github.com/silverstripe-labs/silverstripe-reports/commit/c1525c8ba68f6d4fc0fb5f30929f9678c0199411) Missing ACL check on ReportAdmin (Daniel Hensby) - See [ss-2016-012](http://www.silverstripe.org/download/security-releases/ss-2016-012)
|
||||
* 2016-05-03 [41be95c](https://github.com/silverstripe/silverstripe-framework/commit/41be95c95a55031412ee4056aeee5c2c69595836) Encode user supplied URL for embeding into page (Daniel Hensby) - See [ss-2016-007](http://www.silverstripe.org/download/security-releases/ss-2016-007)
|
||||
|
||||
### Bugfixes
|
||||
|
||||
* 2016-08-15 [ac26816](https://github.com/silverstripe/silverstripe-framework/commit/ac2681658ac33f6c060b7f5f881bd94eba92791b) Fix regression in url concatenation #4967 (Damian Mooyman)
|
||||
* 2016-08-15 [ef85618](https://github.com/silverstripe/silverstripe-cms/commit/ef856185ab7a86f25fda718a88256c9e6e27a763) Fix regression in FormField casting (Damian Mooyman)
|
||||
* 2016-08-02 [cd80d50](https://github.com/silverstripe/silverstripe-framework/commit/cd80d501f9eb12d9aca3e65f742041b142ee659f) Fix unset config options returning isset() = true (Damian Mooyman)
|
||||
* 2016-08-01 [7d0b8e6](https://github.com/silverstripe/silverstripe-framework/commit/7d0b8e6520a246bd20204613233a0a6ad0f19437) Fix permission checking code not correctly handling escaped SQL identifiers (Damian Mooyman)
|
||||
* 2016-07-28 [6c37532](https://github.com/silverstripe/silverstripe-framework/commit/6c37532a7ae4877fe1eaff45f41ff9902d5cccee) Gridfield delete action back link (#5848) (Jono Menz)
|
||||
* 2016-07-28 [c965133](https://github.com/silverstripe/silverstripe-cms/commit/c965133da03941fc736384d17518dc37be3d0e07) Direct edit file by URL (Jonathon Menz)
|
||||
* 2016-07-25 [3306deb](https://github.com/silverstripe/silverstripe-cms/commit/3306deb69b88473efac009f46a90cbaa6bb27351) Fix link concatenation in SilverStripeNavigator (#1560) (Damian Mooyman)
|
||||
* 2016-07-25 [9c7c7f6](https://github.com/silverstripe/silverstripe-framework/commit/9c7c7f6aa945ce5eeea3468bca59e5496e765016) Fix regression in missing require_js from #4259 (Damian Mooyman)
|
||||
* 2016-07-22 [82e5431](https://github.com/silverstripe/silverstripe-cms/commit/82e54314bf2d26a5eb233018f472e248e44dc1ba) do not show HiddenClass pages in allowed children (#1555) (Robbie Averill)
|
||||
* 2016-07-20 [319d6d2](https://github.com/silverstripe/silverstripe-framework/commit/319d6d293e873d989c55473a0aa7ae1679010474) Fix doclink (#5827) (Damian Mooyman)
|
||||
* 2016-07-19 [10e06dc](https://github.com/silverstripe/silverstripe-cms/commit/10e06dce507c6f9b3588e4f8669ce36ee843f79e) Fixes #1054 By preventing errors in the CMS _only_. (Russell Michell)
|
||||
* 2016-07-15 [b3fea37](https://github.com/silverstripe/silverstripe-framework/commit/b3fea3723fae822068a6b761a682011b0970fff5) Fixes support for "inline" form actions (fixes #2534) (Loz Calver)
|
||||
* 2016-07-12 [24efc7e](https://github.com/silverstripe/silverstripe-framework/commit/24efc7edf83bb06b5a01080d2742c07ef68d21b2) Fix sorting ArrayList with sql-like syntax (Damian Mooyman)
|
||||
* 2016-07-12 [8123c43](https://github.com/silverstripe/silverstripe-cms/commit/8123c433f01ca1ce59062e45ad90bac13be1e990) Fix getAbsoluteLiveLink() concatenation (Damian Mooyman)
|
||||
* 2016-07-12 [87477a1](https://github.com/silverstripe-labs/silverstripe-reports/commit/87477a1e01d03ebee7eb71c352b3da47da73a9f2) Fix incorrect url manipulation (Damian Mooyman)
|
||||
* 2016-07-07 [4aa1fc2](https://github.com/silverstripe/silverstripe-framework/commit/4aa1fc2d2cafd1c90401896cefb03e64b530a59c) Changed form fields that call renderWith in Field() to call parent::Field() instead (#5783) (Ed Chipman)
|
||||
* 2016-07-07 [27cea80](https://github.com/silverstripe/silverstripe-framework/commit/27cea80b15a986d43b832658b13d01c08a5cfce1) SS_ConfigStaticManifest_Parser failed to handle ::class syntax (fixes #5701) (#5781) (Loz Calver)
|
||||
* 2016-07-04 [0b7dab3](https://github.com/silverstripe/silverstripe-framework/commit/0b7dab3f66d64a4415b436b4301d4608b01b0597) Fix missing icons (Damian Mooyman)
|
||||
* 2016-07-01 [39238d9](https://github.com/silverstripe/silverstripe-framework/commit/39238d908e0ed077d7aaf773562749468b6827ee) falsey attribute values in shortcodes now work (Daniel Hensby)
|
||||
* 2016-06-30 [2cdfe6c](https://github.com/silverstripe/silverstripe-framework/commit/2cdfe6cc21f0cb253401fa169b5e1c3bb8738d43) Use RAW for DBField template helpers (Daniel Hensby)
|
||||
* 2016-06-30 [b0f237b](https://github.com/silverstripe/silverstripe-framework/commit/b0f237bb3a336eea9f3a9f9bece2b65661c03cbc) Use RAW instead of Value for parsing shortcodes (Daniel Hensby)
|
||||
* 2016-06-13 [f0d4951](https://github.com/silverstripe/silverstripe-framework/commit/f0d49518152bb9743e32174bc870fac6951c161d) for #5683: Address security warning in CMS when attempting to access <iframe> contents (Back-porting fix from PR #5163) (Patrick Nelson)
|
||||
* 2016-06-08 [bf00810](https://github.com/silverstripe/silverstripe-framework/commit/bf00810e1f5a7164d74ad66f3d03e813d81dfa25) Fix buttonClicked() error (Damian Mooyman)
|
||||
* 2016-06-06 [946495b](https://github.com/silverstripe/silverstripe-framework/commit/946495bcf575d727726dcacc0a6eba596661cfa2) Regression with <% with / %> (fixes #5656) (Loz Calver)
|
||||
* 2016-05-31 [eba89b9](https://github.com/silverstripe/silverstripe-cms/commit/eba89b9520a0103e4c0cb4b6730c3c0742f8b0d9) OldPageRedirector no longer loops infinitely if 404 thrown on existing page (Daniel Hensby)
|
||||
* 2016-05-31 [341f49c](https://github.com/silverstripe/silverstripe-framework/commit/341f49c630c23ee665c195250c19935763172e36) Fixed lookup of next closest visible field for focus restoring (fixes #5618) (UndefinedOffset)
|
||||
* 2016-05-27 [f1a0aef](https://github.com/silverstripe/silverstripe-framework/commit/f1a0aef0d7e18b921b53a381ff8489bc5c12740b) fix CMS_ACCESS permission being ignored if in incorrect order in array (Damian Mooyman)
|
||||
* 2016-05-21 [decd7e5](https://github.com/silverstripe/silverstripe-framework/commit/decd7e5c57a0839cb873c86782a870326ffa175a) Fix getFinalisedQuery not including all queried columns (Damian Mooyman)
|
||||
* 2016-05-20 [8382685](https://github.com/silverstripe/silverstripe-framework/commit/83826850346bc486bc4599dca56067897961cbfa) #5557 Tests with no DB requirements wont create test DB (Daniel Hensby)
|
||||
* 2016-04-19 [43dcde5](https://github.com/silverstripe/silverstripe-framework/commit/43dcde5197e0995225235f69937ed57bec0cd7e2) Hierarchy was incorrectly unexpanding nodes that had been previously expanded (madmatt)
|
||||
* 2016-01-22 [4bd66b9](https://github.com/silverstripe/silverstripe-framework/commit/4bd66b9d3693492806bb4e9a512f8ae623c6a306) for #4909: Ensure RSSFeed_Entry is instantiated using the injector. (Patrick Nelson)
|
||||
* 2015-04-21 [a7100e9](https://github.com/silverstripe/silverstripe-framework/commit/a7100e9006b27e7885eb2ce851d9bc0839ca4468) Object::parse_class_spec failed to parse associative arrays (Loz Calver)
|
13
docs/en/04_Changelogs/rc/3.1.20-rc1.md
Normal file
13
docs/en/04_Changelogs/rc/3.1.20-rc1.md
Normal file
@ -0,0 +1,13 @@
|
||||
# 3.1.20-rc1
|
||||
|
||||
<!--- Changes below this line will be automatically regenerated -->
|
||||
|
||||
## Change Log
|
||||
|
||||
### Bugfixes
|
||||
|
||||
* 2016-05-20 [8382685](https://github.com/silverstripe/silverstripe-framework/commit/83826850346bc486bc4599dca56067897961cbfa) #5557 Tests with no DB requirements wont create test DB (Daniel Hensby)
|
||||
* 2016-05-18 [62bd26d](https://github.com/silverstripe/silverstripe-framework/commit/62bd26d11ab9c9bf5b91ba8abb776ab3a4813a18) Fix suppression of display_errors in ErrorControlChain (Damian Mooyman)
|
||||
* 2016-05-10 [3738d88](https://github.com/silverstripe/silverstripe-framework/commit/3738d888e0fbce48e0d88735edd3455a116937b5) Empty FROM clause (Daniel Hensby)
|
||||
* 2016-05-05 [cc7a2ae](https://github.com/silverstripe/silverstripe-installer/commit/cc7a2aeb1e03f3f8db67a1ca547280b05dd9372a) Add framework/admin tests (#118) (Daniel Hensby)
|
||||
* 2015-04-21 [a7100e9](https://github.com/silverstripe/silverstripe-framework/commit/a7100e9006b27e7885eb2ce851d9bc0839ca4468) Object::parse_class_spec failed to parse associative arrays (Loz Calver)
|
14
docs/en/04_Changelogs/rc/3.1.20-rc2.md
Normal file
14
docs/en/04_Changelogs/rc/3.1.20-rc2.md
Normal file
@ -0,0 +1,14 @@
|
||||
# 3.1.20-rc2
|
||||
|
||||
<!--- Changes below this line will be automatically regenerated -->
|
||||
|
||||
## Change Log
|
||||
|
||||
### Security
|
||||
|
||||
* 2016-08-02 [62a2421](https://github.com/silverstripe/silverstripe-framework/commit/62a242154ec3508fe9b174a40713c8520ac1684c) Fix value / title escaping in CheckboxSetField and OptionsetField (Damian Mooyman) - See [ss-2016-015](http://www.silverstripe.org/download/security-releases/ss-2016-015)
|
||||
* 2016-07-25 [1c7d5de](https://github.com/silverstripe/silverstripe-framework/commit/1c7d5de51bcdf16ebb21c5a0ebe5fe9e31f9a822) Autologin cookies are ignored if autologin is disabled (Daniel Hensby) - See [ss-2016-014](http://www.silverstripe.org/download/security-releases/ss-2016-014)
|
||||
* 2016-07-22 [6817c57](https://github.com/silverstripe/silverstripe-framework/commit/6817c57f64b9eb2b271b81662cd83b074a3daee4) Uncasted member name (Daniel Hensby) - See [ss-2016-013](http://www.silverstripe.org/download/security-releases/ss-2016-013)
|
||||
* 2016-07-15 [298f615](https://github.com/silverstripe/silverstripe-framework/commit/298f61521c55b07e5c898a92264dbe111735a87a) Reset `Member::Salt` on password change (Daniel Hensby) - See [ss-2016-008](http://www.silverstripe.org/download/security-releases/ss-2016-008)
|
||||
* 2016-07-14 [6606d98](https://github.com/silverstripe/silverstripe-framework/commit/6606d986634f5b5dec16462acaa8d9a513c29fec) ChangePasswordForm does not check $member->canLogin before login (Daniel Hensby) - See [ss-2016-011](http://www.silverstripe.org/download/security-releases/ss-2016-011)
|
||||
* 2016-07-14 [5f73d34](https://github.com/silverstripe/silverstripe-cms/commit/5f73d3454ecbc4850e91a0a3007102f6d4d9b853) Missing ACL check on ReportAdmin (Daniel Hensby) - See [ss-2016-012](http://www.silverstripe.org/download/security-releases/ss-2016-012)
|
21
docs/en/04_Changelogs/rc/3.2.5-rc1.md
Normal file
21
docs/en/04_Changelogs/rc/3.2.5-rc1.md
Normal file
@ -0,0 +1,21 @@
|
||||
# 3.2.5-rc1
|
||||
|
||||
<!--- Changes below this line will be automatically regenerated -->
|
||||
|
||||
## Change Log
|
||||
|
||||
### Bugfixes
|
||||
|
||||
* 2016-07-07 [4aa1fc2](https://github.com/silverstripe/silverstripe-framework/commit/4aa1fc2d2cafd1c90401896cefb03e64b530a59c) Changed form fields that call renderWith in Field() to call parent::Field() instead (#5783) (Ed Chipman)
|
||||
* 2016-07-07 [27cea80](https://github.com/silverstripe/silverstripe-framework/commit/27cea80b15a986d43b832658b13d01c08a5cfce1) SS_ConfigStaticManifest_Parser failed to handle ::class syntax (fixes #5701) (#5781) (Loz Calver)
|
||||
* 2016-07-01 [39238d9](https://github.com/silverstripe/silverstripe-framework/commit/39238d908e0ed077d7aaf773562749468b6827ee) falsey attribute values in shortcodes now work (Daniel Hensby)
|
||||
* 2016-06-30 [2cdfe6c](https://github.com/silverstripe/silverstripe-framework/commit/2cdfe6cc21f0cb253401fa169b5e1c3bb8738d43) Use RAW for DBField template helpers (Daniel Hensby)
|
||||
* 2016-06-30 [b0f237b](https://github.com/silverstripe/silverstripe-framework/commit/b0f237bb3a336eea9f3a9f9bece2b65661c03cbc) Use RAW instead of Value for parsing shortcodes (Daniel Hensby)
|
||||
* 2016-05-31 [eba89b9](https://github.com/silverstripe/silverstripe-cms/commit/eba89b9520a0103e4c0cb4b6730c3c0742f8b0d9) OldPageRedirector no longer loops infinitely if 404 thrown on existing page (Daniel Hensby)
|
||||
* 2016-05-31 [341f49c](https://github.com/silverstripe/silverstripe-framework/commit/341f49c630c23ee665c195250c19935763172e36) Fixed lookup of next closest visible field for focus restoring (fixes #5618) (UndefinedOffset)
|
||||
* 2016-05-20 [8382685](https://github.com/silverstripe/silverstripe-framework/commit/83826850346bc486bc4599dca56067897961cbfa) #5557 Tests with no DB requirements wont create test DB (Daniel Hensby)
|
||||
* 2016-05-18 [62bd26d](https://github.com/silverstripe/silverstripe-framework/commit/62bd26d11ab9c9bf5b91ba8abb776ab3a4813a18) Fix suppression of display_errors in ErrorControlChain (Damian Mooyman)
|
||||
* 2016-05-10 [3738d88](https://github.com/silverstripe/silverstripe-framework/commit/3738d888e0fbce48e0d88735edd3455a116937b5) Empty FROM clause (Daniel Hensby)
|
||||
* 2016-05-05 [cc7a2ae](https://github.com/silverstripe/silverstripe-installer/commit/cc7a2aeb1e03f3f8db67a1ca547280b05dd9372a) Add framework/admin tests (#118) (Daniel Hensby)
|
||||
* 2016-04-19 [43dcde5](https://github.com/silverstripe/silverstripe-framework/commit/43dcde5197e0995225235f69937ed57bec0cd7e2) Hierarchy was incorrectly unexpanding nodes that had been previously expanded (madmatt)
|
||||
* 2015-04-21 [a7100e9](https://github.com/silverstripe/silverstripe-framework/commit/a7100e9006b27e7885eb2ce851d9bc0839ca4468) Object::parse_class_spec failed to parse associative arrays (Loz Calver)
|
14
docs/en/04_Changelogs/rc/3.2.5-rc2.md
Normal file
14
docs/en/04_Changelogs/rc/3.2.5-rc2.md
Normal file
@ -0,0 +1,14 @@
|
||||
# 3.2.5-rc2
|
||||
|
||||
<!--- Changes below this line will be automatically regenerated -->
|
||||
|
||||
## Change Log
|
||||
|
||||
### Security
|
||||
|
||||
* 2016-08-02 [12a6b35](https://github.com/silverstripe/silverstripe-framework/commit/12a6b357e761f09d818fd0013eb2d85014de79a0) Fix value / title escaping in CheckboxSetField and OptionsetField (Damian Mooyman) - See [ss-2016-015](http://www.silverstripe.org/download/security-releases/ss-2016-015)
|
||||
* 2016-07-25 [b1f4497](https://github.com/silverstripe/silverstripe-framework/commit/b1f449762b5d11658b11d5036d5ae361a95fd61e) Autologin cookies are ignored if autologin is disabled (Daniel Hensby) - See [ss-2016-014](http://www.silverstripe.org/download/security-releases/ss-2016-014)
|
||||
* 2016-07-22 [281b0de](https://github.com/silverstripe/silverstripe-framework/commit/281b0de571fe0ae159ac47891c02acf2214fa619) Uncasted member name (Daniel Hensby) - See [ss-2016-013](http://www.silverstripe.org/download/security-releases/ss-2016-013)
|
||||
* 2016-07-15 [dc47f7e](https://github.com/silverstripe/silverstripe-framework/commit/dc47f7ec9adf67a3f31887467de5b110e8e5b285) Reset `Member::Salt` on password change (Daniel Hensby) - See [ss-2016-008](http://www.silverstripe.org/download/security-releases/ss-2016-008)
|
||||
* 2016-07-14 [2b30ade](https://github.com/silverstripe/silverstripe-framework/commit/2b30ade44d333a4da4d13b31ffa28d0a34597442) ChangePasswordForm does not check $member->canLogin before login (Daniel Hensby) - See [ss-2016-011](http://www.silverstripe.org/download/security-releases/ss-2016-011)
|
||||
* 2016-07-14 [cff2ea9](https://github.com/silverstripe-labs/silverstripe-reports/commit/cff2ea9a98f592d80083633aef6bd082480281d9) Missing ACL check on ReportAdmin (Daniel Hensby) - See [ss-2016-012](http://www.silverstripe.org/download/security-releases/ss-2016-012)
|
38
docs/en/04_Changelogs/rc/3.3.3-rc1.md
Normal file
38
docs/en/04_Changelogs/rc/3.3.3-rc1.md
Normal file
@ -0,0 +1,38 @@
|
||||
# 3.3.3-rc1
|
||||
|
||||
<!--- Changes below this line will be automatically regenerated -->
|
||||
|
||||
## Change Log
|
||||
|
||||
### Bugfixes
|
||||
|
||||
* 2016-08-02 [cd80d50](https://github.com/silverstripe/silverstripe-framework/commit/cd80d501f9eb12d9aca3e65f742041b142ee659f) Fix unset config options returning isset() = true (Damian Mooyman)
|
||||
* 2016-07-25 [3306deb](https://github.com/silverstripe/silverstripe-cms/commit/3306deb69b88473efac009f46a90cbaa6bb27351) Fix link concatenation in SilverStripeNavigator (#1560) (Damian Mooyman)
|
||||
* 2016-07-20 [319d6d2](https://github.com/silverstripe/silverstripe-framework/commit/319d6d293e873d989c55473a0aa7ae1679010474) Fix doclink (#5827) (Damian Mooyman)
|
||||
* 2016-07-19 [10e06dc](https://github.com/silverstripe/silverstripe-cms/commit/10e06dce507c6f9b3588e4f8669ce36ee843f79e) Fixes #1054 By preventing errors in the CMS _only_. (Russell Michell)
|
||||
* 2016-07-15 [b3fea37](https://github.com/silverstripe/silverstripe-framework/commit/b3fea3723fae822068a6b761a682011b0970fff5) Fixes support for "inline" form actions (fixes #2534) (Loz Calver)
|
||||
* 2016-07-12 [24efc7e](https://github.com/silverstripe/silverstripe-framework/commit/24efc7edf83bb06b5a01080d2742c07ef68d21b2) Fix sorting ArrayList with sql-like syntax (Damian Mooyman)
|
||||
* 2016-07-12 [8123c43](https://github.com/silverstripe/silverstripe-cms/commit/8123c433f01ca1ce59062e45ad90bac13be1e990) Fix getAbsoluteLiveLink() concatenation (Damian Mooyman)
|
||||
* 2016-07-12 [87477a1](https://github.com/silverstripe-labs/silverstripe-reports/commit/87477a1e01d03ebee7eb71c352b3da47da73a9f2) Fix incorrect url manipulation (Damian Mooyman)
|
||||
* 2016-07-07 [4aa1fc2](https://github.com/silverstripe/silverstripe-framework/commit/4aa1fc2d2cafd1c90401896cefb03e64b530a59c) Changed form fields that call renderWith in Field() to call parent::Field() instead (#5783) (Ed Chipman)
|
||||
* 2016-07-07 [27cea80](https://github.com/silverstripe/silverstripe-framework/commit/27cea80b15a986d43b832658b13d01c08a5cfce1) SS_ConfigStaticManifest_Parser failed to handle ::class syntax (fixes #5701) (#5781) (Loz Calver)
|
||||
* 2016-07-01 [39238d9](https://github.com/silverstripe/silverstripe-framework/commit/39238d908e0ed077d7aaf773562749468b6827ee) falsey attribute values in shortcodes now work (Daniel Hensby)
|
||||
* 2016-06-30 [2cdfe6c](https://github.com/silverstripe/silverstripe-framework/commit/2cdfe6cc21f0cb253401fa169b5e1c3bb8738d43) Use RAW for DBField template helpers (Daniel Hensby)
|
||||
* 2016-06-30 [b0f237b](https://github.com/silverstripe/silverstripe-framework/commit/b0f237bb3a336eea9f3a9f9bece2b65661c03cbc) Use RAW instead of Value for parsing shortcodes (Daniel Hensby)
|
||||
* 2016-06-13 [f0d4951](https://github.com/silverstripe/silverstripe-framework/commit/f0d49518152bb9743e32174bc870fac6951c161d) for #5683: Address security warning in CMS when attempting to access <iframe> contents (Back-porting fix from PR #5163) (Patrick Nelson)
|
||||
* 2016-06-08 [bf00810](https://github.com/silverstripe/silverstripe-framework/commit/bf00810e1f5a7164d74ad66f3d03e813d81dfa25) Fix buttonClicked() error (Damian Mooyman)
|
||||
* 2016-05-31 [eba89b9](https://github.com/silverstripe/silverstripe-cms/commit/eba89b9520a0103e4c0cb4b6730c3c0742f8b0d9) OldPageRedirector no longer loops infinitely if 404 thrown on existing page (Daniel Hensby)
|
||||
* 2016-05-31 [341f49c](https://github.com/silverstripe/silverstripe-framework/commit/341f49c630c23ee665c195250c19935763172e36) Fixed lookup of next closest visible field for focus restoring (fixes #5618) (UndefinedOffset)
|
||||
* 2016-05-27 [f1a0aef](https://github.com/silverstripe/silverstripe-framework/commit/f1a0aef0d7e18b921b53a381ff8489bc5c12740b) fix CMS_ACCESS permission being ignored if in incorrect order in array (Damian Mooyman)
|
||||
* 2016-05-21 [decd7e5](https://github.com/silverstripe/silverstripe-framework/commit/decd7e5c57a0839cb873c86782a870326ffa175a) Fix getFinalisedQuery not including all queried columns (Damian Mooyman)
|
||||
* 2016-05-20 [8382685](https://github.com/silverstripe/silverstripe-framework/commit/83826850346bc486bc4599dca56067897961cbfa) #5557 Tests with no DB requirements wont create test DB (Daniel Hensby)
|
||||
* 2016-05-18 [62bd26d](https://github.com/silverstripe/silverstripe-framework/commit/62bd26d11ab9c9bf5b91ba8abb776ab3a4813a18) Fix suppression of display_errors in ErrorControlChain (Damian Mooyman)
|
||||
* 2016-05-16 [79d0590](https://github.com/silverstripe/silverstripe-framework/commit/79d05906286698e7cf7274703088a47c54b106f2) Fix singleton('DBLocale') (Damian Mooyman)
|
||||
* 2016-05-10 [3738d88](https://github.com/silverstripe/silverstripe-framework/commit/3738d888e0fbce48e0d88735edd3455a116937b5) Empty FROM clause (Daniel Hensby)
|
||||
* 2016-05-10 [d1df67d](https://github.com/silverstripe/silverstripe-framework/commit/d1df67d3089a51c0db63fbaed869738453bee482) SQLSelect count methods now cast to int (fixes #5498) (Loz Calver)
|
||||
* 2016-05-05 [cc7a2ae](https://github.com/silverstripe/silverstripe-installer/commit/cc7a2aeb1e03f3f8db67a1ca547280b05dd9372a) Add framework/admin tests (#118) (Daniel Hensby)
|
||||
* 2016-05-02 [096f30e](https://github.com/silverstripe/silverstripe-framework/commit/096f30ebe5ff6446a399abc92813a6ff2d02e04e) Fix GridFieldAddExistingAutocompleter (Damian Mooyman)
|
||||
* 2016-04-28 [6934083](https://github.com/silverstripe/silverstripe-framework/commit/693408330bdd235b92690912ad36ba8adbebdbef) for #5410 to help focus errors occurring on tabs within GridField controlled DataObjects (et al). (Patrick Nelson)
|
||||
* 2016-04-19 [43dcde5](https://github.com/silverstripe/silverstripe-framework/commit/43dcde5197e0995225235f69937ed57bec0cd7e2) Hierarchy was incorrectly unexpanding nodes that had been previously expanded (madmatt)
|
||||
* 2016-01-22 [4bd66b9](https://github.com/silverstripe/silverstripe-framework/commit/4bd66b9d3693492806bb4e9a512f8ae623c6a306) for #4909: Ensure RSSFeed_Entry is instantiated using the injector. (Patrick Nelson)
|
||||
* 2015-04-21 [a7100e9](https://github.com/silverstripe/silverstripe-framework/commit/a7100e9006b27e7885eb2ce851d9bc0839ca4468) Object::parse_class_spec failed to parse associative arrays (Loz Calver)
|
19
docs/en/04_Changelogs/rc/3.3.3-rc2.md
Normal file
19
docs/en/04_Changelogs/rc/3.3.3-rc2.md
Normal file
@ -0,0 +1,19 @@
|
||||
# 3.3.3-rc2
|
||||
|
||||
<!--- Changes below this line will be automatically regenerated -->
|
||||
|
||||
## Change Log
|
||||
|
||||
### Security
|
||||
|
||||
* 2016-08-02 [049cdef](https://github.com/silverstripe/silverstripe-framework/commit/049cdefacfd3122d59d5488c1317f999fe8aacc4) Fix value / title escaping in CheckboxSetField and OptionsetField (Damian Mooyman) - See [ss-2016-015](http://www.silverstripe.org/download/security-releases/ss-2016-015)
|
||||
* 2016-07-25 [fa7f5af](https://github.com/silverstripe/silverstripe-framework/commit/fa7f5af8618a83c865b11fd6cc981ad9661046e6) Autologin cookies are ignored if autologin is disabled (Daniel Hensby) - See [ss-2016-014](http://www.silverstripe.org/download/security-releases/ss-2016-014)
|
||||
* 2016-07-22 [83e3302](https://github.com/silverstripe/silverstripe-framework/commit/83e3302c0425d9b0e4fe42e82e3df03379f4dca5) Uncasted member name (Daniel Hensby) - See [ss-2016-013](http://www.silverstripe.org/download/security-releases/ss-2016-013)
|
||||
* 2016-07-15 [f85dea2](https://github.com/silverstripe/silverstripe-framework/commit/f85dea2e6d5b303abd43b5e5efc07c66c8d2acf4) Reset `Member::Salt` on password change (Daniel Hensby) - See [ss-2016-008](http://www.silverstripe.org/download/security-releases/ss-2016-008)
|
||||
* 2016-07-14 [6d41db7](https://github.com/silverstripe/silverstripe-framework/commit/6d41db77fa78f473db7bcff389456c980ef4e412) ChangePasswordForm does not check $member->canLogin before login (Daniel Hensby) - See [ss-2016-011](http://www.silverstripe.org/download/security-releases/ss-2016-011)
|
||||
* 2016-07-14 [efa20d2](https://github.com/silverstripe-labs/silverstripe-reports/commit/efa20d2da03f80758cce7fe697c62f7f42fe098a) Missing ACL check on ReportAdmin (Daniel Hensby) - See [ss-2016-012](http://www.silverstripe.org/download/security-releases/ss-2016-012)
|
||||
* 2016-05-03 [3fa84cf](https://github.com/silverstripe/silverstripe-framework/commit/3fa84cf0c64a539d78600c36364817a8e38411d8) Encode user supplied URL for embeding into page (Daniel Hensby) - See [ss-2016-007](http://www.silverstripe.org/download/security-releases/ss-2016-007)
|
||||
|
||||
### Bugfixes
|
||||
|
||||
* 2016-08-15 [a6a9cd7](https://github.com/silverstripe/silverstripe-cms/commit/a6a9cd729fd24b19f7b39fdeb867a491489687e0) Fix regression in FormField casting (Damian Mooyman)
|
38
docs/en/04_Changelogs/rc/3.4.1-rc1.md
Normal file
38
docs/en/04_Changelogs/rc/3.4.1-rc1.md
Normal file
@ -0,0 +1,38 @@
|
||||
# 3.4.1-rc1
|
||||
|
||||
<!--- Changes below this line will be automatically regenerated -->
|
||||
|
||||
## Change Log
|
||||
|
||||
### Bugfixes
|
||||
|
||||
* 2016-08-02 [cd80d50](https://github.com/silverstripe/silverstripe-framework/commit/cd80d501f9eb12d9aca3e65f742041b142ee659f) Fix unset config options returning isset() = true (Damian Mooyman)
|
||||
* 2016-08-01 [7d0b8e6](https://github.com/silverstripe/silverstripe-framework/commit/7d0b8e6520a246bd20204613233a0a6ad0f19437) Fix permission checking code not correctly handling escaped SQL identifiers (Damian Mooyman)
|
||||
* 2016-07-28 [6c37532](https://github.com/silverstripe/silverstripe-framework/commit/6c37532a7ae4877fe1eaff45f41ff9902d5cccee) Gridfield delete action back link (#5848) (Jono Menz)
|
||||
* 2016-07-28 [c965133](https://github.com/silverstripe/silverstripe-cms/commit/c965133da03941fc736384d17518dc37be3d0e07) Direct edit file by URL (Jonathon Menz)
|
||||
* 2016-07-25 [3306deb](https://github.com/silverstripe/silverstripe-cms/commit/3306deb69b88473efac009f46a90cbaa6bb27351) Fix link concatenation in SilverStripeNavigator (#1560) (Damian Mooyman)
|
||||
* 2016-07-25 [9c7c7f6](https://github.com/silverstripe/silverstripe-framework/commit/9c7c7f6aa945ce5eeea3468bca59e5496e765016) Fix regression in missing require_js from #4259 (Damian Mooyman)
|
||||
* 2016-07-22 [82e5431](https://github.com/silverstripe/silverstripe-cms/commit/82e54314bf2d26a5eb233018f472e248e44dc1ba) do not show HiddenClass pages in allowed children (#1555) (Robbie Averill)
|
||||
* 2016-07-20 [319d6d2](https://github.com/silverstripe/silverstripe-framework/commit/319d6d293e873d989c55473a0aa7ae1679010474) Fix doclink (#5827) (Damian Mooyman)
|
||||
* 2016-07-19 [10e06dc](https://github.com/silverstripe/silverstripe-cms/commit/10e06dce507c6f9b3588e4f8669ce36ee843f79e) Fixes #1054 By preventing errors in the CMS _only_. (Russell Michell)
|
||||
* 2016-07-15 [b3fea37](https://github.com/silverstripe/silverstripe-framework/commit/b3fea3723fae822068a6b761a682011b0970fff5) Fixes support for "inline" form actions (fixes #2534) (Loz Calver)
|
||||
* 2016-07-12 [24efc7e](https://github.com/silverstripe/silverstripe-framework/commit/24efc7edf83bb06b5a01080d2742c07ef68d21b2) Fix sorting ArrayList with sql-like syntax (Damian Mooyman)
|
||||
* 2016-07-12 [8123c43](https://github.com/silverstripe/silverstripe-cms/commit/8123c433f01ca1ce59062e45ad90bac13be1e990) Fix getAbsoluteLiveLink() concatenation (Damian Mooyman)
|
||||
* 2016-07-12 [87477a1](https://github.com/silverstripe-labs/silverstripe-reports/commit/87477a1e01d03ebee7eb71c352b3da47da73a9f2) Fix incorrect url manipulation (Damian Mooyman)
|
||||
* 2016-07-07 [4aa1fc2](https://github.com/silverstripe/silverstripe-framework/commit/4aa1fc2d2cafd1c90401896cefb03e64b530a59c) Changed form fields that call renderWith in Field() to call parent::Field() instead (#5783) (Ed Chipman)
|
||||
* 2016-07-07 [27cea80](https://github.com/silverstripe/silverstripe-framework/commit/27cea80b15a986d43b832658b13d01c08a5cfce1) SS_ConfigStaticManifest_Parser failed to handle ::class syntax (fixes #5701) (#5781) (Loz Calver)
|
||||
* 2016-07-04 [0b7dab3](https://github.com/silverstripe/silverstripe-framework/commit/0b7dab3f66d64a4415b436b4301d4608b01b0597) Fix missing icons (Damian Mooyman)
|
||||
* 2016-07-01 [39238d9](https://github.com/silverstripe/silverstripe-framework/commit/39238d908e0ed077d7aaf773562749468b6827ee) falsey attribute values in shortcodes now work (Daniel Hensby)
|
||||
* 2016-06-30 [2cdfe6c](https://github.com/silverstripe/silverstripe-framework/commit/2cdfe6cc21f0cb253401fa169b5e1c3bb8738d43) Use RAW for DBField template helpers (Daniel Hensby)
|
||||
* 2016-06-30 [b0f237b](https://github.com/silverstripe/silverstripe-framework/commit/b0f237bb3a336eea9f3a9f9bece2b65661c03cbc) Use RAW instead of Value for parsing shortcodes (Daniel Hensby)
|
||||
* 2016-06-13 [f0d4951](https://github.com/silverstripe/silverstripe-framework/commit/f0d49518152bb9743e32174bc870fac6951c161d) for #5683: Address security warning in CMS when attempting to access <iframe> contents (Back-porting fix from PR #5163) (Patrick Nelson)
|
||||
* 2016-06-08 [bf00810](https://github.com/silverstripe/silverstripe-framework/commit/bf00810e1f5a7164d74ad66f3d03e813d81dfa25) Fix buttonClicked() error (Damian Mooyman)
|
||||
* 2016-06-06 [946495b](https://github.com/silverstripe/silverstripe-framework/commit/946495bcf575d727726dcacc0a6eba596661cfa2) Regression with <% with / %> (fixes #5656) (Loz Calver)
|
||||
* 2016-05-31 [eba89b9](https://github.com/silverstripe/silverstripe-cms/commit/eba89b9520a0103e4c0cb4b6730c3c0742f8b0d9) OldPageRedirector no longer loops infinitely if 404 thrown on existing page (Daniel Hensby)
|
||||
* 2016-05-31 [341f49c](https://github.com/silverstripe/silverstripe-framework/commit/341f49c630c23ee665c195250c19935763172e36) Fixed lookup of next closest visible field for focus restoring (fixes #5618) (UndefinedOffset)
|
||||
* 2016-05-27 [f1a0aef](https://github.com/silverstripe/silverstripe-framework/commit/f1a0aef0d7e18b921b53a381ff8489bc5c12740b) fix CMS_ACCESS permission being ignored if in incorrect order in array (Damian Mooyman)
|
||||
* 2016-05-21 [decd7e5](https://github.com/silverstripe/silverstripe-framework/commit/decd7e5c57a0839cb873c86782a870326ffa175a) Fix getFinalisedQuery not including all queried columns (Damian Mooyman)
|
||||
* 2016-05-20 [8382685](https://github.com/silverstripe/silverstripe-framework/commit/83826850346bc486bc4599dca56067897961cbfa) #5557 Tests with no DB requirements wont create test DB (Daniel Hensby)
|
||||
* 2016-04-19 [43dcde5](https://github.com/silverstripe/silverstripe-framework/commit/43dcde5197e0995225235f69937ed57bec0cd7e2) Hierarchy was incorrectly unexpanding nodes that had been previously expanded (madmatt)
|
||||
* 2016-01-22 [4bd66b9](https://github.com/silverstripe/silverstripe-framework/commit/4bd66b9d3693492806bb4e9a512f8ae623c6a306) for #4909: Ensure RSSFeed_Entry is instantiated using the injector. (Patrick Nelson)
|
||||
* 2015-04-21 [a7100e9](https://github.com/silverstripe/silverstripe-framework/commit/a7100e9006b27e7885eb2ce851d9bc0839ca4468) Object::parse_class_spec failed to parse associative arrays (Loz Calver)
|
19
docs/en/04_Changelogs/rc/3.4.1-rc2.md
Normal file
19
docs/en/04_Changelogs/rc/3.4.1-rc2.md
Normal file
@ -0,0 +1,19 @@
|
||||
# 3.4.1-rc2
|
||||
|
||||
<!--- Changes below this line will be automatically regenerated -->
|
||||
|
||||
## Change Log
|
||||
|
||||
### Security
|
||||
|
||||
* 2016-08-02 [b0ba201](https://github.com/silverstripe/silverstripe-framework/commit/b0ba2015d9684ee7b124dafcf6b59b046e20f8ed) Fix value / title escaping in CheckboxSetField and OptionsetField (Damian Mooyman) - See [ss-2016-015](http://www.silverstripe.org/download/security-releases/ss-2016-015)
|
||||
* 2016-07-25 [d1163d8](https://github.com/silverstripe/silverstripe-framework/commit/d1163d87b70e3e147f22a1e423b9f70f6fd85e8f) Autologin cookies are ignored if autologin is disabled (Daniel Hensby) - See [ss-2016-014](http://www.silverstripe.org/download/security-releases/ss-2016-014)
|
||||
* 2016-07-22 [8bbf1ca](https://github.com/silverstripe/silverstripe-framework/commit/8bbf1caae665a07b3e44e8d5d32556a03d38c296) Uncasted member name (Daniel Hensby) - See [ss-2016-013](http://www.silverstripe.org/download/security-releases/ss-2016-013)
|
||||
* 2016-07-15 [08384bb](https://github.com/silverstripe/silverstripe-framework/commit/08384bb4d6b98c44388ffb4727c317ed14fe3c81) Reset `Member::Salt` on password change (Daniel Hensby) - See [ss-2016-008](http://www.silverstripe.org/download/security-releases/ss-2016-008)
|
||||
* 2016-07-14 [782c18f](https://github.com/silverstripe/silverstripe-framework/commit/782c18fd13b9fb92707d0ea3b231023204928297) ChangePasswordForm does not check $member->canLogin before login (Daniel Hensby) - See [ss-2016-011](http://www.silverstripe.org/download/security-releases/ss-2016-011)
|
||||
* 2016-07-14 [c1525c8](https://github.com/silverstripe-labs/silverstripe-reports/commit/c1525c8ba68f6d4fc0fb5f30929f9678c0199411) Missing ACL check on ReportAdmin (Daniel Hensby) - See [ss-2016-012](http://www.silverstripe.org/download/security-releases/ss-2016-012)
|
||||
* 2016-05-03 [41be95c](https://github.com/silverstripe/silverstripe-framework/commit/41be95c95a55031412ee4056aeee5c2c69595836) Encode user supplied URL for embeding into page (Daniel Hensby) - See [ss-2016-007](http://www.silverstripe.org/download/security-releases/ss-2016-007)
|
||||
|
||||
### Bugfixes
|
||||
|
||||
* 2016-08-15 [ef85618](https://github.com/silverstripe/silverstripe-cms/commit/ef856185ab7a86f25fda718a88256c9e6e27a763) Fix regression in FormField casting (Damian Mooyman)
|
@ -33,7 +33,7 @@ class SS_FileFinder {
|
||||
* @var array
|
||||
*/
|
||||
protected static $vcs_dirs = array(
|
||||
'.git', '.svn', '.hg', '.bzr'
|
||||
'.git', '.svn', '.hg', '.bzr', 'node_modules',
|
||||
);
|
||||
|
||||
/**
|
||||
|
@ -66,12 +66,12 @@ class CheckboxSetField extends MultiSelectField {
|
||||
$defaultItems = $this->getDefaultItems();
|
||||
|
||||
// Generate list of options to display
|
||||
$odd = 0;
|
||||
$odd = false;
|
||||
$formID = $this->ID();
|
||||
$options = new ArrayList();
|
||||
foreach($this->getSource() as $itemValue => $title) {
|
||||
$itemID = Convert::raw2htmlid("{$formID}_{$itemValue}");
|
||||
$odd = ($odd + 1) % 2;
|
||||
$odd = !$odd;
|
||||
$extraClass = $odd ? 'odd' : 'even';
|
||||
$extraClass .= ' val' . preg_replace('/[^a-zA-Z0-9\-\_]/', '_', $itemValue);
|
||||
|
||||
|
@ -63,7 +63,7 @@ class GridFieldAddExistingAutocompleter
|
||||
* 'Team.Name'
|
||||
* )
|
||||
*
|
||||
* @var Array
|
||||
* @var array
|
||||
*/
|
||||
protected $searchFields = array();
|
||||
|
||||
@ -73,7 +73,7 @@ class GridFieldAddExistingAutocompleter
|
||||
protected $resultsFormat = '$Title';
|
||||
|
||||
/**
|
||||
* @var String Text shown on the search field, instructing what to search for.
|
||||
* @var string Text shown on the search field, instructing what to search for.
|
||||
*/
|
||||
protected $placeholderText;
|
||||
|
||||
@ -94,7 +94,7 @@ class GridFieldAddExistingAutocompleter
|
||||
/**
|
||||
*
|
||||
* @param GridField $gridField
|
||||
* @return string - HTML
|
||||
* @return string[] - HTML
|
||||
*/
|
||||
public function getHTMLFragments($gridField) {
|
||||
$dataClass = $gridField->getList()->dataClass();
|
||||
@ -224,22 +224,24 @@ class GridFieldAddExistingAutocompleter
|
||||
->limit($this->getResultsLimit());
|
||||
|
||||
$json = array();
|
||||
$originalSourceFileComments = Config::inst()->get('SSViewer', 'source_file_comments');
|
||||
Config::nest();
|
||||
Config::inst()->update('SSViewer', 'source_file_comments', false);
|
||||
$viewer = SSViewer::fromString($this->resultsFormat);
|
||||
foreach($results as $result) {
|
||||
$title = html_entity_decode(SSViewer::fromString($this->resultsFormat)->process($result));
|
||||
$title = html_entity_decode($viewer->process($result));
|
||||
$json[] = array(
|
||||
'label' => $title,
|
||||
'value' => $title,
|
||||
'id' => $result->ID,
|
||||
);
|
||||
}
|
||||
Config::inst()->update('SSViewer', 'source_file_comments', $originalSourceFileComments);
|
||||
Config::unnest();
|
||||
return Convert::array2json($json);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $format
|
||||
*
|
||||
* @return $this
|
||||
*/
|
||||
public function setResultsFormat($format) {
|
||||
@ -248,7 +250,7 @@ class GridFieldAddExistingAutocompleter
|
||||
}
|
||||
|
||||
/**
|
||||
* @return String
|
||||
* @return string
|
||||
*/
|
||||
public function getResultsFormat() {
|
||||
return $this->resultsFormat;
|
||||
@ -262,10 +264,11 @@ class GridFieldAddExistingAutocompleter
|
||||
*/
|
||||
public function setSearchList(SS_List $list) {
|
||||
$this->searchList = $list;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Array
|
||||
* @param array $fields
|
||||
*/
|
||||
public function setSearchFields($fields) {
|
||||
$this->searchFields = $fields;
|
||||
@ -273,7 +276,7 @@ class GridFieldAddExistingAutocompleter
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Array
|
||||
* @return array
|
||||
*/
|
||||
public function getSearchFields() {
|
||||
return $this->searchFields;
|
||||
@ -284,8 +287,8 @@ class GridFieldAddExistingAutocompleter
|
||||
* Falls back to {@link DataObject->summaryFields()} if
|
||||
* no custom search fields are defined.
|
||||
*
|
||||
* @param String the class name
|
||||
* @return Array|null names of the searchable fields
|
||||
* @param string $dataClass the class name
|
||||
* @return array|null names of the searchable fields
|
||||
*/
|
||||
public function scaffoldSearchFields($dataClass) {
|
||||
$obj = singleton($dataClass);
|
||||
@ -321,8 +324,9 @@ class GridFieldAddExistingAutocompleter
|
||||
}
|
||||
|
||||
/**
|
||||
* @param String The class of the object being searched for
|
||||
* @return String
|
||||
* @param string $dataClass The class of the object being searched for
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getPlaceholderText($dataClass) {
|
||||
$searchFields = ($this->getSearchFields())
|
||||
@ -354,10 +358,13 @@ class GridFieldAddExistingAutocompleter
|
||||
}
|
||||
|
||||
/**
|
||||
* @param String
|
||||
* @param string $text
|
||||
*
|
||||
* @return $this
|
||||
*/
|
||||
public function setPlaceholderText($text) {
|
||||
$this->placeholderText = $text;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -371,8 +378,11 @@ class GridFieldAddExistingAutocompleter
|
||||
|
||||
/**
|
||||
* @param int $limit
|
||||
*
|
||||
* @return $this
|
||||
*/
|
||||
public function setResultsLimit($limit) {
|
||||
$this->resultsLimit = $limit;
|
||||
return $this;
|
||||
}
|
||||
}
|
||||
|
@ -411,7 +411,6 @@ class GridFieldDetailForm_ItemRequest extends RequestHandler {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Caution: API violation. Form expects a Controller, but we are giving it a RequestHandler instead.
|
||||
// Thanks to this however, we are able to nest GridFields, and also access the initial Controller by
|
||||
// dereferencing GridFieldDetailForm_ItemRequest->getController() multiple times. See getToplevelController
|
||||
@ -702,6 +701,7 @@ class GridFieldDetailForm_ItemRequest extends RequestHandler {
|
||||
|
||||
public function doDelete($data, $form) {
|
||||
$title = $this->record->Title;
|
||||
$backLink = $this->getBacklink();
|
||||
try {
|
||||
if (!$this->record->canDelete()) {
|
||||
throw new ValidationException(
|
||||
@ -732,7 +732,7 @@ class GridFieldDetailForm_ItemRequest extends RequestHandler {
|
||||
$controller = $this->getToplevelController();
|
||||
$controller->getRequest()->addHeader('X-Pjax', 'Content'); // Force a content refresh
|
||||
|
||||
return $controller->redirect($this->getBacklink(), 302); //redirect back to admin section
|
||||
return $controller->redirect($backLink, 302); //redirect back to admin section
|
||||
}
|
||||
|
||||
/**
|
||||
|
49
javascript/lang/hr.js
Normal file
49
javascript/lang/hr.js
Normal file
@ -0,0 +1,49 @@
|
||||
// This file was generated by silverstripe/cow from javascript/lang/src/hr.js.
|
||||
// See https://github.com/tractorcow/cow for details
|
||||
if (typeof(ss) === 'undefined' || typeof(ss.i18n) === 'undefined') {
|
||||
if (typeof(console) !== 'undefined') { // eslint-disable-line no-console
|
||||
console.error('Class ss.i18n not defined'); // eslint-disable-line no-console
|
||||
}
|
||||
} else {
|
||||
ss.i18n.addDictionary('hr', {
|
||||
"FILEIFRAMEFIELD.CONFIRMDELETE": "Jeste li sigurni da želite obrisati ovu datoteku?",
|
||||
"FILEIFRAMEFIELD.DELETEFILE": "Obriši datoteku",
|
||||
"FILEIFRAMEFIELD.DELETEIMAGE": "Obriši sliku",
|
||||
"FILEIFRAMEFIELD.UNATTACHFILE": "Un-Attach File",
|
||||
"GRIDFIELD.ERRORINTRANSACTION": "An error occured while fetching data from the server\n Please try again later.",
|
||||
"HASMANYFILEFIELD.UPLOADING": "Prebacujem... %s",
|
||||
"HtmlEditorField.SelectAnchor": "Odaberite sidro",
|
||||
"LOADING": "učitavam...",
|
||||
"LeftAndMain.IncompatBrowserWarning": "Vaš browser nije kompatibilan s CMS sučeljem. Molimo koristite Internet Explorer 7+, Google Chrome 10+ ili Mozilla Firefox 3.5+.",
|
||||
"RESTRICTEDTEXTFIELD.CHARCANTBEUSED": "The character '%s' cannot be used in this field",
|
||||
"TABLEFIELD.DELETECONFIRMMESSAGE": "Are you sure you want to delete this record?",
|
||||
"TreeDropdownField.ENTERTOSEARCH": "Press enter to search",
|
||||
"TreeDropdownField.FieldTitle": "Odaberi",
|
||||
"TreeDropdownField.OpenLink": "Otvori",
|
||||
"TreeDropdownField.SearchFieldTitle": "Odaberi ili traži",
|
||||
"UNIQUEFIELD.CANNOTLEAVEEMPTY": "Ovo polje ne može biti prazno",
|
||||
"UNIQUEFIELD.ENTERNEWVALUE": "Morate unesti novu vrijednost za ovo polje",
|
||||
"UNIQUEFIELD.SUGGESTED": "Promjenjene vrijednosti u '%s' : %s",
|
||||
"UPDATEURL.CONFIRM": "Would you like me to change the URL to:\n\n%s/\n\nClick Ok to change the URL, click Cancel to leave it as:\n\n%s",
|
||||
"UPDATEURL.CONFIRMURLCHANGED": "The URL has been changed to\n'%s'",
|
||||
"UploadField.ConfirmDelete": "Are you sure you want to remove this file from the server filesystem?",
|
||||
"UploadField.EMPTYRESULT": "Empty file upload result",
|
||||
"UploadField.Editing": "Uređujem...",
|
||||
"UploadField.HTML_MAXFILESIZE": "File exceeds MAX_FILE_SIZE (HTML form directive)",
|
||||
"UploadField.INVALIDEXTENSION": "Extension is not allowed",
|
||||
"UploadField.LOADING": "Učitavam ...",
|
||||
"UploadField.MAXNUMBEROFFILESSIMPLE": "Maksimalan broj datoteka premašen",
|
||||
"UploadField.NOFILEUPLOADED": "Datoteka nije uploadana",
|
||||
"UploadField.NOTMPFOLDER": "Nedostaje privremeni direktorij",
|
||||
"UploadField.ONLYPARTIALUPLOADED": "Datoteka je djelimično uploadana",
|
||||
"UploadField.OVERWRITEWARNING": "File with the same name already exists",
|
||||
"UploadField.PHP_MAXFILESIZE": "File exceeds upload_max_filesize (php.ini directive)",
|
||||
"UploadField.STOPEDBYEXTENSION": "File upload stopped by extension",
|
||||
"UploadField.TOOLARGE": "Veličina datoteke je prevelika",
|
||||
"UploadField.TOOSMALL": "Veličina datoteke je premala",
|
||||
"UploadField.UPLOADEDBYTES": "Uploaded bytes exceed file size",
|
||||
"UploadField.Uploaded": "Prenešeno",
|
||||
"UploadField.WRITEFAILED": "Failed to write file to disk",
|
||||
"VALIDATOR.FIELDREQUIRED": "Please fill out \"%s\", it is required."
|
||||
});
|
||||
}
|
41
javascript/lang/src/hr.js
Normal file
41
javascript/lang/src/hr.js
Normal file
@ -0,0 +1,41 @@
|
||||
{
|
||||
"FILEIFRAMEFIELD.CONFIRMDELETE": "Jeste li sigurni da želite obrisati ovu datoteku?",
|
||||
"FILEIFRAMEFIELD.DELETEFILE": "Obriši datoteku",
|
||||
"FILEIFRAMEFIELD.DELETEIMAGE": "Obriši sliku",
|
||||
"FILEIFRAMEFIELD.UNATTACHFILE": "Un-Attach File",
|
||||
"GRIDFIELD.ERRORINTRANSACTION": "An error occured while fetching data from the server\n Please try again later.",
|
||||
"HASMANYFILEFIELD.UPLOADING": "Prebacujem... %s",
|
||||
"HtmlEditorField.SelectAnchor": "Odaberite sidro",
|
||||
"LOADING": "učitavam...",
|
||||
"LeftAndMain.IncompatBrowserWarning": "Vaš browser nije kompatibilan s CMS sučeljem. Molimo koristite Internet Explorer 7+, Google Chrome 10+ ili Mozilla Firefox 3.5+.",
|
||||
"RESTRICTEDTEXTFIELD.CHARCANTBEUSED": "The character '%s' cannot be used in this field",
|
||||
"TABLEFIELD.DELETECONFIRMMESSAGE": "Are you sure you want to delete this record?",
|
||||
"TreeDropdownField.ENTERTOSEARCH": "Press enter to search",
|
||||
"TreeDropdownField.FieldTitle": "Odaberi",
|
||||
"TreeDropdownField.OpenLink": "Otvori",
|
||||
"TreeDropdownField.SearchFieldTitle": "Odaberi ili traži",
|
||||
"UNIQUEFIELD.CANNOTLEAVEEMPTY": "Ovo polje ne može biti prazno",
|
||||
"UNIQUEFIELD.ENTERNEWVALUE": "Morate unesti novu vrijednost za ovo polje",
|
||||
"UNIQUEFIELD.SUGGESTED": "Promjenjene vrijednosti u '%s' : %s",
|
||||
"UPDATEURL.CONFIRM": "Would you like me to change the URL to:\n\n%s/\n\nClick Ok to change the URL, click Cancel to leave it as:\n\n%s",
|
||||
"UPDATEURL.CONFIRMURLCHANGED": "The URL has been changed to\n'%s'",
|
||||
"UploadField.ConfirmDelete": "Are you sure you want to remove this file from the server filesystem?",
|
||||
"UploadField.EMPTYRESULT": "Empty file upload result",
|
||||
"UploadField.Editing": "Uređujem...",
|
||||
"UploadField.HTML_MAXFILESIZE": "File exceeds MAX_FILE_SIZE (HTML form directive)",
|
||||
"UploadField.INVALIDEXTENSION": "Extension is not allowed",
|
||||
"UploadField.LOADING": "Učitavam ...",
|
||||
"UploadField.MAXNUMBEROFFILESSIMPLE": "Maksimalan broj datoteka premašen",
|
||||
"UploadField.NOFILEUPLOADED": "Datoteka nije uploadana",
|
||||
"UploadField.NOTMPFOLDER": "Nedostaje privremeni direktorij",
|
||||
"UploadField.ONLYPARTIALUPLOADED": "Datoteka je djelimično uploadana",
|
||||
"UploadField.OVERWRITEWARNING": "File with the same name already exists",
|
||||
"UploadField.PHP_MAXFILESIZE": "File exceeds upload_max_filesize (php.ini directive)",
|
||||
"UploadField.STOPEDBYEXTENSION": "File upload stopped by extension",
|
||||
"UploadField.TOOLARGE": "Veličina datoteke je prevelika",
|
||||
"UploadField.TOOSMALL": "Veličina datoteke je premala",
|
||||
"UploadField.UPLOADEDBYTES": "Uploaded bytes exceed file size",
|
||||
"UploadField.Uploaded": "Prenešeno",
|
||||
"UploadField.WRITEFAILED": "Failed to write file to disk",
|
||||
"VALIDATOR.FIELDREQUIRED": "Please fill out \"%s\", it is required."
|
||||
}
|
@ -298,8 +298,8 @@ cs:
|
||||
FROMWEB: 'Z webu'
|
||||
FindInFolder: 'Hledat ve složce'
|
||||
IMAGEALT: 'Alternativní text (alt)'
|
||||
IMAGEALTTEXT: 'Alternativní text (alt) - bude ukázán, když obrázek nemúže být zobrazen'
|
||||
IMAGEALTTEXTDESC: 'Zobrazeno na obrazovce, když obrázek nemůže být zobrazen'
|
||||
IMAGEALTTEXT: 'Alternativní text (alt) - ukáže se, když obrázek nemúže být zobrazen'
|
||||
IMAGEALTTEXTDESC: 'Zobrazeno na obrazovce, anebo když obrázek nemůže být zobrazen'
|
||||
IMAGEDIMENSIONS: Rozměry
|
||||
IMAGEHEIGHTPX: Výška
|
||||
IMAGETITLE: 'Titul text (tooltip) - další informace o obrázku'
|
||||
@ -333,7 +333,7 @@ cs:
|
||||
LeftAndMain:
|
||||
CANT_REORGANISE: 'Nemáte oprávnění měnit stránky nejvyšší úrovně. Vaše změna nebyla uložena.'
|
||||
DELETED: Smazáno.
|
||||
DropdownBatchActionsDefault: 'Vyberte akci...'
|
||||
DropdownBatchActionsDefault: Akce
|
||||
HELP: Nápověda
|
||||
PAGETYPE: 'Typ stránky'
|
||||
PERMAGAIN: 'Byli jste odhlášeni z CMS. Pokud se chcete znovu přihlásit, zadejte níže své uživatelské jméno a heslo.'
|
||||
@ -391,6 +391,7 @@ cs:
|
||||
SUBJECTPASSWORDRESET: 'Nulovací odkaz pro Vaše heslo'
|
||||
SURNAME: Příjmení
|
||||
TIMEFORMAT: 'Formát času'
|
||||
VALIDATIONMEMBEREXISTS: 'Již existuje člen se stejnou %s'
|
||||
ValidationIdentifierFailed: 'Nemůžete přepsat existujícího člena #{id} s identickým identifikátorem ({name} = {value}))'
|
||||
WELCOMEBACK: 'Vítejte zpět, {firstname}'
|
||||
YOUROLDPASSWORD: 'Vaše staré heslo'
|
||||
|
@ -1,6 +1,12 @@
|
||||
fa_IR:
|
||||
AddToCampaign:
|
||||
ErrorCampaignPermissionDenied: 'به نظر میرسد شما دسترسیهای لازم برای افزودن {ObjectTitle} به {CampaignTitle} را ندارید'
|
||||
ErrorGeneral: 'پوزش میطلبیم، اما خطایی رخ داد'
|
||||
ErrorItemPermissionDenied: 'به نظر میرسد شما دسترسیهای لازم برای افزودن {ObjectTitle} به کمپین را ندارید'
|
||||
ErrorNotFound: 'این {Type} یافت نشد'
|
||||
Success: '{ObjectTitle} با موفقیت به {CampaignTitle} افزوده شد'
|
||||
AssetAdmin:
|
||||
ALLOWEDEXTS: 'قالبهای مجاز آپلود فایل'
|
||||
ALLOWEDEXTS: 'قالبهای مجاز جهت آپلود فایل'
|
||||
HIDEALLOWEDEXTS: 'مخفیکردن قالبهای مجاز'
|
||||
NEWFOLDER: پوشهی جدید
|
||||
SHOWALLOWEDEXTS: 'نمایش قالبهای مجاز'
|
||||
@ -30,11 +36,12 @@ fa_IR:
|
||||
INSERTURL: 'واردکردن از نشانی اینترنتی'
|
||||
REMOVEINFO: 'حذف این فایل از این فیلد'
|
||||
TOTAL: مجموع
|
||||
TOUPLOAD: 'انتخاب فایلها جهت آپلود...'
|
||||
UPLOADINPROGRESS: 'لطفاً صبر کنید... آپلود در جریان است'
|
||||
UPLOADOR: یا
|
||||
BBCodeParser:
|
||||
ALIGNEMENT: جاگذاری
|
||||
ALIGNEMENTEXAMPLE: 'راستچین'
|
||||
ALIGNEMENTEXAMPLE: 'راستچین شده'
|
||||
BOLD: 'متن درشت'
|
||||
BOLDEXAMPLE: درشت
|
||||
CODE: 'بلوک کد'
|
||||
@ -47,7 +54,7 @@ fa_IR:
|
||||
IMAGE: عکس
|
||||
IMAGEDESCRIPTION: 'نمایش یک تصویر در ارسال شما'
|
||||
ITALIC: 'نوشته ایتالیک'
|
||||
ITALICEXAMPLE: ایتالیک
|
||||
ITALICEXAMPLE: ایتالیکها
|
||||
LINK: 'لینک وبسایت'
|
||||
LINKDESCRIPTION: 'لینک به یک وبسایت یا نشانی اینترنتی دیگر'
|
||||
STRUCK: 'متن باطلشده'
|
||||
@ -67,6 +74,8 @@ fa_IR:
|
||||
ANY: هر
|
||||
NOANSWER: 'خیر'
|
||||
YESANSWER: 'بله'
|
||||
CAMPAIGNS:
|
||||
ADDTOCAMPAIGN: 'افزودن به کمپین'
|
||||
CMSLoadingScreen_ss:
|
||||
LOADING: بارگذاری...
|
||||
REQUIREJS: 'سیاماس نیازمند این است که جاوااسکریپت را فعال نمایید.'
|
||||
@ -93,12 +102,29 @@ fa_IR:
|
||||
SUCCESSCONTENT: '<p>ورود موفق. اگر بهطور خودکار ارجاع نشدید <a target="_top" href="{link}">اینجا را کلیک کنید.</a></p>'
|
||||
TimedOutTitleAnonymous: 'جلسه شما به پایان رسیده است.'
|
||||
TimedOutTitleMember: 'سلام {name}!<br />زمان جلسه شما به پایان رسیده است.'
|
||||
CampaignAdmin:
|
||||
MENUTITLE: کمپینها
|
||||
Campaigns:
|
||||
AddToCampaign: 'افزودن به کمپین'
|
||||
ChangePasswordEmail_ss:
|
||||
CHANGEPASSWORDTEXT1: 'شما رمز عبورتان را تغییر دادید برای'
|
||||
CHANGEPASSWORDTEXT2: 'اکنون میتوانید با این اطلاعات وارد شوید:'
|
||||
CHANGEPASSWORDTEXT3: 'تغییر رمز عبور'
|
||||
EMAIL: ايميل
|
||||
HELLO: درود
|
||||
PASSWORD: رمز عبور
|
||||
ChangeSet:
|
||||
DESCRIPTION_AND: '{first} و {second}'
|
||||
DESCRIPTION_ITEM: آیتم
|
||||
DESCRIPTION_ITEMS: آیتمها
|
||||
DESCRIPTION_LIST_FIRST: '{item}'
|
||||
DESCRIPTION_LIST_LAST: '{list}، و {item}'
|
||||
DESCRIPTION_LIST_MID: '{list}، {item}'
|
||||
DESCRIPTION_OTHER_ITEM: 'آیتم دیگر'
|
||||
DESCRIPTION_OTHER_ITEMS: 'آیتمهای دیگر'
|
||||
NAME: نام
|
||||
PLURALNAME: کمپینها
|
||||
SINGULARNAME: کمپین
|
||||
CheckboxField:
|
||||
NOANSWER: 'خیر'
|
||||
YESANSWER: 'بله'
|
||||
@ -109,6 +135,8 @@ fa_IR:
|
||||
ConfirmedPasswordField:
|
||||
ATLEAST: 'رمزهای عبور باید حداقل {min} کاراکتر باشد.'
|
||||
BETWEEN: 'رمزهای عبور باید بین {min} تا {max} کاراکتر باشد.'
|
||||
CURRENT_PASSWORD_MISSING: 'شما باید رمز عبور کنونی خود را وارد نمایید.'
|
||||
LOGGED_IN_ERROR: 'جهت تغییر رمز عبور خود باید وارد شده باشید.'
|
||||
MAXIMUM: 'رمزهای عبور باید حداکثر {max} کاراکتر باشد.'
|
||||
SHOWONCLICKTITLE: 'تغییر رمز عبور'
|
||||
ContentController:
|
||||
@ -152,6 +180,7 @@ fa_IR:
|
||||
INVALID_REQUEST: 'درخواست نامعتبر'
|
||||
DropdownField:
|
||||
CHOOSE: (گزینش)
|
||||
CHOOSESEARCH: '(گزینش یا جستجو)'
|
||||
SOURCE_VALIDATION: 'لطفاً یک ارزش از لیست فراهمشده برگزینید. {value} یک گزینه معتبر نیست'
|
||||
EmailField:
|
||||
VALIDATION: 'لطفاً یک نشانی ایمیل وارد نمایید'
|
||||
@ -269,6 +298,36 @@ fa_IR:
|
||||
ResultCreated: '{count} گروه ایجاد شده'
|
||||
ResultDeleted: 'گروههای %d حذف شد'
|
||||
ResultUpdated: 'گروههای %d بهروز شد'
|
||||
HTMLEditorField:
|
||||
ANCHORSCANNOTACCESSPAGE: 'شما مجاز به دسترسی به محتوای صفحه هدف نیستید.'
|
||||
ANCHORSPAGENOTFOUND: 'صفحهی هدف پیدا نشد.'
|
||||
BUTTONADDURL: 'افزودن نشانی اینترنتی'
|
||||
CSSCLASS: 'چیدمان / سبک'
|
||||
DETAILS: جزئیات
|
||||
EMAIL: 'نشانی ایمیل'
|
||||
FILE: فايل
|
||||
FOLDER: پوشه
|
||||
IMAGEDIMENSIONS: ابعاد
|
||||
IMAGEHEIGHTPX: ارتفاع
|
||||
IMAGETITLETEXT: 'متن عنوان (تولتیپ)'
|
||||
IMAGETITLETEXTDESC: 'جهت اطلاعات بیشتر درباره تصویر'
|
||||
IMAGEWIDTHPX: پهنا
|
||||
INSERTMEDIA: 'واردکردن رسانه از'
|
||||
LINK: 'واردکردن لینک'
|
||||
LINKDESCR: 'توضیحات لینک'
|
||||
LINKEMAIL: 'نشانی ایمیل'
|
||||
LINKEXTERNAL: 'وبسایت دیگر'
|
||||
LINKFILE: 'یک فایل دانلود کنید'
|
||||
LINKINTERNAL: 'صفحه روی وبسایت'
|
||||
LINKOPENNEWWIN: 'لینک در پنجره جدید باز شود؟'
|
||||
LINKTO: 'لینک به'
|
||||
PAGE: صفحه
|
||||
SUBJECT: 'موضوع ایمیل'
|
||||
URL: نشانی اینترنتی
|
||||
URLDESCRIPTION: 'ویدیوها و تصاویر موجود در وب را به آسانی و با وارد نمودن نشانی اینترنتی آن فایل در صفحه درج نمایید. اطمینان حاصل نمایید که شما دارای حقوق یا اجازههای مرتبط با اشتراکگذاری آن رسانه از وب هستید.<br /><br />لطفاً در نظر داشته باشید که فایلها در سیاماس ذخیره نمیشوند و آنها از محل اصلی خود فراخوانی میشوند، اگر به دلایلی آن فایل در محل اصلی خود موجود نباشد در این صفحه هم قابل دیدن نخواهد بود.'
|
||||
UpdateMEDIA: 'بهروزرسانی رسانه'
|
||||
HTMLEditorField_Toolbar:
|
||||
ERROR_NOTFOUND: 'ناتوان از یافتن فایل جهت دیدن'
|
||||
HtmlEditorField:
|
||||
ADDURL: 'افزودن URL'
|
||||
ADJUSTDETAILSDIMENSIONS: 'جزئیات و ابعاد'
|
||||
@ -314,6 +373,7 @@ fa_IR:
|
||||
Image_iframe_ss:
|
||||
TITLE: 'آیفریم آپلود عکس'
|
||||
LeftAndMain:
|
||||
CANCEL: لغو
|
||||
DELETED: حذف شده
|
||||
HELP: کمک
|
||||
PERMAGAIN: 'شما از سیستم مدیریت محتوا خارج شده اید.اگر میخواهید دوباره وارد شوید نام کاربری و رمز عبور خود را در قسمت زیر وارد کنید'
|
||||
@ -343,20 +403,25 @@ fa_IR:
|
||||
CANTEDIT: 'شما دسترسی انجام این کار را ندارید.'
|
||||
CONFIRMNEWPASSWORD: 'تکرار رمز عبور جدید'
|
||||
CONFIRMPASSWORD: 'تکرار رمز عبور'
|
||||
CURRENT_PASSWORD: 'رمز ورود کنونی'
|
||||
DATEFORMAT: 'قالب تاریخ'
|
||||
DefaultAdminFirstname: 'مدیر پیشفرض'
|
||||
DefaultDateTime: پیشفرض
|
||||
EDIT_PASSWORD: 'رمز ورود جدید'
|
||||
EMAIL: پست الکترونیک
|
||||
EMPTYNEWPASSWORD: 'رمز عبور جدید نمیتواند خالی باشد، لطفا دوباره تلاش کنید'
|
||||
ENTEREMAIL: 'لطفاً یک نشانی ایمیل وارد نمایید تا پیوند ازنوسازی رمز عبور را دریافت کنید.'
|
||||
ERRORPASSWORDNOTMATCH: 'رمز عبور کنونی همانند نیست، لطفاً مجدداً تلاش نمایید'
|
||||
FIRSTNAME: 'نام'
|
||||
INTERFACELANG: 'زبان برنامه'
|
||||
KEEPMESIGNEDIN: 'مرا واردشده نگهدار'
|
||||
LOGGEDINAS: 'شما به {name} عنوان وارد شدهاید.'
|
||||
NEWPASSWORD: 'گذرواژه تازه'
|
||||
NoPassword: 'رمز عبوری برای این کاربر وجود ندارد'
|
||||
PASSWORD: رمز عبور
|
||||
PASSWORDEXPIRED: 'رمز عبور شما منقضی شدهاست. لطفاً یکی جدید برگزینید.'
|
||||
PLURALNAME: اعضاء
|
||||
REMEMBERME: 'مرا برای بار بعد بهخاطر بسپار؟'
|
||||
SINGULARNAME: عضو
|
||||
SUBJECTPASSWORDCHANGED: 'گذرواژه شما دگرگون شد'
|
||||
SUBJECTPASSWORDRESET: 'پیوند ازنوسازی گذرواژه شما'
|
||||
@ -430,6 +495,8 @@ fa_IR:
|
||||
Pagination:
|
||||
Page: صفحه
|
||||
View: نمایش
|
||||
PasswordValidator:
|
||||
TOOSHORT: 'رمز عبور بسیار کوتاه است، باید %s کاراکتر یا بیشتر باشد'
|
||||
Permission:
|
||||
AdminGroup: مدیر کل
|
||||
CMS_ACCESS_CATEGORY: 'دسترسی CMS'
|
||||
@ -458,6 +525,7 @@ fa_IR:
|
||||
CHANGEPASSWORDHEADER: 'تغییر گذرواژه'
|
||||
ENTERNEWPASSWORD: 'لطفاً گذرواژه جدید را وارد کنید.'
|
||||
ERRORPASSWORDPERMISSION: 'جهت تغییر رمز عبور خود باید وارد شده باشید!'
|
||||
LOGGEDOUT: 'شما خارج شدهاید. اگر مایل هستید دوباره وارد شوید، اطلاعات معتبر خود را در زیر وارد نمایید.'
|
||||
LOGIN: 'ورود'
|
||||
LOSTPASSWORDHEADER: 'فراموشی رمز عبور'
|
||||
PASSWORDSENTHEADER: 'پیوند ازنوسازی رمز عبور به ''{email}'' ارسال شد'
|
||||
@ -527,3 +595,10 @@ fa_IR:
|
||||
UPLOADSINTO: 'ذخیره شدن در /{path}'
|
||||
Versioned:
|
||||
has_many_Versions: نسخه ها
|
||||
VersionedGridFieldItemRequest:
|
||||
ARCHIVE: بایگانی
|
||||
BUTTONARCHIVEDESC: 'عدم انتشار و ارسال به بایگانی'
|
||||
BUTTONPUBLISH: انتشار
|
||||
BUTTONUNPUBLISH: عدم انتشار
|
||||
i18n:
|
||||
PLURAL: '{number} {form}'
|
||||
|
@ -175,7 +175,6 @@ fi:
|
||||
JsType: 'Javascript-tiedosto'
|
||||
Mp3Type: 'MP3-äänitiedosto'
|
||||
MpgType: 'MPEG-videotiedosto'
|
||||
NOFILESIZE: 'Tiedostokoko on nolla tavua.'
|
||||
NOVALIDUPLOAD: 'Tiedosto ei ole kelvollinen ladattavaksi'
|
||||
Name: Nimi
|
||||
PLURALNAME: Tiedostot
|
||||
|
@ -1,5 +1,6 @@
|
||||
fr:
|
||||
AssetAdmin:
|
||||
HIDEALLOWEDEXTS: 'Cacher les extensions autorisées'
|
||||
NEWFOLDER: Nouveau dossier
|
||||
SHOWALLOWEDEXTS: 'Montrer les extensions autorisées'
|
||||
AssetTableField:
|
||||
@ -7,6 +8,7 @@ fr:
|
||||
DIM: Dimensions
|
||||
FILENAME: Nom du fichier
|
||||
FOLDER: Dossier
|
||||
HEIGHT: Hauteur
|
||||
LASTEDIT: 'Dernière modification'
|
||||
OWNER: Propriétaire
|
||||
SIZE: 'Taille'
|
||||
@ -80,6 +82,7 @@ fr:
|
||||
ConfirmedPasswordField:
|
||||
ATLEAST: 'Le mot de passe doit comporter au moins {min} caractères.'
|
||||
BETWEEN: 'Le mot de passe doit comporter entre {min} et {max} caractères.'
|
||||
CURRENT_PASSWORD_MISSING: 'Vous devez saisir votre mot de passe actuel.'
|
||||
MAXIMUM: 'Le mot de passe ne doit comporter plus de {max} caractères.'
|
||||
SHOWONCLICKTITLE: 'Changer le mot de passe'
|
||||
ContentController:
|
||||
@ -292,6 +295,7 @@ fr:
|
||||
DELETED: Supprimé.
|
||||
HELP: Aide
|
||||
PERMAGAIN: 'Vous avez été déconnecté du CMS. Si vous voulez vous reconnecter, entrez un nom d''utilisateur et un mot de passe ci-dessous.'
|
||||
PERMDEFAULT: 'Vous devez être connecté afin d''accéder à l''interface d''administration. Saisissez vos identifiants ci-dessous.'
|
||||
PreviewButton: Aperçu
|
||||
REORGANISATIONSUCCESSFUL: 'L’arbre du site a été bien réorganisé.'
|
||||
SAVEDUP: Enregistré.
|
||||
|
232
lang/hr.yml
232
lang/hr.yml
@ -5,40 +5,98 @@ hr:
|
||||
AssetTableField:
|
||||
CREATED: 'Uploadano'
|
||||
DIM: Dimenzije
|
||||
FILENAME: Ime datoteke
|
||||
FOLDER: Mapa
|
||||
FILENAME: Naziv datoteke
|
||||
FOLDER: Direktorij
|
||||
HEIGHT: Visina
|
||||
LASTEDIT: 'Zadnja promjena'
|
||||
OWNER: Vlasnik
|
||||
SIZE: 'Veličina'
|
||||
SIZE: 'Veličina datoteke'
|
||||
TITLE: Naslov
|
||||
TYPE: 'Tip'
|
||||
URL: URL
|
||||
TYPE: 'Tip datoteke'
|
||||
URL: Link
|
||||
WIDTH: Širina
|
||||
AssetUploadField:
|
||||
ChooseFiles: 'Odaberite datoteke'
|
||||
DRAGFILESHERE: 'Povucite datoteke ovdje'
|
||||
DROPAREA: 'Područje ubacivanja'
|
||||
EDITALL: 'Uredi sve'
|
||||
EDITANDORGANIZE: 'Uredi i organiziraj'
|
||||
EDITINFO: 'Uredi datoteke'
|
||||
FILES: Datoteke
|
||||
FROMCOMPUTER: 'Odaberite datoteke sa svog računala'
|
||||
FROMCOMPUTERINFO: 'Uploadajte sa svog računala'
|
||||
INSERTURL: 'Ubaci sa linka'
|
||||
REMOVEINFO: 'Izbrišite ovu datoteku s ovog polja'
|
||||
TOTAL: Ukupno
|
||||
TOUPLOAD: 'Odaberite datoteke za upload...'
|
||||
UPLOADINPROGRESS: 'Molim pričekajte... upload u tijeku'
|
||||
UPLOADOR: ILI
|
||||
BBCodeParser:
|
||||
ALIGNEMENT: Poravnanje
|
||||
BOLD: 'Bold Text'
|
||||
BOLDEXAMPLE: Bold
|
||||
BackLink_Button_ss:
|
||||
Back: Nazad
|
||||
BasicAuth:
|
||||
ENTERINFO: 'Unesite korisničko ime i lozinu'
|
||||
ERRORNOTADMIN: 'Korisnik nije administrator'
|
||||
ERRORNOTREC: 'Korisničko ime / lozinka nije prepoznata'
|
||||
Boolean:
|
||||
ANY: Bilo koji
|
||||
NOANSWER: 'Ne'
|
||||
YESANSWER: 'Da'
|
||||
CAMPAIGNS:
|
||||
ADDTOCAMPAIGN: 'Dodaj kampanji'
|
||||
CMSLoadingScreen_ss:
|
||||
LOADING: učitavam...
|
||||
CMSMain:
|
||||
SAVE: Snimi
|
||||
CMSMemberLoginForm:
|
||||
BUTTONFORGOTPASSWORD: 'Zaboravljena lozinka?'
|
||||
CMSPagesController_Tools_ss:
|
||||
FILTER: Filter
|
||||
CMSProfileController:
|
||||
MENUTITLE: 'Moj profil'
|
||||
CMSSecurity:
|
||||
SUCCESS: Uspjeh
|
||||
TimedOutTitleAnonymous: 'Vaša sesija je istekla.'
|
||||
TimedOutTitleMember: 'Bok {name}!<br />Vaša sesija je istekla.'
|
||||
CampaignAdmin:
|
||||
MENUTITLE: Kampanje
|
||||
Campaigns:
|
||||
AddToCampaign: 'Dodaj kampanji'
|
||||
ChangePasswordEmail_ss:
|
||||
CHANGEPASSWORDTEXT1: 'Promjenili ste lozinku za '
|
||||
CHANGEPASSWORDTEXT2: 'Za prijavu koristite slijedeće podatke'
|
||||
CHANGEPASSWORDTEXT3: 'Promjeni lozinku'
|
||||
EMAIL: Email
|
||||
HELLO: Pozdrav
|
||||
PASSWORD: Lozinka
|
||||
ChangeSet:
|
||||
DESCRIPTION_AND: '{first} i {second}'
|
||||
DESCRIPTION_ITEM: stavka
|
||||
DESCRIPTION_ITEMS: stavke
|
||||
DESCRIPTION_LIST_FIRST: '{item}'
|
||||
DESCRIPTION_LIST_LAST: '{list}, i {item}'
|
||||
DESCRIPTION_LIST_MID: '{list}, {item}'
|
||||
DESCRIPTION_OTHER_ITEM: 'ostala stavka'
|
||||
DESCRIPTION_OTHER_ITEMS: 'ostale stavke'
|
||||
NAME: Naziv
|
||||
PLURALNAME: Kampanje
|
||||
SINGULARNAME: Kampanja
|
||||
STATE: Stanje
|
||||
CheckboxField:
|
||||
NOANSWER: 'Ne'
|
||||
YESANSWER: 'Da'
|
||||
ConfirmedPasswordField:
|
||||
SHOWONCLICKTITLE: 'Promjenite lozinku'
|
||||
CreditCardField:
|
||||
FIRST: prvi
|
||||
FOURTH: četvrti
|
||||
SECOND: drugi
|
||||
THIRD: treći
|
||||
CurrencyField:
|
||||
CURRENCYSYMBOL: $
|
||||
DataObject:
|
||||
PLURALNAME: 'Podatkovni objekti'
|
||||
SINGULARNAME: 'Podatkovni objekt'
|
||||
@ -70,9 +128,37 @@ hr:
|
||||
CHOOSE: (Odaberite)
|
||||
EmailField:
|
||||
VALIDATION: 'Molimo unesite email adresu'
|
||||
Enum:
|
||||
ANY: bilo koji
|
||||
File:
|
||||
AviType: 'AVI video datoteka'
|
||||
Content: Sadržaj
|
||||
CssType: 'CSS datoteka'
|
||||
DocType: 'Word dokument'
|
||||
Filename: Naziv datoteke
|
||||
GifType: 'GIF slika - dobra za dijagrame'
|
||||
GzType: 'GZIP komprimirana datoteka'
|
||||
HtlType: 'HTML datoteka'
|
||||
HtmlType: 'HTML datoteka'
|
||||
INVALIDEXTENSION: 'Ekstenzija nije dozvoljena (valjane: {extensions}) '
|
||||
INVALIDEXTENSIONSHORT: 'Ekstenzija nije dozvoljena'
|
||||
IcoType: 'Slika ikone'
|
||||
JpgType: 'JPEG slika - dobra za fotografije'
|
||||
JsType: 'Javascript datoteka'
|
||||
Mp3Type: 'MP3 zvuk datoteka'
|
||||
MpgType: 'MPEG video datoteka'
|
||||
NOVALIDUPLOAD: 'Datoteka nije valjan upload'
|
||||
Name: Naziv
|
||||
PLURALNAME: Datoteke
|
||||
PngType: 'PNG slika - dobar generalan format'
|
||||
SINGULARNAME: Datoteka
|
||||
Title: Naslov
|
||||
WavType: 'WAV zvuk datoteka'
|
||||
XlsType: 'Excel tablica'
|
||||
ZipType: 'ZIP komprimirana datoteka'
|
||||
Folder:
|
||||
PLURALNAME: Direktoriji
|
||||
SINGULARNAME: Direktorij
|
||||
ForgotPasswordEmail_ss:
|
||||
HELLO: Pozdrav
|
||||
TEXT1: 'Ovdje je Vaš'
|
||||
@ -83,22 +169,72 @@ hr:
|
||||
VALIDATIONNOTUNIQUE: 'Unešena vrijednost nije unikatna'
|
||||
VALIDATIONPASSWORDSDONTMATCH: 'Lozinke se ne slažu'
|
||||
VALIDATIONPASSWORDSNOTEMPTY: 'Lozinke moraju imati najmanje jedan broj i jedan alfanumerički znak'
|
||||
FormField:
|
||||
NONE: nijedan
|
||||
GridAction:
|
||||
DELETE_DESCRIPTION: Obriši
|
||||
Delete: Obriši
|
||||
GridField:
|
||||
Add: 'Dodaj {name}'
|
||||
Filter: Filter
|
||||
FilterBy: 'Filtriraj po'
|
||||
Find: Pronađi
|
||||
GridFieldDetailForm:
|
||||
CancelBtn: Odustani
|
||||
Create: Kreiraj
|
||||
Delete: Obriši
|
||||
DeletePermissionsFailure: 'Nema dozvole brisanja'
|
||||
Deleted: 'Obrisano %s %s'
|
||||
Save: Spremi
|
||||
Saved: 'Spremljeno {name} {link}'
|
||||
GridFieldEditButton_ss:
|
||||
EDIT: Uredi
|
||||
GridFieldItemEditView:
|
||||
Go_back: 'Idi nazad'
|
||||
Group:
|
||||
Code: 'Krupni kod'
|
||||
DefaultGroupTitleAdministrators: Administratori
|
||||
DefaultGroupTitleContentAuthors: 'Autori sadržaja'
|
||||
Description: Opis
|
||||
Locked: 'Zaključano?'
|
||||
PLURALNAME: Grupe
|
||||
Parent: 'Roditeljska grupa'
|
||||
SINGULARNAME: Grupa
|
||||
has_many_Permissions: Dozvole
|
||||
many_many_Members: Članovi
|
||||
HTMLEditorField:
|
||||
ANCHORVALUE: Sidro
|
||||
FILE: Datoteka
|
||||
FOLDER: Direktorij
|
||||
IMAGEDIMENSIONS: Dimenzije
|
||||
IMAGEHEIGHTPX: Visina
|
||||
IMAGEWIDTHPX: Širina
|
||||
LINK: 'Ubaci vezu'
|
||||
LINKFILE: 'Preuzmi datoteku'
|
||||
LINKINTERNAL: 'Stranica na ovom webu'
|
||||
LINKOPENNEWWIN: 'Otvori link u novom prozoru?'
|
||||
LINKTO: 'Poveži na'
|
||||
PAGE: Stranica
|
||||
URL: Link
|
||||
HtmlEditorField:
|
||||
ANCHORVALUE: Sidro
|
||||
BUTTONADDURL: 'Dodaj link'
|
||||
BUTTONINSERT: Ubaci
|
||||
BUTTONINSERTLINK: 'Ubaci vezu'
|
||||
BUTTONREMOVELINK: 'Obriši vezu'
|
||||
BUTTONUpdate: Ažuriraj
|
||||
CSSCLASS: 'Poravnanje / Stil'
|
||||
CSSCLASSCENTER: 'Centralno'
|
||||
CSSCLASSLEFT: 'Lijevo, sa okruženjem teksta.'
|
||||
CSSCLASSRIGHT: 'Desno, sa okruženjem teksta'
|
||||
DETAILS: Detalji
|
||||
EMAIL: 'Email adresa'
|
||||
FILE: Datoteka
|
||||
FOLDER: Direktorij
|
||||
FROMCOMPUTER: 'Sa računala'
|
||||
FROMWEB: 'Sa weba'
|
||||
FindInFolder: 'Pronađi u direktoriju'
|
||||
IMAGEALT: 'Alternativni tekst (alt)'
|
||||
IMAGEDIMENSIONS: Dimenzije
|
||||
IMAGEHEIGHTPX: Visina
|
||||
IMAGEWIDTHPX: Širina
|
||||
@ -111,18 +247,45 @@ hr:
|
||||
LINKOPENNEWWIN: 'Otvori vezu (link) u novom prozoru?'
|
||||
LINKTO: 'Poveži na'
|
||||
PAGE: Stranica
|
||||
Image:
|
||||
PLURALNAME: Datoteke
|
||||
SINGULARNAME: Datoteka
|
||||
Image_Cached:
|
||||
PLURALNAME: Datoteke
|
||||
SINGULARNAME: Datoteka
|
||||
Image_iframe_ss:
|
||||
TITLE: 'Iframe za upload slike'
|
||||
LeftAndMain:
|
||||
CANCEL: Odustani
|
||||
DELETED: Obrisano.
|
||||
HELP: Pomoć
|
||||
PERMAGAIN: 'Odjavili ste se sa sustava. Želite li se ponovno prijaviti upišite korisničko ime i lozinku.'
|
||||
PreviewButton: Pregled
|
||||
SAVEDUP: Spremljeno
|
||||
ValidationError: 'Greška validacije'
|
||||
VersionUnknown: nepoznato
|
||||
LeftAndMain_Menu_ss:
|
||||
Hello: Pozdrav
|
||||
LOGOUT: 'Odjava'
|
||||
LoginAttempt:
|
||||
Email: 'Email adresa'
|
||||
IP: 'IP adresa'
|
||||
Status: Status
|
||||
Member:
|
||||
ADDGROUP: 'Dodaj grupu'
|
||||
BUTTONCHANGEPASSWORD: 'Promjeni lozinku'
|
||||
BUTTONLOGIN: 'Prijava'
|
||||
BUTTONLOGINOTHER: 'Prijavite se kao netko drugi'
|
||||
BUTTONLOSTPASSWORD: 'Zaboravljena lozinka?'
|
||||
CANTEDIT: 'Nema prava za to'
|
||||
CONFIRMNEWPASSWORD: 'Potvrdite novu lozinku'
|
||||
CONFIRMPASSWORD: 'Potvrdi lozinku'
|
||||
CURRENT_PASSWORD: 'Trenutna lozinka'
|
||||
DATEFORMAT: 'Format datuma'
|
||||
DefaultAdminFirstname: 'Zadani administrator'
|
||||
DefaultDateTime: zadano
|
||||
EDIT_PASSWORD: 'Nova lozinka'
|
||||
EMAIL: Email
|
||||
ERRORNEWPASSWORD: 'Pogrešno ste upisali novu lozinku, pokušajte ponovno.'
|
||||
ERRORPASSWORDNOTMATCH: 'Vaša trenutna lozinka se ne podudara, probajte ponovno'
|
||||
FIRSTNAME: 'Ime'
|
||||
@ -136,10 +299,43 @@ hr:
|
||||
SURNAME: Prezime
|
||||
YOUROLDPASSWORD: 'Stara lozinka'
|
||||
belongs_many_many_Groups: Grupe
|
||||
db_LastVisited: 'Datum zadnje posjete'
|
||||
db_LockedOutUntil: 'Zaključano do'
|
||||
db_Password: Lozinka
|
||||
db_PasswordExpiry: 'Lozinka ističe'
|
||||
MemberAuthenticator:
|
||||
TITLE: 'E-mail & Lozinka'
|
||||
MemberDatetimeOptionsetField:
|
||||
Preview: Pregled
|
||||
ModelAdmin:
|
||||
IMPORT: 'Uvezi iz CSV'
|
||||
IMPORTEDRECORDS: 'Uveženo {count} zapisa.'
|
||||
NOCSVFILE: 'Molimo pretražite CSV datoteku za uvoz'
|
||||
NOIMPORT: 'Ništa za uvoz'
|
||||
RESET: Resetiraj
|
||||
Title: 'Klasa podataka'
|
||||
UPDATEDRECORDS: 'Osvježeno {count} zapisa.'
|
||||
ModelAdmin_Tools_ss:
|
||||
FILTER: Filter
|
||||
IMPORT: Uvoz
|
||||
ModelSidebar_ss:
|
||||
IMPORT_TAB_HEADER: Uvoz
|
||||
SEARCHLISTINGS: Traži
|
||||
MoneyField:
|
||||
FIELDLABELCURRENCY: Valuta
|
||||
Pagination:
|
||||
Page: Stranica
|
||||
View: Pregled
|
||||
Permission:
|
||||
AdminGroup: Administrator
|
||||
CMS_ACCESS_CATEGORY: 'CMS pristup'
|
||||
FULLADMINRIGHTS: 'Puna administrativna prava'
|
||||
PLURALNAME: Dozvole
|
||||
SINGULARNAME: Dozvola
|
||||
PermissionRole:
|
||||
PLURALNAME: Uloge
|
||||
SINGULARNAME: Uloga
|
||||
Title: Naslov
|
||||
PhoneNumberField:
|
||||
VALIDATION: 'Molim unesite ispravan telefonski broj'
|
||||
Security:
|
||||
@ -154,11 +350,37 @@ hr:
|
||||
NOTEPAGESECURED: 'Ova stranica je zaštićena. Prijavite se na sustav sa svojim pristupnim podatcima i odmah ćemo vas preusmjeriti.'
|
||||
NOTERESETPASSWORD: 'Unesite svoju e-mail adresu, a mi ćemo Vam poslati link putem kojega možete resetirati Vašu lozinku.'
|
||||
SecurityAdmin:
|
||||
MEMBERS: Članovi
|
||||
MENUTITLE: Sigurnost
|
||||
NEWGROUP: 'Nova Grupa'
|
||||
PERMISSIONS: Dozvole
|
||||
ROLES: Uloge
|
||||
TABROLES: Uloge
|
||||
Users: Korisnici
|
||||
SilverStripeNavigator:
|
||||
Auto: Aut
|
||||
Edit: Uredi
|
||||
EditView: 'Mod uređivanja'
|
||||
Width: širina
|
||||
SiteTree:
|
||||
TABMAIN: Osnovno
|
||||
TableListField:
|
||||
Print: Ispiši
|
||||
TableListField_PageControls_ss:
|
||||
OF: od
|
||||
ToggleField:
|
||||
LESS: manje
|
||||
MORE: više
|
||||
UploadField:
|
||||
ATTACHFILE: 'Dodaj datoteku'
|
||||
ATTACHFILES: 'Dodaj datoteke'
|
||||
AttachFile: 'Dodaj datoteku(e)'
|
||||
CHOOSEANOTHERFILE: 'Odaberi drugu datoteku'
|
||||
DELETE: 'Obriši iz datoteka'
|
||||
DOEDIT: Snimi
|
||||
EDIT: Uredi
|
||||
EDITINFO: 'Uredi ovu datoteku'
|
||||
FROMCOMPUTER: 'Sa računala'
|
||||
REMOVE: Ukloni
|
||||
Versioned:
|
||||
has_many_Versions: Verzije
|
||||
|
@ -1,5 +1,12 @@
|
||||
id_ID:
|
||||
AddToCampaign:
|
||||
ErrorCampaignPermissionDenied: 'Sepertinya Anda tidak memiliki ijin yang diperlukan untuk menambahkan {ObjectTitle} ke {CampaignTitle}'
|
||||
ErrorGeneral: 'Mohon maaf, ada kesalahan'
|
||||
ErrorNotFound: '{Type} tidak ditemukan'
|
||||
Success: 'Berhasil menambahkan {ObjectTitle} ke {CampaignTitle}'
|
||||
AssetAdmin:
|
||||
ALLOWEDEXTS: 'Ekstensi berkas yang diperbolehkan'
|
||||
HIDEALLOWEDEXTS: 'Sembunyikan ekstensi berkas yang diperbolehkan'
|
||||
NEWFOLDER: FolderBaru
|
||||
SHOWALLOWEDEXTS: 'Tampilkan ekstensi yang dibolehkan'
|
||||
AssetTableField:
|
||||
@ -13,6 +20,7 @@ id_ID:
|
||||
TITLE: Judul
|
||||
TYPE: 'Jenis berkas'
|
||||
URL: URL
|
||||
WIDTH: Lebar
|
||||
AssetUploadField:
|
||||
ChooseFiles: 'Pilih berkas'
|
||||
DRAGFILESHERE: 'Tarik berkas ke sini'
|
||||
@ -566,3 +574,6 @@ id_ID:
|
||||
UPLOADSINTO: 'disimpan ke /{path}'
|
||||
Versioned:
|
||||
has_many_Versions: Versi
|
||||
VersionedGridFieldItemRequest:
|
||||
ARCHIVE: Arsip
|
||||
Archived: '%s %s diarsipkan'
|
||||
|
132
lang/it.yml
132
lang/it.yml
@ -1,5 +1,12 @@
|
||||
it:
|
||||
AddToCampaign:
|
||||
ErrorCampaignPermissionDenied: 'Sembra tu non abbia i permessi necessari per aggiungere {ObjectTitle} a {CampaignTitle}'
|
||||
ErrorGeneral: 'Spiacente, ma c''è stato un errore'
|
||||
ErrorItemPermissionDenied: 'Sembra tu non abbia i permessi necessari per aggiungere {ObjectTitle} alla campagna'
|
||||
ErrorNotFound: 'Non è stato possibile trovare {Type}'
|
||||
Success: '{ObjectTitle} aggiunto a {CampaignTitle} con successo'
|
||||
AssetAdmin:
|
||||
ALLOWEDEXTS: 'Estensioni consentite per l''upload'
|
||||
HIDEALLOWEDEXTS: 'Nascondi estensioni permesse'
|
||||
NEWFOLDER: NuovaCartella
|
||||
SHOWALLOWEDEXTS: 'Mostra le estensioni consentite'
|
||||
@ -29,6 +36,7 @@ it:
|
||||
INSERTURL: 'Inserisci da URL'
|
||||
REMOVEINFO: 'Rimuovi questo file da questo campo'
|
||||
TOTAL: Totale
|
||||
TOUPLOAD: 'Scegli i file da caricare...'
|
||||
UPLOADINPROGRESS: 'Attendere prego... caricamento in corso'
|
||||
UPLOADOR: O
|
||||
BBCodeParser:
|
||||
@ -66,6 +74,8 @@ it:
|
||||
ANY: Qualsiasi
|
||||
NOANSWER: 'No'
|
||||
YESANSWER: 'Sì'
|
||||
CAMPAIGNS:
|
||||
ADDTOCAMPAIGN: 'Aggiungere alla campagna'
|
||||
CMSLoadingScreen_ss:
|
||||
LOADING: Caricamento in corso...
|
||||
REQUIREJS: 'Il CMS richiede JavaScript abilitato.'
|
||||
@ -92,12 +102,34 @@ it:
|
||||
SUCCESSCONTENT: '<p>Accesso eseguito. Se non sarai ridirezionato automaticamente, <a target="_top" href="{link}">cliccare qui</a></p>'
|
||||
TimedOutTitleAnonymous: 'La tua sessione è scaduta.'
|
||||
TimedOutTitleMember: 'Ciao {name}!<br />La tua sessione è scaduta.'
|
||||
CampaignAdmin:
|
||||
MENUTITLE: Campagne
|
||||
Campaigns:
|
||||
AddToCampaign: 'Aggiungere Alla Campagna'
|
||||
ChangePasswordEmail_ss:
|
||||
CHANGEPASSWORDFOREMAIL: 'La password per l''account con l''email {email} è cambiata. Se non l\''hai ancora fatto, prego cambiare la password usando il link sottostante'
|
||||
CHANGEPASSWORDTEXT1: 'Hai cambiato la password per'
|
||||
CHANGEPASSWORDTEXT2: 'Ora puoi utilizzare le seguenti credenziali per accedere:'
|
||||
CHANGEPASSWORDTEXT3: 'Cambia password'
|
||||
EMAIL: Email
|
||||
HELLO: Ciao
|
||||
PASSWORD: Password
|
||||
ChangeSet:
|
||||
DESCRIPTION_AND: '{first} e {second}'
|
||||
DESCRIPTION_ITEM: elemento
|
||||
DESCRIPTION_ITEMS: elementi
|
||||
DESCRIPTION_LIST_FIRST: '{item}'
|
||||
DESCRIPTION_LIST_LAST: '{list}, e {item}'
|
||||
DESCRIPTION_LIST_MID: '{list}, {item}'
|
||||
DESCRIPTION_OTHER_ITEM: 'altro elemento'
|
||||
DESCRIPTION_OTHER_ITEMS: 'altri elementi'
|
||||
NAME: Nome
|
||||
PLURALNAME: Campagne
|
||||
SINGULARNAME: Campagna
|
||||
STATE: Stato
|
||||
ChangeSetItem:
|
||||
PLURALNAME: 'Cambiare gli elementi del set'
|
||||
SINGULARNAME: 'Cambiare l''elemento del set'
|
||||
CheckboxField:
|
||||
NOANSWER: 'No'
|
||||
YESANSWER: 'Sì'
|
||||
@ -108,6 +140,9 @@ it:
|
||||
ConfirmedPasswordField:
|
||||
ATLEAST: 'La password deve essere lunga almeno {min} caratteri.'
|
||||
BETWEEN: 'La password deve essere lunga da {min} a {max} caratteri.'
|
||||
CURRENT_PASSWORD_ERROR: 'La password che hai inserito non è corretta.'
|
||||
CURRENT_PASSWORD_MISSING: 'Devi inserire la tua password attuale.'
|
||||
LOGGED_IN_ERROR: 'Devi essere autenticato per poter cambiare la tua password.'
|
||||
MAXIMUM: 'La password deve essere lunga almeno {max} caratteri.'
|
||||
SHOWONCLICKTITLE: 'Cambia password'
|
||||
ContentController:
|
||||
@ -151,6 +186,7 @@ it:
|
||||
INVALID_REQUEST: 'Richiesta non valida'
|
||||
DropdownField:
|
||||
CHOOSE: (Scegli)
|
||||
CHOOSESEARCH: '(Scegliere o Cercare)'
|
||||
SOURCE_VALIDATION: 'Per favore selezionare un valore tra quelli forniti. {value} non è un''opzione valida'
|
||||
EmailField:
|
||||
VALIDATION: 'Inserisci un indirizzo e-mail'
|
||||
@ -265,9 +301,73 @@ it:
|
||||
many_many_Members: Membri
|
||||
GroupImportForm:
|
||||
Help1: '<p>Importa gruppi in formato <em>CSV</em> (valori separati da virgole). <small><a href="#" class="toggle-advanced">Mostra utilizzo avanzato</a></small></p>'
|
||||
Help2: '<div class="advanced">
|
||||
|
||||
<h4>Utilizzo avanzato</h4>
|
||||
|
||||
<ul>
|
||||
|
||||
<li>Colonne consentite: <em>%s</em></li>
|
||||
|
||||
<li>Gruppi esistenti sono individuati attraverso la proprietà univoca <em>Code</em> e aggiornati con i nuovi valori dal file importato.</li>
|
||||
|
||||
<li>Possono essere create gerarchie usando la colonna <em>ParentCode</em></li>
|
||||
|
||||
<li>Codici di autorizzazione possono essere assegnati con la colonna <em>PermissionCode</em>. I codici di autorizzazione preesistenti non saranno cancellati.</li>
|
||||
|
||||
</ul>
|
||||
|
||||
</div>'
|
||||
ResultCreated: 'Creati {count} gruppi'
|
||||
ResultDeleted: 'Eliminati %d gruppi'
|
||||
ResultUpdated: 'Aggiornati %d gruppi'
|
||||
HTMLEditorField:
|
||||
ANCHORSCANNOTACCESSPAGE: 'Non ti è consentito accedere al contenuto della pagina di destinazione.'
|
||||
ANCHORSPAGENOTFOUND: 'Pagina di destinazione non trovata.'
|
||||
ANCHORVALUE: Ancora
|
||||
BUTTONADDURL: 'Aggiungi url'
|
||||
CAPTIONTEXT: 'Didascalia di testo'
|
||||
CSSCLASS: 'Allineamento / stile'
|
||||
CSSCLASSCENTER: 'Centrato, su se stesso.'
|
||||
CSSCLASSLEFT: 'Sulla sinistra, con il testo attorno.'
|
||||
CSSCLASSLEFTALONE: 'Sulla sinistra, da sola.'
|
||||
CSSCLASSRIGHT: 'Sulla destra, con il testo attorno.'
|
||||
DETAILS: Dettagli
|
||||
EMAIL: 'Indirizzo email'
|
||||
FILE: File
|
||||
FOLDER: Cartella
|
||||
IMAGEALT: 'Testo alternativo (alt)'
|
||||
IMAGEALTTEXT: 'Testo alternativo (alt) - mostrato nel caso l''immagine non possa essere visualizzata'
|
||||
IMAGEALTTEXTDESC: 'Mostrato agli screen reader o se l''immagine non può essere visualizzata'
|
||||
IMAGEDIMENSIONS: Dimensioni
|
||||
IMAGEHEIGHTPX: Altezza
|
||||
IMAGETITLE: 'Titolo (tooltip) - per informazioni aggiuntive sull''immagine.'
|
||||
IMAGETITLETEXT: 'Titolo (tooltip)'
|
||||
IMAGETITLETEXTDESC: 'Per informazioni aggiuntive sull''immagine'
|
||||
IMAGEWIDTHPX: Larghezza
|
||||
INSERTMEDIA: 'Inserisci media da'
|
||||
LINK: 'Inserisci Link'
|
||||
LINKANCHOR: 'Ancora su questa pagina'
|
||||
LINKDESCR: 'Descrizione del link'
|
||||
LINKEMAIL: 'Indirizzo email'
|
||||
LINKEXTERNAL: 'Un altro sito web'
|
||||
LINKFILE: 'Scarica un file'
|
||||
LINKINTERNAL: 'Pagina su questo sito'
|
||||
LINKOPENNEWWIN: 'Apri il link in una nuova finestra?'
|
||||
LINKTO: 'Collega a'
|
||||
PAGE: Pagina
|
||||
SUBJECT: 'Oggetto email'
|
||||
URL: URL
|
||||
URLDESCRIPTION: 'Inserisci video e immagini dal Web nella tua pagina semplicemente inserendo l''URL del file. Si sicuro di avere i diritti o i permessi prima di condividere media direttamente dal Web.<br /><br />NB : i file non sono aggiunti allo storage file del CMS, ma incorpora il file dalla sua location principale, se per un qualsiasi motivo il file non e'' più raggiungibile nella sua location principale, non sara'' più visibile su questa pagina.'
|
||||
URLNOTANOEMBEDRESOURCE: 'L''URL ''{url}'' non può essere convertito in una risorsa media.'
|
||||
UpdateMEDIA: 'Aggiorna media'
|
||||
HTMLEditorField_Toolbar:
|
||||
ERROR_ABSOLUTE: 'Possono essere incorporati solo URL assoluti'
|
||||
ERROR_HOSTNAME: 'L''hostname di questo file non è incluso nella whitelist'
|
||||
ERROR_ID: 'Sono necessari entrambi i parametri "ID" e "FileURL" per identificare il file'
|
||||
ERROR_NOTFOUND: 'Impossibile trovare il file da visualizzare'
|
||||
ERROR_OEMBED_REMOTE: 'Oembed è compatibile solo con file remoti'
|
||||
ERROR_SCHEME: 'Lo schema di questo file non è incluso nella whitelist'
|
||||
Hierarchy:
|
||||
InfiniteLoopNotAllowed: 'Trovato loop infinito nella gerarchia di "{type}". Cambia il padre per risolvere il problema'
|
||||
HtmlEditorField:
|
||||
@ -327,6 +427,7 @@ it:
|
||||
Image_iframe_ss:
|
||||
TITLE: 'Iframe per l''inserimento dell''immagine'
|
||||
LeftAndMain:
|
||||
CANCEL: Annulla
|
||||
CANT_REORGANISE: 'Non hai i permessi per modificare le pagine di primo livello. Le modifiche non sono state salvate.'
|
||||
DELETED: Eliminato.
|
||||
HELP: Aiuto
|
||||
@ -360,9 +461,11 @@ it:
|
||||
CANTEDIT: 'Non hai i permessi per fare questo'
|
||||
CONFIRMNEWPASSWORD: 'Conferma nuova password'
|
||||
CONFIRMPASSWORD: 'Conferma password'
|
||||
CURRENT_PASSWORD: 'Password Attuale'
|
||||
DATEFORMAT: 'Formato della data'
|
||||
DefaultAdminFirstname: 'Amministratore Predefinito'
|
||||
DefaultDateTime: predefinito
|
||||
EDIT_PASSWORD: 'Nuova password'
|
||||
EMAIL: Email
|
||||
EMPTYNEWPASSWORD: 'La nuova password non può essere vuota, riprova'
|
||||
ENTEREMAIL: 'Inserisci un indirizzo e-mail per ricevere il link di azzeramento della password'
|
||||
@ -373,12 +476,14 @@ it:
|
||||
FIRSTNAME: 'Nome'
|
||||
INTERFACELANG: 'Lingua dell''interfaccia'
|
||||
INVALIDNEWPASSWORD: 'Non possiamo accettare questa password: {password}'
|
||||
KEEPMESIGNEDIN: 'Resta autenticato'
|
||||
LOGGEDINAS: 'Sei collegato come {name}.'
|
||||
NEWPASSWORD: 'Nuova password'
|
||||
NoPassword: 'Manca la password per questo utente.'
|
||||
PASSWORD: Password
|
||||
PASSWORDEXPIRED: 'La tua password è scaduta. Per favore selezionarne una nuova.'
|
||||
PLURALNAME: Utenti
|
||||
REMEMBERME: 'Ricordati di me la prossima volta?'
|
||||
SINGULARNAME: Utente
|
||||
SUBJECTPASSWORDCHANGED: 'La tua password è stata cambiata'
|
||||
SUBJECTPASSWORDRESET: 'Link per azzerare la tua password'
|
||||
@ -418,6 +523,17 @@ it:
|
||||
Toggle: 'Mostra aiuto per la formattazione'
|
||||
MemberImportForm:
|
||||
Help1: '<p>Importa utenti in <em>formato CSV</em> (valori separati da virgole). <small><a href="#" class="toggle-advanced">Mostra utilizzo avanzato</a></small></p>'
|
||||
Help2: '<div class="advanced">
|
||||
|
||||
<h4>Utilizzo avanzato</h4>
|
||||
|
||||
<ul>
|
||||
|
||||
<li>Colonne consentite: <em>%s</em></li>
|
||||
|
||||
<li>Utenti esistenti sono individuati attraverso la proprietà univoca <em>Code</em> e aggiornati con i nuovi valori dal file importato.</li>
|
||||
|
||||
<li>Possono essere assegnati gruppi usando la colonna <em>Groups</em>. I gruppi sono identificati dalla proprietà <em>Code</em>, possono essere specificati più gruppi separandoli con la virgola. I gruppi preesistenti non saranno cancellati.</li></ul></div>'
|
||||
ResultCreated: 'Creati {count} utenti'
|
||||
ResultDeleted: 'Eliminati %d utenti'
|
||||
ResultNone: 'Nessun cambiamento'
|
||||
@ -452,6 +568,8 @@ it:
|
||||
MoneyField:
|
||||
FIELDLABELAMOUNT: Importo
|
||||
FIELDLABELCURRENCY: Valuta
|
||||
MultiSelectField:
|
||||
SOURCE_VALIDATION: 'Per favore selezionare un valore tra quelli forniti. È stata fornita l''opzione non valida {value}'
|
||||
NullableField:
|
||||
IsNullLabel: 'è nullo.'
|
||||
NumericField:
|
||||
@ -489,6 +607,9 @@ it:
|
||||
UserPermissionsIntro: 'Assegnando gruppi a questo utente modificherà i suoi permessi. Vedi la sezione gruppi per dettagli sui permessi dei singoli gruppi.'
|
||||
PhoneNumberField:
|
||||
VALIDATION: 'Per favore inserisci un numero di telefono valido'
|
||||
RememberLoginHash:
|
||||
PLURALNAME: 'Ricordare gli Hash di Login'
|
||||
SINGULARNAME: 'Ricordare l''Hash di Login'
|
||||
Security:
|
||||
ALREADYLOGGEDIN: 'Non hai accesso a questa pagina. Se hai un altro account che può accederci, puoi autenticarti qui sotto.'
|
||||
BUTTONSEND: 'Inviami il link per azzerare la password'
|
||||
@ -584,3 +705,14 @@ it:
|
||||
UPLOADSINTO: 'salva in /{path}'
|
||||
Versioned:
|
||||
has_many_Versions: Versioni
|
||||
VersionedGridFieldItemRequest:
|
||||
ARCHIVE: Archiviare
|
||||
Archived: '%s %s archiviata'
|
||||
BUTTONARCHIVEDESC: 'Nascondere e mettere in archivio'
|
||||
BUTTONPUBLISH: Pubblicare
|
||||
BUTTONUNPUBLISH: Nascondere
|
||||
BUTTONUNPUBLISHDESC: 'Rimuovere questo record dal sito pubblicato'
|
||||
Published: 'Pubblicato {name} {link}'
|
||||
Unpublished: 'Nascosto %s %s'
|
||||
i18n:
|
||||
PLURAL: '{number} {form}'
|
||||
|
155
lang/ru.yml
155
lang/ru.yml
@ -1,5 +1,13 @@
|
||||
ru:
|
||||
AddToCampaign:
|
||||
ErrorCampaignPermissionDenied: 'У вас не достаточно прав доступа для добавления {ObjectTitle} в {CampaignTitle}'
|
||||
ErrorGeneral: 'Произошла ошибка'
|
||||
ErrorItemPermissionDenied: 'У вас не достаточно прав доступа для добавления {ObjectTitle} к кампании'
|
||||
ErrorNotFound: '{Type} не обнаружен'
|
||||
Success: '{ObjectTitle} добавлен в {CampaignTitle}'
|
||||
AssetAdmin:
|
||||
ALLOWEDEXTS: 'Разрешённые расширения файлов для загрузки'
|
||||
HIDEALLOWEDEXTS: 'Скрыть разрешенные расширения'
|
||||
NEWFOLDER: Новая папка
|
||||
SHOWALLOWEDEXTS: 'Показать допустимые расширения'
|
||||
AssetTableField:
|
||||
@ -7,12 +15,14 @@ ru:
|
||||
DIM: Размеры
|
||||
FILENAME: Имя файла
|
||||
FOLDER: Папка
|
||||
HEIGHT: Высота
|
||||
LASTEDIT: 'Последнее изменение'
|
||||
OWNER: Владелец
|
||||
SIZE: 'Размер'
|
||||
TITLE: Название
|
||||
TYPE: 'Тип'
|
||||
URL: URL
|
||||
WIDTH: Ширина
|
||||
AssetUploadField:
|
||||
ChooseFiles: 'Выберите файлы'
|
||||
DRAGFILESHERE: 'Перетащите файлы сюда'
|
||||
@ -23,7 +33,10 @@ ru:
|
||||
FILES: Файлы
|
||||
FROMCOMPUTER: 'Выберите файлы с диска вашего компьютера'
|
||||
FROMCOMPUTERINFO: 'Загрузить с диска вашего компьютера'
|
||||
INSERTURL: 'Вставить ссылку'
|
||||
REMOVEINFO: 'Удалить этот файл из поля'
|
||||
TOTAL: Всего
|
||||
TOUPLOAD: 'Выберите файлы для загрузки ...'
|
||||
UPLOADINPROGRESS: 'Идет загрузка... Пожалуйста, подождите'
|
||||
UPLOADOR: ИЛИ
|
||||
BBCodeParser:
|
||||
@ -59,6 +72,10 @@ ru:
|
||||
ERRORNOTREC: 'Такое имя пользователя или пароль не существует'
|
||||
Boolean:
|
||||
ANY: Все
|
||||
NOANSWER: 'Нет'
|
||||
YESANSWER: 'Да'
|
||||
CAMPAIGNS:
|
||||
ADDTOCAMPAIGN: 'Добавить в кампанию'
|
||||
CMSLoadingScreen_ss:
|
||||
LOADING: Идет загрузка...
|
||||
REQUIREJS: 'Для работы с CMS у вас должен быть включен JavaScript.'
|
||||
@ -67,22 +84,69 @@ ru:
|
||||
ACCESSALLINTERFACES: 'Доступ ко всему интерфейсу CMS'
|
||||
ACCESSALLINTERFACESHELP: 'Отменяет индивидуальные настройки прав доступа.'
|
||||
SAVE: Сохранить
|
||||
CMSMemberLoginForm:
|
||||
BUTTONFORGOTPASSWORD: 'Забыли пароль?'
|
||||
BUTTONLOGIN: 'Вход'
|
||||
BUTTONLOGOUT: 'Выход'
|
||||
PASSWORDEXPIRED: '<p>Время действия вашего пароля истекло. <a target="_top" href="{link}">Установите новый пароль.</a></p>'
|
||||
CMSPageHistoryController_versions_ss:
|
||||
PREVIEW: 'Предварительный просмотр сайта'
|
||||
CMSPagesController_Tools_ss:
|
||||
FILTER: Фильтр
|
||||
CMSProfileController:
|
||||
MENUTITLE: 'Мой профиль'
|
||||
CMSSecurity:
|
||||
INVALIDUSER: '<p>Неправильный пользователь. <a target="_top" href="{link}">Войдите заново в систему</a> чтобы продолжить.</p>'
|
||||
LoginMessage: '<p>Если у вас есть что-либо несохраненное вы можете вернуться к этому войдя в систему заново с помощью формы ниже.</p>'
|
||||
SUCCESS: Готово
|
||||
SUCCESSCONTENT: '<p>Вы вошли в систему. Если вы не были автоматически перенаправлены <a target="_top" href="{link}">нажмите здесь</a></p>'
|
||||
TimedOutTitleAnonymous: 'Время вашего сеанса истекло.'
|
||||
TimedOutTitleMember: '{name}!<br />Время вашего сеанса истекло.'
|
||||
CampaignAdmin:
|
||||
MENUTITLE: Кампании
|
||||
Campaigns:
|
||||
AddToCampaign: 'Добавить в кампанию'
|
||||
ChangePasswordEmail_ss:
|
||||
CHANGEPASSWORDFOREMAIL: 'Пароль для регистрации с Email адресом {email} был изменён. Если вы его не меняли установите новый перейдя по ссылке ниже'
|
||||
CHANGEPASSWORDTEXT1: 'Вы изменили свой пароль на'
|
||||
CHANGEPASSWORDTEXT2: 'Для того, чтобы войти, используйте сейчас следующие учетные данные:'
|
||||
CHANGEPASSWORDTEXT3: 'Изменить пароль'
|
||||
EMAIL: Email
|
||||
HELLO: Здравствуйте
|
||||
PASSWORD: Пароль
|
||||
ChangeSet:
|
||||
DESCRIPTION_AND: '{first} и {second}'
|
||||
DESCRIPTION_ITEM: элемент
|
||||
DESCRIPTION_ITEMS: элементы
|
||||
DESCRIPTION_LIST_FIRST: '{item}'
|
||||
DESCRIPTION_LIST_LAST: '{list}, и {item}'
|
||||
DESCRIPTION_LIST_MID: '{list}, {item}'
|
||||
DESCRIPTION_OTHER_ITEM: 'другой элемент'
|
||||
DESCRIPTION_OTHER_ITEMS: 'другие элементы'
|
||||
NAME: Название
|
||||
PLURALNAME: Кампании
|
||||
SINGULARNAME: Кампания
|
||||
STATE: Статус
|
||||
ChangeSetItem:
|
||||
PLURALNAME: 'Изменить набор элементов'
|
||||
SINGULARNAME: 'Изменить элемент'
|
||||
CheckboxField:
|
||||
NOANSWER: 'Нет'
|
||||
YESANSWER: 'Да'
|
||||
CheckboxFieldSetField:
|
||||
SOURCE_VALIDATION: 'Выберите значение из списка. Ошибочно указано значение: {value}'
|
||||
CheckboxSetField:
|
||||
SOURCE_VALIDATION: 'Выберите значение из списка. Ошибочно указано значение: ''{value}'''
|
||||
ConfirmedPasswordField:
|
||||
ATLEAST: 'Пароль должен быть не короче {min} символов.'
|
||||
BETWEEN: 'Пароль должен иметь длину от {min} до {max} символов.'
|
||||
CURRENT_PASSWORD_ERROR: 'Неправильно введён текущий пароль.'
|
||||
CURRENT_PASSWORD_MISSING: 'Вы должны указать Ваш текущий пароль.'
|
||||
LOGGED_IN_ERROR: 'Вы должны войти в систему, чтобы изменить Ваш пароль.'
|
||||
MAXIMUM: 'Пароль должен быть не длиннее {max} символов.'
|
||||
SHOWONCLICKTITLE: 'Изменить пароль'
|
||||
ContentController:
|
||||
DRAFT_SITE_ACCESS_RESTRICTION: 'Для просмотра чернового или архивного содержимого вам необходимо войти в систему со своим именем пользователя и паролем. <a href="%s">Щелкните здесь, чтобы вернуться на опубликованный сайт.</a>'
|
||||
NOTLOGGEDIN: 'Не выполнен вход в систему'
|
||||
CreditCardField:
|
||||
FIRST: первая
|
||||
@ -122,6 +186,8 @@ ru:
|
||||
INVALID_REQUEST: 'Неверный запрос'
|
||||
DropdownField:
|
||||
CHOOSE: (Выберите)
|
||||
CHOOSESEARCH: '(Выбрать или найти)'
|
||||
SOURCE_VALIDATION: 'Выберите значение из списка. Ошибочно указано значение: {value}'
|
||||
EmailField:
|
||||
VALIDATION: 'Пожалуйста, задайте адрес email.'
|
||||
Enum:
|
||||
@ -169,6 +235,7 @@ ru:
|
||||
TEXT3: для
|
||||
Form:
|
||||
CSRF_EXPIRED_MESSAGE: 'Срок действия сеанса истек. Пожалуйста, отправьте данные формы еще раз.'
|
||||
CSRF_FAILED_MESSAGE: 'Произошла техническая ошибка. Нажмите кнопку "Назад", обновите страницу в браузере и повторите попытку.'
|
||||
FIELDISREQUIRED: 'Поле {$name} является обязательным'
|
||||
SubmitBtnLabel: Выбрать
|
||||
VALIDATIONCREDITNUMBER: 'Пожалуйста, убедитесь, что номер кредитной карты {number} задан правильно'
|
||||
@ -222,6 +289,7 @@ ru:
|
||||
DefaultGroupTitleContentAuthors: 'Авторы содержимого'
|
||||
Description: Описание
|
||||
GroupReminder: 'При назначении группы верхнего уровня все роли будут переняты из нее'
|
||||
HierarchyPermsError: 'У Вас недостаточно прав для назначения родительской группы "%s" (необходимы права администратора)'
|
||||
Locked: 'Блокировано?'
|
||||
NoRoles: 'Ролей не найдено'
|
||||
PLURALNAME: Группы
|
||||
@ -233,14 +301,64 @@ ru:
|
||||
many_many_Members: Члены группы
|
||||
GroupImportForm:
|
||||
Help1: '<p>Импорт одной или нескольких групп в формате <em>CSV</em> (comma-separated values). <small><a href="#" class="toggle-advanced">Подробные сведения</a></small></p>'
|
||||
Help2: "<div class=\"advanced\">\n<h4>Расширенное использование</h4>\n<ul>\n<li>Разрешенные столбцы: <em>%s</em></li>\n<li>Существующие пользователи сверяются c уникальным атрибутом <em>Code</em>, после чего в записи вносятся новые значения из \nимпортированного файла.</li>\n<li>Назначение групп производится с помощью столбца <em>Groups</em>. Группы идентифицируются по атрибуту <em>Code</em>, \nотдельные группы разделяются запятой. Если участник входит в какую-либо группу, это свойство не обнуляется.</li>\n</ul>\n</div>"
|
||||
ResultCreated: 'Создано {count} групп'
|
||||
ResultDeleted: 'Удалено %d групп'
|
||||
ResultUpdated: 'Обновлено %d групп'
|
||||
HTMLEditorField:
|
||||
ANCHORSCANNOTACCESSPAGE: 'У Вас недостаточно прав для доступа к содержимому данной страницы.'
|
||||
ANCHORSPAGENOTFOUND: 'Страница не найдена.'
|
||||
ANCHORVALUE: Якорь
|
||||
BUTTONADDURL: 'Добавить ссылку'
|
||||
CAPTIONTEXT: 'Текст подписи'
|
||||
CSSCLASS: 'Выравнивание/Стиль'
|
||||
CSSCLASSCENTER: 'По центру без текста по бокам'
|
||||
CSSCLASSLEFT: 'Слева с обтеканием текста'
|
||||
CSSCLASSLEFTALONE: 'Независимо слева.'
|
||||
CSSCLASSRIGHT: 'Справа с обтеканием текста'
|
||||
DETAILS: Подробности
|
||||
EMAIL: 'Email'
|
||||
FILE: Файл
|
||||
FOLDER: Папка
|
||||
IMAGEALT: 'Альтернативный текст (alt)'
|
||||
IMAGEALTTEXT: 'Альтернативный текст (alt) - показывается, если изображение недоступно'
|
||||
IMAGEALTTEXTDESC: 'Отображается если в браузере отключены изображения или если изображение недоступно'
|
||||
IMAGEDIMENSIONS: Размеры
|
||||
IMAGEHEIGHTPX: Высота
|
||||
IMAGETITLE: 'Текст (всплывающая подсказка) - для дополнительной информации об изображении'
|
||||
IMAGETITLETEXT: 'Текст (всплывающая подсказка)'
|
||||
IMAGETITLETEXTDESC: 'Для дополнительных сведений об изображении'
|
||||
IMAGEWIDTHPX: Ширина
|
||||
INSERTMEDIA: 'Вставить медиафайл'
|
||||
LINK: 'Вставить ссылку'
|
||||
LINKANCHOR: 'Якорь на этой странице'
|
||||
LINKDESCR: 'Описание ссылки'
|
||||
LINKEMAIL: 'Email'
|
||||
LINKEXTERNAL: 'Другой сайт'
|
||||
LINKFILE: 'Скачивание файла'
|
||||
LINKINTERNAL: 'Страницу данного сайта'
|
||||
LINKOPENNEWWIN: 'Открыть ссылку в новом окне?'
|
||||
LINKTO: 'Ссылка на'
|
||||
PAGE: Страница
|
||||
SUBJECT: 'Тема Email письма'
|
||||
URL: Ссылка
|
||||
URLDESCRIPTION: 'Добавляйте видео и изображения из интернета просто введя нужный адрес. Убедитесь что у вас есть права на размещение данных файлов.<br /><br />Внимание: файлы не будут загружены на ваш сервер и если файл будет не доступен по указанному адресу то он так же будет не доступен на вашей странице.'
|
||||
URLNOTANOEMBEDRESOURCE: 'Данная ссылка ''{url}'' не может быть использована для добавления медиа.'
|
||||
UpdateMEDIA: 'Обновить медиа'
|
||||
HTMLEditorField_Toolbar:
|
||||
ERROR_ABSOLUTE: 'Только абсолютные (http://,https://) ссылки могут быть использованы'
|
||||
ERROR_HOSTNAME: 'Данный адрес недоступен'
|
||||
ERROR_ID: 'Необходимо указать "ID" или "FileURL" - ссылку на файл для идентификации файла'
|
||||
ERROR_NOTFOUND: 'Файл не обнаружен'
|
||||
ERROR_OEMBED_REMOTE: 'Доступны только файлы по ссылке'
|
||||
ERROR_SCHEME: 'Данный тип файла не поддерживается'
|
||||
Hierarchy:
|
||||
InfiniteLoopNotAllowed: 'Обнаружен бесконечный цикл в иерархической структуре "{type}". Для исправления ошибки измените страницу, находящуюся уровнем выше'
|
||||
HtmlEditorField:
|
||||
ADDURL: 'Добавить URL'
|
||||
ADJUSTDETAILSDIMENSIONS: 'Дополнительные сведения и размеры'
|
||||
ANCHORSCANNOTACCESSPAGE: 'У Вас недостаточно прав для доступа к содержимому данной страницы.'
|
||||
ANCHORSPAGENOTFOUND: 'Страница не найдена.'
|
||||
ANCHORVALUE: Якорь
|
||||
BUTTONADDURL: 'Добавить URL'
|
||||
BUTTONINSERT: Вставить
|
||||
@ -268,6 +386,7 @@ ru:
|
||||
IMAGETITLETEXT: 'Текст (всплывающая подсказка)'
|
||||
IMAGETITLETEXTDESC: 'Для дополнительных сведений об изображении'
|
||||
IMAGEWIDTHPX: Ширина
|
||||
INSERTMEDIA: 'Вставить медиафайл'
|
||||
LINK: 'Ссылка'
|
||||
LINKANCHOR: 'Якорь на этой странице'
|
||||
LINKDESCR: 'Описание ссылки'
|
||||
@ -278,8 +397,11 @@ ru:
|
||||
LINKOPENNEWWIN: 'Открыть ссылку в новом окне?'
|
||||
LINKTO: 'Ссылка на'
|
||||
PAGE: Страница
|
||||
SUBJECT: 'Тема Email письма'
|
||||
URL: URL
|
||||
URLDESCRIPTION: 'Добавляйте видео и изображения из интернета просто введя нужный адрес. Убедитесь что у вас есть права на размещение данных файлов.<br /><br />Внимание: файлы не будут загружены на ваш сервер и если файл будет не доступен по указанному адресу то он так же будет не доступен на вашей странице.'
|
||||
URLNOTANOEMBEDRESOURCE: 'Не удалось преобразовать ссылку ''{url}'' в медиа-ресурс.'
|
||||
UpdateMEDIA: 'Обновить медиафайл'
|
||||
Image:
|
||||
PLURALNAME: Файлы
|
||||
SINGULARNAME: Файл
|
||||
@ -289,19 +411,25 @@ ru:
|
||||
Image_iframe_ss:
|
||||
TITLE: 'Iframe загрузки изображений'
|
||||
LeftAndMain:
|
||||
CANCEL: Отмена
|
||||
CANT_REORGANISE: 'У вас нет права редактировать страницы верхнего уровня. Изменения не были сохранены.'
|
||||
DELETED: Удалено.
|
||||
HELP: Помощь
|
||||
PERMAGAIN: 'Вы вышли из Системы Управления Сайтом. Если Вы хотите войти снова, введите внизу имя пользователя и пароль.'
|
||||
PERMALREADY: 'Извините, у вас нет доступа к этому разделу Системы Управления. Если Вы хотите войти под другой учетной записью, сделайте это ниже.'
|
||||
PERMDEFAULT: 'Вы должны войти в систему для доступа к панели управления сайтом. Введите ваши данные ниже.'
|
||||
PreviewButton: Просмотр
|
||||
REORGANISATIONSUCCESSFUL: 'Древесная структура сайта успешно реорганизована.'
|
||||
SAVEDUP: Сохранено.
|
||||
ShowAsList: 'в виде списка'
|
||||
TooManyPages: 'Слишком много страниц'
|
||||
ValidationError: 'Ошибка проверки'
|
||||
VersionUnknown: неизвестно
|
||||
LeftAndMain_Menu_ss:
|
||||
Hello: Здравствуйте
|
||||
LOGOUT: 'Выход'
|
||||
ListboxField:
|
||||
SOURCE_VALIDATION: 'Выберите значение из списка. Ошибочно указано значение: %s'
|
||||
LoginAttempt:
|
||||
Email: 'Email'
|
||||
IP: 'IP-адрес'
|
||||
@ -317,9 +445,11 @@ ru:
|
||||
CANTEDIT: 'У вас недостаточно прав'
|
||||
CONFIRMNEWPASSWORD: 'Подтвердить новый пароль'
|
||||
CONFIRMPASSWORD: 'Подтвердить пароль'
|
||||
CURRENT_PASSWORD: 'Текущий пароль'
|
||||
DATEFORMAT: 'Формат даты'
|
||||
DefaultAdminFirstname: 'Администратор по умолчанию '
|
||||
DefaultDateTime: по умолч.
|
||||
EDIT_PASSWORD: 'Новый пароль'
|
||||
EMAIL: Email
|
||||
EMPTYNEWPASSWORD: 'Поле нового пароля не может быть пустым; пожалуйста, повторите попытку'
|
||||
ENTEREMAIL: 'Введите email, чтобы получить ссылку на сброс пароля.'
|
||||
@ -330,11 +460,14 @@ ru:
|
||||
FIRSTNAME: 'Имя'
|
||||
INTERFACELANG: 'Язык интерфейса'
|
||||
INVALIDNEWPASSWORD: 'Недопустимый пароль: {password}'
|
||||
KEEPMESIGNEDIN: 'Запомните меня'
|
||||
LOGGEDINAS: 'Вы вошли в систему как {name}.'
|
||||
NEWPASSWORD: 'Новый пароль'
|
||||
NoPassword: 'Для этого пользователя не задан пароль.'
|
||||
PASSWORD: Пароль
|
||||
PASSWORDEXPIRED: 'Срок действия Вашего пароля истек. Пожалуйста установите новый.'
|
||||
PLURALNAME: Члены группы
|
||||
REMEMBERME: 'Запомнить меня?'
|
||||
SINGULARNAME: Член группы
|
||||
SUBJECTPASSWORDCHANGED: 'Ваш пароль изменен'
|
||||
SUBJECTPASSWORDRESET: 'Ссылка для переустановки пароля'
|
||||
@ -374,6 +507,7 @@ ru:
|
||||
Toggle: 'Отобразить справку по форматированию'
|
||||
MemberImportForm:
|
||||
Help1: '<p>Импорт пользователей в формате <em>CSV</em> (comma-separated values). <small><a href="#" class="toggle-advanced">Подробные сведения</a></small></p>'
|
||||
Help2: "<div class=\"advanced\">\n<h4>Расширенное использование</h4>\n<ul>\n<li>Разрешенные столбцы: <em>%s</em></li>\n<li>Существующие пользователи сверяются c уникальным атрибутом <em>Code</em>, после чего в записи вносятся новые значения из \nимпортированного файла.</li>\n<li>Назначение групп производится с помощью столбца <em>Groups</em>. Группы идентифицируются по атрибуту <em>Code</em>, \nотдельные группы разделяются запятой. Если участник входит в какую-либо группу, это свойство не обнуляется.</li>\n</ul>\n</div>"
|
||||
ResultCreated: 'Создано {count} участников'
|
||||
ResultDeleted: 'Удалено %d участников'
|
||||
ResultNone: 'Изменений нет'
|
||||
@ -408,6 +542,8 @@ ru:
|
||||
MoneyField:
|
||||
FIELDLABELAMOUNT: Сумма
|
||||
FIELDLABELCURRENCY: Валюта
|
||||
MultiSelectField:
|
||||
SOURCE_VALIDATION: 'Выберите значение из списка. Ошибочно указано значение(я): {value}'
|
||||
NullableField:
|
||||
IsNullLabel: 'Недействительно'
|
||||
NumericField:
|
||||
@ -437,12 +573,17 @@ ru:
|
||||
SINGULARNAME: Роль
|
||||
Title: Название
|
||||
PermissionRoleCode:
|
||||
PLURALNAME: 'Код роли доступа'
|
||||
PermsError: 'У Вас недостаточно прав для назначения родительской группы "%s" (необходимы права администратора)'
|
||||
SINGULARNAME: 'Код роли доступа'
|
||||
Permissions:
|
||||
PERMISSIONS_CATEGORY: 'Роли и права доступа'
|
||||
UserPermissionsIntro: 'При включении этого пользователя в определенную группу его права доступа будут изменены соответствующим образом. Более подробные сведения о правах доступа для отдельных групп содержатся в разделе "Группы".'
|
||||
PhoneNumberField:
|
||||
VALIDATION: 'Пожалуйста, введите верный номер телефона'
|
||||
RememberLoginHash:
|
||||
PLURALNAME: 'Сохраненные хэши входов'
|
||||
SINGULARNAME: 'Сохраненный хэш входа'
|
||||
Security:
|
||||
ALREADYLOGGEDIN: 'У Вас нет доступа к этой странице. Если у вас имеется другая учетная запись, имеющая доступ к этой странице, введите ее данные ниже.'
|
||||
BUTTONSEND: 'Отправить мне ссылку переустановки пароля'
|
||||
@ -501,6 +642,8 @@ ru:
|
||||
Print: Печать
|
||||
TableListField_PageControls_ss:
|
||||
OF: из
|
||||
TextField:
|
||||
VALIDATEMAXLENGTH: 'Значение для {name} не должно превышать {maxLength} символов'
|
||||
TimeField:
|
||||
VALIDATEFORMAT: 'Пожалуйста, задайте верный формат времени {format})'
|
||||
ToggleField:
|
||||
@ -533,5 +676,17 @@ ru:
|
||||
REMOVEINFO: 'Удалить файл отсюда, но не удалять с сервера'
|
||||
STARTALL: 'Стартовать все'
|
||||
Saved: Сохранено
|
||||
UPLOADSINTO: 'загрузка в /{path}'
|
||||
Versioned:
|
||||
has_many_Versions: Версии
|
||||
VersionedGridFieldItemRequest:
|
||||
ARCHIVE: Архив
|
||||
Archived: 'Зархивировано %s %s'
|
||||
BUTTONARCHIVEDESC: 'Отменить публикацию и отправить в архив'
|
||||
BUTTONPUBLISH: Опубликовать
|
||||
BUTTONUNPUBLISH: Отмена публикации
|
||||
BUTTONUNPUBLISHDESC: 'Удалить эту страницу с опубликованного сайта'
|
||||
Published: 'Опубликована {name} {link}'
|
||||
Unpublished: 'Публикация отменена %s %s'
|
||||
i18n:
|
||||
PLURAL: '{number} {form}'
|
||||
|
@ -298,8 +298,8 @@ sk:
|
||||
FROMWEB: 'Z webu'
|
||||
FindInFolder: 'Vyhľadať v priečinku'
|
||||
IMAGEALT: 'Atlernatívny text (alt)'
|
||||
IMAGEALTTEXT: 'Atlernatívny text (alt) - zobrazí sa, ak nemože byť zobrazený obrázok'
|
||||
IMAGEALTTEXTDESC: 'Zobrazí sa na obrazovke alebo ak obrázok nemôže byť zobrazený'
|
||||
IMAGEALTTEXT: 'Atlernatívny text (alt) - zobrazí sa ak obrázok nemože byť zobrazený '
|
||||
IMAGEALTTEXTDESC: 'Zobrazí sa na obrazovke, ak obrázok nemôže byť zobrazený'
|
||||
IMAGEDIMENSIONS: Rozmery
|
||||
IMAGEHEIGHTPX: Výška
|
||||
IMAGETITLE: 'Text titulky (tooltip) - pre doplňujúce informácie o obrázku'
|
||||
@ -333,7 +333,7 @@ sk:
|
||||
LeftAndMain:
|
||||
CANT_REORGANISE: 'Nemáte oprávnenie meniť stránky najvyššej úrovne. Vaša zmena nebola uložená.'
|
||||
DELETED: Zmazané.
|
||||
DropdownBatchActionsDefault: 'Vyberte akciu...'
|
||||
DropdownBatchActionsDefault: Akcie
|
||||
HELP: Pomoc
|
||||
PAGETYPE: 'Typ stránky'
|
||||
PERMAGAIN: 'Boli ste odhlásený'
|
||||
@ -391,6 +391,7 @@ sk:
|
||||
SUBJECTPASSWORDRESET: 'Odkaz na resetovanie hesla'
|
||||
SURNAME: Priezvisko
|
||||
TIMEFORMAT: 'Formát času'
|
||||
VALIDATIONMEMBEREXISTS: 'Člen už existuje s rovnakým %s'
|
||||
ValidationIdentifierFailed: 'Nemôžte prepísať existujúceho člena #{id} s identickým identifikátorm ({name} = {value})'
|
||||
WELCOMEBACK: 'Vitajte späť, {firstname}'
|
||||
YOUROLDPASSWORD: 'Vaše staré heslo'
|
||||
|
295
lang/sl_SI.yml
Normal file
295
lang/sl_SI.yml
Normal file
@ -0,0 +1,295 @@
|
||||
sl_SI:
|
||||
AddToCampaign:
|
||||
ErrorGeneral: 'Se opravičujemo, prišlo je do napake'
|
||||
AssetAdmin:
|
||||
ALLOWEDEXTS: 'Dovoljeni tipi datotek za nalaganje'
|
||||
NEWFOLDER: NovaMapa
|
||||
AssetTableField:
|
||||
DIM: Dimenzije
|
||||
FILENAME: Ime datoteke
|
||||
FOLDER: Mapa
|
||||
HEIGHT: Višina
|
||||
LASTEDIT: 'Nazadnje spremenjeno'
|
||||
OWNER: Lastnik
|
||||
SIZE: 'Velikost datoteke'
|
||||
TITLE: Naslov
|
||||
TYPE: 'Tip datoteke'
|
||||
URL: URL
|
||||
WIDTH: Širina
|
||||
AssetUploadField:
|
||||
ChooseFiles: 'Izberi datoteke'
|
||||
DRAGFILESHERE: 'Povlecite datoteke na to mesto'
|
||||
DROPAREA: 'Območje za datoteke'
|
||||
EDITALL: 'Uredi vse'
|
||||
EDITANDORGANIZE: 'Uredi in organiziraj'
|
||||
EDITINFO: 'Uredi datoteke'
|
||||
FILES: Datoteke
|
||||
FROMCOMPUTER: 'Izberite datoteke iz vašega računalnika'
|
||||
FROMCOMPUTERINFO: 'Naložite datoteke iz računalnika'
|
||||
INSERTURL: 'Vstavite iz URL naslova'
|
||||
REMOVEINFO: 'Odstranite datoteko iz tega polja'
|
||||
TOTAL: Skupaj
|
||||
TOUPLOAD: 'Izberite datoteke, ki jih želite naložiti'
|
||||
UPLOADINPROGRESS: 'Prosimo počakajte... nalaganje datotek je v teku'
|
||||
UPLOADOR: ALI
|
||||
BBCodeParser:
|
||||
ALIGNEMENT: Poravnava
|
||||
ALIGNEMENTEXAMPLE: 'desno'
|
||||
BOLD: 'Krepki tekst'
|
||||
BOLDEXAMPLE: Krepko
|
||||
CODE: 'Blok s kodo'
|
||||
COLOREDEXAMPLE: 'modri tekst'
|
||||
EMAILLINK: 'E-poštna povezava'
|
||||
EMAILLINKDESCRIPTION: 'Ustvari e-poštno povezavo'
|
||||
IMAGE: Slika
|
||||
IMAGEDESCRIPTION: 'Prikažite fotografijo v vaši objavi'
|
||||
ITALIC: 'Ležeči tekst'
|
||||
ITALICEXAMPLE: Ležeče
|
||||
LINK: 'Spletna povezava'
|
||||
LINKDESCRIPTION: 'Povezava na drugo spletno mesto ali URL'
|
||||
UNDERLINE: 'Podčrtan tekst'
|
||||
UNDERLINEEXAMPLE: Podčrtano
|
||||
BackLink_Button_ss:
|
||||
Back: Nazaj
|
||||
BasicAuth:
|
||||
ENTERINFO: 'Prosimo vpišite uporabniško ime in geslo.'
|
||||
ERRORNOTADMIN: 'Ta uporabnik ni administrator.'
|
||||
ERRORNOTREC: 'Uporabniško ime ali geslo je neveljavno'
|
||||
Boolean:
|
||||
NOANSWER: 'Ne'
|
||||
YESANSWER: 'Da'
|
||||
CAMPAIGNS:
|
||||
ADDTOCAMPAIGN: 'Dodaj v kampanjo'
|
||||
CMSLoadingScreen_ss:
|
||||
LOADING: Nalagam...
|
||||
REQUIREJS: 'Zahteve CMS sistema so, da morate imeti omogočen JavaScript.'
|
||||
CMSMain:
|
||||
ACCESS: 'Dostop do ''{title}'' sekcije'
|
||||
ACCESSALLINTERFACES: 'Dostop do vseh sekcije CMS-a.'
|
||||
SAVE: Shrani
|
||||
CMSMemberLoginForm:
|
||||
BUTTONFORGOTPASSWORD: 'Pozabljeno geslo?'
|
||||
BUTTONLOGIN: 'Ponovna prijava'
|
||||
BUTTONLOGOUT: 'Odjava'
|
||||
CMSPageHistoryController_versions_ss:
|
||||
PREVIEW: 'Predogled spletne strani'
|
||||
CMSPagesController_Tools_ss:
|
||||
FILTER: Filter
|
||||
CMSProfileController:
|
||||
MENUTITLE: 'Moj profil'
|
||||
CMSSecurity:
|
||||
TimedOutTitleAnonymous: 'Vaša seja je potekla.'
|
||||
TimedOutTitleMember: 'Hej {name}! Tvoja seja je potekla.'
|
||||
CampaignAdmin:
|
||||
MENUTITLE: Kampanje
|
||||
ChangePasswordEmail_ss:
|
||||
CHANGEPASSWORDTEXT1: 'Zamenjali ste geslo za'
|
||||
CHANGEPASSWORDTEXT3: 'Zamenjaj geslo'
|
||||
EMAIL: E-pošta
|
||||
HELLO: Živjo
|
||||
PASSWORD: Geslo
|
||||
ChangeSet:
|
||||
DESCRIPTION_AND: '{first} in {drugi}'
|
||||
DESCRIPTION_ITEM: predmet
|
||||
DESCRIPTION_ITEMS: predmetov
|
||||
DESCRIPTION_OTHER_ITEM: 'drug predmet'
|
||||
DESCRIPTION_OTHER_ITEMS: 'ostali predmeti'
|
||||
NAME: Ime
|
||||
PLURALNAME: Kampanje
|
||||
SINGULARNAME: Kampanja
|
||||
STATE: Stanje
|
||||
CheckboxField:
|
||||
NOANSWER: 'Ne'
|
||||
YESANSWER: 'Da'
|
||||
ConfirmedPasswordField:
|
||||
SHOWONCLICKTITLE: 'Zamenjaj geslo'
|
||||
ContentController:
|
||||
NOTLOGGEDIN: 'Niste prijavljeni'
|
||||
CreditCardField:
|
||||
FIRST: prvi
|
||||
FOURTH: četrti
|
||||
SECOND: drugi
|
||||
THIRD: tretji
|
||||
CurrencyField:
|
||||
CURRENCYSYMBOL: €
|
||||
Date:
|
||||
DAY: dan
|
||||
DAYS: dni
|
||||
HOUR: ura
|
||||
HOURS: ur
|
||||
LessThanMinuteAgo: 'manj kot minuto'
|
||||
MIN: min
|
||||
MINS: minut
|
||||
MONTH: mesec
|
||||
MONTHS: mesecev
|
||||
SEC: sek
|
||||
SECS: sekund
|
||||
YEAR: leto
|
||||
YEARS: let
|
||||
DateField:
|
||||
NOTSET: 'ni nastavljeno'
|
||||
TODAY: danes
|
||||
VALIDDATEFORMAT2: 'Prosimo vnesite veljavno obliko datuma ({format})'
|
||||
DatetimeField:
|
||||
NOTSET: 'Ni nastavljeno'
|
||||
Director:
|
||||
INVALID_REQUEST: 'Neveljavna zahteva'
|
||||
DropdownField:
|
||||
CHOOSE: (Izberi)
|
||||
CHOOSESEARCH: '(Izberi ali poišči)'
|
||||
EmailField:
|
||||
VALIDATION: 'Prosimo vtipkajte e-poštni naslov'
|
||||
File:
|
||||
Content: Vsebina
|
||||
CssType: 'CSS datoteka'
|
||||
DocType: 'Word-ov dokument'
|
||||
Filename: Ime datoteke
|
||||
HtlType: 'HTML datoteka'
|
||||
HtmlType: 'HTML datoteka'
|
||||
JsType: 'Javascript datoteka'
|
||||
Mp3Type: 'MP3 avdio datoteka'
|
||||
MpgType: 'MPEG video datoteka'
|
||||
Name: Ime
|
||||
PLURALNAME: Datoteke
|
||||
SINGULARNAME: Datoteka
|
||||
Title: Naslov
|
||||
Folder:
|
||||
PLURALNAME: Mape
|
||||
SINGULARNAME: Mapa
|
||||
ForgotPasswordEmail_ss:
|
||||
HELLO: Živjo
|
||||
TEXT1: 'Tukaj je vaša'
|
||||
TEXT2: 'povezava za resetiranje gesla'
|
||||
TEXT3: za
|
||||
Form:
|
||||
SubmitBtnLabel: Pojdi
|
||||
GridAction:
|
||||
DELETE_DESCRIPTION: Izbriši
|
||||
Delete: Izbriši
|
||||
UnlinkRelation: Odstrani povezavo
|
||||
GridField:
|
||||
Add: 'Dodaj {name}'
|
||||
Filter: Filter
|
||||
FilterBy: 'Filtriraj po'
|
||||
Find: Najdi
|
||||
LEVELUP: 'Nivo višje'
|
||||
NewRecord: 'Nov %s'
|
||||
ResetFilter: Resetiraj
|
||||
GridFieldDetailForm:
|
||||
CancelBtn: Prekliči
|
||||
Create: Ustvari
|
||||
Delete: Izbriši
|
||||
DeletePermissionsFailure: 'Nimate pravic za brisanje'
|
||||
Deleted: 'Izbrisano %s %s'
|
||||
Save: Shrani
|
||||
Saved: 'Shranjeno {name} {link}'
|
||||
GridFieldEditButton_ss:
|
||||
EDIT: Uredi
|
||||
GridFieldItemEditView:
|
||||
Go_back: 'Nazaj'
|
||||
Group:
|
||||
AddRole: 'Dodaj vlogo za to skupino'
|
||||
DefaultGroupTitleAdministrators: Administratorji
|
||||
DefaultGroupTitleContentAuthors: 'Avtorji vsebine'
|
||||
Description: Opis
|
||||
Locked: 'Zaklenjeno?'
|
||||
PLURALNAME: Skupine
|
||||
Parent: 'Starševska skupina'
|
||||
RolesAddEditLink: 'Uredi vloge'
|
||||
SINGULARNAME: Skupina
|
||||
Sort: 'Vrstni red sortiranja'
|
||||
has_many_Permissions: Dovoljenja
|
||||
many_many_Members: Člani
|
||||
Member:
|
||||
EDIT_PASSWORD: 'Novo geslo'
|
||||
EMAIL: E-pošta
|
||||
FIRSTNAME: 'Ime'
|
||||
KEEPMESIGNEDIN: 'Zapomni si me prijavljenega'
|
||||
LOGGEDINAS: 'Prijavljeni ste kot {name}.'
|
||||
NEWPASSWORD: 'Novo geslo'
|
||||
NoPassword: 'Uporabnik nima nastavljenega gesla.'
|
||||
PASSWORD: Geslo
|
||||
PLURALNAME: Uporabniki
|
||||
REMEMBERME: 'Zapomni si me do naslednjič?'
|
||||
SINGULARNAME: Uporabnik
|
||||
SUBJECTPASSWORDCHANGED: 'Vaše geslo je bilo posodobljeno'
|
||||
SURNAME: Priimek
|
||||
TIMEFORMAT: 'Časovni zapis'
|
||||
WELCOMEBACK: 'Dobrodošli nazaj, {firstname}'
|
||||
YOUROLDPASSWORD: 'Vaše staro geslo'
|
||||
belongs_many_many_Groups: Grupe
|
||||
db_LastVisited: 'Nazadnje obiskano'
|
||||
db_Password: Geslo
|
||||
db_PasswordExpiry: 'Datum poteka gesla'
|
||||
MemberAuthenticator:
|
||||
TITLE: 'E-pošta in geslo'
|
||||
MemberDatetimeOptionsetField:
|
||||
Preview: Predogled
|
||||
Permission:
|
||||
AdminGroup: Administrator
|
||||
CMS_ACCESS_CATEGORY: 'Dostop do CMS'
|
||||
FULLADMINRIGHTS: 'Polne administratorske pravice'
|
||||
PLURALNAME: Dovoljenja
|
||||
SINGULARNAME: Dovoljenje
|
||||
PermissionRole:
|
||||
PLURALNAME: Vloge
|
||||
SINGULARNAME: Vloga
|
||||
Title: Naslov
|
||||
Security:
|
||||
CHANGEPASSWORDHEADER: 'Zamenjaj geslo'
|
||||
ENTERNEWPASSWORD: 'Prosimo vtipkajte novo geslo.'
|
||||
LOGIN: 'Prijava'
|
||||
LOSTPASSWORDHEADER: 'Pozabljeno geslo'
|
||||
SecurityAdmin:
|
||||
MEMBERS: Uporabniki
|
||||
MENUTITLE: Varnost
|
||||
PERMISSIONS: Dovoljenja
|
||||
ROLES: Vloge
|
||||
TABROLES: Vloge
|
||||
Users: Uporabniki
|
||||
SecurityAdmin_MemberImportForm:
|
||||
BtnImport: 'Uvozi iz CSV'
|
||||
SilverStripeNavigator:
|
||||
Edit: Uredi
|
||||
EditView: 'Način urejanja'
|
||||
Mobile: Mobilno
|
||||
PreviewView: 'Način predogleda'
|
||||
Responsive: Odzivno
|
||||
SplitView: 'Razdeljeni način'
|
||||
Tablet: Tablica
|
||||
Width: širina
|
||||
TableListField:
|
||||
CSVEXPORT: 'Izvozi v CSV'
|
||||
Print: Natisni
|
||||
TableListField_PageControls_ss:
|
||||
OF: od
|
||||
ToggleField:
|
||||
LESS: manj
|
||||
MORE: več
|
||||
UploadField:
|
||||
ATTACHFILE: 'Pripini datoteko'
|
||||
ATTACHFILES: 'Pripni datoteke'
|
||||
AttachFile: 'Pripni datoteko/(e)'
|
||||
CHOOSEANOTHERFILE: 'Izberite drugo datoteko'
|
||||
DELETE: 'Izbriši iz datotek'
|
||||
DELETEINFO: 'Trajno izbriši to datoteko iz shrambe datotek'
|
||||
DOEDIT: Shrani
|
||||
Dimensions: Dimenzije
|
||||
EDIT: Uredi
|
||||
EDITINFO: 'Uredi datoteko'
|
||||
FIELDNOTSET: 'Ni informacij o datoteki'
|
||||
FROMCOMPUTER: 'Iz vašega računalnika'
|
||||
FROMCOMPUTERINFO: 'Izberite iz datotek'
|
||||
FROMFILES: 'Iz datotek'
|
||||
REMOVE: Odstrani
|
||||
STARTALL: 'Zaženi vse'
|
||||
Saved: Shranjeno
|
||||
Versioned:
|
||||
has_many_Versions: Verzije
|
||||
VersionedGridFieldItemRequest:
|
||||
ARCHIVE: Arhiv
|
||||
Archived: 'Arhivirano %s %s'
|
||||
BUTTONARCHIVEDESC: 'Odstrani iz objave in pošlji v arhiv'
|
||||
BUTTONPUBLISH: Objavi
|
||||
BUTTONUNPUBLISH: Odstrani iz objave
|
||||
BUTTONUNPUBLISHDESC: 'Odstrani ta zapis iz objavljene strani'
|
@ -2,7 +2,7 @@
|
||||
<% if $Options.Count %>
|
||||
<% loop $Options %>
|
||||
<li class="$Class">
|
||||
<input id="$ID" class="checkbox" name="$Name" type="checkbox" value="$Value"<% if $isChecked %> checked="checked"<% end_if %><% if $isDisabled %> disabled="disabled"<% end_if %> />
|
||||
<input id="$ID" class="checkbox" name="$Name" type="checkbox" value="$Value.ATT"<% if $isChecked %> checked="checked"<% end_if %><% if $isDisabled %> disabled="disabled"<% end_if %> />
|
||||
<label for="$ID">$Title</label>
|
||||
</li>
|
||||
<% end_loop %>
|
||||
|
@ -1,7 +1,7 @@
|
||||
<ul $AttributesHTML>
|
||||
<% loop $Options %>
|
||||
<li class="$Class">
|
||||
<input id="$ID" class="radio" name="$Name" type="radio" value="$Value"<% if $isChecked %> checked<% end_if %><% if $isDisabled %> disabled<% end_if %> <% if $Up.Required %>required<% end_if %> />
|
||||
<input id="$ID" class="radio" name="$Name" type="radio" value="$Value.ATT"<% if $isChecked %> checked<% end_if %><% if $isDisabled %> disabled<% end_if %> <% if $Up.Required %>required<% end_if %> />
|
||||
<label for="$ID">$Title</label>
|
||||
</li>
|
||||
<% end_loop %>
|
||||
|
@ -2,6 +2,8 @@
|
||||
|
||||
class ConfigTest_DefinesFoo extends Object implements TestOnly {
|
||||
protected static $foo = 1;
|
||||
|
||||
private static $not_foo = 1;
|
||||
}
|
||||
|
||||
class ConfigTest_DefinesBar extends ConfigTest_DefinesFoo {
|
||||
@ -262,6 +264,19 @@ class ConfigTest extends SapphireTest {
|
||||
$this->assertEquals(Object::static_lookup('ConfigTest_DefinesFooDoesntExtendObject', 'bar'), null);
|
||||
}
|
||||
|
||||
public function testForClass() {
|
||||
$config = ConfigTest_DefinesFoo::config();
|
||||
// Set values
|
||||
$this->assertTrue(isset($config->not_foo));
|
||||
$this->assertFalse(empty($config->not_foo));
|
||||
$this->assertEquals(1, $config->not_foo);
|
||||
|
||||
// Unset values
|
||||
$this->assertFalse(isset($config->bar));
|
||||
$this->assertTrue(empty($config->bar));
|
||||
$this->assertNull($config->bar);
|
||||
}
|
||||
|
||||
public function testFragmentOrder() {
|
||||
$this->markTestIncomplete();
|
||||
}
|
||||
|
@ -74,6 +74,14 @@ class MySQLDatabaseConfigurationHelperTest extends SapphireTest {
|
||||
. " WITH GRANT OPTION"
|
||||
));
|
||||
|
||||
// Accept create on this database only
|
||||
$this->assertNotEmpty($helper->checkDatabasePermissionGrant(
|
||||
'database_name',
|
||||
'create',
|
||||
"GRANT ALL PRIVILEGES, CREATE ON \"database\\_name\".* TO 'root'@'localhost' IDENTIFIED BY PASSWORD 'XXXX'"
|
||||
. " WITH GRANT OPTION"
|
||||
));
|
||||
|
||||
// Accept create on any database (alternate wildcard syntax)
|
||||
$this->assertNotEmpty($helper->checkDatabasePermissionGrant(
|
||||
'database_name',
|
||||
|
@ -3,6 +3,8 @@
|
||||
use SilverStripe\ORM\ArrayList;
|
||||
use SilverStripe\ORM\DataObject;
|
||||
use SilverStripe\ORM\DB;
|
||||
use SilverStripe\Security\Member;
|
||||
use SilverStripe\ORM\FieldType\DBField;
|
||||
|
||||
/**
|
||||
* @package framework
|
||||
@ -248,6 +250,27 @@ class CheckboxSetFieldTest extends SapphireTest {
|
||||
);
|
||||
}
|
||||
|
||||
public function testSafelyCast() {
|
||||
$member = new Member();
|
||||
$member->FirstName = '<firstname>';
|
||||
$member->Surname = '<surname>';
|
||||
$member->write();
|
||||
$field1 = new CheckboxSetField('Options', 'Options', array(
|
||||
'one' => 'One',
|
||||
'two' => 'Two & Three',
|
||||
'three' => DBField::create_field('HTMLText', 'Four & Five & Six'),
|
||||
'four' => $member->FirstName,
|
||||
));
|
||||
$fieldHTML = (string)$field1->Field();
|
||||
$this->assertContains('One', $fieldHTML);
|
||||
$this->assertContains('Two & Three', $fieldHTML);
|
||||
$this->assertNotContains('Two & Three', $fieldHTML);
|
||||
$this->assertContains('Four & Five & Six', $fieldHTML);
|
||||
$this->assertNotContains('Four & Five & Six', $fieldHTML);
|
||||
$this->assertContains('<firstname>', $fieldHTML);
|
||||
$this->assertNotContains('<firstname>', $fieldHTML);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1,4 +1,7 @@
|
||||
<?php
|
||||
|
||||
use SilverStripe\ORM\FieldType\DBField;
|
||||
|
||||
/**
|
||||
* @package framework
|
||||
* @subpackage tests
|
||||
@ -63,4 +66,18 @@ class OptionsetFieldTest extends SapphireTest {
|
||||
preg_match('/Yes/', $field->Field(), $matches);
|
||||
$this->assertEquals($matches[0], 'Yes');
|
||||
}
|
||||
|
||||
public function testSafelyCast() {
|
||||
$field1 = new OptionsetField('Options', 'Options', array(
|
||||
1 => 'One',
|
||||
2 => 'Two & Three',
|
||||
3 => DBField::create_field('HTMLText', 'Four & Five & Six')
|
||||
));
|
||||
$fieldHTML = (string)$field1->Field();
|
||||
$this->assertContains('One', $fieldHTML);
|
||||
$this->assertContains('Two & Three', $fieldHTML);
|
||||
$this->assertNotContains('Two & Three', $fieldHTML);
|
||||
$this->assertContains('Four & Five & Six', $fieldHTML);
|
||||
$this->assertNotContains('Four & Five & Six', $fieldHTML);
|
||||
}
|
||||
}
|
||||
|
@ -255,63 +255,60 @@ class ArrayListTest extends SapphireTest {
|
||||
$list = new ArrayList(array(
|
||||
array('Name' => 'Steve'),
|
||||
(object) array('Name' => 'Bob'),
|
||||
array('Name' => 'John')
|
||||
array('Name' => 'John'),
|
||||
array('Name' => 'bonny'),
|
||||
array('Name' => 'bonny1'),
|
||||
array('Name' => 'bonny10'),
|
||||
array('Name' => 'bonny2'),
|
||||
));
|
||||
|
||||
// Unquoted name
|
||||
$list1 = $list->sort('Name');
|
||||
$this->assertEquals($list1->toArray(), array(
|
||||
$this->assertEquals(array(
|
||||
(object) array('Name' => 'Bob'),
|
||||
array('Name' => 'bonny'),
|
||||
array('Name' => 'bonny1'),
|
||||
array('Name' => 'bonny2'),
|
||||
array('Name' => 'bonny10'),
|
||||
array('Name' => 'John'),
|
||||
array('Name' => 'Steve')
|
||||
));
|
||||
array('Name' => 'Steve'),
|
||||
), $list1->toArray());
|
||||
|
||||
// Quoted name name
|
||||
$list2 = $list->sort('"Name"');
|
||||
$this->assertEquals($list2->toArray(), array(
|
||||
$this->assertEquals(array(
|
||||
(object) array('Name' => 'Bob'),
|
||||
array('Name' => 'bonny'),
|
||||
array('Name' => 'bonny1'),
|
||||
array('Name' => 'bonny2'),
|
||||
array('Name' => 'bonny10'),
|
||||
array('Name' => 'John'),
|
||||
array('Name' => 'Steve')
|
||||
));
|
||||
array('Name' => 'Steve'),
|
||||
), $list2->toArray());
|
||||
|
||||
// Array (non-associative)
|
||||
$list3 = $list->sort(array('"Name"'));
|
||||
$this->assertEquals($list3->toArray(), array(
|
||||
$this->assertEquals(array(
|
||||
(object) array('Name' => 'Bob'),
|
||||
array('Name' => 'bonny'),
|
||||
array('Name' => 'bonny1'),
|
||||
array('Name' => 'bonny2'),
|
||||
array('Name' => 'bonny10'),
|
||||
array('Name' => 'John'),
|
||||
array('Name' => 'Steve')
|
||||
));
|
||||
|
||||
// Quoted name name with table
|
||||
$list4 = $list->sort('"Record"."Name"');
|
||||
$this->assertEquals($list4->toArray(), array(
|
||||
(object) array('Name' => 'Bob'),
|
||||
array('Name' => 'John'),
|
||||
array('Name' => 'Steve')
|
||||
));
|
||||
|
||||
// Quoted name name with table (desc)
|
||||
$list5 = $list->sort('"Record"."Name" DESC');
|
||||
$this->assertEquals($list5->toArray(), array(
|
||||
array('Name' => 'Steve'),
|
||||
array('Name' => 'John'),
|
||||
(object) array('Name' => 'Bob')
|
||||
));
|
||||
|
||||
// Table without quotes
|
||||
$list6 = $list->sort('Record.Name');
|
||||
$this->assertEquals($list6->toArray(), array(
|
||||
(object) array('Name' => 'Bob'),
|
||||
array('Name' => 'John'),
|
||||
array('Name' => 'Steve')
|
||||
));
|
||||
), $list3->toArray());
|
||||
|
||||
// Check original list isn't altered
|
||||
$this->assertEquals($list->toArray(), array(
|
||||
$this->assertEquals(array(
|
||||
array('Name' => 'Steve'),
|
||||
(object) array('Name' => 'Bob'),
|
||||
array('Name' => 'John')
|
||||
));
|
||||
array('Name' => 'John'),
|
||||
array('Name' => 'bonny'),
|
||||
array('Name' => 'bonny1'),
|
||||
array('Name' => 'bonny10'),
|
||||
array('Name' => 'bonny2'),
|
||||
), $list->toArray());
|
||||
|
||||
}
|
||||
|
||||
public function testSortSimpleASCOrder() {
|
||||
|
@ -542,6 +542,38 @@ class DataListTest extends SapphireTest {
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Test DataList->canFilterBy()
|
||||
*/
|
||||
public function testCanFilterBy() {
|
||||
// Basic check
|
||||
$team = DataObjectTest_Team::get();
|
||||
$this->assertTrue($team->canFilterBy("Title"));
|
||||
$this->assertFalse($team->canFilterBy("SomethingElse"));
|
||||
|
||||
// Has one
|
||||
$this->assertTrue($team->canFilterBy("CaptainID"));
|
||||
$this->assertTrue($team->canFilterBy("Captain.ShirtNumber"));
|
||||
$this->assertFalse($team->canFilterBy("SomethingElse.ShirtNumber"));
|
||||
$this->assertFalse($team->canFilterBy("Captain.SomethingElse"));
|
||||
$this->assertTrue($team->canFilterBy("Captain.FavouriteTeam.Captain.ShirtNumber"));
|
||||
|
||||
// Has many
|
||||
$this->assertTrue($team->canFilterBy("Fans.Name"));
|
||||
$this->assertFalse($team->canFilterBy("SomethingElse.Name"));
|
||||
$this->assertFalse($team->canFilterBy("Fans.SomethingElse"));
|
||||
|
||||
// Many many
|
||||
$this->assertTrue($team->canFilterBy("Players.FirstName"));
|
||||
$this->assertFalse($team->canFilterBy("SomethingElse.FirstName"));
|
||||
$this->assertFalse($team->canFilterBy("Players.SomethingElse"));
|
||||
|
||||
// Subclasses
|
||||
$subteam = DataObjectTest_SubTeam::get();
|
||||
$this->assertTrue($subteam->canFilterBy("Title"));
|
||||
$this->assertTrue($subteam->canFilterBy("SubclassDatabaseField"));
|
||||
}
|
||||
|
||||
/**
|
||||
* $list->filter('Name', 'bob'); // only bob in the list
|
||||
*/
|
||||
|
Loading…
Reference in New Issue
Block a user