1
0
mirror of https://github.com/monstra-cms/monstra.git synced 2025-08-07 05:37:03 +02:00

Merge remote-tracking branch 'original/dev' into lithuanian-translation

This commit is contained in:
Martynas Barzda
2012-11-03 08:58:19 +02:00
53 changed files with 1423 additions and 530 deletions

View File

@@ -240,23 +240,32 @@ h6 {
/************************************* /*************************************
5. AUTHORIZATION 5. AUTHORIZATION
*************************************/ *************************************/
.authorization-block {
margin: 0 auto;
float: none!important;
}
.authorization-block-footer {
margin: 0 auto;
float: none!important;
margin-top:10px;
margin-bottom:10px;
}
.login-body { .login-body {
background:#F2F2F2; background:#F2F2F2;
} }
.form-signin {
max-width: 290px;
padding: 19px 29px 29px;
margin: 0 auto 20px;
background-color: #fff;
border: 1px solid #e5e5e5;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
-webkit-box-shadow: 0 1px 2px rgba(0,0,0,.05);
-moz-box-shadow: 0 1px 2px rgba(0,0,0,.05);
box-shadow: 0 1px 2px rgba(0,0,0,.05);
}
.form-signin input[type="text"],
.form-signin input[type="password"] {
font-size: 16px;
height: auto;
margin-bottom: 15px;
padding: 7px 9px;
}
/************************************* /*************************************
6. TABLE 6. TABLE
*************************************/ *************************************/
@@ -450,4 +459,16 @@ td, th {
.error-none {display:none;} .error-none {display:none;}
.error-field {border:1px solid red!important;} .error-field {border:1px solid red!important;}
.container-fluid {padding-left:0px;} .container-fluid {padding-left:0px;}
img {max-width:none;} img {max-width:none;}
a.btn-expand{
color: #333;
text-decoration: none;
padding-left:4px;
padding-right:4px;
}
footer a , footer{
color:#333;
font-size:10px;
}

View File

@@ -95,7 +95,13 @@
<!-- Block_footer --> <!-- Block_footer -->
<footer> <footer>
<p align="right"><span class="badge"><span class="small-white-text">© 2012 <a href="http://monstra.org" class="small-white-text" target="_blank">Monstra</a> <?php echo __('Version', 'system'); ?> <?php echo MONSTRA_VERSION; ?></span></span></p> <p align="right">
<span style="border-top:1px solid #E0E0E0; padding-top:10px;">
<a href="http://forum.monstra.org/"><?php echo __('Official Support Forum', 'system'); ?></a> /
<a href="http://monstra.org/documentation"><?php echo __('Documentation', 'system'); ?></a> /
© 2012 <a href="http://monstra.org" target="_blank">Monstra</a> <?php echo __('Version', 'system'); ?> <?php echo Core::VERSION; ?>
</span>
</p>
</footer> </footer>
<!-- /Block_footer --> <!-- /Block_footer -->

View File

@@ -50,71 +50,66 @@
</head> </head>
<body class="login-body"> <body class="login-body">
<div class="row"> <div class="container form-signin">
<div class="well span3 authorization-block">
<div style="text-align:center;"><a class="brand" href="<?php echo Option::get('siteurl'); ?>admin"><img src="<?php echo Option::get('siteurl'); ?>public/assets/img/monstra-logo.png" height="27" width="171"></a></div>
<div class="administration-area">
<hr>
<div>
<h2 style="text-align:center;"><?php echo __('Administration', 'system'); ?></h2><br />
<form method="post">
<label><?php echo __('Username', 'users'); ?></label>
<input class="span3" name="login" type="text" />
<label><?php echo __('Password', 'users'); ?></label> <div style="text-align:center;"><a class="brand" href="<?php echo Option::get('siteurl'); ?>admin"><img src="<?php echo Option::get('siteurl'); ?>public/assets/img/monstra-logo.png" height="27" width="171"></a></div>
<input class="span3" name="password" type="password" /> <div class="administration-area">
<br />
<?php if (isset($login_error) && $login_error !== '') { ?><div class="alert alert-error"><?php echo $login_error; ?></div><?php } ?>
<input type="submit" name="login_submit" class="btn" value="<?php echo __('Enter', 'users'); ?>" />
</form>
</div>
</div>
<div class="reset-password-area">
<hr>
<div>
<h2 style="text-align:center;"><?php echo __('Reset Password', 'users'); ?></h2><br />
<?php if (Notification::get('success')) Alert::success(Notification::get('success')); ?>
<form method="post">
<label><?php echo __('Username', 'users'); ?></label>
<input name="login" class="span3" type="text" value="<?php echo $user_login; ?>" />
<?php if (Option::get('captcha_installed') == 'true') { ?>
<label><?php echo __('Captcha'); ?><label>
<input type="text" name="answer" class="span3">
<?php CryptCaptcha::draw(); ?>
<?php } ?>
<br>
<?php
if (count($errors) > 0) {
foreach($errors as $error) {
Alert::error($error);
}
}
?>
<input type="submit" name="reset_password_submit" class="btn" value="<?php echo __('Send New Password', 'users')?>" />
</form>
</div>
</div>
<hr> <hr>
<div> <div>
<div style="text-align:center;"> <h2 style="text-align:center;"><?php echo __('Administration', 'system'); ?></h2><br />
<a class="small-grey-text" href="<?php echo Option::get('siteurl'); ?>"><?php echo __('< Back to Website', 'system');?></a> - <form method="post">
<a class="small-grey-text reset-password-btn" href="javascript:;"><?php echo __('Forgot your password? >', 'system');?></a> <label><?php echo __('Username', 'users'); ?></label>
<a class="small-grey-text administration-btn" href="javascript:;"><?php echo __('Administration >', 'system');?></a> <input class="input-xlarge" name="login" type="text" />
</div>
<label><?php echo __('Password', 'users'); ?></label>
<input class="input-xlarge" name="password" type="password" />
<br />
<?php if (isset($login_error) && $login_error !== '') { ?><div class="alert alert-error"><?php echo $login_error; ?></div><?php } ?>
<input type="submit" name="login_submit" class="btn" value="<?php echo __('Enter', 'users'); ?>" />
</form>
</div>
</div>
<div class="reset-password-area">
<hr>
<div>
<h2 style="text-align:center;"><?php echo __('Reset Password', 'users'); ?></h2><br />
<?php if (Notification::get('success')) Alert::success(Notification::get('success')); ?>
<form method="post">
<label><?php echo __('Username', 'users'); ?></label>
<input name="login" class="input-xlarge" type="text" value="<?php echo $user_login; ?>" />
<?php if (Option::get('captcha_installed') == 'true') { ?>
<label><?php echo __('Captcha'); ?><label>
<input type="text" name="answer" class="span3">
<?php CryptCaptcha::draw(); ?>
<?php } ?>
<br>
<?php
if (count($errors) > 0) {
foreach($errors as $error) {
Alert::error($error);
}
}
?>
<input type="submit" name="reset_password_submit" class="btn" value="<?php echo __('Send New Password', 'users')?>" />
</form>
</div>
</div>
<hr>
<div>
<div style="text-align:center;">
<a class="small-grey-text" href="<?php echo Option::get('siteurl'); ?>"><?php echo __('< Back to Website', 'system');?></a> -
<a class="small-grey-text reset-password-btn" href="javascript:;"><?php echo __('Forgot your password? >', 'system');?></a>
<a class="small-grey-text administration-btn" href="javascript:;"><?php echo __('Administration >', 'system');?></a>
</div> </div>
</div> </div>
</div> </div>
<div class="row"> <div style="text-align:center">
<div class="span4 authorization-block-footer"> <span class="small-grey-text">© 2012 <a href="http://monstra.org" class="small-grey-text" target="_blank">Monstra</a> <?php echo __('Version', 'system'); ?> <?php echo MONSTRA_VERSION; ?></span>
<div style="text-align:center">
<span class="small-grey-text">© 2012 <a href="http://monstra.org" class="small-grey-text" target="_blank">Monstra</a> <?php echo __('Version', 'system'); ?> <?php echo MONSTRA_VERSION; ?></span>
</div>
</div>
</div> </div>
</body> </body>

View File

@@ -1,3 +1,37 @@
Monstra 2.1.0, xxxx-xx-xx
------------------------
- Localization: PT-BR, UK translations added
- Default theme: hook "theme_header" added.
- System Plugin: new action "admin_system_extra_index_template_actions" added.
- Shortcodes API: delete() clear() exists() methods added.
- Options API: exists() method added.
- Core: new constant VERSION - added.
- Box Plugins: used Core::VERSION to compare Monstra CMS version.
- Installer: use version_compare() function to compare php versions.
- Admin Default Theme: general improvments.
- UsersPlugin: profile editing fixed.
- Shortcodes API: bug with similar shortcode names fixed.
- Pages Plugin: pages expand/collapse feature added.
- Pages Plugin: pages "access" feature added.
- Pages Table: "expand, "access" fields added.
- Pages Plugin: changed tab "seo" to "metadata"
- Information Plugin: add "Directory Permissions" tab.
- Twitter Bootstrap updated to Version 2.2.1
- MarkitUp! updated to Version 1.1.13
- Sitemap Plugin: links title issue fixed.
- Core: Init Site module on frontend only.
- Core: IDIORM optimization.
- Site Class: code optimization.
- Pages Plugin: code optimizations.
- Sitemap Plugin: priority bug fixed.
- Installer: Get system timezone with date_default_timezone_get() function.
- File .gitignore added.
- Monstra logo updated.
- Users Plugin: apply "content" filter for "about_me" field.
- Plugin API: Stylesheet and Javascript load() methods - fixed.
- Pages Plugin: Page editing date issue - fixed.
- Localization: EN, RU, IT, LT, DE translations fixed.
Monstra 2.0.1, 2012-10-18 Monstra 2.0.1, 2012-10-18
------------------------ ------------------------
- Localization: DE, LT, IT translations added - Localization: DE, LT, IT translations added

View File

@@ -1,17 +1,17 @@
<?php <?php
/** /**
* Monstra :: Installator * Monstra :: Installator
*/ */
// Main engine defines // Main engine defines
if ( ! defined('DS')) define('DS', DIRECTORY_SEPARATOR); if ( ! defined('DS')) define('DS', DIRECTORY_SEPARATOR);
if ( ! defined('ROOT')) define('ROOT', rtrim(dirname(__FILE__), '\\/')); if ( ! defined('ROOT')) define('ROOT', rtrim(dirname(__FILE__), '\\/'));
if ( ! defined('BACKEND')) define('BACKEND', false); if ( ! defined('BACKEND')) define('BACKEND', false);
if ( ! defined('MONSTRA_ACCESS')) define('MONSTRA_ACCESS', true); if ( ! defined('MONSTRA_ACCESS')) define('MONSTRA_ACCESS', true);
// Set default timezone // Set default timezone
$system_timezone = 'Kwajalein'; $system_timezone = date_default_timezone_get();
// Load bootstrap file // Load bootstrap file
require_once(ROOT . DS . 'monstra' . DS . 'bootstrap.php'); require_once(ROOT . DS . 'monstra' . DS . 'bootstrap.php');
@@ -31,9 +31,12 @@
// Directories to check // Directories to check
$dir_array = array('public', 'storage', 'backups', 'tmp'); $dir_array = array('public', 'storage', 'backups', 'tmp');
// Languages array
$languages_array = array('en', 'ru', 'lt', 'it', 'de', 'pt-br', 'uk');
// Select Monstra language // Select Monstra language
if (Request::get('language')) { if (Request::get('language')) {
if (in_array(Request::get('language'), array('en', 'ru', 'lt', 'it', 'de', 'pt-br'))) { if (in_array(Request::get('language'), $languages_array)) {
if (Option::update('language', Request::get('language'))) { if (Option::update('language', Request::get('language'))) {
Request::redirect($site_url); Request::redirect($site_url);
} }
@@ -153,16 +156,18 @@
color: #F74C18; color: #F74C18;
} }
.sep {
color:#ccc;
}
.language-link { .language-link {
color:#7A7A7C; color:#7A7A7C;
} }
.language-link+.language-link:before {
color: #ccc;
content: ' | ';
}
.language-link:hover { .language-link:hover {
color:#000; color:#000;
text-decoration: none;
} }
.language-link-current { .language-link-current {
@@ -228,12 +233,9 @@
<!-- Block_wrapper --> <!-- Block_wrapper -->
<div class="row"> <div class="row">
<div class="span4 install-languages"> <div class="span4 install-languages">
<a class="language-link<?php if (Option::get('language') == 'en') echo ' language-link-current';?>" href="<?php echo $site_url.'?language=en'; ?>">en</a> <span class="sep">|</span> <?php foreach($languages_array as $lang_code){?>
<a class="language-link<?php if (Option::get('language') == 'it') echo ' language-link-current';?>" href="<?php echo $site_url.'?language=it'; ?>">it</a> <span class="sep">|</span> <a class="language-link<?php if (Option::get('language') == $lang_code) echo ' language-link-current';?>" href="<?php echo $site_url.'?language=' . $lang_code; ?>"><?php echo $lang_code?></a>
<a class="language-link<?php if (Option::get('language') == 'lt') echo ' language-link-current';?>" href="<?php echo $site_url.'?language=lt'; ?>">lt</a> <span class="sep">|</span> <?php } ?>
<a class="language-link<?php if (Option::get('language') == 'de') echo ' language-link-current';?>" href="<?php echo $site_url.'?language=de'; ?>">de</a> <span class="sep">|</span>
<a class="language-link<?php if (Option::get('language') == 'pt-br') echo ' language-link-current';?>" href="<?php echo $site_url.'?language=pt-br'; ?>">pt</a> <span class="sep">|</span>
<a class="language-link<?php if (Option::get('language') == 'ru') echo ' language-link-current';?>" href="<?php echo $site_url.'?language=ru'; ?>">ru</a>
</div> </div>
</div> </div>
<div class="row"> <div class="row">
@@ -404,9 +406,9 @@
} }
if (is_writable(__FILE__)){ if (is_writable(__FILE__)){
echo '<span class="ok"><li>'.__('Install script writable', 'system').'</li></span>'; echo '<span class="ok"><li>'.__('Install script writable', 'system').'</li></span>';
} else { } else {
echo '<span class="error"><li>'.__('Install script not writable', 'system').'</li></span>'; echo '<span class="error"><li>'.__('Install script not writable', 'system').'</li></span>';
} }
if (is_writable('sitemap.xml')){ if (is_writable('sitemap.xml')){
@@ -445,4 +447,4 @@
<!-- /Block_wrapper --> <!-- /Block_wrapper -->
</body> </body>
</html> </html>

View File

@@ -148,8 +148,8 @@
if ( ! Shortcode::$shortcode_tags) return $content; if ( ! Shortcode::$shortcode_tags) return $content;
$shortcodes = implode('|', array_map('preg_quote', array_keys(Shortcode::$shortcode_tags))); $shortcodes = implode('|', array_map('preg_quote', array_keys(Shortcode::$shortcode_tags)));
$pattern = "/(.?)\{($shortcodes)(.*?)(\/)?\}(?(4)|(?:(.+?)\{\/\s*\\2\s*\}))?(.?)/s"; $pattern = "/(.?)\{([$shortcodes]+)(.*?)(\/)?\}(?(4)|(?:(.+?)\{\/\s*\\2\s*\}))?(.?)/s";
return preg_replace_callback($pattern, 'Shortcode::_handle', $content); return preg_replace_callback($pattern, 'Shortcode::_handle', $content);
} }

View File

@@ -0,0 +1,17 @@
<?php
return array(
'backup' => array(
'Backups' => 'Бекапи',
'Backup date' => 'Бекап',
'Create backup' => 'Зробити бекап',
'Delete' => 'Видалити',
'storage' => 'дані',
'public' => 'публічна',
'plugins' => 'плагіни',
'Size' => 'Розмір',
'Actions' => 'Дії',
'Delete backup: :backup' => 'Видалити бекап: :backup',
'Creating...' => 'Створення...',
)
);

View File

@@ -0,0 +1,25 @@
<?php
return array(
'blocks' => array(
'Blocks' => 'Блоки',
'Blocks manager' => 'Менеджер блоків',
'Delete' => 'Видалити',
'Edit' => 'Редагувати',
'New block' => 'Новий блок',
'Create new block' => 'Створити новий блок',
'Name' => 'Назва',
'Edit block' => 'Редагування блоку',
'Save' => 'Зберегти',
'Actions' => 'Дії',
'Save and exit' => 'Зберегти та вийти',
'Required field' => 'Обов&prime;язкове поле',
'This block already exists' => 'Такий блок вже існує',
'This block does not exist' => 'Такого блоку не існує',
'Delete block: :block' => 'Видалити блок: :block',
'Block content' => 'Вміст блоку',
'Block <i>:name</i> deleted' => 'Сніппет <i>:name</i> вилучен',
'Your changes to the block <i>:name</i> have been saved.' => 'Ваші зміни до блоку <i>:name</i> були збережені.',
'Delete block: :block' => 'Видалити блок: :block',
)
);

View File

@@ -14,7 +14,7 @@
<!-- Blocks_list --> <!-- Blocks_list -->
<table class="table table-bordered"> <table class="table table-bordered">
<thead> <thead>
<tr><td><?php echo __('Blocks', 'blocks'); ?></td><td width="30%"><?php echo __('Actions', 'blocks'); ?></td></tr> <tr><td><?php echo __('Blocks', 'blocks'); ?></td><td width="40%"><?php echo __('Actions', 'blocks'); ?></td></tr>
</thead> </thead>
<tbody> <tbody>
<?php if (count($blocks_list) != 0) foreach ($blocks_list as $block) { ?> <?php if (count($blocks_list) != 0) foreach ($blocks_list as $block) { ?>

View File

@@ -0,0 +1,8 @@
<?php
return array(
'Editor' => array(
'Editor' => 'Редактор',
'Editor plugin' => 'Редактор плагіну',
)
);

View File

@@ -0,0 +1,17 @@
<?php
return array(
'filesmanager' => array(
'Files' => 'Файли',
'Files manager' => 'Менеджер файлів',
'Name' => 'Назва',
'Actions' => 'Дії',
'Delete' => 'Видалити',
'Upload' => 'Загрузити',
'directory' => 'директорія',
'Delete directory: :dir' => 'Видалити директорію: :dir',
'Delete file: :file' => 'Видалити файл: :file',
'Extension' => 'Розширення',
'Size' => 'Розмір',
)
);

View File

@@ -16,8 +16,6 @@
'DOM module' => 'DOM Modul', 'DOM module' => 'DOM Modul',
'Installed' => 'Installiert', 'Installed' => 'Installiert',
'Not Installed' => 'Nicht Installiert', 'Not Installed' => 'Nicht Installiert',
'System version' => 'System Version',
'System version ID' => 'System Versions ID',
'Security check results' => 'Sicherheits-Check Ergebnisse', 'Security check results' => 'Sicherheits-Check Ergebnisse',
'The configuration file has been found to be writable. We would advise you to remove all write permissions on defines.php on production systems.' => 'The configuration file has been found to be writable. We would advise you to remove all write permissions on defines.php on production systems.' =>
'Die Konfigurationsdatei wurde als beschreibbar entdeckt. Wir empfehlen alle Schreibrechte für defines.php auf Produktionssystemen zu entfernen.', 'Die Konfigurationsdatei wurde als beschreibbar entdeckt. Wir empfehlen alle Schreibrechte für defines.php auf Produktionssystemen zu entfernen.',
@@ -29,5 +27,11 @@
'Die Monstra index.php Datei wurde als beschreibbar entdeckt. Wir empfehlen alle Schreibrechte zu entfernen. <br/>Du kannst dies auf Unix-Systemen ganz einfach mit: <code>chmod a-w :path</code> erledigen.', 'Die Monstra index.php Datei wurde als beschreibbar entdeckt. Wir empfehlen alle Schreibrechte zu entfernen. <br/>Du kannst dies auf Unix-Systemen ganz einfach mit: <code>chmod a-w :path</code> erledigen.',
'Due to the type and amount of information an error might give intruders when Core::$environment = Core::DEVELOPMENT, we strongly advise setting Core::PRODUCTION in production systems.' => 'Due to the type and amount of information an error might give intruders when Core::$environment = Core::DEVELOPMENT, we strongly advise setting Core::PRODUCTION in production systems.' =>
'Aufgrund der Art und Menge der Informationen kann ein Fehler Eindringlinge ergeben wenn Core::$environment = Core::DEVELOPMENT, wir raten dringend dazu folgendermaßen Core::PRODUCTION in Produktionssystemen einzustellen.', 'Aufgrund der Art und Menge der Informationen kann ein Fehler Eindringlinge ergeben wenn Core::$environment = Core::DEVELOPMENT, wir raten dringend dazu folgendermaßen Core::PRODUCTION in Produktionssystemen einzustellen.',
'Monstra version' => 'Monstra version',
'Directory Permissions' => 'Directory Berechtigungen',
'Directory' => 'Verzeichnis',
'Writable' => 'Writable',
'Unwritable' => 'Nicht beschreibbar',
'Status' => 'Status',
) )
); );

View File

@@ -16,8 +16,6 @@
'DOM module' => 'DOM module', 'DOM module' => 'DOM module',
'Installed' => 'Installed', 'Installed' => 'Installed',
'Not Installed' => 'Not Installed', 'Not Installed' => 'Not Installed',
'System version' => 'System version',
'System version ID' => 'System version ID',
'Security check results' => 'Security check results', 'Security check results' => 'Security check results',
'The configuration file has been found to be writable. We would advise you to remove all write permissions on defines.php on production systems.' => 'The configuration file has been found to be writable. We would advise you to remove all write permissions on defines.php on production systems.' =>
'The configuration file has been found to be writable. We would advise you to remove all write permissions on defines.php on production systems.', 'The configuration file has been found to be writable. We would advise you to remove all write permissions on defines.php on production systems.',
@@ -29,5 +27,11 @@
'The Monstra index.php file has been found to be writable. We would advise you to remove all write permissions. <br/>You can do this on unix systems with: <code>chmod a-w :path</code>', 'The Monstra index.php file has been found to be writable. We would advise you to remove all write permissions. <br/>You can do this on unix systems with: <code>chmod a-w :path</code>',
'Due to the type and amount of information an error might give intruders when Core::$environment = Core::DEVELOPMENT, we strongly advise setting Core::PRODUCTION in production systems.' => 'Due to the type and amount of information an error might give intruders when Core::$environment = Core::DEVELOPMENT, we strongly advise setting Core::PRODUCTION in production systems.' =>
'Due to the type and amount of information an error might give intruders when Core::$environment = Core::DEVELOPMENT, we strongly advise setting Core::PRODUCTION in production systems.', 'Due to the type and amount of information an error might give intruders when Core::$environment = Core::DEVELOPMENT, we strongly advise setting Core::PRODUCTION in production systems.',
'Monstra version' => 'Monstra version',
'Directory Permissions' => 'Directory Permissions',
'Directory' => 'Directory',
'Writable' => 'Writable',
'Unwritable' => 'Unwritable',
'Status' => 'Status',
) )
); );

