Merge branch 'master' of github.com:octobercms/october

This commit is contained in:
alekseybobkov 2014-05-16 15:09:25 +11:00
commit 64cfb7eb87
70 changed files with 2904 additions and 1328 deletions

View File

@ -5,6 +5,12 @@
RewriteEngine On
##
## You may need to uncomment the following line for some hosting environments,
## if you have installed to a subdirectory, enter the name here also.
##
# RewriteBase /
##
## Handle resource requests
##

View File

@ -20,7 +20,7 @@ Please follow the following guides and code standards:
### Foundation library
The CMS uses [Laravel](http://four.laravel.com) as a foundation PHP framework.
The CMS uses [Laravel](http://laravel.com) as a foundation PHP framework.
### Contact
@ -29,3 +29,7 @@ You can communicate with us using the following mediums:
* [Follow us on Twitter](http://twitter.com/octobercms) for announcements and updates.
* [Follow us on Facebook](http://facebook.com/octobercms) for announcements and updates.
* [Join us on IRC](https://kiwiirc.com/client/irc.freenode.net/?nick=Octonaut|?#october) to chat with us.
### License
The OctoberCMS platform is open-sourced software licensed under the [MIT license](http://opensource.org/licenses/MIT).

View File

@ -79,11 +79,11 @@ class FormController extends ControllerBehavior
*/
$this->formWidget = $this->makeWidget('Backend\Widgets\Form', $config);
$this->formWidget->bind('form.extendFieldsBefore', function($host) {
$this->formWidget->bindEvent('form.extendFieldsBefore', function($host) {
$this->controller->formExtendFieldsBefore($host);
});
$this->formWidget->bind('form.extendFields', function($host) {
$this->formWidget->bindEvent('form.extendFields', function($host) {
$this->controller->formExtendFields($host);
});

View File

@ -128,23 +128,23 @@ class ListController extends ControllerBehavior
/*
* Extensibility helpers
*/
$widget->bind('list.extendQueryBefore', function($host, $query) use ($definition) {
$widget->bindEvent('list.extendQueryBefore', function($host, $query) use ($definition) {
$this->controller->listExtendQueryBefore($query, $definition);
});
$widget->bind('list.extendQuery', function($host, $query) use ($definition) {
$widget->bindEvent('list.extendQuery', function($host, $query) use ($definition) {
$this->controller->listExtendQuery($query, $definition);
});
$widget->bind('list.injectRowClass', function($host, $record) use ($definition) {
$widget->bindEvent('list.injectRowClass', function($host, $record) use ($definition) {
return $this->controller->listInjectRowClass($record, $definition);
});
$widget->bind('list.overrideColumnValue', function($host, $record, $column, $value) use ($definition) {
$widget->bindEvent('list.overrideColumnValue', function($host, $record, $column, $value) use ($definition) {
return $this->controller->listOverrideColumnValue($record, $column->columnName, $definition);
});
$widget->bind('list.overrideHeaderValue', function($host, $column, $value) use ($definition) {
$widget->bindEvent('list.overrideHeaderValue', function($host, $column, $value) use ($definition) {
return $this->controller->listOverrideHeaderValue($column->columnName, $definition);
});
@ -162,7 +162,7 @@ class ListController extends ControllerBehavior
* Link the Search Widget to the List Widget
*/
if ($searchWidget = $toolbarWidget->getSearchWidget()) {
$searchWidget->bind('search.submit', function() use ($widget, $searchWidget) {
$searchWidget->bindEvent('search.submit', function() use ($widget, $searchWidget) {
$widget->setSearchTerm($searchWidget->getActiveTerm());
return $widget->onRender();
});

View File

@ -498,7 +498,7 @@ class RelationController extends ControllerBehavior
$config->showCheckboxes = true;
$widget = $this->makeWidget('Backend\Widgets\Lists', $config);
$widget->bind('list.extendQueryBefore', function($host, $query) {
$widget->bindEvent('list.extendQueryBefore', function($host, $query) {
$this->relationObject->setQuery($query);
$this->relationObject->addConstraints();
});
@ -572,7 +572,7 @@ class RelationController extends ControllerBehavior
* Exclude exisiting relationships
*/
if ($this->manageMode == 'pivot' || $this->manageMode == 'list') {
$widget->bind('list.extendQueryBefore', function($host, $query) {
$widget->bindEvent('list.extendQueryBefore', function($host, $query) {
/*
* Where not in the current list of related records

View File

@ -1,3 +1,3 @@
<div data-control="toolbar">
<a href="<?= Backend::url('backend/groups/create') ?>" class="btn btn-primary oc-icon-plus">New Admin Group</a>
<a href="<?= Backend::url('backend/groups/create') ?>" class="btn btn-primary oc-icon-plus"><?= e(trans('backend::lang.user.group.new')) ?></a>
</div>

View File

@ -1,7 +1,7 @@
<?php Block::put('breadcrumb') ?>
<ul>
<li><a href="<?= Backend::url('backend/users') ?>">System Administrators</a></li>
<li><a href="<?= Backend::url('backend/groups') ?>">Manage Groups</a></li>
<li><a href="<?= Backend::url('backend/users') ?>"><?= e(trans('backend::lang.user.menu_label')) ?></a></li>
<li><a href="<?= Backend::url('backend/groups') ?>"><?= e(trans('backend::lang.user.group.menu_label')) ?></a></li>
<li><?= e($this->pageTitle) ?></li>
</ul>
<?php Block::endPut() ?>
@ -19,9 +19,9 @@
data-request="onSave"
data-hotkey="ctrl+s"
data-hotkey-mac="cmd+s"
data-load-indicator="Creating Group..."
data-load-indicator="<?= e(trans('backend::lang.form.creating')) ?>"
class="btn btn-primary">
Create
<?= e(trans('backend::lang.form.create')) ?>
</button>
<button
type="button"
@ -29,9 +29,9 @@
data-request-data="close:1"
data-hotkey="ctrl+s"
data-hotkey-mac="cmd+s"
data-load-indicator="Creating Group..."
data-load-indicator="<?= e(trans('backend::lang.form.creating')) ?>"
class="btn btn-default">
Create and Close
<?= e(trans('backend::lang.form.create_and_close')) ?>
</button>
</div>
</div>
@ -40,5 +40,5 @@
<?php else: ?>
<p class="flash-message static error"><?= e($this->fatalError) ?></p>
<p><a href="<?= Backend::url('backend/groups') ?>" class="btn btn-default">Return to the group list</a></p>
<p><a href="<?= Backend::url('backend/groups') ?>" class="btn btn-default"><?= e(trans('backend::lang.user.group.return')) ?></a></p>
<?php endif ?>

View File

@ -1,8 +1,8 @@
<div class="control-breadcrumb">
<?php Block::put('breadcrumb') ?>
<ul>
<li><a href="<?= Backend::url('backend/users') ?>">System Administrators</a></li>
<li><a href="<?= Backend::url('backend/users') ?>"><?= e(trans('backend::lang.user.menu_label')) ?></a></li>
<li><?= e($this->pageTitle) ?></li>
</ul>
</div>
<?php Block::endPut() ?>
<?= $this->listRender() ?>

View File

@ -1,7 +1,7 @@
<?php Block::put('breadcrumb') ?>
<ul>
<li><a href="<?= Backend::url('backend/users') ?>">System Administrators</a></li>
<li><a href="<?= Backend::url('backend/groups') ?>">Manage Groups</a></li>
<li><a href="<?= Backend::url('backend/users') ?>"><?= e(trans('backend::lang.user.menu_label')) ?></a></li>
<li><a href="<?= Backend::url('backend/groups') ?>"><?= e(trans('backend::lang.user.group.menu_label')) ?></a></li>
<li><?= e($this->pageTitle) ?></li>
</ul>
<?php Block::endPut() ?>
@ -20,9 +20,9 @@
data-request-data="redirect:0"
data-hotkey="ctrl+s"
data-hotkey-mac="cmd+s"
data-load-indicator="Saving Group..."
data-load-indicator="<?= e(trans('backend::lang.form.saving')) ?>"
class="btn btn-primary">
<u>S</u>ave
<?= e(trans('backend::lang.form.save')) ?>
</button>
<button
type="button"
@ -30,17 +30,17 @@
data-request-data="close:1"
data-hotkey="ctrl+enter"
data-hotkey-mac="cmd+enter"
data-load-indicator="Saving Group..."
data-load-indicator="<?= e(trans('backend::lang.form.saving')) ?>"
class="btn btn-default">
Save and Close
<?= e(trans('backend::lang.form.save_and_close')) ?>
</button>
<button
type="button"
class="btn btn-danger pull-right"
data-request="onDelete"
data-load-indicator="Deleting Group..."
data-request-confirm="Do you really want to delete this admin?">
Delete
data-load-indicator="<?= e(trans('backend::lang.form.deleting')) ?>"
data-request-confirm="<?= e(trans('backend::lang.user.group.delete_confirm')) ?>">
<?= e(trans('backend::lang.form.delete')) ?>
</button>
</div>
</div>
@ -49,5 +49,5 @@
<?php else: ?>
<p class="flash-message static error"><?= e($this->fatalError) ?></p>
<p><a href="<?= Backend::url('backend/groups') ?>" class="btn btn-default">Return to the group list</a></p>
<p><a href="<?= Backend::url('backend/groups') ?>" class="btn btn-default"><?= e(trans('backend::lang.user.group.return')) ?></a></p>
<?php endif ?>

View File

@ -1,6 +1,6 @@
<div data-control="toolbar">
<a href="<?= Backend::url('backend/users/create') ?>" class="btn btn-primary oc-icon-plus">New Admin</a>
<a href="<?= Backend::url('backend/groups') ?>" class="btn btn-default oc-icon-group">Manage Groups</a>
<a href="<?= Backend::url('backend/users/create') ?>" class="btn btn-primary oc-icon-plus"><?= e(trans('backend::lang.user.new')) ?></a>
<a href="<?= Backend::url('backend/groups') ?>" class="btn btn-default oc-icon-group"><?= e(trans('backend::lang.user.group.list_title')) ?></a>
<?php /* @todo
<div class="btn-group">
<button

View File

@ -1,6 +1,6 @@
<?php Block::put('breadcrumb') ?>
<ul>
<li><a href="<?= Backend::url('backend/users') ?>">System Administrators</a></li>
<li><a href="<?= Backend::url('backend/users') ?>"><?= e(trans('backend::lang.user.menu_label')) ?></a></li>
<li><?= e($this->pageTitle) ?></li>
</ul>
<?php Block::endPut() ?>
@ -19,9 +19,9 @@
data-request="onSave"
data-hotkey="ctrl+s"
data-hotkey-mac="cmd+s"
data-load-indicator="Creating Admin..."
data-load-indicator="<?= e(trans('backend::lang.form.creating')) ?>"
class="btn btn-primary">
Create
<?= e(trans('backend::lang.form.create')) ?>
</button>
<button
type="button"
@ -29,12 +29,12 @@
data-request-data="close:1"
data-hotkey="ctrl+enter"
data-hotkey-mac="cmd+enter"
data-load-indicator="Creating Admin..."
data-load-indicator="<?= e(trans('backend::lang.form.creating')) ?>"
class="btn btn-default">
Create and Close
<?= e(trans('backend::lang.form.create_and_close')) ?>
</button>
<span class="btn-text">
or <a href="<?= Backend::url('backend/users') ?>">Cancel</a>
<?= e(trans('backend::lang.form.or')) ?> <a href="<?= Backend::url('backend/users') ?>"><?= e(trans('backend::lang.form.cancel')) ?></a>
</span>
</div>
</div>
@ -57,6 +57,6 @@
<?= Block::placeholder('breadcrumb') ?>
</div>
<p class="flash-message static error"><?= e($this->fatalError) ?></p>
<p><a href="<?= Backend::url('backend/users') ?>" class="btn btn-default">Return to the administrator list</a></p>
<p><a href="<?= Backend::url('backend/users') ?>" class="btn btn-default"><?= e(trans('backend::lang.user.return')) ?></a></p>
</div>
<?php endif ?>

View File

@ -1,6 +1,6 @@
<?php Block::put('breadcrumb') ?>
<ul>
<li><a href="<?= Backend::url('backend/users') ?>">System Administrators</a></li>
<li><a href="<?= Backend::url('backend/users') ?>"><?= e(trans('backend::lang.user.menu_label')) ?></a></li>
<li><?= e($this->pageTitle) ?></li>
</ul>
<?php Block::endPut() ?>
@ -20,9 +20,9 @@
data-request-data="redirect:0"
data-hotkey="ctrl+s"
data-hotkey-mac="cmd+s"
data-load-indicator="Saving Admin..."
data-load-indicator="<?= e(trans('backend::lang.form.saving')) ?>"
class="btn btn-primary">
<u>S</u>ave
<?= e(trans('backend::lang.form.save')) ?>
</button>
<button
type="button"
@ -30,9 +30,9 @@
data-request-data="close:1"
data-hotkey="ctrl+enter"
data-hotkey-mac="cmd+enter"
data-load-indicator="Saving Admin..."
data-load-indicator="<?= e(trans('backend::lang.form.saving')) ?>"
class="btn btn-default">
Save and Close
<?= e(trans('backend::lang.form.save_and_close')) ?>
</button>
</div>
</div>
@ -54,6 +54,6 @@
<?= Block::placeholder('breadcrumb') ?>
</div>
<p class="flash-message static error"><?= e($this->fatalError) ?></p>
<p><a href="<?= Backend::url('backend/users') ?>" class="btn btn-default">Return to the administrator list</a></p>
<p><a href="<?= Backend::url('backend/users') ?>" class="btn btn-default"><?= e(trans('backend::lang.user.return')) ?></a></p>
</div>
<?php endif ?>

View File

@ -1,6 +1,6 @@
<?php Block::put('breadcrumb') ?>
<ul>
<li><a href="<?= Backend::url('backend/users') ?>">System Administrators</a></li>
<li><a href="<?= Backend::url('backend/users') ?>"><?= e(trans('backend::lang.user.menu_label')) ?></a></li>
<li><?= e($this->pageTitle) ?></li>
</ul>
<?php Block::endPut() ?>
@ -20,9 +20,9 @@
data-request-data="redirect:0"
data-hotkey="ctrl+s"
data-hotkey-mac="cmd+s"
data-load-indicator="Saving Admin..."
data-load-indicator="<?= e(trans('backend::lang.form.saving')) ?>"
class="btn btn-primary">
<u>S</u>ave
<?= e(trans('backend::lang.form.save')) ?>
</button>
<button
type="button"
@ -30,19 +30,19 @@
data-request-data="close:1"
data-hotkey="ctrl+enter"
data-hotkey-mac="cmd+enter"
data-load-indicator="Saving Admin..."
data-load-indicator="<?= e(trans('backend::lang.form.saving')) ?>"
class="btn btn-default">
Save and Close
<?= e(trans('backend::lang.form.save_and_close')) ?>
</button>
<span class="btn-text">
or <a href="<?= Backend::url('backend/users') ?>">Cancel</a>
<?= e(trans('backend::lang.form.or')) ?> <a href="<?= Backend::url('backend/users') ?>"><?= e(trans('backend::lang.form.cancel')) ?></a>
</span>
<button
type="button"
class="oc-icon-trash-o btn-icon danger pull-right"
data-request="onDelete"
data-load-indicator="Deleting Admin..."
data-request-confirm="Do you really want to delete this admin?">
data-load-indicator="<?= e(trans('backend::lang.form.deleting')) ?>"
data-request-confirm="<?= e(trans('backend::lang.user.delete_confirm')) ?>">
</button>
</div>
</div>
@ -65,6 +65,6 @@
<?= Block::placeholder('breadcrumb') ?>
</div>
<p class="flash-message static error"><?= e($this->fatalError) ?></p>
<p><a href="<?= Backend::url('backend/users') ?>" class="btn btn-default">Return to the administrator list</a></p>
<p><a href="<?= Backend::url('backend/users') ?>" class="btn btn-default"><?= e(trans('backend::lang.user.return')) ?></a></p>
</div>
<?php endif ?>

View File

@ -16,7 +16,7 @@ class DbBackendUserPreferences extends Migration
$table->string('group');
$table->string('item');
$table->text('value')->nullable();
$table->index(['user_id', 'namespace', 'group', 'item'], 'key_index');
$table->index(['user_id', 'namespace', 'group', 'item'], 'user_item_index');
});
}

View File

@ -0,0 +1,139 @@
<?php
return [
'field' => [
'invalid_type' => 'Ungültiger Feldtyp :type.',
'options_method_not_exists' => 'Die Model-Klasse :model muss eine Methode :method() mit Rückgabe der Werte von ":field" besitzen.',
],
'widget' => [
'not_registered' => "Ein Widget namens ':name' wurde nicht registriert",
'not_bound' => "Ein Widget mit dem Klassennamen ':name' wurde nicht mit dem Controller verbunden",
],
'page' => [
'untitled' => "Unbenannt",
],
'partial' => [
'not_found' => "Das Partial ':name' wurde nicht gefunden.",
],
'account' => [
'sign_out' => 'Abmelden',
'login' => 'Anmelden',
'reset' => 'Zurücksetzen',
'restore' => 'Wiederherstellen',
'login_placeholder' => 'Benutzername',
'password_placeholder' => 'Passwort',
'forgot_password' => "Passwort vergessen?",
'enter_email' => "Bitte E-Mail-Adresse eingeben",
'enter_login' => "Bitte Benutzernamen eingeben",
'email_placeholder' => "E-Mail",
'enter_new_password' => "Bitte ein neues Passwort eingeben",
'password_reset' => "Passwort zurücksetzen",
'restore_success' => "Eine E-Mail mit weiteren Anweisungen zum Zurücksetzen Ihres Passworts wurde an Sie versandt",
'restore_error' => "Ein Benutzer mit dem Namen ':login' wurde nicht gefunden",
'reset_success' => "Ihr Passwort wurde erfolgreich zurückgesetzt. Sie können sich jetzt anmelden.",
'reset_error' => "Konnte Passwort nicht zurücksetzen. Bitte erneut versuchen!",
'reset_fail' => "Passwort-Zurücksetzung nicht möglich!",
'apply' => 'Anwenden',
'cancel' => 'Abbrechen',
'delete' => 'Löschen',
'ok' => 'OK',
],
'dashboard' => [
'menu_label' => 'Dashboard',
],
'user' => [
'name' => 'Administrator',
'menu_label' => 'Administratoren',
'list_title' => 'Administratoren verwalten',
'new' => 'New Administrator',
'login' => "Anmelden",
'first_name' => "Vorname",
'last_name' => "Nachname",
'full_name' => "Kompletter Name",
'email' => "E-Mail",
'groups' => "Gruppen",
'groups_comment' => "Geben Sie hier die Gruppenzugehörigkeit an",
'avatar' => "Avatar",
'password' => "Passwort",
'password_confirmation' => "Passwort bestätigen",
'superuser' => "Super User",
'superuser_comment' => "Bestätigen Sie hier, um dem Nutzer Vollzugriff zu geben",
'send_invite' => 'Einladung per E-Mail versenden',
'send_invite_comment' => 'Hier bestätigen, dass eine Einladung per E-Mail erfolgt',
'delete_confirm' => 'Do you really want to delete this administrator?',
'return' => 'Return to the administrator list',
'group' => [
'name' => 'Gruppe',
'name_field' => 'Name',
'menu_label' => 'Gruppen',
'list_title' => 'Gruppen verwalten',
'new' => 'New Administrator Group',
'delete_confirm' => 'Do you really want to delete this administrator group?',
'return' => 'Return to the group list',
],
'preferences' => [
'not_authenticated' => 'Zum Speichern oder Anzeigen dieser Einstellungen liegt kein Nutzerkonto vor'
]
],
'list' => [
'default_title' => 'Auflisten',
'search_prompt' => 'Suchen...',
'no_records' => 'Keine Ergebnisse für diese Ansicht gefunden',
'missing_model' => 'In :class benutztes Lisstenverhalten hat kein Model definiert.',
'missing_column' => 'Keine Spaltendefinition für :columns.',
'missing_columns' => 'In :class benutzte Liste behinhaltet keine Spalten',
'missing_definition' => "Der Liste fehlt eine Spalte für ':field'.",
'behavior_not_ready' => 'Listenverhalten kann nicht initialisiert werden, überprüfen Sie den Aufruf von makeLists() in Ihrem Controller.',
],
'form' => [
'create_title' => "Neuer :name",
'update_title' => "Bearbeite :name",
'preview_title' => "Vorschau für :name",
'create_success' => ':name wurde erfolgreich erzeugt',
'update_success' => ':name wurde erfolgreich aktualisiert',
'delete_success' => ':name wurde erfolgreich gelöscht',
'missing_id' => "Formulardatensatz-ID (Form record ID) fehlt.",
'missing_model' => 'In :class genutztes Formularverhalten (behaviour) hat kein definiertes Model',
'missing_definition' => "Formverhalten fehlt ein Feld für ':field'.",
'not_found' => 'Formulareintrag mit der ID :id kann nicht gefunden werden.',
'create' => 'Create',
'create_and_close' => 'Create and close',
'creating' => 'Creating...',
'save' => 'Speichern',
'save_and_close' => 'Speichern und schließen',
'saving' => 'Wird gespeichert...',
'delete' => 'Löschen',
'deleting' => 'Deleting...',
'undefined_tab' => 'Divers',
'field_off' => 'Aus',
'field_on' => 'An',
'apply' => 'Anwenden',
'cancel' => 'Abbrechen',
'close' => 'Schließen',
'ok' => 'OK',
'or' => 'or',
'confirm_tab_close' => 'Wollen Sie den Tab wirklich schließen? Ungespeicherte Änderungen gehen verloren.',
'behavior_not_ready' => 'Formularverhalten kann nicht initialisiert werden, überprüfen Sie den Aufruf von makeLists() in Ihrem Controller.',
],
'relation' => [
'missing_definition' => "Verhalten (behaviour) der Verbindung umfasst keine Definition für ':field'.",
'missing_model' => "Verhalten (behaviour) der Verbindung, die in :class benutzt wird, hat kein definiertes Model",
'invalid_action_single' => "Dieser Vorgang kann nicht auf eine Einwege-Verbindung (singular) angewendet werden.",
'invalid_action_multi' => "Dieser Vorgang kann nicht auf eine Mehrwege-Verbindung (multiple) angewendet werden.",
'add' => "Hinzufügen",
'add_name' => ":name hinzufügen",
'create' => "Erstellen",
'create_name' => "Erstelle :name",
'remove' => "Entfernen",
'remove_name' => ":name entfernen",
'delete' => "Löschen",
'delete_name' => ":name löschen",
],
'model' => [
'name' => "Model",
'not_found' => "Model ':class' mit ID :id konnte nicht gefunden werden",
'missing_id' => "Für diesen Model-Datensatz ist keine ID angegeben",
'missing_relation' => "Model ':class' hat keine definierte Verbindung ':relation'.",
'invalid_class' => "In :class benutztes Model :model ist ungültig, da es von der Klasse \Model abgeleitet sein muss (inherit).",
],
];

View File

@ -45,6 +45,7 @@ return [
'name' => 'Administrator',
'menu_label' => 'Administrators',
'list_title' => 'Manage Administrators',
'new' => 'New Administrator',
'login' => "Login",
'first_name' => "First Name",
'last_name' => "Last Name",
@ -59,11 +60,16 @@ return [
'superuser_comment' => "Check this box to allow this person to access all areas.",
'send_invite' => 'Send invitation by email',
'send_invite_comment' => 'Use this checkbox to send an invitation to the user by email',
'delete_confirm' => 'Do you really want to delete this administrator?',
'return' => 'Return to the administrator list',
'group' => [
'name' => 'Group',
'name_field' => 'Name',
'menu_label' => 'Groups',
'list_title' => 'Manage Groups',
'new' => 'New Administrator Group',
'delete_confirm' => 'Do you really want to delete this administrator group?',
'return' => 'Return to the group list',
],
'preferences' => [
'not_authenticated' => 'There is no an authenticated user to load or save preferences for.'
@ -90,17 +96,22 @@ return [
'missing_model' => 'Form behavior used in :class does not have a model defined.',
'missing_definition' => "Form behavior does not contain a field for ':field'.",
'not_found' => 'Form record with an ID of :id could not be found.',
'create' => 'Create',
'create_and_close' => 'Create and close',
'creating' => 'Creating...',
'save' => 'Save',
'save_and_close' => 'Save and close',
'saving' => 'Saving...',
'delete' => 'Delete',
'deleting' => 'Deleting...',
'undefined_tab' => 'Misc',
'field_off' => 'Off',
'field_on' => 'On',
'apply' => 'Apply',
'cancel' => 'Cancel',
'close' => 'Close',
'delete' => 'Delete',
'ok' => 'OK',
'or' => 'or',
'confirm_tab_close' => 'Do you really want to close the tab? Unsaved changes will be lost.',
'behavior_not_ready' => 'Form behavior has not been initialized, check that you have called initForm() in your controller.',
],

View File

@ -44,7 +44,8 @@ return [
'user' => [
'name' => 'Beheerder',
'menu_label' => 'Beheerders',
'list_title' => 'Beheerders beheren',
'list_title' => 'Beheer Beheerders',
'new' => 'Nieuwe Beheerder',
'login' => "Gebruikersnaam",
'first_name' => "Voornaam",
'last_name' => "Achternaam",
@ -59,11 +60,16 @@ return [
'superuser_comment' => "Vink deze optie aan om de gebruiker volledige rechten tot het systeem te geven.",
'send_invite' => 'Stuur uitnodiging per e-mail',
'send_invite_comment' => 'Vink deze optie aan om de gebruiker een uitnodiging per e-mail te sturen',
'delete_confirm' => 'Weet je zeker dat je deze beheerder wilt verwijderen?',
'return' => 'Terug naar beheerdersoverzicht',
'group' => [
'name' => 'Groep',
'name_field' => 'Naam',
'menu_label' => 'Groepen',
'list_title' => 'Beheer Groepen',
'new' => 'Nieuwe Beheerdersgroep',
'delete_confirm' => 'Weet je zeker dat je deze beheerdersgroep wilt verwijderen?',
'return' => 'Terug naar groepenoverzicht',
],
'preferences' => [
'not_authenticated' => 'Er is geen geauthenticeerde gebruiker om gegevens voor te laden of op te slaan.'
@ -90,17 +96,22 @@ return [
'missing_model' => 'Geen model opgegeven voor het gedrag (behavior) van het formulier gebruikt in :class.',
'missing_definition' => "Het gedrag (behavior) van het formulier bevat geen kolom voor ':field'.",
'not_found' => 'Het formulier met record ID :id is niet gevonden.',
'create' => 'Maken',
'create_and_close' => 'Maken en sluiten',
'creating' => 'Maken...',
'save' => 'Opslaan',
'save_and_close' => 'Opslaan en sluiten',
'saving' => 'Opslaan...',
'delete' => 'Verwijderen',
'deleting' => 'Verwijderen...',
'undefined_tab' => 'Overig',
'field_off' => 'Uit',
'field_on' => 'Aan',
'apply' => 'Toepassen',
'cancel' => 'Annuleren',
'close' => 'Sluiten',
'delete' => 'Verwijderen',
'ok' => 'OK',
'or' => 'of',
'confirm_tab_close' => 'Weet je zeker dat je dit tabblad wilt sluiten? Niet opgeslagen wijzigingen gaan verloren.',
'behavior_not_ready' => 'Gedrag (behavior) van het formulier is niet geladen. Controleer of initForm() in de controller is aangeroepen.',
],

View File

@ -45,6 +45,7 @@ return [
'name' => 'Администратор',
'menu_label' => 'Администраторы',
'list_title' => 'Manage Administrators',
'new' => 'New Administrator',
'login' => "Login",
'first_name' => "First Name",
'last_name' => "Last Name",
@ -59,11 +60,16 @@ return [
'superuser_comment' => "Check this box to allow this person to access all areas.",
'send_invite' => 'Send invitation by email',
'send_invite_comment' => 'Use this checkbox to send an invitation to the user by email',
'delete_confirm' => 'Do you really want to delete this administrator?',
'return' => 'Return to the administrator list',
'group' => [
'name' => 'Group',
'name_field' => 'Name',
'menu_label' => 'Groups',
'list_title' => 'Manage Groups',
'new' => 'New Administrator Group',
'delete_confirm' => 'Do you really want to delete this administrator group?',
'return' => 'Return to the group list',
],
'preferences' => [
'not_authenticated' => 'Невозможно загрузить или сохранить настройки для неавторизованного пользователя.',
@ -90,17 +96,22 @@ return [
'missing_model' => 'Form used in :class does not have a model defined.',
'missing_definition' => "Form behavior does not contain a field for ':field'.",
'not_found' => 'Form record with an ID of :id could not be found.',
'create' => 'Create',
'create_and_close' => 'Create and close',
'creating' => 'Creating...',
'save' => 'Сохранить',
'save_and_close' => 'Сохранить и закрыть',
'saving' => 'Сохранение...',
'delete' => 'Delete',
'deleting' => 'Deleting...',
'undefined_tab' => 'Misc',
'field_off' => 'Off',
'field_on' => 'On',
'apply' => 'Apply',
'cancel' => 'Cancel',
'close' => 'Close',
'delete' => 'Delete',
'ok' => 'OK',
'or' => 'or',
'confirm_tab_close' => 'Закрыть закладку? Несохраненные изменения будут потеряны.',
'behavior_not_ready' => 'Form behavior has not been initialized, check that you have called initForm() in your controller.',
],

View File

@ -0,0 +1,139 @@
<?php
return [
'field' => [
'invalid_type' => 'Felaktig fälttyp använd :type.',
'options_method_not_exists' => 'Modelklassen :model måste definera en metod :method() som returnerar villkor för formfältet ":field"',
],
'widget' => [
'not_registered' => "En widget med klassnamnet ':name' har ej blivit registrerad",
'not_bound' => "En widget med klassnamnet ':name' saknas i controllern",
],
'page' => [
'untitled' => "Ej namngiven",
],
'partial' => [
'not_found' => "En partial med namn ':name' kunde ej hittas",
],
'account' => [
'sign_out' => 'Logga ut',
'login' => 'Logga in',
'reset' => 'Nollställ',
'restore' => 'Återställ',
'login_placeholder' => 'användarnamn',
'password_placeholder' => 'lösenord',
'forgot_password' => "Glömt ditt lösenord?",
'enter_email' => "Ange din epost-adress",
'enter_login' => "Ange ditt användarnamn",
'email_placeholder' => "epost",
'enter_new_password' => "Välj ett nytt lösenord",
'password_reset' => "Återställ lösenord",
'restore_success' => "Ett meddelande har sänts till din epost-adress med instruktioner om hur du återställer ditt lösenord",
'restore_error' => "En användare med användarnamnet ':login' kunde ej hittas",
'reset_success' => "Ditt lösenord har blivit återställt. Du kan nu logga in",
'reset_error' => "Felaktig data för lösenordsåterställning. Var vänlig prova igen",
'reset_fail' => "Det gick tyvärr inte att nollställa ditt lösenord",
'apply' => 'Spara',
'cancel' => 'Avbryt',
'delete' => 'Radera',
'ok' => 'OK',
],
'dashboard' => [
'menu_label' => 'Kontrollpanelen',
],
'user' => [
'name' => 'Administratör',
'menu_label' => 'Administratörer',
'list_title' => 'Hantera administratörer',
'new' => 'New Administrator',
'login' => "Logga in",
'first_name' => "Förnamn",
'last_name' => "Efternamn",
'full_name' => "Fullständigt namn",
'email' => "E-post",
'groups' => "Grupper",
'groups_comment' => "Välj vilken grupp denna person hör till",
'avatar' => "Avatar",
'password' => "Lösenord",
'password_confirmation' => "Bekräfta lösenord",
'superuser' => "Superanvändare",
'superuser_comment' => "Markera denna checkbox för att ge denna person tillgång till alla områden",
'send_invite' => 'Inbjudan är sänd via e-post',
'send_invite_comment' => 'Markera denna checkbox för att skicka en inbjudan till användaren via e-post',
'delete_confirm' => 'Do you really want to delete this administrator?',
'return' => 'Return to the administrator list',
'group' => [
'name' => 'Grupp',
'name_field' => 'Namn',
'menu_label' => 'Grupper',
'list_title' => 'Hantera grupper',
'new' => 'New Administrator Group',
'delete_confirm' => 'Do you really want to delete this administrator group?',
'return' => 'Return to the group list',
],
'preferences' => [
'not_authenticated' => 'Det finns ingen autentiserad användare att ladda eller spara inställningar för',
]
],
'list' => [
'default_title' => 'Lista',
'search_prompt' => 'Sök...',
'no_records' => 'Det finns inga träffar för denna vy',
'missing_model' => 'List-egenskapen i :class har ingen modell definerad',
'missing_column' => 'Det finns inga kolumndefinitioner för :columns',
'missing_columns' => 'Listan som används i :class har inga listkolumner definerade',
'missing_definition' => "Listegenskapen saknar en kolumn för ':field'",
'behavior_not_ready' => 'Listegenskapen har inte blivit initierad, kontrollera att du har anropat makeLists() i din controller',
],
'form' => [
'create_title' => "Ny :name",
'update_title' => "Redigera :name",
'preview_title' => "Förhandsgranska :name",
'create_success' => ':name är nu skapad',
'update_success' => ':name har blivit uppdaterad',
'delete_success' => ':name kunde ej raderas',
'missing_id' => "Record ID för formuläret har ej blivit specificerat",
'missing_model' => 'Formuläregenskapen som används i :class har ingen modell definierad',
'missing_definition' => "Formuläregenskapen saknar ett fält för ':field'",
'not_found' => 'Record ID :id för formuläret kunde ej hittas',
'create' => 'Create',
'create_and_close' => 'Create and close',
'creating' => 'Creating...',
'save' => 'Spara',
'save_and_close' => 'Spara och stäng',
'saving' => 'Sparar...',
'delete' => 'Radera',
'deleting' => 'Deleting...',
'undefined_tab' => 'Övrigt',
'field_off' => 'Av',
'field_on' => 'På',
'apply' => 'Spara',
'cancel' => 'Avbryt',
'close' => 'Stäng',
'ok' => 'OK',
'or' => 'or',
'confirm_tab_close' => 'Vill du verkligen stänga fliken? Ej sparade ändringar kommer gå förlorade',
'behavior_not_ready' => 'Formuläregenskap har ej blivit initierad, kontrollera att du anropat initForm() i din controller',
],
'relation' => [
'missing_definition' => "Relationen saknar en definintion för ':field'",
'missing_model' => "Relationen som används i :class har ingen modell definierad",
'invalid_action_single' => "Den här åtgärden kan inte appliceras på en enskild relation",
'invalid_action_multi' => "Denna åtgärd kan inte appliceras på flera relationer",
'add' => "Lägg till",
'add_name' => "Lägg till :name",
'create' => "Skapa",
'create_name' => "Skapa :name",
'remove' => "Ta bort",
'remove_name' => "Ta bort :name",
'delete' => "Radera",
'delete_name' => "Radera :name",
],
'model' => [
'name' => "Modell",
'not_found' => "Modellen ':class' med ID :id kunde ej hittas",
'missing_id' => "Det finns inget ID anviget för modellen",
'missing_relation' => "Modellen ':class' saknar en definition för ':relation'",
'invalid_class' => "Modellen :model i klass :class är ej giltig. Den måste ärva från \Model-klassen",
],
];

View File

@ -0,0 +1,139 @@
<?php
return [
'field' => [
'invalid_type' => 'Invalid field type used :type.',
'options_method_not_exists' => 'The model class :model must define a method :method() returning options for the ":field" form field.',
],
'widget' => [
'not_registered' => "A widget class name ':name' has not been registered",
'not_bound' => "A widget with class name ':name' has not been bound to the controller",
],
'page' => [
'untitled' => "Başlıksız",
],
'partial' => [
'not_found' => "':name' bölümü bulunamadı.",
],
'account' => [
'sign_out' => ıkış',
'login' => 'Giriş',
'reset' => 'Sıfırla',
'restore' => 'Geri yükle',
'login_placeholder' => 'kullanıcı adı',
'password_placeholder' => 'parola',
'forgot_password' => "Parolanızı mı unuttunuz?",
'enter_email' => "Email adresinizi girin",
'enter_login' => "Kullanıcı adınızı girin",
'email_placeholder' => "email",
'enter_new_password' => "Yeni Parolanızı girin",
'password_reset' => "Parola Sıfırla",
'restore_success' => "Email adresinize parolanızı nasıl sıfırlayacağınıza dair bilgiler gönderilmiştir.",
'restore_error' => "':login' kullanıcı adı bulunamadı.",
'reset_success' => "Parolanız başarıyla sıfırlandı. Giriş yapabilirsiniz.",
'reset_error' => "Hatalı giriş yaptınız. Lütfen tekrar deneyin!",
'reset_fail' => "Parolanız sıfırlanamıyor!",
'apply' => 'Onayla',
'cancel' => 'İptal',
'delete' => 'Sil',
'ok' => 'OK',
],
'dashboard' => [
'menu_label' => 'Pano',
],
'user' => [
'name' => 'Yönetici',
'menu_label' => 'Yöneticiler',
'list_title' => 'Yöneticileri Yönet',
'new' => 'New Administrator',
'login' => "Kullanıcı Adı",
'first_name' => "Adı",
'last_name' => "Soyadı",
'full_name' => "Tam Adı",
'email' => "Email",
'groups' => "Gruplar",
'groups_comment' => "Kullanıcının hangi gruba bağlı olduğunu belirleyin.",
'avatar' => "Avatar",
'password' => "Parola",
'password_confirmation' => "Parola Onayı",
'superuser' => "Süper Kullanıcı",
'superuser_comment' => "Kullanıcıya her alanda yetki vermek için burayı işaretleyin.",
'send_invite' => 'Email ile davet gönder',
'send_invite_comment' => 'Kullanıcının email adresine davet göndermek için burayı işaretleyin',
'delete_confirm' => 'Do you really want to delete this administrator?',
'return' => 'Return to the administrator list',
'group' => [
'name' => 'Grup',
'name_field' => 'Adı',
'menu_label' => 'Gruplar',
'list_title' => 'Grupları Yönet',
'new' => 'New Administrator Group',
'delete_confirm' => 'Do you really want to delete this administrator group?',
'return' => 'Return to the group list',
],
'preferences' => [
'not_authenticated' => 'There is no an authenticated user to load or save preferences for.'
]
],
'list' => [
'default_title' => 'Liste',
'search_prompt' => 'Arama...',
'no_records' => 'There are no records in this view.',
'missing_model' => 'List behavior used in :class does not have a model defined.',
'missing_column' => 'There are no column definitions for :columns.',
'missing_columns' => 'List used in :class has no list columns defined.',
'missing_definition' => "List behavior does not contain a column for ':field'.",
'behavior_not_ready' => 'List behavior has not been initialized, check that you have called makeLists() in your controller.',
],
'form' => [
'create_title' => ":name Oluştur",
'update_title' => ":name Düzenle",
'preview_title' => ":name Görüntüle",
'create_success' => ':name başarıyla oluşturuldu',
'update_success' => ':name başarıyla güncellendi',
'delete_success' => ':name başarıyla silindi',
'missing_id' => "Form record ID has not been specified.",
'missing_model' => 'Form behavior used in :class does not have a model defined.',
'missing_definition' => "Form behavior does not contain a field for ':field'.",
'not_found' => 'Form record with an ID of :id could not be found.',
'create' => 'Create',
'create_and_close' => 'Create and close',
'creating' => 'Creating...',
'save' => 'Kaydet',
'save_and_close' => 'Kaydet ve kapat',
'saving' => 'Kaydediliyor...',
'delete' => 'Sil',
'deleting' => 'Deleting...',
'undefined_tab' => 'Diğer',
'field_off' => 'Kapalı',
'field_on' => 'Açık',
'apply' => 'Kabul',
'cancel' => 'İptal',
'close' => 'Kapat',
'ok' => 'OK',
'or' => 'or',
'confirm_tab_close' => 'Bu sekmeyi kapatmak istediğinize gerçekten emin misiniz? Kaydedilmemiş değişiklikleri kaybedeceksiniz.',
'behavior_not_ready' => 'Form behavior has not been initialized, check that you have called initForm() in your controller.',
],
'relation' => [
'missing_definition' => "Relation behavior does not contain a definition for ':field'.",
'missing_model' => "Relation behavior used in :class does not have a model defined.",
'invalid_action_single' => "This action cannot be performed on a singular relationship.",
'invalid_action_multi' => "This action cannot be performed on a multiple relationship.",
'add' => "Ekle",
'add_name' => ":name Ekle",
'create' => "Oluştur",
'create_name' => ":name Oluştur",
'remove' => "Kaldır",
'remove_name' => ":name Kaldır",
'delete' => "Sil",
'delete_name' => ":name Sil",
],
'model' => [
'name' => "Model",
'not_found' => "Model ':class' with an ID of :id could not be found",
'missing_id' => "There is no ID specified for looking up the model record.",
'missing_relation' => "Model ':class' does not contain a definition for ':relation'.",
'invalid_class' => "Model :model used in :class is not valid, it must inherit the \Model class.",
],
];

View File

@ -218,7 +218,7 @@ class Form extends WidgetBase
* Extensibility
*/
Event::fire('backend.form.extendFieldsBefore', [$this]);
$this->trigger('form.extendFieldsBefore', $this);
$this->fireEvent('form.extendFieldsBefore', $this);
/*
* Outside fields
@ -248,7 +248,7 @@ class Form extends WidgetBase
* Extensibility
*/
Event::fire('backend.form.extendFields', [$this]);
$this->trigger('form.extendFields', $this);
$this->fireEvent('form.extendFields', $this);
/*
* Convert automatic spanned fields

View File

@ -259,7 +259,7 @@ class Lists extends WidgetBase
* Extensibility
*/
Event::fire('backend.list.extendQueryBefore', [$this, $query]);
$this->trigger('list.extendQueryBefore', $this, $query);
$this->fireEvent('list.extendQueryBefore', [$this, $query]);
/*
* Related custom selects, must come first
@ -274,7 +274,18 @@ class Lists extends WidgetBase
$alias = Db::getQueryGrammar()->wrap($column->columnName);
$table = $this->model->makeRelation($column->relation)->getTable();
$sqlSelect = $this->parseTableName($column->sqlSelect, $table);
$selects[] = Db::raw("group_concat(" . $sqlSelect . " separator ', ') as ". $alias);
switch (Db::getDefaultConnection()) {
default:
case 'mysql':
$selects[] = Db::raw("group_concat(" . $sqlSelect . " separator ', ') as ". $alias);
break;
case 'sqlite':
$selects[] = Db::raw("group_concat(" . $sqlSelect . ", ', ') as ". $alias);
break;
}
$joins[] = $column->relation;
$tables[$column->relation] = $table;
}
@ -331,7 +342,7 @@ class Lists extends WidgetBase
* Extensibility
*/
Event::fire('backend.list.extendQuery', [$this, $query]);
$this->trigger('list.extendQuery', $this, $query);
$this->fireEvent('list.extendQuery', [$this, $query]);
// Grouping due to the joinWith() call
$query->select($selects);
@ -514,11 +525,11 @@ class Lists extends WidgetBase
/*
* Extensibility
*/
if (($response = Event::fire('backend.list.overrideHeaderValue', [$this, $column, $value])) && is_array($response))
$value = array_pop($response);
if ($response = Event::fire('backend.list.overrideHeaderValue', [$this, $column, $value], true))
$value = $response;
if (($response = $this->trigger('list.overrideHeaderValue', $this, $column, $value)) && is_array($response))
$value = array_pop($response);
if ($response = $this->fireEvent('list.overrideHeaderValue', [$this, $column, $value], true))
$value = $response;
return $value;
}
@ -536,11 +547,11 @@ class Lists extends WidgetBase
/*
* Extensibility
*/
if (($response = Event::fire('backend.list.overrideColumnValue', [$this, $record, $column, $value])) && is_array($response))
$value = array_pop($response);
if ($response = Event::fire('backend.list.overrideColumnValue', [$this, $record, $column, $value], true))
$value = $response;
if (($response = $this->trigger('list.overrideColumnValue', $this, $record, $column, $value)) && is_array($response))
$value = array_pop($response);
if ($response = $this->fireEvent('list.overrideColumnValue', [$this, $record, $column, $value], true))
$value = $response;
return $value;
}
@ -557,11 +568,11 @@ class Lists extends WidgetBase
/*
* Extensibility
*/
if (($response = Event::fire('backend.list.injectRowClass', [$this, $record])) && is_array($response))
$value = array_pop($response);
if ($response = Event::fire('backend.list.injectRowClass', [$this, $record], true))
$value = $response;
if (($response = $this->trigger('list.injectRowClass', $this, $record)) && is_array($response))
$value = array_pop($response);
if ($response = $this->fireEvent('list.injectRowClass', [$this, $record], true))
$value = $response;
return $value;
}

View File

@ -90,7 +90,7 @@ class Search extends WidgetBase
* Trigger class event, merge results as viewable array
*/
$params = func_get_args();
$result = $this->trigger('search.submit', $params);
$result = $this->fireEvent('search.submit', [$params]);
return Util::arrayMerge($result);
}

View File

@ -7,7 +7,7 @@
name="<?= $field->getName() ?>"
id="<?= $field->getId() ?>"
value="<?= e($field->value) ?>"
placeholder="<?= e($field->placeholder) ?>"
placeholder="<?= e(trans($field->placeholder)) ?>"
class="form-control"
autocomplete="off"
maxlength="255"

View File

@ -7,6 +7,6 @@
id="<?= $field->getId() ?>"
autocomplete="off"
class="form-control field-textarea size-<?= $field->size ?>"
placeholder="<?= $field->placeholder ?>"
placeholder="<?= e(trans($field->placeholder)) ?>"
<?= HTML::attributes($field->attributes) ?>><?= e($field->value) ?></textarea>
<?php endif?>

View File

@ -5,7 +5,7 @@
<div class="<?= $isStretch?'layout-row min-size':'' ?>">
<ul class="nav nav-tabs">
<?php $index = 0; foreach ($tabs as $name => $fields): ?>
<li class="<?= $index++==0?'active':''?>"><a href="#<?= $type.'tab-'.$index ?>"><?= $name ?></a></li>
<li class="<?= $index++==0?'active':''?>"><a href="#<?= $type.'tab-'.$index ?>"><?= e(trans($name)) ?></a></li>
<?php endforeach ?>
</ul>
</div>

View File

@ -338,7 +338,7 @@ class CmsObject
}
clearstatcache();
$this->mtime = File::lastModified($fullPath);
$this->mtime = @File::lastModified($fullPath);
$this->originalFileName = $this->fileName;
}

View File

@ -111,8 +111,8 @@ class Controller extends BaseController
/*
* Extensibility
*/
if (($event = Event::fire('cms.beforeDisplay', [$this, $url, $page])) && is_array($event))
return array_pop($event);
if ($event = Event::fire('cms.beforeDisplay', [$this, $url, $page], true))
return $event;
/*
* If the page was not found, render the 404 page - either provided by the theme or the built-in one.
@ -190,8 +190,8 @@ class Controller extends BaseController
/*
* Extensibility
*/
if (($event = Event::fire('cms.afterDisplay', [$this, $url, $page])) && is_array($event))
return array_pop($event);
if ($event = Event::fire('cms.afterDisplay', [$this, $url, $page], true))
return $event;
return $result;
}

View File

@ -1,6 +1,6 @@
fields:
fileName:
label: File Name
label: cms::lang.editor.filename
attributes:
default-focus: 1
@ -13,7 +13,7 @@ secondaryTabs:
stretch: true
fields:
content:
tab: Content
tab: cms::lang.editor.content
type: codeeditor
stretch: true
options:

View File

@ -1,6 +1,6 @@
fields:
fileName:
label: File Name
label: cms::lang.editor.filename
attributes:
default-focus: 1
@ -13,7 +13,7 @@ secondaryTabs:
stretch: true
fields:
content:
tab: Content
tab: cms::lang.editor.content
type: codeeditor
stretch: true
options:

View File

@ -1,12 +1,12 @@
fields:
fileName:
label: File Name
label: cms::lang.editor.filename
span: left
attributes:
default-focus: 1
settings[description]:
label: Description
label: cms::lang.editor.description
span: right
toolbar:
@ -20,14 +20,14 @@ secondaryTabs:
stretch: true
fields:
markup:
tab: Markup
tab: cms::lang.editor.markup
type: codeeditor
stretch: true
options:
language: twig
code:
tab: Code
tab: cms::lang.editor.code
type: codeeditor
stretch: true
options:

View File

@ -1,15 +1,15 @@
fields:
settings[title]:
span: left
label: Title
placeholder: New page title
label: cms::lang.editor.title
placeholder: cms::lang.editor.new_title
attributes:
default-focus: 1
settings[url]:
span: right
placeholder: /
label: URL
label: cms::lang.editor.url
attributes:
data-input-preset: 'input[name="settings[title]"]'
data-input-preset-type: url
@ -31,34 +31,34 @@ tabs:
# type: checkbox
fileName:
tab: Settings
tab: cms::lang.editor.settings
span: left
label: File Name
label: cms::lang.editor.filename
attributes:
data-input-preset: 'input[name="settings[title]"]'
data-input-preset-type: file
data-input-preset-closest-parent: form
settings[layout]:
tab: Settings
tab: cms::lang.editor.settings
span: right
label: Layout
label: cms::lang.editor.layout
type: dropdown
options: getLayoutOptions
settings[description]:
tab: Settings
label: Description
tab: cms::lang.editor.settings
label: cms::lang.editor.description
type: textarea
size: tiny
settings[meta_title]:
tab: Meta
label: Meta Title
tab: cms::lang.editor.meta
label: cms::lang.editor.meta_title
settings[meta_description]:
tab: Meta
label: Meta Description
tab: cms::lang.editor.meta
label: cms::lang.editor.meta_description
type: textarea
size: tiny
@ -66,14 +66,14 @@ secondaryTabs:
stretch: true
fields:
markup:
tab: Markup
tab: cms::lang.editor.markup
type: codeeditor
stretch: true
options:
language: twig
code:
tab: Code
tab: cms::lang.editor.code
type: codeeditor
stretch: true
options:

View File

@ -1,13 +1,13 @@
fields:
fileName:
span: left
label: File Name
label: cms::lang.editor.filename
attributes:
default-focus: 1
settings[description]:
span: right
label: Description
label: cms::lang.editor.description
toolbar:
type: partial
@ -18,7 +18,7 @@ secondaryTabs:
stretch: true
fields:
markup:
tab: Markup
tab: cms::lang.editor.markup
type: codeeditor
stretch: true
options:

View File

@ -6,7 +6,7 @@
data-load-indicator="<?= e(trans('backend::lang.form.saving')) ?>"
data-hotkey="ctrl+s"
data-hotkey-mac="cmd+s">
<?= e(trans('backend::lang.form.save')) ?>
<?= e(trans('backend::lang.form.save')) ?>
</a>
<?php
@ -17,7 +17,7 @@
target="_blank"
class="btn btn-primary oc-icon-screenshot <?php if (!$templatePath): ?>hide<?php endif ?>"
data-control="preview-button">
Preview
<?= e(trans('cms::lang.editor.preview')) ?>
</a>
<button

View File

@ -0,0 +1,152 @@
<?php
return [
'cms_object' => [
'invalid_file' => 'Ungültiger Dateiname: :name. Diese dürfen nur alphanumerische Symbole, Unter- und Bindestriche sowie Punkte enthalten. Beispiele: page.htm, page, subdirectory/page',
'invalid_property' => 'Die Eigenschaft ":name" kann nicht angewendet werden',
'file_already_exists' => 'Datei ":name" existiert bereits.',
'error_saving' => 'Fehler beim Speichern von ":name".',
'error_creating_directory' => 'Fehler beim Erstellen von Verzeichnis mit Namen :name',
'invalid_file_extension'=>'Ungültige Dateiendung: :invalid. Erlaubt sind: :allowed.',
'error_deleting' => 'Fehler beim Löschen der Template-Datei ":name".',
'delete_success' => 'Templates wurden erfolgreich gelöscht: :count.',
'file_name_required' => 'Ein Dateiname ist erforderlich.'
],
'theme' => [
'active' => [
'not_set' => "Aktives Theme nicht definiert",
],
'edit' => [
'not_set' => "Edit Theme nicht definiert",
'not_found' => "Edit Theme nicht gefunden.",
'not_match' => "Das Objekt, das sie anzupassen versuchen gehört nicht zum Theme in Bearbeitung. Bitte laden Sie die Seite erneut."
]
],
'page' => [
'not_found' => [
'label' => "Seite nicht gefunden",
'help' => "Die angeforderte Seite kann nicht gefunden werden.",
],
'custom_error' => [
'label' => "Seitenfehler",
'help' => "Entschuldigung, ein Fehler trat auf, sodass die gewünschte Seite nicht angezeigt werden kann.",
],
'menu_label' => 'Seiten',
'no_list_records' => 'Keine Seiten gefunden',
'new' => 'Neue Seite',
'invalid_url' => 'Ungültiges URL-Format. Die URL muss mit einem Slash beginnen und darf nur Ziffern, lateinische Zeichen und die folgenden Symbole beinhalten: _-[]:?|/+*',
'delete_confirm_multiple' => 'Wollen Sie die ausgewählten Seiten wirklich löschen?',
'delete_confirm_single' => 'Wollen Sie diese Seite wirklich löschen?',
'no_layout' => '-- Kein Layout --'
],
'layout' => [
'not_found' => "Das Layout ':name' wurde nicht gefunden",
'menu_label' => 'Layouts',
'no_list_records' => 'Keine Layouts gefunden',
'new' => 'Neues Layout',
'delete_confirm_multiple' => 'Wollen Sie die ausgewählten Layouts wirklich löschen?',
'delete_confirm_single' => 'Wollen Sie das ausgewählte Layout wirklich löschen?'
],
'partial' => [
'invalid_name' => "Ungültiger Partial-Name: :name.",
'not_found' => "Das Partial ':name' wurde nicht gefunden.",
'menu_label' => 'Partials',
'no_list_records' => 'Keine Partials gefunden',
'delete_confirm_multiple' => 'Wollen Sie die ausgewählten Partials wirklich löschen?',
'delete_confirm_single' => 'Wollen Sie das ausgewählte Partial wirklich löschen?',
'new' => 'Neues Partial'
],
'content' => [
'not_found' => "Die Inhaltsdatei ':name' wurde nicht gefundne.",
'menu_label' => 'Inhalt',
'no_list_records' => 'Keine Inhaltsdateien gefunden',
'delete_confirm_multiple' => 'Wollen Sie die ausgewählten Inhalte und Verzeichnisse wirklich löschen?',
'delete_confirm_single' => 'Wollen Sie diese Inhaltsdatei wirklich löschen?',
'new' => 'Neue Inhaltsdatei'
],
'ajax_handler' => [
'invalid_name' => "Ungültiger Name für AJAX Handler: :name.",
'not_found' => "AJAX Handler ':name' wurde nicht gefunden.",
],
'combiner' => [
'not_found' => "Die combiner Datei ':name' wurde nicht gefunden.",
],
'cms' => [
'menu_label' => "CMS"
],
'sidebar' => [
'add' => 'Add',
'search' => 'Search...'
],
'editor' => [
'settings' => 'Settings',
'title' => 'Title',
'new_title' => 'New page title',
'url' => 'URL',
'filename' => 'File Name',
'layout' => 'Layout',
'description' => 'Description',
'preview' => 'Preview',
'meta' => 'Meta',
'meta_title' => 'Meta Title',
'meta_description' => 'Meta Description',
'markup' => 'Markup',
'code' => 'Code',
'content' => 'Content',
],
'asset' => [
'menu_label' => "Assets",
'drop_down_add_title' => 'Hinzufügen...',
'drop_down_operation_title' => 'Aktion...',
'upload_files' => 'Datei(en) hochladen',
'create_file' => 'Datei erstellen',
'create_directory' => 'Verzeichnis erstellen',
'rename' => 'Umbenennen',
'delete' => 'Löschen',
'move' => 'Bewegen',
'new' => 'Neue Datei',
'rename_popup_title' => 'Umbenennen',
'rename_new_name' => 'Neuer Name',
'invalid_path' => 'Pfade dürfen ausschließlich Ziffern, lateinische Zeichen, Leerzeichen sowie die folgenden Symbole enthalten: ._-/',
'error_deleting_file' => 'Fehler beim Löschen der Datei :name.',
'error_deleting_dir_not_empty' => 'Fehler beim Löschen des Verzeichnisses :name, da es nicht leer ist.',
'error_deleting_dir' => 'Fehler beim Löschen der Datei :name.',
'invalid_name' => 'Asset-Name darf nur Ziffern, lateinische Zeichen, Leerzeichen sowie die folgenden Symbole enthalten: ._-',
'original_not_found' => 'Originaldatei oder -verzeichnis wurde nicht gefunden',
'already_exists' => 'Datei oder Verzeichnis mit diesem Namen existiert bereits',
'error_renaming' => 'Fehler beim Umbenennen der Datei bzw. des Verzeichnisses',
'name_cant_be_empty' => 'Es muss ein Name angegeben werden',
'too_large' => 'Die hochzuladende Datei ist zu groß. Sie dürfen maximal Dateien der Größe :max_size hochladen',
'type_not_allowed' => 'Es sind ausschließlich folgende Dateiendungen erlaubt: :allowed_types',
'file_not_valid' => 'Datei ist ungültig',
'error_uploading_file' => 'Fehler beim Hochladen der Datei ":name": :error',
'move_please_select' => 'Bitte auswählen',
'move_destination' => 'Zielverzeichnis',
'move_popup_title' => 'Assets bewegen',
'move_button' => 'Bewegen',
'selected_files_not_found' => 'Ausgewählte Dateien nicht gefunden',
'select_destination_dir' => 'Bitte wählen Sie ein Zielverzeichnis aus',
'destination_not_found' => 'Zielverzeichnis wurde nicht gefunden',
'error_moving_file' => 'Fehler beim Bewegen der Datei :file',
'error_moving_directory' => 'Fehler beim Bewegen des Verzeichnisses :dir',
'error_deleting_directory' => 'Fehler beim Löschen des Originalverzeichnisses :dir',
'path' => 'Pfad'
],
'component' => [
'menu_label' => "Komponenten",
'unnamed' => "Unbenannt",
'no_description' => "Keine Beschreibung angegeben",
'alias' => "Verknüpfung",
'alias_description' => "Dieser Komponente wird ein eindeutiger Name gegeben, wenn sie im Code von Seite oder Layout benutzt wird.",
'validation_message' => "Komponentenverknüpfungen werden benötigt und dürfen nur lateinische Zeichen, Ziffern und Unterstriche beinhalten. Die Verknüpfungen müssen mit einem lateinischen Zeichen beginnen.",
'invalid_request' => "Aufgrund ungültiger Komponentendaten kann das Template nicht gespeichert werden.",
'no_records' => 'Keine Komponenten gefunden',
'not_found' => "Die Komponente ':name' wurde nicht gefunden.",
'method_not_found' => "Die Komponente ':name' enthält keine Methode mit Namen ':method'.",
],
'template' => [
'invalid_type' => "Unbekannter Template-Typ.",
'not_found' => "Das angeforderte Template wurde nicht gefunden.",
'saved'=> "Das Template wurde erfolgreich gespeichert."
]
];

View File

@ -5,7 +5,7 @@ return [
'invalid_file' => 'Invalid file name: :name. File names can contain only alphanumeric symbols, underscores, dashes and dots. Some examples of correct file names: page.htm, page, subdirectory/page',
'invalid_property' => 'The property ":name" cannot be set',
'file_already_exists' => 'File ":name" already exists.',
'error_saving' => 'Eror saving file ":name".',
'error_saving' => 'Error saving file ":name".',
'error_creating_directory' => 'Error creating directory :name',
'invalid_file_extension'=>'Invalid file extension: :invalid. Allowed extensions are: :allowed.',
'error_deleting' => 'Error deleting the template file ":name".',
@ -74,6 +74,26 @@ return [
'cms' => [
'menu_label' => "CMS"
],
'sidebar' => [
'add' => 'Add',
'search' => 'Search...'
],
'editor' => [
'settings' => 'Settings',
'title' => 'Title',
'new_title' => 'New page title',
'url' => 'URL',
'filename' => 'File Name',
'layout' => 'Layout',
'description' => 'Description',
'preview' => 'Preview',
'meta' => 'Meta',
'meta_title' => 'Meta Title',
'meta_description' => 'Meta Description',
'markup' => 'Markup',
'code' => 'Code',
'content' => 'Content',
],
'asset' => [
'menu_label' => "Assets",
'drop_down_add_title' => 'Add...',

View File

@ -74,6 +74,26 @@ return [
'cms' => [
'menu_label' => "CMS"
],
'sidebar' => [
'add' => 'Toevoegen',
'search' => 'Zoeken...'
],
'editor' => [
'settings' => 'Instellingen',
'title' => 'Titel',
'new_title' => 'Nieuwe paginatitel',
'url' => 'URL',
'filename' => 'Bestandsnaam',
'layout' => 'Layout',
'description' => 'Omschrijving',
'preview' => 'Voorbeeld',
'meta' => 'Meta',
'meta_title' => 'Meta Titel',
'meta_description' => 'Meta Omschrijving',
'markup' => 'Opmaak',
'code' => 'Code',
'content' => 'Content',
],
'asset' => [
'menu_label' => "Middelen",
'drop_down_add_title' => 'Toevoegen...',

View File

@ -74,6 +74,26 @@ return [
'cms' => [
'menu_label' => "CMS"
],
'sidebar' => [
'add' => 'Add',
'search' => 'Search...'
],
'editor' => [
'settings' => 'Settings',
'title' => 'Title',
'new_title' => 'New page title',
'url' => 'URL',
'filename' => 'File Name',
'layout' => 'Layout',
'description' => 'Description',
'preview' => 'Preview',
'meta' => 'Meta',
'meta_title' => 'Meta Title',
'meta_description' => 'Meta Description',
'markup' => 'Markup',
'code' => 'Code',
'content' => 'Content',
],
'asset' => [
'menu_label' => "Ресурсы",
'drop_down_add_title' => 'Добавить...',

View File

@ -0,0 +1,152 @@
<?php
return [
'cms_object' => [
'invalid_file' => 'Felaktigt filnamn: :name. Filnamn kan endast innehålla alfanumeriska tecken, understreck, streck och punkter. Några exempel på korrekta filnamn är: sida.htm, sida, undermapp/sida',
'invalid_property' => 'Egenskapen ":name" kunde inte sättas',
'file_already_exists' => 'Filen ":name" finns redan',
'error_saving' => 'Ett fel inträffade när ":name" skulle sparas',
'error_creating_directory' => 'Ett fel inträffade när mappen :name skulle skapas',
'invalid_file_extension'=>'Felaktig filändelse: :invalid. Tillåtna filändelser är: :allowed.',
'error_deleting' => 'Det gick inte att radera mallfilen: ":name".',
'delete_success' => 'Mallarna är nu raderade: :count.',
'file_name_required' => 'Filnamnsfältet är obligatoriskt.'
],
'theme' => [
'active' => [
'not_set' => "Ett aktivt tema är ej satt",
],
'edit' => [
'not_set' => "Redigeringstemat är ej satt",
'not_found' => "Redigeringstemat kunde ej hittas",
'not_match' => "Objketet du försöker komma åt tillhör inte det tema som för håller på att redigeras. Var god ladda om sidan",
]
],
'page' => [
'not_found' => [
'label' => "Sidan kunde ej hittas",
'help' => "Den begärda sidan kunde ej hittas",
],
'custom_error' => [
'label' => "Sidfel",
'help' => "Tyvärr kan inte sidan visas",
],
'menu_label' => 'Sidor',
'no_list_records' => 'Inga sidor funna',
'new' => 'Ny sida',
'invalid_url' => 'Felaktigt URL-format. URLen skall starta med ett / och kan innehålla siffror, bokstäver och följande tecken: _-[]:?|/+*',
'delete_confirm_multiple' => 'Vill du verkligen radera markerade sidor?',
'delete_confirm_single' => 'Vill du verkligen radera denna sida?',
'no_layout' => '-- ingen layout --'
],
'layout' => [
'not_found' => "Layouten ':name' hittades ej",
'menu_label' => 'Layouter',
'no_list_records' => 'Inga layouter funna',
'new' => 'Ny layout',
'delete_confirm_multiple' => 'Vill du verkligen radera valda layouter?',
'delete_confirm_single' => 'Vill du verkligen radera denna layouter?'
],
'partial' => [
'invalid_name' => "Felaktigt partialnamn: :name",
'not_found' => "En partial med namnet ':name' kunde ej hittas",
'menu_label' => 'Partials',
'no_list_records' => 'Inga partials funna',
'delete_confirm_multiple' => 'Vill du verkligen radera markerade partials?',
'delete_confirm_single' => 'Vill du verkligen radera denna partial?',
'new' => 'Ny partial'
],
'content' => [
'not_found' => "Content-filen ':name' kunde ej hittas",
'menu_label' => 'Content',
'no_list_records' => 'Inga content-filer funna',
'delete_confirm_multiple' => 'Vill du verkligen radera markerade filer eller mappar?',
'delete_confirm_single' => 'Vill du verkligen radera denna content-fil?',
'new' => 'Ny content-fil'
],
'ajax_handler' => [
'invalid_name' => "Felaktig AJAX-hanterare: :name",
'not_found' => "AJAX-hanterare ':name' kunde ej hittas",
],
'combiner' => [
'not_found' => "Kombinationsfilen ':name' kunde ej hittas",
],
'cms' => [
'menu_label' => "CMS"
],
'sidebar' => [
'add' => 'Add',
'search' => 'Search...'
],
'editor' => [
'settings' => 'Settings',
'title' => 'Title',
'new_title' => 'New page title',
'url' => 'URL',
'filename' => 'File Name',
'layout' => 'Layout',
'description' => 'Description',
'preview' => 'Preview',
'meta' => 'Meta',
'meta_title' => 'Meta Title',
'meta_description' => 'Meta Description',
'markup' => 'Markup',
'code' => 'Code',
'content' => 'Content',
],
'asset' => [
'menu_label' => "Assets",
'drop_down_add_title' => 'Lägg till...',
'drop_down_operation_title' => 'Åtgärd...',
'upload_files' => 'Ladda upp fil(er)',
'create_file' => 'Skapa fil',
'create_directory' => 'Skapa mapp',
'rename' => 'Döp om',
'delete' => 'Radera',
'move' => 'Flytta',
'new' => 'Ny fil',
'rename_popup_title' => 'Byt namn',
'rename_new_name' => 'Nytt namn',
'invalid_path' => 'Sökvägen kan endast innehålla siffror, bokstäver, mellanslag och följande tecken: ._-/',
'error_deleting_file' => 'Kunde inte radera filen :name.',
'error_deleting_dir_not_empty' => 'Ett fel uppstod vid försök att radera :name. Mappen är ej tom',
'error_deleting_dir' => 'Kunde inte radera filen :name.',
'invalid_name' => 'Namn kan endast innehålla siffror, bokstäver, mellanslag och följande tecken: ._-',
'original_not_found' => 'Orginalfilen eller mappen kunde ej hittas',
'already_exists' => 'En fil eller mapp med detta namn finns redan',
'error_renaming' => 'Ett fel uppstod vid namnbyte på filen eller mappen',
'name_cant_be_empty' => 'Namn får ej vara tomt',
'too_large' => 'Den uppladdade filen är för stor. Tillåten filstorlek är :max_size',
'type_not_allowed' => 'Endast följande filtyper är tillåtna: :allowed_types',
'file_not_valid' => 'Filen är inte korrekt',
'error_uploading_file' => 'Ett fel uppstod vid uppladdning av ":name" :error',
'move_please_select' => 'Var god välj',
'move_destination' => 'Destionationsmapp',
'move_popup_title' => 'Flytta assets',
'move_button' => 'Flytta',
'selected_files_not_found' => 'Valda filer kunde ej hittas',
'select_destination_dir' => 'Var god välj en destinationsmapp',
'destination_not_found' => 'Destinationsmappen kunde ej hittas',
'error_moving_file' => 'Ett fel uppstod vid flytt av fil :file',
'error_moving_directory' => 'Ett fel uppstod vid flytt av mapp :dir',
'error_deleting_directory' => 'Ett fel uppstod vid radering av orginalmapp :dir',
'path' => 'Sökväg'
],
'component' => [
'menu_label' => "Komponent",
'unnamed' => "Ej namngiven",
'no_description' => "Ingen beskrivning",
'alias' => "Alias",
'alias_description' => "Ett unikt namn för denna komponent, när den skall användas i sid- eller layoutkod",
'validation_message' => "Komponentalias är obligatoriska och får endast innehålla bokstäver, siffror, och understreck. De måste börja med en bokstav",
'invalid_request' => "Mallen kunde inte sparas pga felaktig komponentdata",
'no_records' => 'Inga komponenter funna',
'not_found' => "Komponenten ':name' kunde ej hittas",
'method_not_found' => "Komponenten ':name' saknar metoden ':method'",
],
'template' => [
'invalid_type' => "Felaktig malltyp",
'not_found' => "Den angivna mallen kunde ej hittas",
'saved'=> "Mallen har sparats"
]
];

View File

@ -0,0 +1,152 @@
<?php
return [
'cms_object' => [
'invalid_file' => 'Hatalı dosya adı: :name. File names can contain only alphanumeric symbols, underscores, dashes and dots. Bazı doğru dosya adı örnekleri: page.htm, page, subdirectory/page',
'invalid_property' => 'The property ":name" cannot be set',
'file_already_exists' => '":name" isimli dosya mevcut.',
'error_saving' => '":name" kaydedilirken hatayla karşılaşıldı.',
'error_creating_directory' => ':name klasörü oluşturulurken hatayla karşılaşıldı',
'invalid_file_extension'=>'Hatalı dosya uzantısı: :invalid. İzin verilen uzantılar: :allowed.',
'error_deleting' => '":name" şablon dosyası silinirken hatayla karşılaşıldı.',
'delete_success' => ':count şablon başarıyla silindi.',
'file_name_required' => 'Dosya adı alanı gereklidir.'
],
'theme' => [
'active' => [
'not_set' => "The active theme is not set.",
],
'edit' => [
'not_set' => "The edit theme is not set.",
'not_found' => "The edit theme is not found.",
'not_match' => "The object you're trying to access doesn't belong to the theme being edited. Please reload the page."
]
],
'page' => [
'not_found' => [
'label' => "Sayfa bulunamadı",
'help' => "İstenilen sayfa bulunamadı.",
],
'custom_error' => [
'label' => "Sayfa hatası",
'help' => "Üzgünüz, bir şeyler ters gitti ve sayfa görüntülenemiyor.",
],
'menu_label' => 'Sayfalar',
'no_list_records' => 'Hiç sayfa yok.',
'new' => 'Sayfa oluştur',
'invalid_url' => 'Hata URL formatı. The URL should start with the forward slash symbol and can contain digits, Latin letters and the following symbols: _-[]:?|/+*',
'delete_confirm_multiple' => 'Seçili sayfaları silmek istediğinize emin misiniz?',
'delete_confirm_single' => 'Bu sayfayı silmek istediğinize emin misiniz?',
'no_layout' => '-- şablon yok --'
],
'layout' => [
'not_found' => "':name' isimli şablon bulunamadı",
'menu_label' => 'Şablonlar',
'no_list_records' => 'Şablon bulunamadı',
'new' => 'Şablon oluştur',
'delete_confirm_multiple' => 'Seçili şablonları silmek istediğinize emin misiniz?',
'delete_confirm_single' => 'Seçili şablonu silmek istediğinize emin misiniz?'
],
'partial' => [
'invalid_name' => "Hatalı bölüm adı: :name.",
'not_found' => "':name' bölümü bulunamadı.",
'menu_label' => 'Bölümler',
'no_list_records' => 'Bölüm bulunamadı.',
'delete_confirm_multiple' => 'Seçili bölümleri silmek istediğinize gerçekten emin misiniz?',
'delete_confirm_single' => 'Bu bölümü silmek istediğinize emin misiniz?',
'new' => 'Bölüm Oluştur'
],
'content' => [
'not_found' => "':name' isminde içerik dosyası bulunamadı.",
'menu_label' => 'İçerik',
'no_list_records' => 'İçerik dosyası bulunamadı.',
'delete_confirm_multiple' => 'Seçili içerik dosyaları veya klasörlerini silmek istediğinize gerçekten emin misiniz?',
'delete_confirm_single' => 'Bu içerik dosyasını silmek istediğinize emin misiniz?',
'new' => 'Yeni İçerik'
],
'ajax_handler' => [
'invalid_name' => "Hatalı AJAX işleyici adı: :name.",
'not_found' => "':name' isimli AJAX işleyici bulunamadı.",
],
'combiner' => [
'not_found' => "The combiner file ':name' is not found.",
],
'cms' => [
'menu_label' => "CMS"
],
'sidebar' => [
'add' => 'Add',
'search' => 'Search...'
],
'editor' => [
'settings' => 'Settings',
'title' => 'Title',
'new_title' => 'New page title',
'url' => 'URL',
'filename' => 'File Name',
'layout' => 'Layout',
'description' => 'Description',
'preview' => 'Preview',
'meta' => 'Meta',
'meta_title' => 'Meta Title',
'meta_description' => 'Meta Description',
'markup' => 'Markup',
'code' => 'Code',
'content' => 'Content',
],
'asset' => [
'menu_label' => "Dosyalar",
'drop_down_add_title' => 'Ekle...',
'drop_down_operation_title' => 'İşlemler...',
'upload_files' => 'Dosya(lar) yükle',
'create_file' => 'Dosya oluştur',
'create_directory' => 'Klasör oluştur',
'rename' => 'Yeniden isimlendir',
'delete' => 'Sil',
'move' => 'Taşı',
'new' => 'Yeni dosya',
'rename_popup_title' => 'Yeniden isimlendir',
'rename_new_name' => 'Yeni isim',
'invalid_path' => 'Path can contain only digits, Latin letters, spaces and the following symbols: ._-/',
'error_deleting_file' => ':name dosyası silinirken hatayla karşılaşıldı.',
'error_deleting_dir_not_empty' => 'Error deleting directory :name. The directory is not empty.',
'error_deleting_dir' => ':name dosyası silinirken hatayla karşılaşıldı.',
'invalid_name' => 'Name can contain only digits, Latin letters, spaces and the following symbols: ._-',
'original_not_found' => 'Original file or directory not found',
'already_exists' => 'File or directory with this name already exists',
'error_renaming' => 'Error renaming the file or directory',
'name_cant_be_empty' => 'İsim alanı boş bırakılamaz.',
'too_large' => 'Yüklenen dosya çok büyük. İzin verilen maksimum boyut :max_size',
'type_not_allowed' => 'İzin verilen dosya tipleri: :allowed_types',
'file_not_valid' => 'Dosya geçerli değil',
'error_uploading_file' => '":name" yüklenirken hatayla karşılaşıldı: :error',
'move_please_select' => 'lütfen seçiniz',
'move_destination' => 'Hedef klasör',
'move_popup_title' => 'Assets taşı',
'move_button' => 'Taşı',
'selected_files_not_found' => 'Seçilen dosyalar bulunamadı.',
'select_destination_dir' => 'Lütfen hedef klasör seçiniz',
'destination_not_found' => 'Hedef klasör bulunamadı',
'error_moving_file' => ':file dosyası taşınırken hatayla karşılaşıldı',
'error_moving_directory' => ':dir klasörü taşınırken hatayla karşılaşıldı',
'error_deleting_directory' => ':dir klasörü silinirken hatayla karşılaşıldı',
'path' => 'Yol'
],
'component' => [
'menu_label' => "Bileşenler",
'unnamed' => "İsimsiz",
'no_description' => "ıklama girilmedi.",
'alias' => "Takma ad",
'alias_description' => "A unique name given to this component when using it in the page or layout code.",
'validation_message' => "Component aliases are required and can contain only Latin symbols, digits, and underscores. The aliases should start with a Latin symbol.",
'invalid_request' => "Şablon hatalı bileşen verisi olduğu için kaydedilemedi.",
'no_records' => 'Bileşen bulunamadı.',
'not_found' => "':name' isimli bileşen bulunamadı.",
'method_not_found' => "':name' isimli bileşen ':method'unu içermiyor.",
],
'template' => [
'invalid_type' => "Hatalı şablon tipi.",
'not_found' => "İstenilen şablon bulunamadı.",
'saved'=> "Şablon başarıyla kaydedildi."
]
];

View File

@ -7,7 +7,7 @@
<button type="button" class="btn btn-primary oc-icon-plus"
data-control="create-asset"
data-toggle="dropdown"
>Add</button>
><?= e(trans('cms::lang.sidebar.add')) ?></button>
<ul class="dropdown-menu" role="menu" data-dropdown-title="<?= e(trans('cms::lang.asset.drop_down_add_title')) ?>">
<li role="presentation"><a role="menuitem" tabindex="-1" href="javascript:;" data-control="create-template" class="oc-icon-file-text-o"><?= e(trans('cms::lang.asset.create_file')) ?></a></li>
@ -60,7 +60,7 @@
</div>
<div class="layout-cell">
<div class="relative toolbar-item loading-indicator-container size-input-text">
<input placeholder="search..." type="text" name="search" value="<?= e($this->getSearchTerm()) ?>"
<input placeholder="<?= e(trans('cms::lang.sidebar.search')) ?>" type="text" name="search" value="<?= e($this->getSearchTerm()) ?>"
class="form-control icon search" autocomplete="off"
data-track-input
data-load-indicator

View File

@ -2,7 +2,7 @@
<div class="layout control-toolbar">
<div class="layout-cell">
<div class="relative toolbar-item loading-indicator-container size-input-text">
<input placeholder="search..." type="text" name="search" value="<?= e($this->getSearchTerm()) ?>"
<input placeholder="<?= e(trans('cms::lang.sidebar.search')) ?>" type="text" name="search" value="<?= e($this->getSearchTerm()) ?>"
class="form-control icon search" autocomplete="off"
data-track-input
data-load-indicator

View File

@ -5,7 +5,7 @@
<div class="btn-group">
<button type="button" class="btn btn-primary oc-icon-plus last"
data-control="create-template"
>Add</button>
><?= e(trans('cms::lang.sidebar.add')) ?></button>
<button type="button" class="btn btn-primary empty oc-icon-trash-o hide"
id="<?= $this->getId('delete-button') ?>"
data-control="delete-template"
@ -18,7 +18,7 @@
</div>
<div class="layout-cell">
<div class="relative toolbar-item loading-indicator-container size-input-text">
<input placeholder="search..." type="text" name="search" value="<?= e($this->getSearchTerm()) ?>"
<input placeholder="<?= e(trans('cms::lang.sidebar.search')) ?>" type="text" name="search" value="<?= e($this->getSearchTerm()) ?>"
class="form-control icon search" autocomplete="off"
data-track-input
data-load-indicator

View File

@ -155,8 +155,8 @@ class ServiceProvider extends ModuleServiceProvider
SettingsManager::instance()->registerCallback(function($manager){
$manager->registerSettingItems('October.System', [
'email' => [
'label' => 'Email Configuration',
'description' => 'Manage email configuration.',
'label' => 'system::lang.email.menu_label',
'description' => 'system::lang.email.menu_description',
'category' => 'System',
'icon' => 'icon-envelope',
'class' => 'System\Models\EmailSettings',

View File

@ -66,7 +66,7 @@ if (window.jQuery === undefined)
/*
* Halt here if beforeUpdate() or data-request-before-update returns false
*/
if (this.options.beforeUpdate.apply(this, [context, data, textStatus, jqXHR]) === false) return
if (this.options.beforeUpdate.apply(this, [data, textStatus, jqXHR]) === false) return
if (options.evalBeforeUpdate && eval('(function($el, context, data, textStatus, jqXHR) {'+options.evalBeforeUpdate+'}($el, context, data, textStatus, jqXHR))') === false) return
/*

View File

@ -52,9 +52,9 @@ class SettingsModel extends ModelBehavior
/*
* Access to model's overrides is unavailable, using events instead
*/
$this->model->bind('model.afterFetch', [$this, 'afterModelFetch']);
$this->model->bind('model.beforeSave', [$this, 'beforeModelSave']);
$this->model->bind('model.afterSetAttribute', [$this, 'setModelAttribute']);
$this->model->bindEvent('model.afterFetch', [$this, 'afterModelFetch']);
$this->model->bindEvent('model.beforeSave', [$this, 'beforeModelSave']);
$this->model->bindEvent('model.afterSetAttribute', [$this, 'setModelAttribute']);
/*
* Parse the config

View File

@ -73,7 +73,7 @@ class Settings extends Controller
}
$model->save(null, $this->formWidget->getSessionKey());
Flash::success(Lang::get('system::lang.settings.update_success', ['name'=>$item->label]));
Flash::success(Lang::get('system::lang.settings.update_success', ['name' => Lang::get($item->label)]));
if ($redirect = Backend::Url('system/settings'))
return Redirect::to($redirect);

View File

@ -12,8 +12,8 @@
<div class="settings-item col-xs-12 col-sm-6 col-md-4">
<a href="<?= $item->url ?>">
<div class="item-icon"><i class="<?= $item->icon ?>"></i></div>
<h5><?= $item->label ?></h5>
<p><?= $item->description ?></p>
<h5><?= e(trans($item->label)) ?></h5>
<p><?= e(trans($item->description)) ?></p>
</a>
</div>
<?php endforeach ?>

View File

@ -1,6 +1,6 @@
<?php Block::put('breadcrumb') ?>
<ul>
<li><a href="<?= Backend::url('system/settings') ?>">Settings</a></li>
<li><a href="<?= Backend::url('system/settings') ?>"><?= e(trans('system::lang.settings.menu_label')) ?></a></li>
<li><?= e($this->pageTitle) ?></li>
</ul>
<?php Block::endPut() ?>
@ -19,13 +19,13 @@
data-request-data="redirect:0"
data-hotkey="ctrl+s"
data-hotkey-mac="cmd+s"
data-load-indicator="Saving..."
data-load-indicator="<?= e(trans('backend::lang.form.saving')) ?>"
class="btn btn-primary">
<u>S</u>ave settings
<?= e(trans('backend::lang.form.save')) ?>
</button>
<span class="btn-text">
or <a href="<?= Backend::url('system/settings') ?>">Cancel</a>
<?= e(trans('backend::lang.form.or')) ?> <a href="<?= Backend::url('system/settings') ?>"><?= e(trans('backend::lang.form.cancel')) ?></a>
</span>
</div>
</div>
@ -33,5 +33,5 @@
<?php else: ?>
<p class="flash-message static error"><?= e($this->fatalError) ?></p>
<p><a href="<?= Backend::url('system/settings') ?>" class="btn btn-default">Return to system settings</a></p>
<p><a href="<?= Backend::url('system/settings') ?>" class="btn btn-default"><?= e(trans('system::lang.settings.return')) ?></a></p>
<?php endif ?>

View File

@ -2,7 +2,7 @@
# List Behavior Config
# ===================================
title: Manage Updates
title: system::lang.updates.title
list: @/modules/system/models/pluginversion/columns.yaml
modelClass: System\Models\PluginVersion
noRecordsMessage: backend::lang.list.no_records

View File

@ -10,16 +10,16 @@
href="javascript:;"
data-request-confirm="Are you sure?"
data-request="onDetachProject"
data-stripe-load-indicator>detach</a>)
data-stripe-load-indicator><?= e(trans('system::lang.project.detach_confirm')) ?></a>)
</p>
<?php else: ?>
<p class="oc-icon-chain-broken">None</p>
<p class="oc-icon-chain-broken"><?= e(trans('system::lang.project.none')) ?></p>
<p class="description">
<a
href="javascript:;"
data-control="popup"
data-handler="onLoadProjectForm">
Attach to Project
<?= e(trans('system::lang.project.attach')) ?>
</a>
</p>
<?php endif ?>

View File

@ -15,7 +15,7 @@ class DbSystemParameters extends Migration
$table->string('group');
$table->string('item');
$table->text('value')->nullable();
$table->index(['namespace', 'group', 'item'], 'key_index');
$table->index(['namespace', 'group', 'item'], 'item_index');
});
}

View File

@ -0,0 +1,125 @@
<?php
return [
'app' => [
'name' => 'October CMS',
'motto' => 'Zurück zum Wesentlichen',
],
'directory' => [
'create_fail' => "Konnte Verzeichnis: :name nicht erstellen",
],
'file' => [
'create_fail' => "Konnte Datei :name nicht erstellen",
],
'system' => [
'name' => 'System',
'menu_label' => 'System',
],
'plugin' => [
'unnamed' => 'Unbenanntes Plugin',
'name' => [
'label' => 'Plugin-Name',
'help' => 'Benennen Sie das Plugin eindeutig, zum Beispiel RainLab.Blog',
],
],
'project' => [
'name' => 'Projekt',
'owner_label' => 'Besitzer',
'attach' => 'Attach Project',
'detach' => 'Detach Project',
'none' => 'None',
'id' => [
'label' => 'Projekt-ID',
'help' => 'Wie Sie Ihre Projekt-ID finden',
'missing' => 'Bitte geben Sie eine Projekt-ID an.',
],
'detach_confirm_' => 'Are you sure you want to detach this project?',
'unbind_success' => 'Projekt wurde erfolgreich getrennt (detached).',
'return' => 'Return to system settings',
],
'email' => [
'menu_label' => 'Email Configuration',
'menu_description' => 'Manage email configuration.',
'general' => 'General',
'method' => 'Email Method',
'sender_name' => 'Sender Name',
'sender_email' => 'Sender Email',
'smtp' => 'SMTP',
'smtp_address' => 'SMTP Address',
'smtp_authorization' => 'SMTP authorization required',
'smtp_authorization_comment' => 'Use this checkbox if your SMTP server requires authorization.',
'smtp_username' => 'Username',
'smtp_password' => 'Password',
'smtp_port' => 'SMTP Port',
'smtp_ssl' => 'SSL connection required',
'sendmail' => 'Sendmail',
'sendmail_path' => 'Sendmail Path',
'sendmail_path_comment' => 'Please specify the path of the sendmail program.',
],
'settings' => [
'menu_label' => 'Einstellungen',
'missing_model' => 'Der Einstellungsseite fehlt eine Model-Definition.',
'update_success' => 'Einstellung für :name wurde erfolgreich aktualisiert.',
],
'install' => [
'project_label' => 'Mit Projekt verbinden',
'plugin_label' => 'Plugin installieren',
'missing_plugin_name' => 'Bitte geben Sie den Namen des zu installierenden Plugin an.',
'install_completing' => 'Schließe Installationsprozess ab',
'install_success' => 'Das Plugin wurde erfolgreich installiert.',
],
'updates' => [
'title' => 'Manage Updates',
'name' => 'Software-Aktualisierung',
'menu_label' => 'Aktualisierungen',
'check_label' => 'Auf Aktualisierungen überprüfen',
'retry_label' => 'Erneut versuchen',
'plugin_name' => 'Name',
'plugin_description' => 'Description',
'plugin_version' => 'Version',
'plugin_author' => 'Author',
'core_build' => 'Aktueller Build',
'core_build_old' => 'Aktueller Build :build',
'core_build_new' => 'Build :build',
'core_build_new_help' => 'Aktuellster Build ist verfügbar.',
'core_downloading' => 'Applikationsdaten werden heruntergeladen',
'core_extracting' => 'Applikationsdaten werden entpackt',
'plugin_downloading' => 'Lade Plugin herunter: :name',
'plugin_extracting' => 'Entpacke Plugin: :name',
'plugin_version_none' => 'Neues Plugin',
'plugin_version_old' => 'Aktuellste Version v:version',
'plugin_version_new' => 'v:version',
'update_label' => 'Aktualisieren',
'update_completing' => 'Schließe Aktualisierung ab',
'update_loading' => 'Lade verfügbare Aktualisierungen...',
'update_success' => 'Aktualisierungsvorgang erfolgreich.',
'update_failed_label' => 'Aktualisierungsvorgang fehlgeschlagen',
'force_label' => 'Aktualisierung erzwingen',
'found' => [
'label' => 'Neue Aktualisierungen gefunden!',
'help' => '"Aktualisieren" wählen um Prozess zu starten ',
],
'none' => [
'label' => 'Keine Aktualisierungen',
'help' => 'Es wurden keine Aktualisierungen gefunden.',
],
],
'server' => [
'connect_error' => 'Fehler beim Verbinden mit dem Server.',
'response_not_found' => 'Der Aktualisierungs-Server kann nicht gefunden werden.',
'response_invalid' => 'Ungültige Antwort vom Server.',
'response_empty' => 'Ergebnislose Antwort vom Server.',
'file_error' => 'Server konnte Paket nicht zur Verfügung stellen.',
'file_corrupt' => 'Angelieferte Datei ist fehlerhaft.',
],
'behavior' => [
'missing_property' => 'Klasse :class muss Eingenschaft $:property besitzen, da sie von Verhalten (behaviour) :behavior benötigt wird.',
],
'config' => [
'not_found' => 'Konnte Konfigurationsdatei :file definiert für :location nicht finden.',
'required' => 'Konfiguration, die in :location benutzt wird, muss den Wert :property zur Verfügung stellen.',
],
'zip' => [
'extract_failed' => "Konnte Core-Datei ':file' nicht entpacken.",
],
];

View File

@ -0,0 +1,98 @@
<?php
return array(
/*
|--------------------------------------------------------------------------
| Validation Language Lines
|--------------------------------------------------------------------------
|
| The following language lines contain the default error messages used by
| the validator class. Some of these rules have multiple versions such
| such as the size rules. Feel free to tweak each of these messages.
|
*/
"accepted" => ":attribute muss bestätigt werden.",
"active_url" => ":attribute ist keine gültige URL.",
"after" => ":attribute muss ein Datum nach :date sein.",
"alpha" => ":attribute darf nur Buchstaben enthalten.",
"alpha_dash" => ":attribute darf nur Buchstaben, Ziffern und Bindestriche enthalten.",
"alpha_num" => ":attribute darf nur Buchstaben und Ziffern enthalten.",
"array" => ":attribute muss ein Array sein.",
"before" => ":attribute muss ein Datum vor :date sein.",
"between" => array(
"numeric" => ":attribute muss zwischen :min und :max liegen.",
"file" => ":attribute muss zwischen :min und :max kilobytes groß sein.",
"string" => ":attribute-Zeichenanzahl muss zwischen :min und :max liegen.",
"array" => ":attribute-Elementanzahl muss zwischen :min und :max liegen.",
),
"confirmed" => "Bestätigung zu :attribute stimmt nicht überein",
"date" => ":attribute ist kein gültiges Datum.",
"date_format" => ":attribute hat kein gültiges Datumsformat :format.",
"different" => ":attribute und :other müssen sich unterscheiden.",
"digits" => "Das :attribute benötigt :digits Zeichen.",
"digits_between" => ":attribute-Zeichenanzahl muss zwischen :min und :max liegen.",
"email" => "Format von :attribute ist ungültig.",
"exists" => "Das ausgewählte Attribut :attribute ist ungültig.",
"image" => ":attribute muss ein Bild sein.",
"in" => "Das ausgewählte Attribut :attribute ist ungültig.",
"integer" => ":attribute muss eine Ganzzahl (integer) sein.",
"ip" => ":attribute muss eine gültige IP-Adresse sein.",
"max" => array(
"numeric" => ":attribute darf nicht größer als :max sein.",
"file" => ":attribute darf nicht größer als :max kilobytes sein.",
"string" => "Dateiname von :attribute darf nicht mehr als :max Zeichen haben.",
"array" => ":attribute darf nicht mehr als :max Elemente besitzen.",
),
"mimes" => ":attribute muss eine Datei des Typs: :values sein.",
"min" => array(
"numeric" => ":attribute muss mindestens :min sein.",
"file" => ":attribute darf nicht kleiner als :min kilobytes sein.",
"string" => "Dateiname von :attribute darf nicht weniger als :min Zeichen haben.",
"array" => ":attribute darf nicht weniger als :min Elemente besitzen.",
),
"not_in" => "Das ausgewählte Attribut :attribute ist ungültig.",
"numeric" => ":attribute muss eine Zahl sein.",
"regex" => "Format von :attribute ist ungültig.",
"required" => ":attribute wird benötigt.",
"required_if" => ":attribute wird benötigt, wenn :other den Wert :value hat.",
"required_with" => ":attribute wird benötigt, wenn :values existiert.",
"required_without" => ":attribute wird benötigt, wenn :values nicht existiert.",
"same" => ":attribute und :other müssen übereinstimmen.",
"size" => array(
"numeric" => ":attribute muss :size groß sein.",
"file" => ":attribute muss :size kilobytes groß sein.",
"string" => "Name von :attribute muss :size Zeichen beinhalten.",
"array" => ":attribute muss :size Elemente beinhalten.",
),
"unique" => ":attribute muss eindeutig sein.",
"url" => "Format von :attribute ist ungültig.",
/*
|--------------------------------------------------------------------------
| Custom Validation Language Lines
|--------------------------------------------------------------------------
|
| Here you may specify custom validation messages for attributes using the
| convention "attribute.rule" to name the lines. This makes it quick to
| specify a specific custom language line for a given attribute rule.
|
*/
'custom' => array(),
/*
|--------------------------------------------------------------------------
| Custom Validation Attributes
|--------------------------------------------------------------------------
|
| The following language lines are used to swap attribute place-holders
| with something more reader friendly such as E-Mail Address instead
| of "email". This simply helps us make messages a little cleaner.
|
*/
'attributes' => array(),
);

View File

@ -25,17 +25,41 @@ return [
'project' => [
'name' => 'Project',
'owner_label' => 'Owner',
'attach' => 'Attach Project',
'detach' => 'Detach Project',
'none' => 'None',
'id' => [
'label' => 'Project ID',
'help' => 'How to find your Project ID',
'missing' => 'Please specify a Project ID to use.',
],
'detach_confirm_' => 'Are you sure you want to detach this project?',
'unbind_success' => 'Project has been detached successfully.',
],
'settings' => [
'menu_label' => 'Settings',
'missing_model' => 'The settings page is missing a Model definition.',
'update_success' => 'Settings for :name have been updated successfully.',
'return' => 'Return to system settings',
],
'email' => [
'menu_label' => 'Email Configuration',
'menu_description' => 'Manage email configuration.',
'general' => 'General',
'method' => 'Email Method',
'sender_name' => 'Sender Name',
'sender_email' => 'Sender Email',
'smtp' => 'SMTP',
'smtp_address' => 'SMTP Address',
'smtp_authorization' => 'SMTP authorization required',
'smtp_authorization_comment' => 'Use this checkbox if your SMTP server requires authorization.',
'smtp_username' => 'Username',
'smtp_password' => 'Password',
'smtp_port' => 'SMTP Port',
'smtp_ssl' => 'SSL connection required',
'sendmail' => 'Sendmail',
'sendmail_path' => 'Sendmail Path',
'sendmail_path_comment' => 'Please specify the path of the sendmail program.',
],
'install' => [
'project_label' => 'Attach to Project',
@ -45,10 +69,15 @@ return [
'install_success' => 'The plugin has been installed successfully.',
],
'updates' => [
'title' => 'Manage Updates',
'name' => 'Software update',
'menu_label' => 'Updates',
'check_label' => 'Check for updates',
'retry_label' => 'Try again',
'plugin_name' => 'Name',
'plugin_description' => 'Description',
'plugin_version' => 'Version',
'plugin_author' => 'Author',
'core_build' => 'Current build',
'core_build_old' => 'Current build :build',
'core_build_new' => 'Build :build',

View File

@ -25,17 +25,41 @@ return [
'project' => [
'name' => 'Project',
'owner_label' => 'Eigenaar',
'attach' => 'Project Koppelen',
'detach' => 'Project Ontkoppelen',
'none' => 'Geen',
'id' => [
'label' => 'Project ID',
'help' => 'Hoe vind je jouw Project ID',
'missing' => 'Voer een Project ID in.',
],
'unbind_success' => 'Project is succesvol losgekoppeld.',
'detach_confirm_' => 'Are you sure you want to detach this project?',
'unbind_success' => 'Project is succesvol ontkoppeld.',
],
'settings' => [
'menu_label' => 'Instellingen',
'missing_model' => 'De instellingenpagina mist de definitie van een Model.',
'update_success' => 'Instellingen voor :name zijn succesvol bijgewerkt.',
'return' => 'Terug naar systeeminstellingen',
],
'email' => [
'menu_label' => 'E-mailinstellingen',
'menu_description' => 'Beheer e-mailinstellingen.',
'general' => 'Algemeen',
'method' => 'Email Methode',
'sender_name' => 'Naam Afzender',
'sender_email' => 'E-mailadres Afzender',
'smtp' => 'SMTP',
'smtp_address' => 'SMTP Adres',
'smtp_authorization' => 'SMTP authenticatie vereist',
'smtp_authorization_comment' => 'Vink deze optie aan indien de SMTP server authenticatie vereist.',
'smtp_username' => 'Gebruikersnaam',
'smtp_password' => 'Wachtwoord',
'smtp_port' => 'SMTP Poort',
'smtp_ssl' => 'SSL verbinding vereist',
'sendmail' => 'Sendmail',
'sendmail_path' => 'Pad naar Sendmail',
'sendmail_path_comment' => 'Geef hier het volledige pad op naar de Sendmail-applicatie.',
],
'install' => [
'project_label' => 'Koppel aan Project',
@ -45,10 +69,15 @@ return [
'install_success' => 'De plugin is succesvol geïnstalleerd.',
],
'updates' => [
'title' => 'Beheer Updates',
'name' => 'Applicatie-update',
'menu_label' => 'Updates',
'check_label' => 'Controleer op updates',
'retry_label' => 'Probeer nogmaals',
'plugin_name' => 'Naam',
'plugin_description' => 'Omschrijving',
'plugin_version' => 'Versie',
'plugin_author' => 'Auteur',
'core_build' => 'Huidige build',
'core_build_old' => 'Huidige build :build',
'core_build_new' => 'Build :build',

View File

@ -25,12 +25,36 @@ return [
'project' => [
'name' => 'Project',
'owner_label' => 'Owner',
'attach' => 'Attach Project',
'detach' => 'Detach Project',
'none' => 'None',
'id' => [
'label' => 'Project ID',
'help' => 'How to find your Project ID',
'missing' => 'Please specify a Project ID to use.',
],
'detach_confirm_' => 'Are you sure you want to detach this project?',
'unbind_success' => 'Project has been detached successfully.',
'return' => 'Return to system settings',
],
'email' => [
'menu_label' => 'Email Configuration',
'menu_description' => 'Manage email configuration.',
'general' => 'General',
'method' => 'Email Method',
'sender_name' => 'Sender Name',
'sender_email' => 'Sender Email',
'smtp' => 'SMTP',
'smtp_address' => 'SMTP Address',
'smtp_authorization' => 'SMTP authorization required',
'smtp_authorization_comment' => 'Use this checkbox if your SMTP server requires authorization.',
'smtp_username' => 'Username',
'smtp_password' => 'Password',
'smtp_port' => 'SMTP Port',
'smtp_ssl' => 'SSL connection required',
'sendmail' => 'Sendmail',
'sendmail_path' => 'Sendmail Path',
'sendmail_path_comment' => 'Please specify the path of the sendmail program.',
],
'settings' => [
'menu_label' => 'Settings',
@ -45,10 +69,15 @@ return [
'install_success' => 'The plugin has been installed successfully.',
],
'updates' => [
'title' => 'Manage Updates',
'name' => 'Software update',
'menu_label' => 'Updates',
'check_label' => 'Check for updates',
'retry_label' => 'Try again',
'plugin_name' => 'Name',
'plugin_description' => 'Description',
'plugin_version' => 'Version',
'plugin_author' => 'Author',
'core_build' => 'Current build',
'core_build_old' => 'Current build :build',
'core_build_new' => 'Build :build',

View File

@ -0,0 +1,125 @@
<?php
return [
'app' => [
'name' => 'October CMS',
'motto' => 'Getting back to basics',
],
'directory' => [
'create_fail' => "Kunde inte skapa mapp: :name",
],
'file' => [
'create_fail' => "Kunde inte skapa fil: :name",
],
'system' => [
'name' => 'System',
'menu_label' => 'System',
],
'plugin' => [
'unnamed' => 'Namnlöst plugin',
'name' => [
'label' => 'Plugin-namn',
'help' => 'Namnge pluginet efter dess unika kod. Exempelvis RainLab.Blog',
],
],
'project' => [
'name' => 'Projekt',
'owner_label' => 'Ägare',
'attach' => 'Attach Project',
'detach' => 'Detach Project',
'none' => 'None',
'id' => [
'label' => 'Projekt-ID',
'help' => 'Hur du hittar ditt Projekt-ID',
'missing' => 'Var god välj ett Projekt-ID',
],
'detach_confirm_' => 'Are you sure you want to detach this project?',
'unbind_success' => 'Projektet har blivit avlänkat',
'return' => 'Return to system settings',
],
'email' => [
'menu_label' => 'Email Configuration',
'menu_description' => 'Manage email configuration.',
'general' => 'General',
'method' => 'Email Method',
'sender_name' => 'Sender Name',
'sender_email' => 'Sender Email',
'smtp' => 'SMTP',
'smtp_address' => 'SMTP Address',
'smtp_authorization' => 'SMTP authorization required',
'smtp_authorization_comment' => 'Use this checkbox if your SMTP server requires authorization.',
'smtp_username' => 'Username',
'smtp_password' => 'Password',
'smtp_port' => 'SMTP Port',
'smtp_ssl' => 'SSL connection required',
'sendmail' => 'Sendmail',
'sendmail_path' => 'Sendmail Path',
'sendmail_path_comment' => 'Please specify the path of the sendmail program.',
],
'settings' => [
'menu_label' => 'Inställningar',
'missing_model' => 'Inställningssidan saknar en modell-definition',
'update_success' => 'Inställningar för :name har uppdaterats',
],
'install' => [
'project_label' => 'Länka till Projekt',
'plugin_label' => 'Installera Plugin',
'missing_plugin_name' => 'Välj ett plugin-namn att installera',
'install_completing' => 'Installationen är klar',
'install_success' => 'Pluginet har installerats',
],
'updates' => [
'title' => 'Manage Updates',
'name' => 'Uppdatera mjukvara',
'menu_label' => 'Uppdateringar',
'check_label' => 'Kontrollera uppdateringar',
'retry_label' => 'Försök igen',
'plugin_name' => 'Name',
'plugin_description' => 'Description',
'plugin_version' => 'Version',
'plugin_author' => 'Author',
'core_build' => 'Nuvarande build',
'core_build_old' => 'Nuvarande build :build',
'core_build_new' => 'Build :build',
'core_build_new_help' => 'Senaste build är tillgänglig.',
'core_downloading' => 'Laddar ner applikationsfiler',
'core_extracting' => 'Packar upp applikationsfiler',
'plugin_downloading' => 'Laddar ner plugin: :name',
'plugin_extracting' => 'Packar upp plugin: :name',
'plugin_version_none' => 'Nytt plugin',
'plugin_version_old' => 'Nuvarande v:version',
'plugin_version_new' => 'v:version',
'update_label' => 'Updatera mjukvara',
'update_completing' => 'Slutför uppdatering',
'update_loading' => 'Laddar tillgängliga uppdateringar...',
'update_success' => 'Uppdateringen är slutförd.',
'update_failed_label' => 'Updateringen misslyckades',
'force_label' => 'Tvinga uppdatering',
'found' => [
'label' => 'Hittade nya uppdateringar!',
'help' => 'Klicka på Uppdatera mjukvara för att påbörja uppdateringen.',
],
'none' => [
'label' => 'Inga uppdateringar',
'help' => 'Inga nya uppdateringar hittades.',
],
],
'server' => [
'connect_error' => 'Ett fel uppstod vid anslutning till servern.',
'response_not_found' => 'Uppdateringsserver kunde ej hittas.',
'response_invalid' => 'Felaktigt svar från servern.',
'response_empty' => 'Tomt svar från servern.',
'file_error' => 'Servern kunde inte leverera paketet.',
'file_corrupt' => 'Filen från servern är korrupt.',
],
'behavior' => [
'missing_property' => 'Klassen :class måste definera egenskapen $:property som används av :behavior -egenskapen',
],
'config' => [
'not_found' => 'Kunde inte hitta konfigurationsfilen :file definerad för :location',
'required' => 'Konfigurationen som används i :location måste sända med ett värde :property',
],
'zip' => [
'extract_failed' => "Kunde inte packa upp core-fil ':file'.",
],
];

View File

@ -0,0 +1,98 @@
<?php
return array(
/*
|--------------------------------------------------------------------------
| Validation Language Lines
|--------------------------------------------------------------------------
|
| The following language lines contain the default error messages used by
| the validator class. Some of these rules have multiple versions such
| such as the size rules. Feel free to tweak each of these messages.
|
*/
"accepted" => ":attribute måste accepteras.",
"active_url" => ":attribute är ej en korrekt URL.",
"after" => ":attribute måste vara ett datum efter :date.",
"alpha" => ":attribute får endast innehålla bokstäver.",
"alpha_dash" => ":attribute får endast innehålla bokstäver, nummer och streck.",
"alpha_num" => ":attribute får endast innehålla bokstäver och nummer",
"array" => ":attribute måste vara en array.",
"before" => ":attribute måste vara ett datum innan :date.",
"between" => array(
"numeric" => ":attribute måste vara mellan :min - :max.",
"file" => ":attribute måste vara mellan :min - :max kilobytes.",
"string" => ":attribute måste vara mellan :min - :max tecken.",
"array" => ":attribute måste ha mellan :min - :max objekt.",
),
"confirmed" => ":attribute bekräftelse matchar ej.",
"date" => ":attribute är inte ett korrekt datum.",
"date_format" => ":attribute matchar inte formatet :format.",
"different" => ":attribute och :other måste skilja sig åt.",
"digits" => ":attribute måste vara :digits siffror.",
"digits_between" => ":attribute måste vara between :min and :max siffror.",
"email" => ":attribute format är felaktigt.",
"exists" => "Valt :attribute är felaktigt.",
"image" => ":attribute måste vara en bild.",
"in" => "Valt :attribute är felaktigt.",
"integer" => ":attribute måste vara en siffra.",
"ip" => ":attribute måste vara en giltig epost-adress.",
"max" => array(
"numeric" => ":attribute får inte vara större än :max.",
"file" => ":attribute får inte vara större än :max kilobytes.",
"string" => ":attribute får inte vara större än :max tecken.",
"array" => ":attribute får inte innehålla mer än :max objekt.",
),
"mimes" => ":attribute måste vara en fil av typen: :values.",
"min" => array(
"numeric" => ":attribute måste vara minst :min.",
"file" => ":attribute måste vara minst :min kilobytes.",
"string" => ":attribute måste vara minst :min tecken.",
"array" => ":attribute måste ha minst :min objekt.",
),
"not_in" => "Valt :attribute är felaktigt.",
"numeric" => ":attribute måste vara ett number.",
"regex" => ":attribute format är felaktigt.",
"required" => ":attribute field är obligatoriskt.",
"required_if" => ":attribute field är obligatoriskt när :other is :value.",
"required_with" => ":attribute field är obligatoriskt när :values är satt.",
"required_without" => ":attribute field är obligatoriskt när :values ej är satt.",
"same" => ":attribute and :other måste matcha.",
"size" => array(
"numeric" => ":attribute måste vara :size.",
"file" => ":attribute måste vara :size kilobytes.",
"string" => ":attribute måste vara :size tecken.",
"array" => ":attribute måste innehålla :size objekt.",
),
"unique" => ":attribute är redan upptaget.",
"url" => "Formatet :attribute är felaktigt.",
/*
|--------------------------------------------------------------------------
| Custom Validation Language Lines
|--------------------------------------------------------------------------
|
| Here you may specify custom validation messages for attributes using the
| convention "attribute.rule" to name the lines. This makes it quick to
| specify a specific custom language line for a given attribute rule.
|
*/
'custom' => array(),
/*
|--------------------------------------------------------------------------
| Custom Validation Attributes
|--------------------------------------------------------------------------
|
| The following language lines are used to swap attribute place-holders
| with something more reader friendly such as E-Mail Address instead
| of "email". This simply helps us make messages a little cleaner.
|
*/
'attributes' => array(),
);

View File

@ -0,0 +1,125 @@
<?php
return [
'app' => [
'name' => 'October CMS',
'motto' => 'Getting back to basics',
],
'directory' => [
'create_fail' => "Klasör oluşturulamıyor: :name",
],
'file' => [
'create_fail' => "Dosya oluşturulamıyor: :name",
],
'system' => [
'name' => 'Sistem',
'menu_label' => 'Sistem',
],
'plugin' => [
'unnamed' => 'İsimsiz eklenti',
'name' => [
'label' => 'Eklenti Adı',
'help' => 'Eklenti adı eşsiz olmalıdır. Örneğin, RainLab.Blog',
],
],
'project' => [
'name' => 'Proje',
'owner_label' => 'Sahibi',
'attach' => 'Attach Project',
'detach' => 'Detach Project',
'none' => 'None',
'id' => [
'label' => 'Proje ID',
'help' => 'Proje ID\'sini nasıl bulurum?',
'missing' => 'Lütfen kullanılacak Proje ID\'sini belirleyin.',
],
'detach_confirm_' => 'Are you sure you want to detach this project?',
'unbind_success' => 'Project has been detached successfully.',
'return' => 'Return to system settings',
],
'email' => [
'menu_label' => 'Email Configuration',
'menu_description' => 'Manage email configuration.',
'general' => 'General',
'method' => 'Email Method',
'sender_name' => 'Sender Name',
'sender_email' => 'Sender Email',
'smtp' => 'SMTP',
'smtp_address' => 'SMTP Address',
'smtp_authorization' => 'SMTP authorization required',
'smtp_authorization_comment' => 'Use this checkbox if your SMTP server requires authorization.',
'smtp_username' => 'Username',
'smtp_password' => 'Password',
'smtp_port' => 'SMTP Port',
'smtp_ssl' => 'SSL connection required',
'sendmail' => 'Sendmail',
'sendmail_path' => 'Sendmail Path',
'sendmail_path_comment' => 'Please specify the path of the sendmail program.',
],
'settings' => [
'menu_label' => 'Ayarlar',
'missing_model' => 'The settings page is missing a Model definition.',
'update_success' => 'Settings for :name have been updated successfully.',
],
'install' => [
'project_label' => 'Projeye bağla',
'plugin_label' => 'Eklenti Yükle',
'missing_plugin_name' => 'Yüklemek istediğiniz eklentinin adını girin.',
'install_completing' => 'Finishing installation process',
'install_success' => 'The plugin has been installed successfully.',
],
'updates' => [
'title' => 'Manage Updates',
'name' => 'Yazılım Güncelleme',
'menu_label' => 'Güncellemeler',
'check_label' => 'Güncellemeleri kontrol et',
'retry_label' => 'Tekrar dene',
'plugin_name' => 'Name',
'plugin_description' => 'Description',
'plugin_version' => 'Version',
'plugin_author' => 'Author',
'core_build' => 'Mevcut versiyon',
'core_build_old' => 'Mevcut versiyon :build',
'core_build_new' => 'Versiyon :build',
'core_build_new_help' => 'Son versiyon kullanılabilir.',
'core_downloading' => 'Uygulama dosyaları indiriliyor',
'core_extracting' => 'Uygulama dosyaları çıkarılıyor',
'plugin_downloading' => 'Eklenti indiriliyor: :name',
'plugin_extracting' => 'Eklenti dosyaları çıkarılıyor: :name',
'plugin_version_none' => 'Yeni eklenti',
'plugin_version_old' => 'Mevcut v:version',
'plugin_version_new' => 'v:version',
'update_label' => 'Yazılım güncelle',
'update_completing' => 'Güncelleme işlemi bitiyor',
'update_loading' => 'Kullanılabilir güncellemeler yükleniyor...',
'update_success' => 'Güncelleme işlemi başarıyla sonuçlandı.',
'update_failed_label' => 'Güncelleme hatası',
'force_label' => 'Güncellemeye zorla',
'found' => [
'label' => 'Güncellemeler bulundu!',
'help' => 'Yazılım güncelleye tıklayarak güncelleme işlemini başlatabilirsiniz.',
],
'none' => [
'label' => 'Güncelleme yok',
'help' => 'Yenü güncelleme bulunamadı.',
],
],
'server' => [
'connect_error' => 'Sunucuyla bağlantı kurulamadı.',
'response_not_found' => 'Güncelleme sunucusu bulunamadı.',
'response_invalid' => 'Sunucudan hatalı cevap geldi.',
'response_empty' => 'Sunucudan boş cevap geldi.',
'file_error' => 'Paket teslim edilirken sunucuda hata meydana geldi.',
'file_corrupt' => 'Sunucudaki dosya bozulmuş.',
],
'behavior' => [
'missing_property' => 'Class :class must define property $:property used by :behavior behavior.',
],
'config' => [
'not_found' => 'Unable to find configuration file :file defined for :location.',
'required' => 'Configuration used in :location must supply a value :property.',
],
'zip' => [
'extract_failed' => "Unable to extract core file ':file'.",
],
];

View File

@ -0,0 +1,108 @@
<?php
return array(
/*
|--------------------------------------------------------------------------
| Validation Language Lines
|--------------------------------------------------------------------------
|
| The following language lines contain the default error messages used by
| the validator class. Some of these rules have multiple versions such
| such as the size rules. Feel free to tweak each of these messages.
|
**
* Laravel - A PHP Framework For Web Artisans
*
* @package Language
* @version 4.x
* @author Sinan Eldem <sinan@sinaneldem.com.tr>
* @link http://sinaneldem.com.tr
*/
"accepted" => ":attribute kabul edilmelidir.",
"active_url" => ":attribute geçerli bir URL olmalıdır.",
"after" => ":attribute şundan daha eski bir tarih olmalıdır :date.",
"alpha" => ":attribute sadece harflerden oluşmalıdır.",
"alpha_dash" => ":attribute sadece harfler, rakamlar ve tirelerden oluşmalıdır.",
"alpha_num" => ":attribute sadece harfler ve rakamlar içermelidir.",
"array" => ":attribute dizi olmalıdır.",
"before" => ":attribute şundan daha önceki bir tarih olmalıdır :date.",
"between" => array(
"numeric" => ":attribute :min - :max arasında olmalıdır.",
"file" => ":attribute :min - :max arasındaki kilobayt değeri olmalıdır.",
"string" => ":attribute :min - :max arasında karakterden oluşmalıdır.",
"array" => ":attribute :min - :max arasında nesneye sahip olmalıdır."
),
"confirmed" => ":attribute tekrarı eşleşmiyor.",
"date" => ":attribute geçerli bir tarih olmalıdır.",
"date_format" => ":attribute :format biçimi ile eşleşmiyor.",
"different" => ":attribute ile :other birbirinden farklı olmalıdır.",
"digits" => ":attribute :digits rakam olmalıdır.",
"digits_between" => ":attribute :min ile :max arasında rakam olmalıdır.",
"email" => ":attribute biçimi geçersiz.",
"exists" => "Seçili :attribute geçersiz.",
"image" => ":attribute alanı resim dosyası olmalıdır.",
"in" => ":attribute değeri geçersiz.",
"integer" => ":attribute rakam olmalıdır.",
"ip" => ":attribute geçerli bir IP adresi olmalıdır.",
"max" => array(
"numeric" => ":attribute değeri :max değerinden küçük olmalıdır.",
"file" => ":attribute değeri :max kilobayt değerinden küçük olmalıdır.",
"string" => ":attribute değeri :max karakter değerinden küçük olmalıdır.",
"array" => ":attribute değeri :max adedinden az nesneye sahip olmalıdır."
),
"mimes" => ":attribute dosya biçimi :values olmalıdır.",
"min" => array(
"numeric" => ":attribute değeri :min değerinden büyük olmalıdır.",
"file" => ":attribute değeri :min kilobayt değerinden büyük olmalıdır.",
"string" => ":attribute değeri :min karakter değerinden büyük olmalıdır.",
"array" => ":attribute en az :min nesneye sahip olmalıdır."
),
"not_in" => "Seçili :attribute geçersiz.",
"numeric" => ":attribute rakam olmalıdır.",
"regex" => ":attribute biçimi geçersiz.",
"required" => ":attribute alanı gereklidir.",
"required_if" => ":attribute alanı, :other :value değerine sahip olduğunda zorunludur.",
"required_with" => ":attribute alanı :values varken zorunludur.",
"required_with_all" => ":attribute alanı :values varken zorunludur.",
"required_without" => ":attribute alanı :values yokken zorunludur.",
"required_without_all" => ":attribute alanı :values yokken zorunludur.",
"same" => ":attribute ile :other eşleşmelidir.",
"size" => array(
"numeric" => ":attribute :size olmalıdır.",
"file" => ":attribute :size kilobyte olmalıdır.",
"string" => ":attribute :size karakter olmalıdır.",
"array" => ":attribute :size nesneye sahip olmalıdır."
),
"unique" => ":attribute daha önceden kayıt edilmiş.",
"url" => ":attribute biçimi geçersiz.",
/*
|--------------------------------------------------------------------------
| Custom Validation Language Lines
|--------------------------------------------------------------------------
|
| Here you may specify custom validation messages for attributes using the
| convention "attribute.rule" to name the lines. This makes it quick to
| specify a specific custom language line for a given attribute rule.
|
*/
'custom' => array(),
/*
|--------------------------------------------------------------------------
| Custom Validation Attributes
|--------------------------------------------------------------------------
|
| The following language lines are used to swap attribute place-holders
| with something more reader friendly such as E-Mail Address instead
| of "email". This simply helps us make messages a little cleaner.
|
*/
'attributes' => array(),
);

View File

@ -6,50 +6,50 @@ tabs:
fields:
send_mode:
label: Email Method
label: system::lang.email.method
type: dropdown
tab: General
tab: system::lang.email.general
sender_name:
label: Sender Name
label: system::lang.email.sender_name
span: auto
tab: General
tab: system::lang.email.general
sender_email:
label: Sender Email
label: system::lang.email.sender_email
span: auto
tab: General
tab: system::lang.email.general
smtp_address:
label: SMTP address
tab: SMTP
label: system::lang.email.smtp_address
tab: system::lang.email.smtp
smtp_authorization:
type: checkbox
label: SMTP Authorization Required
tab: SMTP
comment: Use this checkbox if your SMTP server requires authorization.
label: system::lang.email.smtp_authorization
tab: system::lang.email.smtp
comment: system::lang.email.smtp_authorization_comment
smtp_user:
label: User
tab: SMTP
label: system::lang.email.smtp_username
tab: system::lang.email.smtp
span: left
smtp_password:
label: Password
tab: SMTP
label: system::lang.email.smtp_password
tab: system::lang.email.smtp
span: right
smtp_port:
label: SMTP Port
tab: SMTP
label: system::lang.email.smtp_port
tab: system::lang.email.smtp
smtp_ssl:
type: checkbox
label: SSL connection required
tab: SMTP
label: system::lang.email.smtp_ssl
tab: system::lang.email.smtp
sendmail_path:
label: Sendmail path
commentAbove: Please specify the path of the sendmail program.
tab: Sendmail
label: system::lang.email.sendmail_path
commentAbove: system::lang.email.sendmail_path_comment
tab: system::lang.email.sendmail

View File

@ -5,17 +5,17 @@
columns:
name:
label: Name
label: system::lang.updates.plugin_name
sortable: false
description:
label: Description
label: system::lang.updates.plugin_description
sortable: false
version:
label: Version
label: system::lang.updates.plugin_version
sortable: false
author:
label: Author
label: system::lang.updates.plugin_author
sortable: false

View File

@ -2,6 +2,7 @@
use File;
use Request;
use HTML;
use System\Classes\SystemException;
/**
@ -36,18 +37,40 @@ trait AssetMaker
$result = null;
if ($type == null || $type == 'css'){
foreach ($this->assets['css'] as $file)
$result .= '<link rel="stylesheet" href="'.$file.'">' . PHP_EOL;
foreach ($this->assets['css'] as $asset) {
$attributes = HTML::attributes(array_merge([
'rel' => 'stylesheet',
'href' => $asset['path']
], $asset['attributes']));
$result .= '<link' . $attributes . '>' . PHP_EOL;
}
}
if ($type == null || $type == 'rss'){
foreach ($this->assets['rss'] as $file)
$result .= '<link title="RSS" rel="alternate" href="'.$file.'" type="application/rss+xml"/>' . PHP_EOL;
foreach ($this->assets['rss'] as $asset) {
$attributes = HTML::attributes(array_merge([
'rel' => 'alternate',
'href' => $asset['path'],
'title' => 'RSS',
'type' => 'application/rss+xml'
], $asset['attributes']));
$result .= '<link' . $attributes . '>' . PHP_EOL;
}
}
if ($type == null || $type == 'js') {
foreach ($this->assets['js'] as $file)
$result .= '<script src="'.$file.'"></script>' . PHP_EOL;
foreach ($this->assets['js'] as $asset) {
$attributes = HTML::attributes(array_merge([
'src' => $asset['path']
], $asset['attributes']));
$result .= '<script' . $attributes . '></script>' . PHP_EOL;
}
}
return $result;
@ -57,60 +80,63 @@ trait AssetMaker
* Adds JavaScript asset to the asset list. Call $this->makeAssets() in a view
* to output corresponding markup.
* @param string $name Specifies a path (URL) to the script.
* @param array $attributes Adds extra HTML attributes to the asset link.
* @return void
*/
public function addJs($name)
public function addJs($name, $attributes = [])
{
$jsPath = $this->getAssetPath($name);
if (isset($this->controller))
$this->controller->addJs($jsPath);
$this->controller->addJs($jsPath, $attributes);
if (substr($jsPath, 0, 1) == '/')
$jsPath = Request::getBaseUrl() . $jsPath;
if (!in_array($jsPath, $this->assets['js']))
$this->assets['js'][] = $jsPath;
$this->assets['js'][] = ['path' => $jsPath, 'attributes' => $attributes];
}
/**
* Adds StyleSheet asset to the asset list. Call $this->makeAssets() in a view
* to output corresponding markup.
* @param string $name Specifies a path (URL) to the script.
* @param array $attributes Adds extra HTML attributes to the asset link.
* @return void
*/
public function addCss($name)
public function addCss($name, $attributes = [])
{
$cssPath = $this->getAssetPath($name);
if (isset($this->controller))
$this->controller->addCss($cssPath);
$this->controller->addCss($cssPath, $attributes);
if (substr($cssPath, 0, 1) == '/')
$cssPath = Request::getBaseUrl() . $cssPath;
if (!in_array($cssPath, $this->assets['css']))
$this->assets['css'][] = $cssPath;
$this->assets['css'][] = ['path' => $cssPath, 'attributes' => $attributes];
}
/**
* Adds an RSS link asset to the asset list. Call $this->makeAssets() in a view
* to output corresponding markup.
* @param string $name Specifies a path (URL) to the RSS channel
* @param array $attributes Adds extra HTML attributes to the asset link.
* @return void
*/
public function addRss($name)
public function addRss($name, $attributes = [])
{
$rssPath = $this->getAssetPath($name);
if (isset($this->controller))
$this->controller->addRss($rssPath);
$this->controller->addRss($rssPath, $attributes);
if (substr($rssPath, 0, 1) == '/')
$rssPath = Request::getBaseUrl() . $rssPath;
if (!in_array($rssPath, $this->assets['rss']))
$this->assets['rss'][] = $rssPath;
$this->assets['rss'][] = ['path' => $rssPath, 'attributes' => $attributes];
}
/**
@ -150,4 +176,4 @@ trait AssetMaker
return count($this->assets, COUNT_RECURSIVE) > 3;
}
}
}

File diff suppressed because it is too large Load Diff

View File

@ -46,4 +46,14 @@
url('../fonts/lato-light-webfont.ttf') format('truetype');
font-weight: 300;
font-style: normal;
}
//
// Chrome exhibits strange behavior when custom fonts are used
// on select inputs. This fixes the garbled text.
//
@media screen and (-webkit-min-device-pixel-ratio:0) {
select {
font-family: sans-serif;
}
}

View File

@ -31,9 +31,9 @@ description = "Default layout"
</div>
<div class="collapse navbar-collapse navbar-main-collapse">
<ul class="nav navbar-nav">
<li class="{% if page.url == '/' %}active{% endif %}"><a href="{{ 'home'|page }}">Basic concepts</a></li>
<li class="{% if page.url == '/ajax' %}active{% endif %}"><a href="{{ 'ajax'|page }}">AJAX framework</a></li>
<li class="{% if page.url == '/plugins' %}active{% endif %}"><a href="{{ 'plugins'|page }}">Plugin components</a></li>
<li class="{% if this.page.id == 'home' %}active{% endif %}"><a href="{{ 'home'|page }}">Basic concepts</a></li>
<li class="{% if this.page.id == 'ajax' %}active{% endif %}"><a href="{{ 'ajax'|page }}">AJAX framework</a></li>
<li class="{% if this.page.id == 'plugins' %}active{% endif %}"><a href="{{ 'plugins'|page }}">Plugin components</a></li>
</ul>
</div>
</div>
@ -53,7 +53,7 @@ description = "Default layout"
<!-- Scripts -->
<script src="{{ [
'assets/javascript/jquery.js',
'assets/javascript/jquery.js',
'assets/javascript/app.js'
]|theme }}"></script>
{% framework extras %}

View File

@ -1,5 +1,5 @@
title = "AJAX framework"
url = "/ajax"
url = "/demo/ajax"
layout = "default"
==
<?php
@ -64,4 +64,4 @@ function onTest()
</div>
<!-- Page Explanation -->
<div class="container">{% partial "explain/ajax.htm" %}</div>
<div class="container">{% partial "explain/ajax.htm" %}</div>

View File

@ -1,5 +1,5 @@
title = "Plugin components"
url = "/plugins"
url = "/demo/plugins"
layout = "default"
[demoTodo]

View File

@ -1,9 +1,9 @@
{% if result %}
<span class="lead">
The result is <span class="label label-success">{{ result }}</span>
</span>
<span class="lead">
The result is <span class="label label-success">{{ result }}</span>
</span>
{% else %}
<span class="text-muted">
Click the <em>Calculate</em> button to find the answer.
</span>
<span class="text-muted">
Click the <em>Calculate</em> button to find the answer.
</span>
{% endif %}