View File

@@ -16,8 +16,6 @@
'DOM module' => 'Modulo DOM', 'DOM module' => 'Modulo DOM',
'Installed' => 'Installato', 'Installed' => 'Installato',
'Not Installed' => 'Non installato', 'Not Installed' => 'Non installato',
'System version' => 'Versione del sistema',
'System version ID' => 'Versione del sistema ID',
'Security check results' => 'Risultato del controllo di sicurezza', 'Security check results' => 'Risultato del controllo di sicurezza',
'The configuration file has been found to be writable. We would advise you to remove all write permissions on defines.php on production systems.' => 'The configuration file has been found to be writable. We would advise you to remove all write permissions on defines.php on production systems.' =>
'Il file di configurazione è scrivibile. Si consiglia di rimuovere le autorizzazioni di scrittura per defines.php file sul sito funzionante.', 'Il file di configurazione è scrivibile. Si consiglia di rimuovere le autorizzazioni di scrittura per defines.php file sul sito funzionante.',
@@ -29,5 +27,11 @@
'Principale file index.php è scrivibile. Si consiglia di rimuovere le autorizzazioni di scrittura per il file principale index.php. <br/> È possibile eseguire questa operazione su sistemi UNIX così: <code>chmod -R a-w :path</code>', 'Principale file index.php è scrivibile. Si consiglia di rimuovere le autorizzazioni di scrittura per il file principale index.php. <br/> È possibile eseguire questa operazione su sistemi UNIX così: <code>chmod -R a-w :path</code>',
'Due to the type and amount of information an error might give intruders when Core::$environment = Core::DEVELOPMENT, we strongly advise setting Core::PRODUCTION in production systems.' => 'Due to the type and amount of information an error might give intruders when Core::$environment = Core::DEVELOPMENT, we strongly advise setting Core::PRODUCTION in production systems.' =>
'Il sistema opera con lo stato Core::DEVELOPMENT Si consiglia di impostare lo stato Core::PRODUCTION sul sito funzionante.', 'Il sistema opera con lo stato Core::DEVELOPMENT Si consiglia di impostare lo stato Core::PRODUCTION sul sito funzionante.',
'Monstra version' => 'Monstra versione',
'Directory Permissions' => 'Directory Autorizzazioni',
'Directory' => 'Directory',
'Writable' => 'Scrivibile',
'Unwritable' => 'Non scrivibile',
'Status' => 'Stato',
) )
); );

View File

@@ -16,8 +16,6 @@
'DOM module' => 'DOM modulis', 'DOM module' => 'DOM modulis',
'Installed' => 'Įdiegta', 'Installed' => 'Įdiegta',
'Not Installed' => 'Neįdiegta', 'Not Installed' => 'Neįdiegta',
'System version' => 'Systemos versija',
'System version ID' => 'Systemos versijos ID',
'Security check results' => 'Saugumo patikrinimo rezultatai', 'Security check results' => 'Saugumo patikrinimo rezultatai',
'The configuration file has been found to be writable. We would advise you to remove all write permissions on defines.php on production systems.' => 'The configuration file has been found to be writable. We would advise you to remove all write permissions on defines.php on production systems.' =>
'Leidžiama perrašyti nustatymų bylą. Siūlome pašalinti visus rašymo leidimus sistemos bylai defines.php.', 'Leidžiama perrašyti nustatymų bylą. Siūlome pašalinti visus rašymo leidimus sistemos bylai defines.php.',
@@ -29,5 +27,11 @@
'Monstra index.php bylą galima perrašyti. Siūlome pašalinti visus rašymo leidimus. <br/>Tai galite padaryti Unix sistemoje su: <code>chmod a-w :path</code>', 'Monstra index.php bylą galima perrašyti. Siūlome pašalinti visus rašymo leidimus. <br/>Tai galite padaryti Unix sistemoje su: <code>chmod a-w :path</code>',
'Due to the type and amount of information an error might give intruders when Core::$environment = Core::DEVELOPMENT, we strongly advise setting Core::PRODUCTION in production systems.' => 'Due to the type and amount of information an error might give intruders when Core::$environment = Core::DEVELOPMENT, we strongly advise setting Core::PRODUCTION in production systems.' =>
'Dėl įsilaužimų grėsmės atvaiduojant klaidų pranešimus Core::$environment = Core::DEVELOPMENT veiksenoje, rekomenduojame naudoti Core::PRODUCTION nustatymą nuolatinėje tinklapio veiksenoje.', 'Dėl įsilaužimų grėsmės atvaiduojant klaidų pranešimus Core::$environment = Core::DEVELOPMENT veiksenoje, rekomenduojame naudoti Core::PRODUCTION nustatymą nuolatinėje tinklapio veiksenoje.',
'Monstra version' => 'Monstra versija',
'Directory Permissions' => 'Katalogs Atļaujas',
'Directory' => 'Katalogs',
'Writable' => 'Rakstāms',
'Unwritable' => 'Unwritable',
'Status' => 'Status',
) )
); );

View File

@@ -16,8 +16,6 @@
'DOM module' => 'Módulo DOM', 'DOM module' => 'Módulo DOM',
'Installed' => 'Instalado', 'Installed' => 'Instalado',
'Not Installed' => 'Não instalado', 'Not Installed' => 'Não instalado',
'System version' => 'Versão do sistema',
'System version ID' => 'ID (longo) da versão',
'Security check results' => 'Resultados da verificação de segurança', 'Security check results' => 'Resultados da verificação de segurança',
'The configuration file has been found to be writable. We would advise you to remove all write permissions on defines.php on production systems.' => 'The configuration file has been found to be writable. We would advise you to remove all write permissions on defines.php on production systems.' =>
'O arquivo de configuração está com permissões de escrita. Para melhor segurança, você deve remover as permissões de escrita do arquivo defines.php em sistemas de produções.', 'O arquivo de configuração está com permissões de escrita. Para melhor segurança, você deve remover as permissões de escrita do arquivo defines.php em sistemas de produções.',
@@ -29,5 +27,11 @@
'O arquivo index.php do diretório de instalação do Monstra está com permissões de escrita. Para sua melhor segurança, você deve remover as permissões de escritas. <br/>Vocês pode fazer isso em sistemas UNIX com: <code>chmod a-w :path</code>', 'O arquivo index.php do diretório de instalação do Monstra está com permissões de escrita. Para sua melhor segurança, você deve remover as permissões de escritas. <br/>Vocês pode fazer isso em sistemas UNIX com: <code>chmod a-w :path</code>',
'Due to the type and amount of information an error might give intruders when Core::$environment = Core::DEVELOPMENT, we strongly advise setting Core::PRODUCTION in production systems.' => 'Due to the type and amount of information an error might give intruders when Core::$environment = Core::DEVELOPMENT, we strongly advise setting Core::PRODUCTION in production systems.' =>
'Devide ao tipo e quantidade de informações, um erro pode trazer possíveis intrusos se a variável Core::$environment for igual à Core::DEVELOPMENT, para isso nós recomendamos fortemente que você sete a variável para o seguinte valor: Core::PRODUCTION em sistemas de produção.', 'Devide ao tipo e quantidade de informações, um erro pode trazer possíveis intrusos se a variável Core::$environment for igual à Core::DEVELOPMENT, para isso nós recomendamos fortemente que você sete a variável para o seguinte valor: Core::PRODUCTION em sistemas de produção.',
'Monstra version' => 'Monstra versão',
'Directory Permissions' => 'Permissões de Diretório',
'Directory' => 'Diretório',
'Writable' => 'Gravável',
'Unwritable' => 'Unwritable',
'Status' => 'Estado',
) )
); );

View File

@@ -16,8 +16,6 @@
'DOM module' => 'DOM модуль', 'DOM module' => 'DOM модуль',
'Installed' => 'Установлен', 'Installed' => 'Установлен',
'Not Installed' => 'Не установлен', 'Not Installed' => 'Не установлен',
'System version' => 'Версия системы',
'System version ID' => 'Версия системы ID',
'Security check results' => 'Результаты проверки безопасности', 'Security check results' => 'Результаты проверки безопасности',
'The configuration file has been found to be writable. We would advise you to remove all write permissions on defines.php on production systems.' => 'The configuration file has been found to be writable. We would advise you to remove all write permissions on defines.php on production systems.' =>
'Конфигурационный файл доступен для записи. Мы рекомендуем вам удалить права записи на файл defines.php на живом сайте.', 'Конфигурационный файл доступен для записи. Мы рекомендуем вам удалить права записи на файл defines.php на живом сайте.',
@@ -29,5 +27,11 @@
'Главный index.php файл доступен для записи. Мы рекомендуем вам удалить права записи на главный index.php файл. <br/> Вы можете сделать это на UNIX системах так: <code>chmod -R a-w :path</code>', 'Главный index.php файл доступен для записи. Мы рекомендуем вам удалить права записи на главный index.php файл. <br/> Вы можете сделать это на UNIX системах так: <code>chmod -R a-w :path</code>',
'Due to the type and amount of information an error might give intruders when Core::$environment = Core::DEVELOPMENT, we strongly advise setting Core::PRODUCTION in production systems.' => 'Due to the type and amount of information an error might give intruders when Core::$environment = Core::DEVELOPMENT, we strongly advise setting Core::PRODUCTION in production systems.' =>
'Система работает в режиме Core::DEVELOPMENT Мы рекомендуем вам установить режим Core::PRODUCTION на живом сайте.', 'Система работает в режиме Core::DEVELOPMENT Мы рекомендуем вам установить режим Core::PRODUCTION на живом сайте.',
'Monstra version' => 'Monstra Версия',
'Directory Permissions' => 'Права доступа',
'Directory' => 'Каталог',
'Writable' => 'Доступна для записи',
'Unwritable' => 'Недоступна для записи',
'Status' => 'Статус',
) )
); );

View File

@@ -0,0 +1,37 @@
<?php
return array(
'information' => array(
'Information' => 'Інформація',
'Debugging' => 'Дебаггінг',
'Name' => 'Назва',
'Value' => 'Значення',
'Security' => 'Безпека',
'System' => 'Система',
'on' => 'включений',
'off'=> 'вимкнено',
'Server' => 'Сервер',
'PHP version' => 'Версія PHP',
'SimpleXML module' => 'SimpleXML модуль',
'DOM module' => 'DOM модуль',
'Installed' => 'Встановлено',
'Not Installed' => 'Не встановлено',
'Security check results' => 'Результати перевірки безпеки',
'The configuration file has been found to be writable. We would advise you to remove all write permissions on defines.php on production systems.' =>
'Конфігураційний файл доступен для запису. Ми рекомендуємо вам видалити права запису на файл defines.php на живому сайті.',
'The Monstra core directory (":path") and/or files underneath it has been found to be writable. We would advise you to remove all write permissions. <br/>You can do this on unix systems with: <code>chmod -R a-w :path</code>' =>
'Директорія Monstra (":path") доступна для запису. Ми рекомендуємо вам видалити права запису на директорію (":path") на живому сайті. <br/> Ви можете зробити це на UNIX системах так: <code>chmod -R a-w :path</code>',
'The Monstra .htaccess file has been found to be writable. We would advise you to remove all write permissions. <br/>You can do this on unix systems with: <code>chmod a-w :path</code>' =>
'Головный .htaccess доступен для запису. Ми рекомендуємо вам видалити права запису на головний .htaccess файл. <br/>Ви можете зробити це на UNIX системах так: <code>chmod -R a-w :path</code>',
'The Monstra index.php file has been found to be writable. We would advise you to remove all write permissions. <br/>You can do this on unix systems with: <code>chmod a-w :path</code>' =>
'Головный index.php файл доступен для запису. Ми рекомендуємо вам видалити права запису на головний index.php файл. <br/>Ви можете зробити це на UNIX системах так: <code>chmod -R a-w :path</code>',
'Due to the type and amount of information an error might give intruders when Core::$environment = Core::DEVELOPMENT, we strongly advise setting Core::PRODUCTION in production systems.' =>
'Система працює в режимі Core::DEVELOPMENT Ми рекомендуємо вам встановити режим Core::PRODUCTION на живому сайті.',
'Monstra version' => 'Monstra Версія',
'Directory Permissions' => 'Права Доступу',
'Directory' => 'Каталог',
'Writable' => 'Доступна для запису',
'Unwritable' => 'Недоступна для запису',
'Status' => 'Статус',
)
);

View File

@@ -5,6 +5,7 @@
<ul class="nav nav-tabs"> <ul class="nav nav-tabs">
<li class="active"><a href="#system" data-toggle="tab"><?php echo __('System', 'information'); ?></a></li> <li class="active"><a href="#system" data-toggle="tab"><?php echo __('System', 'information'); ?></a></li>
<li><a href="#server" data-toggle="tab"><?php echo __('Server', 'information'); ?></a></li> <li><a href="#server" data-toggle="tab"><?php echo __('Server', 'information'); ?></a></li>
<li><a href="#directory-permissions" data-toggle="tab"><?php echo __('Directory Permissions', 'information'); ?></a></li>
<li><a href="#security" data-toggle="tab"><?php echo __('Security', 'information'); ?></a></li> <li><a href="#security" data-toggle="tab"><?php echo __('Security', 'information'); ?></a></li>
</ul> </ul>
@@ -20,14 +21,10 @@
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<tr> <tr>
<td><?php echo __('System version', 'information'); ?></td> <td><?php echo __('Monstra version', 'information'); ?></td>
<td><?php echo Core::VERSION; ?></td> <td><?php echo Core::VERSION; ?></td>
</tr> </tr>
<tr>
<td><?php echo __('System version ID', 'information'); ?></td>
<td><?php echo MONSTRA_VERSION_ID; ?></td>
</tr>
<tr> <tr>
<td><?php echo __('GZIP', 'information'); ?></td> <td><?php echo __('GZIP', 'information'); ?></td>
<td><?php if (MONSTRA_GZIP) { echo __('on', 'information'); } else { echo __('off', 'information'); } ?></td> <td><?php if (MONSTRA_GZIP) { echo __('on', 'information'); } else { echo __('off', 'information'); } ?></td>
@@ -80,6 +77,49 @@
</table> </table>
</div> </div>
<div class="tab-pane" id="directory-permissions">
<table class="table table-bordered">
<thead>
<tr>
<td><?php echo __('Directory', 'information'); ?></td>
<td><?php echo __('Status', 'information'); ?></td>
</tr>
</thead>
<tbody>
<tr>
<td><?php echo STORAGE ?></td>
<td><?php if (Dir::writable(STORAGE)) { ?><span class="badge badge-success"><?php echo __('Writable', 'information'); ?></span><?php } else { ?><span class="badge badge-error"><?php echo __('Unwritable', 'information'); ?></span><?php } ?></td>
</tr>
<tr>
<td><?php echo ROOT . DS . 'tmp'; ?></td>
<td><?php if (Dir::writable(ROOT . DS . 'tmp')) { ?><span class="badge badge-success"><?php echo __('Writable', 'information'); ?></span><?php } else { ?><span class="badge badge-error"><?php echo __('Unwritable', 'information'); ?></span><?php } ?></td>
</tr>
<tr>
<td><?php echo ROOT . DS . 'backups' ?></td>
<td><?php if (Dir::writable(ROOT . DS . 'backups')) { ?><span class="badge badge-success"><?php echo __('Writable', 'information'); ?></span><?php } else { ?><span class="badge badge-error"><?php echo __('Unwritable', 'information'); ?></span><?php } ?></td>
</tr>
<tr>
<td><?php echo ROOT . DS . 'public' ?></td>
<td><?php if (Dir::writable(ROOT . DS . 'public')) { ?><span class="badge badge-success"><?php echo __('Writable', 'information'); ?></span><?php } else { ?><span class="badge badge-error"><?php echo __('Unwritable', 'information'); ?></span><?php } ?></td>
</tr>
<tr>
<td><?php echo MONSTRA ?></td>
<td><?php if (Dir::writable(MONSTRA)) { ?><span class="badge badge-success"><?php echo __('Writable', 'information'); ?></span><?php } else { ?><span class="badge badge-error"><?php echo __('Unwritable', 'information'); ?></span><?php } ?></td>
</tr>
<tr>
<td><?php echo PLUGINS ?></td>
<td><?php if (Dir::writable(PLUGINS)) { ?><span class="badge badge-success"><?php echo __('Writable', 'information'); ?></span><?php } else { ?><span class="badge badge-error"><?php echo __('Unwritable', 'information'); ?></span><?php } ?></td>
</tr>
<tr>
<td><?php echo ROOT . DS . 'admin' ?></td>
<td><?php if (Dir::writable(ROOT . DS . 'admin')) { ?><span class="badge badge-success"><?php echo __('Writable', 'information'); ?></span><?php } else { ?><span class="badge badge-error"><?php echo __('Unwritable', 'information'); ?></span><?php } ?></td>
</tr>
</tbody>
</table>
</div>
<div class="tab-pane" id="security"> <div class="tab-pane" id="security">

View File

@@ -0,0 +1,27 @@
<?php
return array(
'menu' => array(
'Menu' => 'Меню',
'Menu manager' => 'Менеджер меню',
'Edit' => 'Редагувати',
'Name' => 'Назва',
'Delete' => 'Видалити',
'Order' => 'Порядок',
'Actions' => 'Дії',
'Create new item' => 'Створити новий пункт меню',
'New item' => 'Новий пункт меню',
'Item name' => 'Назва',
'Item order' => 'Порядок',
'Item target' => 'Ціль',
'Item link' => 'Ссылка',
'Item category' => 'Категорія',
'Save' => 'Зберегти',
'Edit item' => 'Редагування пункту меню',
'Delete item :name' => 'Видалити пункт меню :name',
'Select page' => 'Вибрати сторінку',
'Category' => 'Категорія',
'Select category' => 'Вибрати категорію',
'Required field' => 'Обов’язкове поле',
)
);

View File

@@ -44,8 +44,11 @@
'Page <i>:page</i> deleted' => 'Seite <i>:page</i> wurde gelöscht', 'Page <i>:page</i> deleted' => 'Seite <i>:page</i> wurde gelöscht',
'Search Engines Robots' => 'Suchmaschinen-Roboter', 'Search Engines Robots' => 'Suchmaschinen-Roboter',
'Page' => 'Seite', 'Page' => 'Seite',
'SEO' => 'SEO', 'Metadata' => 'Metadata',
'Settings' => 'Einstellungen', 'Settings' => 'Einstellungen',
'Required field' => 'Pflichtfeld', 'Required field' => 'Pflichtfeld',
'Access' => 'Zugriff',
'Public' => 'Öffentlichkeit',
'Registered' => 'Eingetragen',
) )
); );

View File

@@ -44,8 +44,11 @@
'Page <i>:page</i> deleted' => 'Page <i>:page</i> deleted', 'Page <i>:page</i> deleted' => 'Page <i>:page</i> deleted',
'Search Engines Robots' => 'Search Engines Robots', 'Search Engines Robots' => 'Search Engines Robots',
'Page' => 'Page', 'Page' => 'Page',
'SEO' => 'SEO', 'Metadata' => 'Metadata',
'Settings' => 'Settings', 'Settings' => 'Settings',
'Required field' => 'Required field', 'Required field' => 'Required field',
'Access' => 'Access',
'Public' => 'Public',
'Registered' => 'Registered',
) )
); );

View File

@@ -44,8 +44,11 @@
'Page <i>:page</i> deleted' => 'Pagina <i>:page</i> è stata cancellata', 'Page <i>:page</i> deleted' => 'Pagina <i>:page</i> è stata cancellata',
'Search Engines Robots' => 'Robot dei motori di ricerca', 'Search Engines Robots' => 'Robot dei motori di ricerca',
'Page' => 'Pagina', 'Page' => 'Pagina',
'SEO' => 'SEO', 'Metadata' => 'Metadata',
'Settings' => 'Impostazioni', 'Settings' => 'Impostazioni',
'Required field' => 'Campo obbligatorio', 'Required field' => 'Campo obbligatorio',
'Access' => 'Accesso',
'Public' => 'Pubblico',
'Registered' => 'Registrato',
), ),
); );

View File

@@ -44,8 +44,11 @@
'Page <i>:page</i> deleted' => 'Puslapis <i>:page</i> ištrintas', 'Page <i>:page</i> deleted' => 'Puslapis <i>:page</i> ištrintas',
'Search Engines Robots' => 'Paieškos variklių robotai', 'Search Engines Robots' => 'Paieškos variklių robotai',
'Page' => 'Puslapis', 'Page' => 'Puslapis',
'SEO' => 'SEO', 'Metadata' => 'Metadata',
'Settings' => 'Nustatymai', 'Settings' => 'Nustatymai',
'Required field' => 'Privalomas laukas', 'Required field' => 'Privalomas laukas',
'Access' => 'Pieeja',
'Public' => 'Valsts',
'Registered' => 'Reģistrēta',
) )
); );

View File

@@ -44,8 +44,11 @@
'Page <i>:page</i> deleted' => 'Página <i>:page</i> deletada', 'Page <i>:page</i> deleted' => 'Página <i>:page</i> deletada',
'Search Engines Robots' => 'Crawlers de sistemas de buscas.', 'Search Engines Robots' => 'Crawlers de sistemas de buscas.',
'Page' => 'Página', 'Page' => 'Página',
'SEO' => 'SEO', 'Metadata' => 'Metadata',
'Settings' => 'Configurações', 'Settings' => 'Configurações',
'Required field' => 'Campo requerido', 'Required field' => 'Campo requerido',
'Access' => 'Acesso',
'Public' => 'Público',
'Registered' => 'Registrado',
) )
); );

View File

@@ -44,8 +44,11 @@
'Page <i>:page</i> deleted' => 'Страница <i>:page</i> удалена', 'Page <i>:page</i> deleted' => 'Страница <i>:page</i> удалена',
'Search Engines Robots' => 'Поисковые роботы', 'Search Engines Robots' => 'Поисковые роботы',
'Page' => 'Страница', 'Page' => 'Страница',
'SEO' => 'SEO', 'Metadata' => 'Метаданные',
'Settings' => 'Настройки', 'Settings' => 'Настройки',
'Required field' => 'Обязательное поле', 'Required field' => 'Обязательное поле',
'Access' => 'Доступ',
'Public' => 'Публичный',
'Registered' => 'Зарегистрированным',
), ),
); );

View File

@@ -0,0 +1,54 @@
<?php
return array(
'pages' => array(
'Pages' => 'Сторінки',
'Pages manager' => 'Менеджер сторінок',
'Content' => 'Контент',
'Create new page' => 'Створити нову сторінку',
'New page' => 'Нова сторінка',
'Edit page' => 'Редагування сторінки',
'Date' => 'Дата',
'Clone' => 'Клонувати',
'Edit' => 'Редагувати',
'Delete' => 'Видалити',
'Delete page: :page' => 'Видалити сторінку: :page',
'Title' => 'Заголовок',
'Name' => 'Назва',
'Author' => 'Автор',
'Name (slug)' => 'Назва (slug)',
'Description' => 'Опис',
'Keywords' => 'Ключові слова',
'Parent' => 'Родитель',
'Template' => 'Шаблон',
'Year' => 'Рік',
'Day' => 'День',
'Month' => 'Місяц',
'Hours' => 'Час',
'Minute' => 'Мінута',
'Second' => 'Секунда',
'This field should not be empty' => 'Це поле не може бути пустим',
'This page already exists' => 'Така сторінка вже існує',
'Extra' => 'Додатково',
'Save' => 'Зберегти',
'Save and exit' => 'Зберегти и вийти',
'Your changes to the page <i>:page</i> have been saved.' => 'Ваші зміни до сторінки <i>:page</i> були збережені.',
'The page <i>:page</i> cloned.' => 'Сторінка <i>:page</i> клонована.',
'Status' => 'Статус',
'Actions' => 'Дії',
'Add' => 'Додати',
'Published' => 'Опубліковано',
'Draft' => 'Чернетка',
'Published on' => 'Опубліковано',
'Edit 404 page' => 'Редагувати сторінку 404',
'Page <i>:page</i> deleted' => 'Сторінка <i>:page</i> видалена',
'Search Engines Robots' => 'Пошукові роботи',
'Page' => 'Сторінка',
'Metadata' => 'Метадані',
'Settings' => 'Налаштування',
'Required field' => 'Обов’язкове поле',
'Access' => 'Доступ',
'Public' => 'Публічний',
'Registered' => 'Зареєстрованим',
),
);

View File

@@ -1,10 +1,65 @@
<?php <?php
Navigation::add(__('Pages', 'pages'), 'content', 'pages', 1); Navigation::add(__('Pages', 'pages'), 'content', 'pages', 1);
Action::add('admin_header', 'PagesAdmin::_themeHeaders');
Action::add('admin_pre_render','PagesAdmin::_pageExpandAjax');
class PagesAdmin extends Backend { class PagesAdmin extends Backend {
/**
* Pages tables
*
* @var object
*/
public static $pages = null;
/**
* _pageExpandAjax
*/
public static function _pageExpandAjax() {
if (Request::post('slug')) {
if (Security::check(Request::post('token'))) {
$pages = new Table('pages');
$pages->updateWhere('[slug="'.Request::post('slug').'"]', array('expand' => Request::post('expand')));
Request::shutdown();
} else { die('csrf detected!'); }
}
}
/**
* _themeHeaders
*/
public static function _themeHeaders() {
echo ('<script>
function pageExpand(slug, expand, token) {
$.ajax({
type:"post",
data:"slug="+slug+"&expand="+expand+"&token="+token,
url: "'.Option::get('siteurl').'admin/index.php?id=pages"
});
}
$(document).ready(function() {
$(".parent").click(function() {
if ($(this).html() == "-") {
$(\'[rel="children_\' + $(this).attr(\'rel\')+\'"]\').hide();
$(this).html("+");
pageExpand($(this).attr("rel"), "1", $(this).attr("token"));
} else {
$(\'[rel="children_\' + $(this).attr(\'rel\')+\'"]\').show();
$(this).html("-");
pageExpand($(this).attr("rel"), "0", $(this).attr("token"));
}
});
});
</script>');
}
/** /**
* Pages admin function * Pages admin function
@@ -19,6 +74,8 @@
$errors = array(); $errors = array();
$pages = new Table('pages'); $pages = new Table('pages');
PagesAdmin::$pages = $pages;
$users = new Table('users'); $users = new Table('users');
$user = $users->select('[id='.Session::get('user_id').']', null); $user = $users->select('[id='.Session::get('user_id').']', null);
@@ -39,6 +96,11 @@
$status_array = array('published' => __('Published', 'pages'), $status_array = array('published' => __('Published', 'pages'),
'draft' => __('Draft', 'pages')); 'draft' => __('Draft', 'pages'));
// Access array
$access_array = array('public' => __('Public', 'pages'),
'registered' => __('Registered', 'pages'));
// Check for get actions // Check for get actions
// --------------------------------------------- // ---------------------------------------------
@@ -68,6 +130,7 @@
'robots_index' => $orig_page['robots_index'], 'robots_index' => $orig_page['robots_index'],
'robots_follow'=> $orig_page['robots_follow'], 'robots_follow'=> $orig_page['robots_follow'],
'status' => $orig_page['status'], 'status' => $orig_page['status'],
'access' => $orig_page['access'],
'title' => $rand_page_name, 'title' => $rand_page_name,
'description' => $orig_page['description'], 'description' => $orig_page['description'],
'keywords' => $orig_page['keywords'], 'keywords' => $orig_page['keywords'],
@@ -137,6 +200,7 @@
'template' => Request::post('templates'), 'template' => Request::post('templates'),
'parent' => $parent_page, 'parent' => $parent_page,
'status' => Request::post('status'), 'status' => Request::post('status'),
'access' => Request::post('access'),
'robots_index' => $robots_index, 'robots_index' => $robots_index,
'robots_follow'=> $robots_follow, 'robots_follow'=> $robots_follow,
'title' => Request::post('page_title'), 'title' => Request::post('page_title'),
@@ -190,6 +254,8 @@
if (Request::post('page_description')) $post_description = Request::post('page_description'); else $post_description = ''; if (Request::post('page_description')) $post_description = Request::post('page_description'); else $post_description = '';
if (Request::post('editor')) $post_content = Request::post('editor'); else $post_content = ''; if (Request::post('editor')) $post_content = Request::post('editor'); else $post_content = '';
if (Request::post('templates')) $post_template = Request::post('templates'); else $post_template = 'index'; if (Request::post('templates')) $post_template = Request::post('templates'); else $post_template = 'index';
if (Request::post('status')) $post_status = Request::post('status'); else $post_status = 'published';
if (Request::post('access')) $post_access = Request::post('access'); else $post_access = 'public';
if (Request::post('pages')) $parent_page = Request::post('pages'); else if(Request::get('parent_page')) $parent_page = Request::get('parent_page'); else $parent_page = ''; if (Request::post('pages')) $parent_page = Request::post('pages'); else if(Request::get('parent_page')) $parent_page = Request::get('parent_page'); else $parent_page = '';
if (Request::post('robots_index')) $post_robots_index = true; else $post_robots_index = false; if (Request::post('robots_index')) $post_robots_index = true; else $post_robots_index = false;
if (Request::post('robots_follow')) $post_robots_follow = true; else $post_robots_follow = false; if (Request::post('robots_follow')) $post_robots_follow = true; else $post_robots_follow = false;
@@ -212,7 +278,10 @@
->assign('parent_page', $parent_page) ->assign('parent_page', $parent_page)
->assign('templates_array', $templates_array) ->assign('templates_array', $templates_array)
->assign('post_template', $post_template) ->assign('post_template', $post_template)
->assign('post_status', $post_status)
->assign('post_access', $post_access)
->assign('status_array', $status_array) ->assign('status_array', $status_array)
->assign('access_array', $access_array)
->assign('date', $date) ->assign('date', $date)
->assign('post_robots_index', $post_robots_index) ->assign('post_robots_index', $post_robots_index)
->assign('post_robots_follow', $post_robots_follow) ->assign('post_robots_follow', $post_robots_follow)
@@ -253,6 +322,8 @@
if (Request::post('page_description')) $post_description = Request::post('page_description'); else $post_description = ''; if (Request::post('page_description')) $post_description = Request::post('page_description'); else $post_description = '';
if (Request::post('editor')) $post_content = Request::post('editor'); else $post_content = ''; if (Request::post('editor')) $post_content = Request::post('editor'); else $post_content = '';
if (Request::post('templates')) $post_template = Request::post('templates'); else $post_template = 'index'; if (Request::post('templates')) $post_template = Request::post('templates'); else $post_template = 'index';
if (Request::post('status')) $post_status = Request::post('status'); else $post_status = 'published';
if (Request::post('access')) $post_access = Request::post('access'); else $post_access = 'public';
if (Request::post('robots_index')) $post_robots_index = true; else $post_robots_index = false; if (Request::post('robots_index')) $post_robots_index = true; else $post_robots_index = false;
if (Request::post('robots_follow')) $post_robots_follow = true; else $post_robots_follow = false; if (Request::post('robots_follow')) $post_robots_follow = true; else $post_robots_follow = false;
//-------------- //--------------
@@ -284,6 +355,7 @@
'robots_index' => $robots_index, 'robots_index' => $robots_index,
'robots_follow'=> $robots_follow, 'robots_follow'=> $robots_follow,
'status' => Request::post('status'), 'status' => Request::post('status'),
'access' => Request::post('ascess'),
'date' => $date, 'date' => $date,
'author' => $author))) { 'author' => $author))) {
@@ -306,6 +378,7 @@
'robots_index' => $robots_index, 'robots_index' => $robots_index,
'robots_follow'=> $robots_follow, 'robots_follow'=> $robots_follow,
'status' => Request::post('status'), 'status' => Request::post('status'),
'access' => Request::post('access'),
'date' => $date, 'date' => $date,
'author' => $author))) { 'author' => $author))) {
@@ -385,6 +458,7 @@
} }
if (Request::post('templates')) $template = Request::post('templates'); else $template = $page['template']; if (Request::post('templates')) $template = Request::post('templates'); else $template = $page['template'];
if (Request::post('status')) $status = Request::post('status'); else $status = $page['status']; if (Request::post('status')) $status = Request::post('status'); else $status = $page['status'];
if (Request::post('access')) $access = Request::post('access'); else $access = $page['access'];
// Generate date // Generate date
$date = Request::post('date') ? Request::post('date') : Date::format($page['date'], 'Y-m-d H:i:s'); $date = Request::post('date') ? Request::post('date') : Date::format($page['date'], 'Y-m-d H:i:s');
@@ -404,7 +478,9 @@
->assign('templates_array', $templates_array) ->assign('templates_array', $templates_array)
->assign('template', $template) ->assign('template', $template)
->assign('status_array', $status_array) ->assign('status_array', $status_array)
->assign('access_array', $access_array)
->assign('status', $status) ->assign('status', $status)
->assign('access', $access)
->assign('date', $date) ->assign('date', $date)
->assign('post_robots_index', $post_robots_index) ->assign('post_robots_index', $post_robots_index)
->assign('post_robots_follow', $post_robots_follow) ->assign('post_robots_follow', $post_robots_follow)
@@ -428,7 +504,12 @@
// Delete page and update <parent> fields // Delete page and update <parent> fields
if ($pages->deleteWhere('[slug="'.$page['slug'].'" ]')) { if ($pages->deleteWhere('[slug="'.$page['slug'].'" ]')) {
$pages->updateWhere('[parent="'.$page['slug'].'"]', array('parent' => ''));
$_pages = $pages->select('[parent="'.$page['slug'].'"]', 'all');
foreach($_pages as $_page) {
$pages->updateWhere('[slug="'.$_page['slug'].'"]', array('parent' => ''));
}
File::delete(STORAGE . DS . 'pages' . DS . $page['id'] . '.page.txt'); File::delete(STORAGE . DS . 'pages' . DS . $page['id'] . '.page.txt');
Notification::set('success', __('Page <i>:page</i> deleted', 'pages', array(':page' => Html::toText($page['title'])))); Notification::set('success', __('Page <i>:page</i> deleted', 'pages', array(':page' => Html::toText($page['title']))));
} }
@@ -458,7 +539,7 @@
$count = 0; $count = 0;
// Get pages // Get pages
$pages_list = $pages->select(null, 'all', null, array('slug', 'title', 'status', 'date', 'author', 'parent')); $pages_list = $pages->select(null, 'all', null, array('slug', 'title', 'status', 'date', 'author', 'expand', 'access', 'parent'));
// Loop // Loop
foreach ($pages_list as $page) { foreach ($pages_list as $page) {
@@ -466,8 +547,10 @@
$pages_array[$count]['title'] = $page['title']; $pages_array[$count]['title'] = $page['title'];
$pages_array[$count]['parent'] = $page['parent']; $pages_array[$count]['parent'] = $page['parent'];
$pages_array[$count]['status'] = $status_array[$page['status']]; $pages_array[$count]['status'] = $status_array[$page['status']];
$pages_array[$count]['access'] = isset($access_array[$page['access']]) ? $access_array[$page['access']] : $access_array['public']; // hack for old Monstra Versions
$pages_array[$count]['date'] = $page['date']; $pages_array[$count]['date'] = $page['date'];
$pages_array[$count]['author'] = $page['author']; $pages_array[$count]['author'] = $page['author'];
$pages_array[$count]['expand'] = $page['expand'];
$pages_array[$count]['slug'] = $page['slug']; $pages_array[$count]['slug'] = $page['slug'];
if (isset($page['parent'])) { if (isset($page['parent'])) {

View File

@@ -114,13 +114,30 @@
// Check is child_parent -> request parent // Check is child_parent -> request parent
if ($c_p == $data[0]) { if ($c_p == $data[0]) {
// Checking only for the parent and one child, the remaining issue 404
if (count($data) < 3) { if (count($data) < 3) { // Checking only for the parent and one child, the remaining issue 404
$id = $data[1]; // Get real request page
if ((($child_page['status'] == 'published') or
(Session::exists('user_role') && in_array(Session::get('user_role'), array('admin', 'editor')))) and
($child_page['access'] == 'public')) {
$id = $data[1];
} elseif (($child_page['access'] == 'registered') and
(Session::exists('user_id')) and
($child_page['status'] == 'published')) {
$id = $data[1];
} else {
$id = 'error404';
Response::status(404);
}
} else { } else {
$id = 'error404'; $id = 'error404';
Response::status(404); Response::status(404);
} }
} else { } else {
$id = 'error404'; $id = 'error404';
Response::status(404); Response::status(404);
@@ -129,6 +146,7 @@
$id = 'error404'; $id = 'error404';
Response::status(404); Response::status(404);
} }
} else { // Only parent page come } else { // Only parent page come
if(empty($data[0])) { if(empty($data[0])) {
@@ -151,14 +169,26 @@
// Check if this page has parent // Check if this page has parent
if ($c_p !== '') { if ($c_p !== '') {
if ($c_p == $data[0]) { if ($c_p == $data[0]) {
if (count(Pages::$pages->select('[slug="'.$data[0].'"]', null)) != 0) { if (count(Pages::$pages->select('[slug="'.$data[0].'"]', null)) != 0) {
if (($current_page['status'] == 'published') or (Session::exists('user_role') && in_array(Session::get('user_role'), array('admin', 'editor')))) {
if ((($current_page['status'] == 'published') or
(Session::exists('user_role') && in_array(Session::get('user_role'), array('admin', 'editor')))) and
($current_page['access'] == 'public')) {
$id = $data[0]; $id = $data[0];
} elseif (($current_page['access'] == 'registered') and
(Session::exists('user_id')) and
($current_page['status'] == 'published')) {
$id = $data[0];
} else { } else {
$id = 'error404'; $id = 'error404';
Response::status(404); Response::status(404);
} }
} else { } else {
$id = 'error404'; $id = 'error404';
Response::status(404); Response::status(404);
@@ -168,9 +198,20 @@
Response::status(404); Response::status(404);
} }
} else { } else {
if (count(Pages::$pages->select('[slug="'.$data[0].'"]', null)) != 0) { if (count(Pages::$pages->select('[slug="'.$data[0].'"]', null)) != 0) {
if (($current_page['status'] == 'published') or (Session::exists('user_role') && in_array(Session::get('user_role'), array('admin', 'editor')))) { if ((($current_page['status'] == 'published') or
(Session::exists('user_role') && in_array(Session::get('user_role'), array('admin', 'editor')))) and
($current_page['access'] == 'public')) {
$id = $data[0]; $id = $data[0];
} elseif (($current_page['access'] == 'registered') and
(Session::exists('user_id')) and
($current_page['status'] == 'published')) {
$id = $data[0];
} else { } else {
$id = 'error404'; $id = 'error404';
Response::status(404); Response::status(404);

View File

@@ -15,7 +15,7 @@
<ul class="nav nav-tabs"> <ul class="nav nav-tabs">
<li <?php if (Notification::get('page')) { ?>class="active"<?php } ?>><a href="#page" data-toggle="tab"><?php echo __('Page', 'pages'); ?></a></li> <li <?php if (Notification::get('page')) { ?>class="active"<?php } ?>><a href="#page" data-toggle="tab"><?php echo __('Page', 'pages'); ?></a></li>
<li <?php if (Notification::get('seo')) { ?>class="active"<?php } ?>><a href="#seo" data-toggle="tab"><?php echo __('SEO', 'pages'); ?></a></li> <li <?php if (Notification::get('metadata')) { ?>class="active"<?php } ?>><a href="#metadata" data-toggle="tab"><?php echo __('Metadata', 'pages'); ?></a></li>
<li <?php if (Notification::get('settings')) { ?>class="active"<?php } ?>><a href="#settings" data-toggle="tab"><?php echo __('Settings', 'pages'); ?></a></li> <li <?php if (Notification::get('settings')) { ?>class="active"<?php } ?>><a href="#settings" data-toggle="tab"><?php echo __('Settings', 'pages'); ?></a></li>
</ul> </ul>
@@ -39,7 +39,7 @@
?> ?>
</div> </div>
<div class="tab-pane <?php if (Notification::get('seo')) { ?>active<?php } ?>" id="seo"> <div class="tab-pane <?php if (Notification::get('metadata')) { ?>active<?php } ?>" id="metadata">
<?php <?php
echo ( echo (
Form::label('page_keywords', __('Keywords', 'pages')). Form::label('page_keywords', __('Keywords', 'pages')).
@@ -61,7 +61,7 @@
</div> </div>
<div class="tab-pane <?php if (Notification::get('settings')) { ?>active<?php } ?>" id="settings"> <div class="tab-pane <?php if (Notification::get('settings')) { ?>active<?php } ?>" id="settings">
<div class="row-fluid"> <div class="row-fluid">
<div class="span4"> <div class="span3">
<?php <?php
echo ( echo (
Form::label('pages', __('Parent', 'pages')). Form::label('pages', __('Parent', 'pages')).
@@ -69,7 +69,7 @@
); );
?> ?>
</div> </div>
<div class="span4"> <div class="span3">
<?php <?php
echo ( echo (
Form::label('templates', __('Template', 'pages')). Form::label('templates', __('Template', 'pages')).
@@ -77,11 +77,19 @@
); );
?> ?>
</div> </div>
<div class="span4"> <div class="span3">
<?php <?php
echo ( echo (
Form::label('status', __('Status', 'pages')). Form::label('status', __('Status', 'pages')).
Form::select('status', $status_array, 'published') Form::select('status', $status_array, $post_status)
);
?>
</div>
<div class="span3">
<?php
echo (
Form::label('access', __('Access', 'pages')).
Form::select('access', $access_array, $post_access)
); );
?> ?>
</div> </div>

View File

@@ -18,7 +18,7 @@
<ul class="nav nav-tabs"> <ul class="nav nav-tabs">
<li <?php if (Notification::get('page')) { ?>class="active"<?php } ?>><a href="#page" data-toggle="tab"><?php echo __('Page', 'pages'); ?></a></li> <li <?php if (Notification::get('page')) { ?>class="active"<?php } ?>><a href="#page" data-toggle="tab"><?php echo __('Page', 'pages'); ?></a></li>
<li <?php if (Notification::get('seo')) { ?>class="active"<?php } ?>><a href="#seo" data-toggle="tab"><?php echo __('SEO', 'pages'); ?></a></li> <li <?php if (Notification::get('metadata')) { ?>class="active"<?php } ?>><a href="#metadata" data-toggle="tab"><?php echo __('Metadata', 'pages'); ?></a></li>
<li <?php if (Notification::get('settings')) { ?>class="active"<?php } ?>><a href="#settings" data-toggle="tab"><?php echo __('Settings', 'pages'); ?></a></li> <li <?php if (Notification::get('settings')) { ?>class="active"<?php } ?>><a href="#settings" data-toggle="tab"><?php echo __('Settings', 'pages'); ?></a></li>
</ul> </ul>
@@ -50,7 +50,7 @@
if (isset($errors['pages_exists'])) echo Html::nbsp(3).'<span style="color:red">'.$errors['pages_exists'].'</span>'; if (isset($errors['pages_exists'])) echo Html::nbsp(3).'<span style="color:red">'.$errors['pages_exists'].'</span>';
?> ?>
</div> </div>
<div class="tab-pane <?php if (Notification::get('seo')) { ?>active<?php } ?>" id="seo"> <div class="tab-pane <?php if (Notification::get('metadata')) { ?>active<?php } ?>" id="metadata">
<?php <?php
@@ -77,7 +77,7 @@
echo Form::hidden('pages', $parent_page); echo Form::hidden('pages', $parent_page);
} else { } else {
?> ?>
<div class="span4"> <div class="span3">
<?php <?php
echo ( echo (
Form::label('pages', __('Parent', 'pages')). Form::label('pages', __('Parent', 'pages')).
@@ -87,7 +87,7 @@
</div> </div>
<?php } ?> <?php } ?>
<?php if (Request::get('name') != 'error404') { ?> <?php if (Request::get('name') != 'error404') { ?>
<div class="span4"> <div class="span3">
<?php } else { ?> <?php } else { ?>
<div> <div>
<?php } ?> <?php } ?>
@@ -103,7 +103,7 @@
echo Form::hidden('status', $status); echo Form::hidden('status', $status);
} else { } else {
?> ?>
<div class="span4"> <div class="span3">
<?php <?php
echo ( echo (
Form::label('status', __('Status', 'pages')). Form::label('status', __('Status', 'pages')).
@@ -112,6 +112,20 @@
?> ?>
</div> </div>
<?php } ?> <?php } ?>
<?php
if (Request::get('name') == 'error404') {
echo Form::hidden('access', $access);
} else {
?>
<div class="span3">
<?php
echo (
Form::label('access', __('Access', 'pages')).
Form::select('access', $access_array, $access)
);
?>
</div>
<?php } ?>
</div> </div>
</div> </div>
</div> </div>

View File

@@ -18,9 +18,11 @@
<table class="table table-bordered"> <table class="table table-bordered">
<thead> <thead>
<tr> <tr>
<td width="3%"></td>
<td><?php echo __('Name', 'pages'); ?></td> <td><?php echo __('Name', 'pages'); ?></td>
<td><?php echo __('Author', 'pages'); ?></td> <td><?php echo __('Author', 'pages'); ?></td>
<td><?php echo __('Status', 'pages'); ?></td> <td><?php echo __('Status', 'pages'); ?></td>
<td><?php echo __('Access', 'pages'); ?></td>
<td><?php echo __('Date', 'pages'); ?></td> <td><?php echo __('Date', 'pages'); ?></td>
<td width="40%"><?php echo __('Actions', 'pages'); ?></td> <td width="40%"><?php echo __('Actions', 'pages'); ?></td>
</tr> </tr>
@@ -32,12 +34,28 @@
if ($page['parent'] != '') { $dash = Html::arrow('right').'&nbsp;&nbsp;'; } else { $dash = ""; } if ($page['parent'] != '') { $dash = Html::arrow('right').'&nbsp;&nbsp;'; } else { $dash = ""; }
?> ?>
<?php if ($page['slug'] != 'error404') { ?> <?php if ($page['slug'] != 'error404') { ?>
<tr> <?php
$expand = PagesAdmin::$pages->select('[slug="'.(string)$page['parent'].'"]', null);
if ($page['parent'] !== '' && isset($expand['expand']) && $expand['expand'] == '1') { $visibility = 'style="display:none;"'; } else { $visibility = ''; }
?>
<tr <?php echo $visibility; ?> <?php if(trim($page['parent']) !== '') {?> rel="children_<?php echo $page['parent']; ?>" <?php } ?>>
<td>
<?php
if (count(PagesAdmin::$pages->select('[parent="'.(string)$page['slug'].'"]', 'all')) > 0) {
if (isset($page['expand']) && $page['expand'] == '1') {
echo '<a href="javascript:;" class="btn-expand parent" token="'.Security::token().'" rel="'.$page['slug'].'">+</a>';
} else {
echo '<a href="javascript:;" class="btn-expand parent" token="'.Security::token().'" rel="'.$page['slug'].'">-</a>';
}
}
?>
</td>
<td> <td>
<?php <?php
$parent = (trim($page['parent']) == '') ? '' : $page['parent'].'/'; $_parent = (trim($page['parent']) == '') ? '' : $page['parent'];
$parent = (trim($page['parent']) == '') ? '' : $page['parent'].'/';
echo (trim($page['parent']) == '') ? '' : '&nbsp;'; echo (trim($page['parent']) == '') ? '' : '&nbsp;';
echo $dash.Html::anchor(Html::toText($page['title']), $site_url.$parent.$page['slug'], array('target' => '_blank')); echo $dash.Html::anchor(Html::toText($page['title']), $site_url.$parent.$page['slug'], array('target' => '_blank', 'rel' => 'children_'.$_parent));
?> ?>
</td> </td>
<td> <td>
@@ -46,6 +64,9 @@
<td> <td>
<?php echo $page['status']; ?> <?php echo $page['status']; ?>
</td> </td>
<td>
<?php echo $page['access']; ?>
</td>
<td> <td>
<?php echo Date::format($page['date'], "j.n.Y"); ?> <?php echo Date::format($page['date'], "j.n.Y"); ?>
</td> </td>
@@ -68,6 +89,7 @@
</div> </div>
</td> </td>
</tr> </tr>
<?php } ?> <?php } ?>
<?php <?php
} }

View File

@@ -0,0 +1,20 @@
<?php
return array(
'plugins' => array(
'Plugins' => 'Плагіни',
'Installed' => 'Установлені',
'Install New' => 'Установити нові',
'Actions' => 'Дії',
'Name' => 'Назва',
'Description' => 'Опис',
'Delete' => 'Видалити',
'Delete plugin :plugin' => 'Видалити плагін :plugin',
'This plugin does not exist' => 'Такого плагіна не існує',
'Version' => 'Версія',
'Author' => 'Автор',
'Get More Plugins' => 'Завантажити інші плагіни',
'Install' => 'Установити',
'Uninstall' => 'Видалити',
)
);

View File

@@ -0,0 +1,7 @@
<?php
return array(
'sitemap' => array(
'Sitemap' => 'Карта сайту',
)
);

View File

@@ -151,7 +151,7 @@
if (count(Plugin::$components) > 0) { if (count(Plugin::$components) > 0) {
foreach (Plugin::$components as $component) { foreach (Plugin::$components as $component) {
if ($component !== 'pages' && $component !== 'sitemap') $components[] = ucfirst($component); if ($component !== 'pages' && $component !== 'sitemap') $components[] = __(ucfirst($component), $component);
} }
} }

View File

@@ -0,0 +1,25 @@
<?php
return array(
'snippets' => array(
'Snippets' => 'Сніппети',
'Snippets manager' => 'Менеджер сніппетів',
'Actions' => 'Дії',
'Delete' => 'Видалити',
'Edit' => 'Редагувати',
'New snippet' => 'Новий сніппет',
'Create new snippet' => 'Створити новий сніппет',
'Name' => 'Назва',
'Edit snippet' => 'Редагування сніппета',
'Save' => 'Зберегти',
'Save and exit' => 'Зберегти та вийти',
'This snippet already exists' => 'Такий сніппет вже існує',
'This snippet does not exist' => 'Такого сніппета не існує',
'Delete snippet: :block' => 'Видалити сніппет: :snippet',
'Snippet content' => 'Вміст сніппета',
'Snippet <i>:name</i> deleted' => 'Сніппет <i>:name</i> видалено',
'Your changes to the snippet <i>:name</i> have been saved.' => 'Ваші зміни до сниппету <i>:name</i> були збережені.',
'Delete snippet: :snippet' => 'Видалити сніппет: :snippet',
'Required field' => 'Обов’язкове поле',
)
);

View File

@@ -14,7 +14,7 @@
<!-- Snippets_list --> <!-- Snippets_list -->
<table class="table table-bordered"> <table class="table table-bordered">
<thead> <thead>
<tr><td><?php echo __('Snippets', 'snippets'); ?></td><td width="30%"><?php echo __('Actions', 'snippets'); ?></td></tr> <tr><td><?php echo __('Snippets', 'snippets'); ?></td><td width="40%"><?php echo __('Actions', 'snippets'); ?></td></tr>
</thead> </thead>
<tbody> <tbody>
<?php if (count($snippets_list) != 0) foreach ($snippets_list as $snippet) { ?> <?php if (count($snippets_list) != 0) foreach ($snippets_list as $snippet) { ?>

View File

@@ -75,5 +75,7 @@
'Sitemap file not writable' => 'Sitemap-Datei ist nicht beschreibbar', 'Sitemap file not writable' => 'Sitemap-Datei ist nicht beschreibbar',
'Main .htaccess file writable' => 'Haupt .htaccess-Datei ist beschreibbar', 'Main .htaccess file writable' => 'Haupt .htaccess-Datei ist beschreibbar',
'Main .htaccess file not writable' => 'Haupt .htaccess-Datei ist nicht beschreibbar', 'Main .htaccess file not writable' => 'Haupt .htaccess-Datei ist nicht beschreibbar',
'Official Support Forum' => 'Official Support Forum',
'Documentation' => 'Documentation',
) )
); );

View File

@@ -76,5 +76,7 @@
'Sitemap file not writable' => 'Sitemap file not writable', 'Sitemap file not writable' => 'Sitemap file not writable',
'Main .htaccess file writable' => 'Main .htaccess file writable', 'Main .htaccess file writable' => 'Main .htaccess file writable',
'Main .htaccess file not writable' => 'Main .htaccess file not writable', 'Main .htaccess file not writable' => 'Main .htaccess file not writable',
'Official Support Forum' => 'Official Support Forum',
'Documentation' => 'Documentation',
) )
); );

View File

@@ -76,5 +76,7 @@
'Sitemap file not writable' => 'Sitemap file non è scrivibile', 'Sitemap file not writable' => 'Sitemap file non è scrivibile',
'Main .htaccess file writable' => 'Principale file .htaccess è scrivibile', 'Main .htaccess file writable' => 'Principale file .htaccess è scrivibile',
'Main .htaccess file not writable' => 'Principale file .htaccess non è scrivibile', 'Main .htaccess file not writable' => 'Principale file .htaccess non è scrivibile',
'Official Support Forum' => 'Official Support Forum',
'Documentation' => 'Documentation',
) )
); );

View File

@@ -75,5 +75,7 @@
'Sitemap file not writable' => 'Negalima rašyti į sitemap bylą', 'Sitemap file not writable' => 'Negalima rašyti į sitemap bylą',
'Main .htaccess file writable' => 'Galima rašyti į pagrindinę .htaccess bylą', 'Main .htaccess file writable' => 'Galima rašyti į pagrindinę .htaccess bylą',
'Main .htaccess file not writable' => 'Negalima rašyti į pagrindinę .htaccess bylą', 'Main .htaccess file not writable' => 'Negalima rašyti į pagrindinę .htaccess bylą',
'Official Support Forum' => 'Official Support Forum',
'Documentation' => 'Documentation',
) )
); );

View File

@@ -74,5 +74,7 @@
'Sitemap file not writable' => 'O arquivo \'sitemap.xml\' não tem permissões de escrita', 'Sitemap file not writable' => 'O arquivo \'sitemap.xml\' não tem permissões de escrita',
'Main .htaccess file writable' => 'O arquivo .htaccess principal tem permissões de escrita', 'Main .htaccess file writable' => 'O arquivo .htaccess principal tem permissões de escrita',
'Main .htaccess file not writable' => 'O arquivo .htacces principal não tem permissões de escrita', 'Main .htaccess file not writable' => 'O arquivo .htacces principal não tem permissões de escrita',
'Official Support Forum' => 'Official Support Forum',
'Documentation' => 'Documentation',
) )
); );

View File

@@ -76,5 +76,7 @@
'Sitemap file not writable' => 'Карта сайта не доступна для записи', 'Sitemap file not writable' => 'Карта сайта не доступна для записи',
'Main .htaccess file writable' => 'Главный .htaccess файл доступен для записи', 'Main .htaccess file writable' => 'Главный .htaccess файл доступен для записи',
'Main .htaccess file not writable' => 'Главный .htaccess файл не доступен для записи', 'Main .htaccess file not writable' => 'Главный .htaccess файл не доступен для записи',
'Official Support Forum' => 'Official Support Forum',
'Documentation' => 'Documentation',
) )
); );

View File

@@ -0,0 +1,82 @@
<?php
return array(
'system' => array(
'System' => 'Система',
'Published a new version of the :monstra' => 'Опублікована нова версія :monstra',
'Sitemap created' => 'Карта сайту створена',
'Create sitemap' => 'Створити карту сайту',
'on' => 'включено',
'off'=> 'вимкнено',
'Site url' => 'Адреса сайту',
'Maintenance Mode' => 'Тех. обслуговування',
'Maintenance Mode On' => 'Включити тех. обслуговування',
'Maintenance Mode Off' => 'Включити тех. обслуговування',
'Site settings' => 'Налаштування сайту',
'System settings' => 'Налаштування системи',
'Site name' => 'Назва сайту',
'Site description' => 'Опис сайту',
'Site keywords' => 'Ключові слова',
'Site slogan' => 'Слоган (гасло)',
'Default page' => 'Сторінка по умовчанню',
'Time zone' => 'Тимчасова зона',
'Language' => 'Мова',
'Save' => 'Зберегти',
'Site' => 'Сайт',
'System version' => 'Версія системи',
'System version ID' => 'Версія системи ID',
'GZIP' => 'Стиснення GZIP',
'Debugging' => 'Дебаггінг',
'Plugin API' => 'Плагін API',
'Plugins active' => 'Підключені плагіни',
'Actions registered' => 'Зареєстровані екшени',
'Filters registered' => 'Зареєстровані фітри',
'logout' => 'вихід',
'site' => 'Сайт',
'Core' => 'Ядро',
'Delete temporary files' => 'Видалити тимчасові файли',
'Download the latest version' => 'Завантажити останню версію',
'Powered by' => 'Працює на',
'Administration' => 'Адміністрування',
'Settings' => 'Налаштування',
'Temporary files deleted' => 'Тимчасові файли видалені',
'Extends' => 'Розширення',
'View site' => 'Сайт',
'Welcome, :username' => 'Ласкаво просимо, :username',
'Reset Password' => 'Скидання пароля',
'< Back to Website' => '< Повернутися на сайт',
'Forgot your password? >' => 'Не пам’ятаєте пароль? >',
'Administration >' => 'Адміністрування >',
'Send New Password' => 'Надіслати новий пароль',
'This user does not exist' => 'Такого користувача не існує',
'Version' => 'Версія',
'Plugin does not exist' => 'Такого плагіна не існує',
'Install script writable' => 'Інсталяційний скрипт доступний для запису',
'Install script not writable' => 'Інсталяційний скрипт не доступний для запису',
'Directory: <b> :dir </b> writable' => 'Директорія <b> :dir </b> доступна для запису',
'Directory: <b> :dir </b> not writable' => 'Директорія <b> :dir </b> не доступна для запису',
'PHP Version' => 'Версія PHP',
'Module DOM is installed' => 'Модуль DOM встановлено',
'Module DOM is required' => 'Потрібен DOM модуль',
'Module Mod Rewrite is installed' => 'Модуль Mod Rewrite встановлено',
'Module SimpleXML is installed' => 'Модуль SimpleXML встановлено',
'PHP 5.2 or greater is required' => 'PHP 5.2 або вище',
'Apache Mod Rewrite is required' => 'Потрібен Apache Mod Rewrite',
'SimpleXML module is required' => 'Потрібен SimpleXML модуль',
'Field "Site name" is empty' => 'Поле "Назва сайту" не заповнено',
'Field "Email" is empty' => 'Поле "Эл. пошта" не заповнено',
'Field "Username" is empty' => 'Поле "Ім’я користувача" не заповнено',
'Field "Password" is empty' => 'Поле "Пароль" не заповнено',
'Field "Site url" is empty' => 'Поле "Адреса сайту" не заповнено',
'Email not valid' => 'Эл. пошта недійсна',
'Install' => 'Інсталювати',
'...Monstra says...' => '... Monstra каже ...',
'Sitemap file writable' => 'Карта сайту доступна для запису',
'Sitemap file not writable' => 'Карта сайту не доступна для запису',
'Main .htaccess file writable' => 'Головний .htaccess файл - доступний для запису',
'Main .htaccess file not writable' => 'Головний .htaccess файл - не доступний для запису',
'Official Support Forum' => 'Official Support Forum',
'Documentation' => 'Documentation',
)
);

View File

@@ -45,7 +45,7 @@
Form::label('system_language', __('Language', 'system')). Form::label('system_language', __('Language', 'system')).
Form::select('system_language', $languages_array, Option::get('language'), array('class' => 'span3')). Html::br(). Form::select('system_language', $languages_array, Option::get('language'), array('class' => 'span3')). Html::br().
Form::label('site_maintenance_message', __('Maintenance Mode', 'system')). Form::label('site_maintenance_message', __('Maintenance Mode', 'system')).
Form::textarea('site_maintenance_message', Html::toText(Option::get('maintenance_message')), array('style' => 'width:640px;height:160px;')). Html::br(2) Form::textarea('site_maintenance_message', Html::toText(Option::get('maintenance_message')), array('class' => 'span7', 'style' => 'height:160px;')). Html::br(2)
); );
?> ?>

View File

@@ -0,0 +1,51 @@
<?php
return array(
'themes' => array(
'Themes' => 'Темы',
'Themes manager' => 'Менеджер тем',
'Select theme' => 'Вибрати тему',
'Save' => 'Зберегти',
'Name' => 'Назва',
'Save and exit' => 'Зберегти та вийти',
'Create new template' => 'Створити новий шаблон',
'New template' => 'Новий шаблон',
'Delete template: :name' => 'Видалити шаблон: :name',
'Delete chunk: :name' => 'Видалити чанк: :name',
'Delete styles: :name' => 'Видалити стилі: :name',
'Templates' => 'Шаблони',
'Clone' => 'Клонувати',
'Edit' => 'Редагувати',
'Delete' => 'Видалити',
'Actions' => 'Дії',
'Create new chunk' => 'Створити новий чанк',
'New chunk' => 'Новый чанк',
'Chunks' => 'Чанки',
'Create new styles' => 'Створити нові стилі',
'New styles' => 'Нові стилі',
'Styles' => 'Стилі',
'Template content' => 'Вміст шаблону',
'Styles content' => 'Вміст стилів',
'Chunk content' => 'Вміст чанка',
'Edit template' => 'Редагування шаблону',
'Edit chunk' => 'Редагування чанка',
'Edit styles' => 'Редагування стилів',
'Site theme' => 'Тема сайту',
'Admin theme' => 'Тема адмінки',
'Current site theme' => 'Поточна тема сайтау',
'Current admin theme' => 'Поточна тема адмінки',
'This template already exists' => 'Цей шаблон вже існує',
'This chunk already exists' => 'Цей чанк вже існує',
'This styles already exist' => 'Цей стиль вже існує',
'Components templates' => 'Шаблони компонентів',
'Your changes to the chunk <i>:name</i> have been saved.' => 'Ваші зміни до чанку <i>:name</i> були збережені',
'Your changes to the styles <i>:name</i> have been saved.' => 'Ваші зміни до стиля <i>:name</i> були збережені',
'Your changes to the template <i>:name</i> have been saved.' => 'Ваші зміни до шаблону <i>:name</i> були збережені',
'Required field' => 'Обов’язкове поле',
'Scripts' => 'Скрипти',
'Create new script' => 'Створити новий скрипт',
'Script content' => 'Вміст скрипта',
'New script' => 'Новий скрипт',
'Edit script' => 'Редагування скрипту',
)
);

View File

@@ -0,0 +1,65 @@
<?php
return array(
'users' => array(
'Users' => 'Користувачі',
'Login' => 'Вхід',
'Password' => 'Пароль',
'Email' => 'Эл. пошта',
'Registered' => 'Зареєстрований',
'Role' => 'Роль',
'Roles' => 'Ролі',
'Actions' => 'Дії',
'Edit' => 'Редагувати',
'Delete' => 'Видалити',
'Enter' => 'Вхід',
'Logout' => 'Вихід',
'New User Registration' => 'Реєстрація нового користувача',
'Register new user' => 'Реєстрація нового користувача',
'Delete user: :user' => 'Видалити користувача: :user',
'User <i>:user</i> have been deleted.' => 'Користувача <i>:user</i> вилучено.',
'This user already exists' => 'Такий користувач вже існує',
'This email already exists' => 'Така ел. пошта вже існує',
'Changes saved' => 'Зміни збережені',
'Wrong old password' => 'Невірний старий пароль',
'Admin' => 'Адміністратор',
'User' => 'Користувач',
'Editor' => 'Редактор',
'Register' => 'Реєстрація',
'Edit profile' => 'Редагування профілю користувача',
'Save' => 'Зберегти',
'Firstname' => 'Ім’я',
'Lastname' => 'Прізвище',
'Old password' => 'Старий пароль',
'New password' => 'Новий пароль',
'Welcome' => 'Ласкаво просимо',
'Wrong <b>login</b> or <b>password</b>' => 'Неправильний <b>логін</b> або <b>пароль</b>',
'Your changes have been saved.' => 'Ваші зміни були збережені.',
'New user have been registered.' => 'Новий користувач був зареєстрований.',
'Captcha' => 'Каптча',
'Registration' => 'Реєстрація',
'Username' => 'Ім’я користувача',
'User email is invalid' => 'Эл. пошта є недійсною',
'Reset Password' => 'Скинути пароль',
'Send New Password' => 'Відправити пароль',
'Users - Profile' => 'Користувачі - Профіль',
'Users - Edit Profile' => 'Користувачі - Редагування профілю',
'Users - Login' => 'Користувачі - Вхід',
'Users - Registration' => 'Користувачі - Реєстрація',
'Users - Password Recover' => 'Користувачі - Відновлення пароля',
'New Password' => 'Новий пароль',
'Forgot your password?' => 'Забули пароль?',
'New password has been sent' => 'Новий пароль був відправлен',
'Monstra says: This is not your profile...' => 'Монстра каже: Це не твій профіль...',
'User registration is closed.' => 'Реєстрація користувачів закрита.',
'Allow user registration' => 'Дозволити реєстрацію користувачів.',
'Required field' => 'Обов’язкове поле',
'This user doesnt exist' => 'Такого користувача не існує',
'Captcha code is wrong' => 'Невірний код каптчі',
'Your login details for :site_name has been sent' => 'Ваші дані для доступу до :site_name були відправлені',
'Your new password for :site_name' => 'Ваш новий пароль до :site_name',
'Your login details for :site_name' => 'Ваші дані для доступу до :site_name',
'About Me' => 'Про мене',
'Profile' => 'Профіль',
)
);

View File

@@ -18,8 +18,7 @@
__('MarkItUp! universal markup jQuery editor', 'markitup'), __('MarkItUp! universal markup jQuery editor', 'markitup'),
'1.0.0', '1.0.0',
'Awilum', 'Awilum',
'http://monstra.org/', 'http://monstra.org/');
null);
// Add hooks // Add hooks
@@ -34,7 +33,7 @@
*/ */
public static function headers() { public static function headers() {
echo (' echo ('
<!-- markItUp! --> <!-- markItUp! 1.1.13 -->
<script type="text/javascript" src="'.Option::get('siteurl').'plugins/markitup/markitup/jquery.markitup.js"></script> <script type="text/javascript" src="'.Option::get('siteurl').'plugins/markitup/markitup/jquery.markitup.js"></script>
<!-- markItUp! toolbar settings --> <!-- markItUp! toolbar settings -->
<script type="text/javascript" src="'.Option::get('siteurl').'plugins/markitup/markitup/sets/html/set.js"></script> <script type="text/javascript" src="'.Option::get('siteurl').'plugins/markitup/markitup/sets/html/set.js"></script>
@@ -44,15 +43,7 @@
<link rel="stylesheet" type="text/css" href="'.Option::get('siteurl').'plugins/markitup/markitup/sets/html/style.css" /> <link rel="stylesheet" type="text/css" href="'.Option::get('siteurl').'plugins/markitup/markitup/sets/html/style.css" />
'); ');
echo (' echo ('<script>$(document).ready(function(){$("#editor_area").markItUp(mySettings);});</script>');
<script type="text/javascript">
<!--
$(document).ready(function() {
$("#editor_area").markItUp(mySettings);
});
-->
</script>
');
} }
} }

File diff suppressed because one or more lines are too long

View File

@@ -1,5 +1,5 @@
/*! /*!
* Bootstrap Responsive v2.1.1 * Bootstrap Responsive v2.2.1
* *
* Copyright 2012 Twitter, Inc * Copyright 2012 Twitter, Inc
* Licensed under the Apache License v2.0 * Licensed under the Apache License v2.0
@@ -215,6 +215,9 @@
.row-fluid [class*="span"]:first-child { .row-fluid [class*="span"]:first-child {
margin-left: 0; margin-left: 0;
} }
.row-fluid .controls-row [class*="span"] + [class*="span"] {
margin-left: 2.564102564102564%;
}
.row-fluid .span12 { .row-fluid .span12 {
width: 100%; width: 100%;
*width: 99.94680851063829%; *width: 99.94680851063829%;
@@ -562,6 +565,9 @@
.row-fluid [class*="span"]:first-child { .row-fluid [class*="span"]:first-child {
margin-left: 0; margin-left: 0;
} }
.row-fluid .controls-row [class*="span"] + [class*="span"] {
margin-left: 2.7624309392265194%;
}
.row-fluid .span12 { .row-fluid .span12 {
width: 100%; width: 100%;
*width: 99.94680851063829%; *width: 99.94680851063829%;
@@ -814,6 +820,7 @@
margin-left: 0; margin-left: 0;
} }
[class*="span"], [class*="span"],
.uneditable-input[class*="span"],
.row-fluid [class*="span"] { .row-fluid [class*="span"] {
display: block; display: block;
float: none; float: none;
@@ -830,6 +837,9 @@
-moz-box-sizing: border-box; -moz-box-sizing: border-box;
box-sizing: border-box; box-sizing: border-box;
} }
.row-fluid [class*="offset"]:first-child {
margin-left: 0;
}
.input-large, .input-large,
.input-xlarge, .input-xlarge,
.input-xxlarge, .input-xxlarge,
@@ -862,8 +872,11 @@
width: auto; width: auto;
margin: 0; margin: 0;
} }
.modal.fade {
top: -100px;
}
.modal.fade.in { .modal.fade.in {
top: auto; top: 20px;
} }
} }
@@ -895,6 +908,16 @@
padding-right: 10px; padding-right: 10px;
padding-left: 10px; padding-left: 10px;
} }
.media .pull-left,
.media .pull-right {
display: block;
float: none;
margin-bottom: 10px;
}
.media-object {
margin-right: 0;
margin-left: 0;
}
.modal { .modal {
top: 10px; top: 10px;
right: 10px; right: 10px;
@@ -979,6 +1002,10 @@
.nav-collapse .dropdown-menu a:hover { .nav-collapse .dropdown-menu a:hover {
background-color: #f2f2f2; background-color: #f2f2f2;
} }
.navbar-inverse .nav-collapse .nav > li > a,
.navbar-inverse .nav-collapse .dropdown-menu a {
color: #999999;
}
.navbar-inverse .nav-collapse .nav > li > a:hover, .navbar-inverse .nav-collapse .nav > li > a:hover,
.navbar-inverse .nav-collapse .dropdown-menu a:hover { .navbar-inverse .nav-collapse .dropdown-menu a:hover {
background-color: #111111; background-color: #111111;
@@ -991,7 +1018,7 @@
position: static; position: static;
top: auto; top: auto;
left: auto; left: auto;
display: block; display: none;
float: none; float: none;
max-width: none; max-width: none;
padding: 0; padding: 0;
@@ -1005,6 +1032,9 @@
-moz-box-shadow: none; -moz-box-shadow: none;
box-shadow: none; box-shadow: none;
} }
.nav-collapse .open > .dropdown-menu {
display: block;
}
.nav-collapse .dropdown-menu:before, .nav-collapse .dropdown-menu:before,
.nav-collapse .dropdown-menu:after { .nav-collapse .dropdown-menu:after {
display: none; display: none;

File diff suppressed because it is too large Load Diff

View File

@@ -1,5 +1,5 @@
/* =================================================== /* ===================================================
* bootstrap-transition.js v2.1.1 * bootstrap-transition.js v2.2.1
* http://twitter.github.com/bootstrap/javascript.html#transitions * http://twitter.github.com/bootstrap/javascript.html#transitions
* =================================================== * ===================================================
* Copyright 2012 Twitter, Inc. * Copyright 2012 Twitter, Inc.
@@ -20,14 +20,14 @@
!function ($) { !function ($) {
"use strict"; // jshint ;_;
/* CSS TRANSITION SUPPORT (http://www.modernizr.com/)
* ======================================================= */
$(function () { $(function () {
"use strict"; // jshint ;_;
/* CSS TRANSITION SUPPORT (http://www.modernizr.com/)
* ======================================================= */
$.support.transition = (function () { $.support.transition = (function () {
var transitionEnd = (function () { var transitionEnd = (function () {
@@ -58,7 +58,7 @@
}) })
}(window.jQuery);/* ========================================================== }(window.jQuery);/* ==========================================================
* bootstrap-alert.js v2.1.1 * bootstrap-alert.js v2.2.1
* http://twitter.github.com/bootstrap/javascript.html#alerts * http://twitter.github.com/bootstrap/javascript.html#alerts
* ========================================================== * ==========================================================
* Copyright 2012 Twitter, Inc. * Copyright 2012 Twitter, Inc.
@@ -142,12 +142,10 @@
/* ALERT DATA-API /* ALERT DATA-API
* ============== */ * ============== */
$(function () { $(document).on('click.alert.data-api', dismiss, Alert.prototype.close)
$('body').on('click.alert.data-api', dismiss, Alert.prototype.close)
})
}(window.jQuery);/* ============================================================ }(window.jQuery);/* ============================================================
* bootstrap-button.js v2.1.1 * bootstrap-button.js v2.2.1
* http://twitter.github.com/bootstrap/javascript.html#buttons * http://twitter.github.com/bootstrap/javascript.html#buttons
* ============================================================ * ============================================================
* Copyright 2012 Twitter, Inc. * Copyright 2012 Twitter, Inc.
@@ -233,16 +231,14 @@
/* BUTTON DATA-API /* BUTTON DATA-API
* =============== */ * =============== */
$(function () { $(document).on('click.button.data-api', '[data-toggle^=button]', function (e) {
$('body').on('click.button.data-api', '[data-toggle^=button]', function ( e ) { var $btn = $(e.target)
var $btn = $(e.target) if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn')
if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn') $btn.button('toggle')
$btn.button('toggle')
})
}) })
}(window.jQuery);/* ========================================================== }(window.jQuery);/* ==========================================================
* bootstrap-carousel.js v2.1.1 * bootstrap-carousel.js v2.2.1
* http://twitter.github.com/bootstrap/javascript.html#carousel * http://twitter.github.com/bootstrap/javascript.html#carousel
* ========================================================== * ==========================================================
* Copyright 2012 Twitter, Inc. * Copyright 2012 Twitter, Inc.
@@ -337,9 +333,7 @@
, direction = type == 'next' ? 'left' : 'right' , direction = type == 'next' ? 'left' : 'right'
, fallback = type == 'next' ? 'first' : 'last' , fallback = type == 'next' ? 'first' : 'last'
, that = this , that = this
, e = $.Event('slide', { , e
relatedTarget: $next[0]
})
this.sliding = true this.sliding = true
@@ -347,6 +341,10 @@
$next = $next.length ? $next : this.$element.find('.item')[fallback]() $next = $next.length ? $next : this.$element.find('.item')[fallback]()
e = $.Event('slide', {
relatedTarget: $next[0]
})
if ($next.hasClass('active')) return if ($next.hasClass('active')) return
if ($.support.transition && this.$element.hasClass('slide')) { if ($.support.transition && this.$element.hasClass('slide')) {
@@ -406,18 +404,16 @@
/* CAROUSEL DATA-API /* CAROUSEL DATA-API
* ================= */ * ================= */
$(function () { $(document).on('click.carousel.data-api', '[data-slide]', function (e) {
$('body').on('click.carousel.data-api', '[data-slide]', function ( e ) { var $this = $(this), href
var $this = $(this), href , $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7
, $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7 , options = $.extend({}, $target.data(), $this.data())
, options = !$target.data('modal') && $.extend({}, $target.data(), $this.data()) $target.carousel(options)
$target.carousel(options) e.preventDefault()
e.preventDefault()
})
}) })
}(window.jQuery);/* ============================================================= }(window.jQuery);/* =============================================================
* bootstrap-collapse.js v2.1.1 * bootstrap-collapse.js v2.2.1
* http://twitter.github.com/bootstrap/javascript.html#collapse * http://twitter.github.com/bootstrap/javascript.html#collapse
* ============================================================= * =============================================================
* Copyright 2012 Twitter, Inc. * Copyright 2012 Twitter, Inc.
@@ -561,20 +557,18 @@
/* COLLAPSIBLE DATA-API /* COLLAPSIBLE DATA-API
* ==================== */ * ==================== */
$(function () { $(document).on('click.collapse.data-api', '[data-toggle=collapse]', function (e) {
$('body').on('click.collapse.data-api', '[data-toggle=collapse]', function (e) { var $this = $(this), href
var $this = $(this), href , target = $this.attr('data-target')
, target = $this.attr('data-target') || e.preventDefault()
|| e.preventDefault() || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7
|| (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7 , option = $(target).data('collapse') ? 'toggle' : $this.data()
, option = $(target).data('collapse') ? 'toggle' : $this.data() $this[$(target).hasClass('in') ? 'addClass' : 'removeClass']('collapsed')
$this[$(target).hasClass('in') ? 'addClass' : 'removeClass']('collapsed') $(target).collapse(option)
$(target).collapse(option)
})
}) })
}(window.jQuery);/* ============================================================ }(window.jQuery);/* ============================================================
* bootstrap-dropdown.js v2.1.1 * bootstrap-dropdown.js v2.2.1
* http://twitter.github.com/bootstrap/javascript.html#dropdowns * http://twitter.github.com/bootstrap/javascript.html#dropdowns
* ============================================================ * ============================================================
* Copyright 2012 Twitter, Inc. * Copyright 2012 Twitter, Inc.
@@ -675,8 +669,9 @@
} }
function clearMenus() { function clearMenus() {
getParent($(toggle)) $(toggle).each(function () {
.removeClass('open') getParent($(this)).removeClass('open')
})
} }
function getParent($this) { function getParent($this) {
@@ -713,17 +708,14 @@
/* APPLY TO STANDARD DROPDOWN ELEMENTS /* APPLY TO STANDARD DROPDOWN ELEMENTS
* =================================== */ * =================================== */
$(function () { $(document)
$('html') .on('click.dropdown.data-api touchstart.dropdown.data-api', clearMenus)
.on('click.dropdown.data-api touchstart.dropdown.data-api', clearMenus) .on('click.dropdown touchstart.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })
$('body') .on('click.dropdown.data-api touchstart.dropdown.data-api' , toggle, Dropdown.prototype.toggle)
.on('click.dropdown touchstart.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() }) .on('keydown.dropdown.data-api touchstart.dropdown.data-api', toggle + ', [role=menu]' , Dropdown.prototype.keydown)
.on('click.dropdown.data-api touchstart.dropdown.data-api' , toggle, Dropdown.prototype.toggle)
.on('keydown.dropdown.data-api touchstart.dropdown.data-api', toggle + ', [role=menu]' , Dropdown.prototype.keydown)
})
}(window.jQuery);/* ========================================================= }(window.jQuery);/* =========================================================
* bootstrap-modal.js v2.1.1 * bootstrap-modal.js v2.2.1
* http://twitter.github.com/bootstrap/javascript.html#modals * http://twitter.github.com/bootstrap/javascript.html#modals
* ========================================================= * =========================================================
* Copyright 2012 Twitter, Inc. * Copyright 2012 Twitter, Inc.
@@ -773,8 +765,6 @@
if (this.isShown || e.isDefaultPrevented()) return if (this.isShown || e.isDefaultPrevented()) return
$('body').addClass('modal-open')
this.isShown = true this.isShown = true
this.escape() this.escape()
@@ -796,13 +786,12 @@
that.$element that.$element
.addClass('in') .addClass('in')
.attr('aria-hidden', false) .attr('aria-hidden', false)
.focus()
that.enforceFocus() that.enforceFocus()
transition ? transition ?
that.$element.one($.support.transition.end, function () { that.$element.trigger('shown') }) : that.$element.one($.support.transition.end, function () { that.$element.focus().trigger('shown') }) :
that.$element.trigger('shown') that.$element.focus().trigger('shown')
}) })
} }
@@ -820,8 +809,6 @@
this.isShown = false this.isShown = false
$('body').removeClass('modal-open')
this.escape() this.escape()
$(document).off('focusin.modal') $(document).off('focusin.modal')
@@ -891,9 +878,11 @@
this.$backdrop = $('<div class="modal-backdrop ' + animate + '" />') this.$backdrop = $('<div class="modal-backdrop ' + animate + '" />')
.appendTo(document.body) .appendTo(document.body)
if (this.options.backdrop != 'static') { this.$backdrop.click(
this.$backdrop.click($.proxy(this.hide, this)) this.options.backdrop == 'static' ?
} $.proxy(this.$element[0].focus, this.$element[0])
: $.proxy(this.hide, this)
)
if (doAnimate) this.$backdrop[0].offsetWidth // force reflow if (doAnimate) this.$backdrop[0].offsetWidth // force reflow
@@ -943,25 +932,24 @@
/* MODAL DATA-API /* MODAL DATA-API
* ============== */ * ============== */
$(function () { $(document).on('click.modal.data-api', '[data-toggle="modal"]', function (e) {
$('body').on('click.modal.data-api', '[data-toggle="modal"]', function ( e ) { var $this = $(this)
var $this = $(this) , href = $this.attr('href')
, href = $this.attr('href') , $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) //strip for ie7
, $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) //strip for ie7 , option = $target.data('modal') ? 'toggle' : $.extend({ remote:!/#/.test(href) && href }, $target.data(), $this.data())
, option = $target.data('modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data())
e.preventDefault() e.preventDefault()
$target $target
.modal(option) .modal(option)
.one('hide', function () { .one('hide', function () {
$this.focus() $this.focus()
}) })
})
}) })
}(window.jQuery);/* =========================================================== }(window.jQuery);
* bootstrap-tooltip.js v2.1.1 /* ===========================================================
* bootstrap-tooltip.js v2.2.1
* http://twitter.github.com/bootstrap/javascript.html#tooltips * http://twitter.github.com/bootstrap/javascript.html#tooltips
* Inspired by the original jQuery.tipsy by Jason Frame * Inspired by the original jQuery.tipsy by Jason Frame
* =========================================================== * ===========================================================
@@ -1081,9 +1069,9 @@
inside = /in/.test(placement) inside = /in/.test(placement)
$tip $tip
.remove() .detach()
.css({ top: 0, left: 0, display: 'block' }) .css({ top: 0, left: 0, display: 'block' })
.appendTo(inside ? this.$element : document.body) .insertAfter(this.$element)
pos = this.getPosition(inside) pos = this.getPosition(inside)
@@ -1106,7 +1094,7 @@
} }
$tip $tip
.css(tp) .offset(tp)
.addClass(placement) .addClass(placement)
.addClass('in') .addClass('in')
} }
@@ -1128,18 +1116,18 @@
function removeWithAnimation() { function removeWithAnimation() {
var timeout = setTimeout(function () { var timeout = setTimeout(function () {
$tip.off($.support.transition.end).remove() $tip.off($.support.transition.end).detach()
}, 500) }, 500)
$tip.one($.support.transition.end, function () { $tip.one($.support.transition.end, function () {
clearTimeout(timeout) clearTimeout(timeout)
$tip.remove() $tip.detach()
}) })
} }
$.support.transition && this.$tip.hasClass('fade') ? $.support.transition && this.$tip.hasClass('fade') ?
removeWithAnimation() : removeWithAnimation() :
$tip.remove() $tip.detach()
return this return this
} }
@@ -1197,8 +1185,9 @@
this.enabled = !this.enabled this.enabled = !this.enabled
} }
, toggle: function () { , toggle: function (e) {
this[this.tip().hasClass('in') ? 'hide' : 'show']() var self = $(e.currentTarget)[this.type](this._options).data(this.type)
self[self.tip().hasClass('in') ? 'hide' : 'show']()
} }
, destroy: function () { , destroy: function () {
@@ -1231,12 +1220,11 @@
, trigger: 'hover' , trigger: 'hover'
, title: '' , title: ''
, delay: 0 , delay: 0
, html: true , html: false
} }
}(window.jQuery); }(window.jQuery);/* ===========================================================
/* =========================================================== * bootstrap-popover.js v2.2.1
* bootstrap-popover.js v2.1.1
* http://twitter.github.com/bootstrap/javascript.html#popovers * http://twitter.github.com/bootstrap/javascript.html#popovers
* =========================================================== * ===========================================================
* Copyright 2012 Twitter, Inc. * Copyright 2012 Twitter, Inc.
@@ -1338,7 +1326,7 @@
}) })
}(window.jQuery);/* ============================================================= }(window.jQuery);/* =============================================================
* bootstrap-scrollspy.js v2.1.1 * bootstrap-scrollspy.js v2.2.1
* http://twitter.github.com/bootstrap/javascript.html#scrollspy * http://twitter.github.com/bootstrap/javascript.html#scrollspy
* ============================================================= * =============================================================
* Copyright 2012 Twitter, Inc. * Copyright 2012 Twitter, Inc.
@@ -1488,7 +1476,7 @@
}) })
}(window.jQuery);/* ======================================================== }(window.jQuery);/* ========================================================
* bootstrap-tab.js v2.1.1 * bootstrap-tab.js v2.2.1
* http://twitter.github.com/bootstrap/javascript.html#tabs * http://twitter.github.com/bootstrap/javascript.html#tabs
* ======================================================== * ========================================================
* Copyright 2012 Twitter, Inc. * Copyright 2012 Twitter, Inc.
@@ -1538,7 +1526,7 @@
if ( $this.parent('li').hasClass('active') ) return if ( $this.parent('li').hasClass('active') ) return
previous = $ul.find('.active a').last()[0] previous = $ul.find('.active:last a')[0]
e = $.Event('show', { e = $.Event('show', {
relatedTarget: previous relatedTarget: previous
@@ -1614,15 +1602,13 @@
/* TAB DATA-API /* TAB DATA-API
* ============ */ * ============ */
$(function () { $(document).on('click.tab.data-api', '[data-toggle="tab"], [data-toggle="pill"]', function (e) {
$('body').on('click.tab.data-api', '[data-toggle="tab"], [data-toggle="pill"]', function (e) { e.preventDefault()
e.preventDefault() $(this).tab('show')
$(this).tab('show')
})
}) })
}(window.jQuery);/* ============================================================= }(window.jQuery);/* =============================================================
* bootstrap-typeahead.js v2.1.1 * bootstrap-typeahead.js v2.2.1
* http://twitter.github.com/bootstrap/javascript.html#typeahead * http://twitter.github.com/bootstrap/javascript.html#typeahead
* ============================================================= * =============================================================
* Copyright 2012 Twitter, Inc. * Copyright 2012 Twitter, Inc.
@@ -1797,7 +1783,7 @@
.on('keypress', $.proxy(this.keypress, this)) .on('keypress', $.proxy(this.keypress, this))
.on('keyup', $.proxy(this.keyup, this)) .on('keyup', $.proxy(this.keyup, this))
if ($.browser.chrome || $.browser.webkit || $.browser.msie) { if (this.eventSupported('keydown')) {
this.$element.on('keydown', $.proxy(this.keydown, this)) this.$element.on('keydown', $.proxy(this.keydown, this))
} }
@@ -1806,6 +1792,15 @@
.on('mouseenter', 'li', $.proxy(this.mouseenter, this)) .on('mouseenter', 'li', $.proxy(this.mouseenter, this))
} }
, eventSupported: function(eventName) {
var isSupported = eventName in this.$element
if (!isSupported) {
this.$element.setAttribute(eventName, 'return;')
isSupported = typeof this.$element[eventName] === 'function'
}
return isSupported
}
, move: function (e) { , move: function (e) {
if (!this.shown) return if (!this.shown) return
@@ -1844,6 +1839,9 @@
switch(e.keyCode) { switch(e.keyCode) {
case 40: // down arrow case 40: // down arrow
case 38: // up arrow case 38: // up arrow
case 16: // shift
case 17: // ctrl
case 18: // alt
break break
case 9: // tab case 9: // tab
@@ -1911,18 +1909,16 @@
/* TYPEAHEAD DATA-API /* TYPEAHEAD DATA-API
* ================== */ * ================== */
$(function () { $(document).on('focus.typeahead.data-api', '[data-provide="typeahead"]', function (e) {
$('body').on('focus.typeahead.data-api', '[data-provide="typeahead"]', function (e) { var $this = $(this)
var $this = $(this) if ($this.data('typeahead')) return
if ($this.data('typeahead')) return e.preventDefault()
e.preventDefault() $this.typeahead($this.data())
$this.typeahead($this.data())
})
}) })
}(window.jQuery); }(window.jQuery);
/* ========================================================== /* ==========================================================
* bootstrap-affix.js v2.1.1 * bootstrap-affix.js v2.2.1
* http://twitter.github.com/bootstrap/javascript.html#affix * http://twitter.github.com/bootstrap/javascript.html#affix
* ========================================================== * ==========================================================
* Copyright 2012 Twitter, Inc. * Copyright 2012 Twitter, Inc.
@@ -1951,7 +1947,9 @@
var Affix = function (element, options) { var Affix = function (element, options) {
this.options = $.extend({}, $.fn.affix.defaults, options) this.options = $.extend({}, $.fn.affix.defaults, options)
this.$window = $(window).on('scroll.affix.data-api', $.proxy(this.checkPosition, this)) this.$window = $(window)
.on('scroll.affix.data-api', $.proxy(this.checkPosition, this))
.on('click.affix.data-api', $.proxy(function () { setTimeout($.proxy(this.checkPosition, this), 1) }, this))
this.$element = $(element) this.$element = $(element)
this.checkPosition() this.checkPosition()
} }

View File

@@ -1,2 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<root><options><autoincrement>2</autoincrement></options><fields><slug/><robots_index/><robots_follow/><template/><title/><parent/><status/><description/><keywords/><content/><date/><author/></fields><pages><id>1</id><uid>ffa3ab3863</uid><content/><slug>error404</slug><robots_index>index</robots_index><robots_follow>follow</robots_follow><template>index</template><parent/><status>published</status><title>error404</title><description/><keywords/><date>1328270400</date><author>Monstra</author></pages><pages><id>2</id><uid>9c20ad0bf1</uid><content/><slug>home</slug><robots_index>index</robots_index><robots_follow>follow</robots_follow><template>index</template><parent/><status>published</status><title>Home</title><description/><keywords/><date>1333368000</date><author>Monstra</author></pages></root> <root><options><autoincrement>2</autoincrement></options><fields><slug/><robots_index/><robots_follow/><template/><title/><parent/><status/><description/><keywords/><content/><date/><author/><expand/><access/></fields><pages><id>1</id><uid>ffa3ab3863</uid><content/><slug>error404</slug><robots_index>index</robots_index><robots_follow>follow</robots_follow><template>index</template><parent/><status>published</status><title>error404</title><description/><keywords/><date>1328270400</date><author>Monstra</author></pages><pages><id>2</id><uid>9c20ad0bf1</uid><content/><slug>home</slug><robots_index>index</robots_index><robots_follow>follow</robots_follow><template>index</template><parent/><status>published</status><title>Home</title><description/><keywords/><date>1333368000</date><author>Monstra</author></pages></root>