1
0
mirror of https://github.com/monstra-cms/monstra.git synced 2025-08-03 03:37:52 +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
*************************************/
.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 {
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
*************************************/
@@ -450,4 +459,16 @@ td, th {
.error-none {display:none;}
.error-field {border:1px solid red!important;}
.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 -->
<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>
<!-- /Block_footer -->

View File

@@ -50,71 +50,66 @@
</head>
<body class="login-body">
<div class="row">
<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" />
<div class="container form-signin">
<label><?php echo __('Password', 'users'); ?></label>
<input class="span3" 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="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>
<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>
<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>
<h2 style="text-align:center;"><?php echo __('Administration', 'system'); ?></h2><br />
<form method="post">
<label><?php echo __('Username', 'users'); ?></label>
<input class="input-xlarge" name="login" type="text" />
<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 class="row">
<div class="span4 authorization-block-footer">
<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 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>
</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
------------------------
- Localization: DE, LT, IT translations added

View File

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

View File

@@ -148,8 +148,8 @@
if ( ! Shortcode::$shortcode_tags) return $content;
$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);
}

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 -->
<table class="table table-bordered">
<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>
<tbody>
<?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',
'Installed' => 'Installiert',
'Not Installed' => 'Nicht Installiert',
'System version' => 'System Version',
'System version ID' => 'System Versions ID',
'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.' =>
'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.',
'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.',
'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',
'Installed' => 'Installed',
'Not Installed' => 'Not Installed',
'System version' => 'System version',
'System version ID' => 'System version 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.',
@@ -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>',
'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',
'Installed' => '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',
'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.',
@@ -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>',
'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.',
'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',
'Installed' => 'Įdiegta',
'Not Installed' => 'Neįdiegta',
'System version' => 'Systemos versija',
'System version ID' => 'Systemos versijos ID',
'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.' =>
'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>',
'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.',
'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',
'Installed' => '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',
'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.',
@@ -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>',
'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.',
'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 модуль',
'Installed' => 'Установлен',
'Not Installed' => 'Не установлен',
'System version' => 'Версия системы',
'System version ID' => 'Версия системы ID',
'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 на живом сайте.',
@@ -29,5 +27,11 @@
'Главный 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

@@ -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">
<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="#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>
</ul>
@@ -20,14 +21,10 @@
</tr>
</thead>
<tbody>
<tr>
<td><?php echo __('System version', 'information'); ?></td>
<tr>
<td><?php echo __('Monstra version', 'information'); ?></td>
<td><?php echo Core::VERSION; ?></td>
</tr>
<tr>
<td><?php echo __('System version ID', 'information'); ?></td>
<td><?php echo MONSTRA_VERSION_ID; ?></td>
</tr>
<tr>
<td><?php echo __('GZIP', 'information'); ?></td>
<td><?php if (MONSTRA_GZIP) { echo __('on', 'information'); } else { echo __('off', 'information'); } ?></td>
@@ -80,6 +77,49 @@
</table>
</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">

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',
'Search Engines Robots' => 'Suchmaschinen-Roboter',
'Page' => 'Seite',
'SEO' => 'SEO',
'Metadata' => 'Metadata',
'Settings' => 'Einstellungen',
'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',
'Search Engines Robots' => 'Search Engines Robots',
'Page' => 'Page',
'SEO' => 'SEO',
'Metadata' => 'Metadata',
'Settings' => 'Settings',
'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',
'Search Engines Robots' => 'Robot dei motori di ricerca',
'Page' => 'Pagina',
'SEO' => 'SEO',
'Metadata' => 'Metadata',
'Settings' => 'Impostazioni',
'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',
'Search Engines Robots' => 'Paieškos variklių robotai',
'Page' => 'Puslapis',
'SEO' => 'SEO',
'Metadata' => 'Metadata',
'Settings' => 'Nustatymai',
'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',
'Search Engines Robots' => 'Crawlers de sistemas de buscas.',
'Page' => 'Página',
'SEO' => 'SEO',
'Metadata' => 'Metadata',
'Settings' => 'Configurações',
'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> удалена',
'Search Engines Robots' => 'Поисковые роботы',
'Page' => 'Страница',
'SEO' => 'SEO',
'Metadata' => 'Метаданные',
'Settings' => 'Настройки',
'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
Navigation::add(__('Pages', 'pages'), 'content', 'pages', 1);
Action::add('admin_header', 'PagesAdmin::_themeHeaders');
Action::add('admin_pre_render','PagesAdmin::_pageExpandAjax');
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
@@ -19,6 +74,8 @@
$errors = array();
$pages = new Table('pages');
PagesAdmin::$pages = $pages;
$users = new Table('users');
$user = $users->select('[id='.Session::get('user_id').']', null);
@@ -39,6 +96,11 @@
$status_array = array('published' => __('Published', 'pages'),
'draft' => __('Draft', 'pages'));
// Access array
$access_array = array('public' => __('Public', 'pages'),
'registered' => __('Registered', 'pages'));
// Check for get actions
// ---------------------------------------------
@@ -68,6 +130,7 @@
'robots_index' => $orig_page['robots_index'],
'robots_follow'=> $orig_page['robots_follow'],
'status' => $orig_page['status'],
'access' => $orig_page['access'],
'title' => $rand_page_name,
'description' => $orig_page['description'],
'keywords' => $orig_page['keywords'],
@@ -137,6 +200,7 @@
'template' => Request::post('templates'),
'parent' => $parent_page,
'status' => Request::post('status'),
'access' => Request::post('access'),
'robots_index' => $robots_index,
'robots_follow'=> $robots_follow,
'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('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('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('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;
@@ -212,7 +278,10 @@
->assign('parent_page', $parent_page)
->assign('templates_array', $templates_array)
->assign('post_template', $post_template)
->assign('post_status', $post_status)
->assign('post_access', $post_access)
->assign('status_array', $status_array)
->assign('access_array', $access_array)
->assign('date', $date)
->assign('post_robots_index', $post_robots_index)
->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('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('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_follow')) $post_robots_follow = true; else $post_robots_follow = false;
//--------------
@@ -284,6 +355,7 @@
'robots_index' => $robots_index,
'robots_follow'=> $robots_follow,
'status' => Request::post('status'),
'access' => Request::post('ascess'),
'date' => $date,
'author' => $author))) {
@@ -306,6 +378,7 @@
'robots_index' => $robots_index,
'robots_follow'=> $robots_follow,
'status' => Request::post('status'),
'access' => Request::post('access'),
'date' => $date,
'author' => $author))) {
@@ -385,6 +458,7 @@
}
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('access')) $access = Request::post('access'); else $access = $page['access'];
// Generate date
$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('template', $template)
->assign('status_array', $status_array)
->assign('access_array', $access_array)
->assign('status', $status)
->assign('access', $access)
->assign('date', $date)
->assign('post_robots_index', $post_robots_index)
->assign('post_robots_follow', $post_robots_follow)
@@ -428,7 +504,12 @@
// Delete page and update <parent> fields
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');
Notification::set('success', __('Page <i>:page</i> deleted', 'pages', array(':page' => Html::toText($page['title']))));
}
@@ -458,7 +539,7 @@
$count = 0;
// 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
foreach ($pages_list as $page) {
@@ -466,8 +547,10 @@
$pages_array[$count]['title'] = $page['title'];
$pages_array[$count]['parent'] = $page['parent'];
$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]['author'] = $page['author'];
$pages_array[$count]['expand'] = $page['expand'];
$pages_array[$count]['slug'] = $page['slug'];
if (isset($page['parent'])) {

View File

@@ -114,13 +114,30 @@
// Check is child_parent -> request parent
if ($c_p == $data[0]) {
// Checking only for the parent and one child, the remaining issue 404
if (count($data) < 3) {
$id = $data[1]; // Get real request page
if (count($data) < 3) { // Checking only for the parent and one child, the remaining issue 404
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 {
$id = 'error404';
Response::status(404);
}
} else {
$id = 'error404';
Response::status(404);
@@ -129,6 +146,7 @@
$id = 'error404';
Response::status(404);
}
} else { // Only parent page come
if(empty($data[0])) {
@@ -151,14 +169,26 @@
// Check if this page has parent
if ($c_p !== '') {
if ($c_p == $data[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 (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')))) and
($current_page['access'] == 'public')) {
$id = $data[0];
} elseif (($current_page['access'] == 'registered') and
(Session::exists('user_id')) and
($current_page['status'] == 'published')) {
$id = $data[0];
} else {
$id = 'error404';
Response::status(404);
}
}
} else {
$id = 'error404';
Response::status(404);
@@ -168,9 +198,20 @@
Response::status(404);
}
} else {
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];
} elseif (($current_page['access'] == 'registered') and
(Session::exists('user_id')) and
($current_page['status'] == 'published')) {
$id = $data[0];
} else {
$id = 'error404';
Response::status(404);

View File

@@ -15,7 +15,7 @@
<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('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>
</ul>
@@ -39,7 +39,7 @@
?>
</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
echo (
Form::label('page_keywords', __('Keywords', 'pages')).
@@ -61,7 +61,7 @@
</div>
<div class="tab-pane <?php if (Notification::get('settings')) { ?>active<?php } ?>" id="settings">
<div class="row-fluid">
<div class="span4">
<div class="span3">
<?php
echo (
Form::label('pages', __('Parent', 'pages')).
@@ -69,7 +69,7 @@
);
?>
</div>
<div class="span4">
<div class="span3">
<?php
echo (
Form::label('templates', __('Template', 'pages')).
@@ -77,11 +77,19 @@
);
?>
</div>
<div class="span4">
<div class="span3">
<?php
echo (
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>

View File

@@ -18,7 +18,7 @@
<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('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>
</ul>
@@ -50,7 +50,7 @@
if (isset($errors['pages_exists'])) echo Html::nbsp(3).'<span style="color:red">'.$errors['pages_exists'].'</span>';
?>
</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
@@ -77,7 +77,7 @@
echo Form::hidden('pages', $parent_page);
} else {
?>
<div class="span4">
<div class="span3">
<?php
echo (
Form::label('pages', __('Parent', 'pages')).
@@ -87,7 +87,7 @@
</div>
<?php } ?>
<?php if (Request::get('name') != 'error404') { ?>
<div class="span4">
<div class="span3">
<?php } else { ?>
<div>
<?php } ?>
@@ -103,7 +103,7 @@
echo Form::hidden('status', $status);
} else {
?>
<div class="span4">
<div class="span3">
<?php
echo (
Form::label('status', __('Status', 'pages')).
@@ -112,6 +112,20 @@
?>
</div>
<?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>

View File

@@ -18,9 +18,11 @@
<table class="table table-bordered">
<thead>
<tr>
<td width="3%"></td>
<td><?php echo __('Name', 'pages'); ?></td>
<td><?php echo __('Author', 'pages'); ?></td>
<td><?php echo __('Status', 'pages'); ?></td>
<td><?php echo __('Access', 'pages'); ?></td>
<td><?php echo __('Date', 'pages'); ?></td>
<td width="40%"><?php echo __('Actions', 'pages'); ?></td>
</tr>
@@ -32,12 +34,28 @@
if ($page['parent'] != '') { $dash = Html::arrow('right').'&nbsp;&nbsp;'; } else { $dash = ""; }
?>
<?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>
<?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 $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>
@@ -46,6 +64,9 @@
<td>
<?php echo $page['status']; ?>
</td>
<td>
<?php echo $page['access']; ?>
</td>
<td>
<?php echo Date::format($page['date'], "j.n.Y"); ?>
</td>
@@ -68,6 +89,7 @@
</div>
</td>
</tr>
<?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) {
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 -->
<table class="table table-bordered">
<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>
<tbody>
<?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',
'Main .htaccess file writable' => 'Haupt .htaccess-Datei ist 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',
'Main .htaccess file writable' => 'Main .htaccess file 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',
'Main .htaccess file writable' => 'Principale file .htaccess è 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ą',
'Main .htaccess file writable' => 'Galima 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',
'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',
'Official Support Forum' => 'Official Support Forum',
'Documentation' => 'Documentation',
)
);

View File

@@ -76,5 +76,7 @@
'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

@@ -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::select('system_language', $languages_array, Option::get('language'), array('class' => 'span3')). Html::br().
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'),
'1.0.0',
'Awilum',
'http://monstra.org/',
null);
'http://monstra.org/');
// Add hooks
@@ -34,7 +33,7 @@
*/
public static function headers() {
echo ('
<!-- markItUp! -->
<!-- markItUp! 1.1.13 -->
<script type="text/javascript" src="'.Option::get('siteurl').'plugins/markitup/markitup/jquery.markitup.js"></script>
<!-- markItUp! toolbar settings -->
<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" />
');
echo ('
<script type="text/javascript">
<!--
$(document).ready(function() {
$("#editor_area").markItUp(mySettings);
});
-->
</script>
');
echo ('<script>$(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
* Licensed under the Apache License v2.0
@@ -215,6 +215,9 @@
.row-fluid [class*="span"]:first-child {
margin-left: 0;
}
.row-fluid .controls-row [class*="span"] + [class*="span"] {
margin-left: 2.564102564102564%;
}
.row-fluid .span12 {
width: 100%;
*width: 99.94680851063829%;
@@ -562,6 +565,9 @@
.row-fluid [class*="span"]:first-child {
margin-left: 0;
}
.row-fluid .controls-row [class*="span"] + [class*="span"] {
margin-left: 2.7624309392265194%;
}
.row-fluid .span12 {
width: 100%;
*width: 99.94680851063829%;
@@ -814,6 +820,7 @@
margin-left: 0;
}
[class*="span"],
.uneditable-input[class*="span"],
.row-fluid [class*="span"] {
display: block;
float: none;
@@ -830,6 +837,9 @@
-moz-box-sizing: border-box;
box-sizing: border-box;
}
.row-fluid [class*="offset"]:first-child {
margin-left: 0;
}
.input-large,
.input-xlarge,
.input-xxlarge,
@@ -862,8 +872,11 @@
width: auto;
margin: 0;
}
.modal.fade {
top: -100px;
}
.modal.fade.in {
top: auto;
top: 20px;
}
}
@@ -895,6 +908,16 @@
padding-right: 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 {
top: 10px;
right: 10px;
@@ -979,6 +1002,10 @@
.nav-collapse .dropdown-menu a:hover {
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 .dropdown-menu a:hover {
background-color: #111111;
@@ -991,7 +1018,7 @@
position: static;
top: auto;
left: auto;
display: block;
display: none;
float: none;
max-width: none;
padding: 0;
@@ -1005,6 +1032,9 @@
-moz-box-shadow: none;
box-shadow: none;
}
.nav-collapse .open > .dropdown-menu {
display: block;
}
.nav-collapse .dropdown-menu:before,
.nav-collapse .dropdown-menu:after {
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
* ===================================================
* Copyright 2012 Twitter, Inc.
@@ -20,14 +20,14 @@
!function ($) {
"use strict"; // jshint ;_;
/* CSS TRANSITION SUPPORT (http://www.modernizr.com/)
* ======================================================= */
$(function () {
"use strict"; // jshint ;_;
/* CSS TRANSITION SUPPORT (http://www.modernizr.com/)
* ======================================================= */
$.support.transition = (function () {
var transitionEnd = (function () {
@@ -58,7 +58,7 @@
})
}(window.jQuery);/* ==========================================================
* bootstrap-alert.js v2.1.1
* bootstrap-alert.js v2.2.1
* http://twitter.github.com/bootstrap/javascript.html#alerts
* ==========================================================
* Copyright 2012 Twitter, Inc.
@@ -142,12 +142,10 @@
/* ALERT DATA-API
* ============== */
$(function () {
$('body').on('click.alert.data-api', dismiss, Alert.prototype.close)
})
$(document).on('click.alert.data-api', dismiss, Alert.prototype.close)
}(window.jQuery);/* ============================================================
* bootstrap-button.js v2.1.1
* bootstrap-button.js v2.2.1
* http://twitter.github.com/bootstrap/javascript.html#buttons
* ============================================================
* Copyright 2012 Twitter, Inc.
@@ -233,16 +231,14 @@
/* BUTTON DATA-API
* =============== */
$(function () {
$('body').on('click.button.data-api', '[data-toggle^=button]', function ( e ) {
var $btn = $(e.target)
if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn')
$btn.button('toggle')
})
$(document).on('click.button.data-api', '[data-toggle^=button]', function (e) {
var $btn = $(e.target)
if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn')
$btn.button('toggle')
})
}(window.jQuery);/* ==========================================================
* bootstrap-carousel.js v2.1.1
* bootstrap-carousel.js v2.2.1
* http://twitter.github.com/bootstrap/javascript.html#carousel
* ==========================================================
* Copyright 2012 Twitter, Inc.
@@ -337,9 +333,7 @@
, direction = type == 'next' ? 'left' : 'right'
, fallback = type == 'next' ? 'first' : 'last'
, that = this
, e = $.Event('slide', {
relatedTarget: $next[0]
})
, e
this.sliding = true
@@ -347,6 +341,10 @@
$next = $next.length ? $next : this.$element.find('.item')[fallback]()
e = $.Event('slide', {
relatedTarget: $next[0]
})
if ($next.hasClass('active')) return
if ($.support.transition && this.$element.hasClass('slide')) {
@@ -406,18 +404,16 @@
/* CAROUSEL DATA-API
* ================= */
$(function () {
$('body').on('click.carousel.data-api', '[data-slide]', function ( e ) {
var $this = $(this), href
, $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7
, options = !$target.data('modal') && $.extend({}, $target.data(), $this.data())
$target.carousel(options)
e.preventDefault()
})
$(document).on('click.carousel.data-api', '[data-slide]', function (e) {
var $this = $(this), href
, $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7
, options = $.extend({}, $target.data(), $this.data())
$target.carousel(options)
e.preventDefault()
})
}(window.jQuery);/* =============================================================
* bootstrap-collapse.js v2.1.1
* bootstrap-collapse.js v2.2.1
* http://twitter.github.com/bootstrap/javascript.html#collapse
* =============================================================
* Copyright 2012 Twitter, Inc.
@@ -561,20 +557,18 @@
/* COLLAPSIBLE DATA-API
* ==================== */
$(function () {
$('body').on('click.collapse.data-api', '[data-toggle=collapse]', function (e) {
var $this = $(this), href
, target = $this.attr('data-target')
|| e.preventDefault()
|| (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7
, option = $(target).data('collapse') ? 'toggle' : $this.data()
$this[$(target).hasClass('in') ? 'addClass' : 'removeClass']('collapsed')
$(target).collapse(option)
})
$(document).on('click.collapse.data-api', '[data-toggle=collapse]', function (e) {
var $this = $(this), href
, target = $this.attr('data-target')
|| e.preventDefault()
|| (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7
, option = $(target).data('collapse') ? 'toggle' : $this.data()
$this[$(target).hasClass('in') ? 'addClass' : 'removeClass']('collapsed')
$(target).collapse(option)
})
}(window.jQuery);/* ============================================================
* bootstrap-dropdown.js v2.1.1
* bootstrap-dropdown.js v2.2.1
* http://twitter.github.com/bootstrap/javascript.html#dropdowns
* ============================================================
* Copyright 2012 Twitter, Inc.
@@ -675,8 +669,9 @@
}
function clearMenus() {
getParent($(toggle))
.removeClass('open')
$(toggle).each(function () {
getParent($(this)).removeClass('open')
})
}
function getParent($this) {
@@ -713,17 +708,14 @@
/* APPLY TO STANDARD DROPDOWN ELEMENTS
* =================================== */
$(function () {
$('html')
.on('click.dropdown.data-api touchstart.dropdown.data-api', clearMenus)
$('body')
.on('click.dropdown touchstart.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })
.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)
})
$(document)
.on('click.dropdown.data-api touchstart.dropdown.data-api', clearMenus)
.on('click.dropdown touchstart.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })
.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);/* =========================================================
* bootstrap-modal.js v2.1.1
* bootstrap-modal.js v2.2.1
* http://twitter.github.com/bootstrap/javascript.html#modals
* =========================================================
* Copyright 2012 Twitter, Inc.
@@ -773,8 +765,6 @@
if (this.isShown || e.isDefaultPrevented()) return
$('body').addClass('modal-open')
this.isShown = true
this.escape()
@@ -796,13 +786,12 @@
that.$element
.addClass('in')
.attr('aria-hidden', false)
.focus()
that.enforceFocus()
transition ?
that.$element.one($.support.transition.end, function () { that.$element.trigger('shown') }) :
that.$element.trigger('shown')
that.$element.one($.support.transition.end, function () { that.$element.focus().trigger('shown') }) :
that.$element.focus().trigger('shown')
})
}
@@ -820,8 +809,6 @@
this.isShown = false
$('body').removeClass('modal-open')
this.escape()
$(document).off('focusin.modal')
@@ -891,9 +878,11 @@
this.$backdrop = $('<div class="modal-backdrop ' + animate + '" />')
.appendTo(document.body)
if (this.options.backdrop != 'static') {
this.$backdrop.click($.proxy(this.hide, this))
}
this.$backdrop.click(
this.options.backdrop == 'static' ?
$.proxy(this.$element[0].focus, this.$element[0])
: $.proxy(this.hide, this)
)
if (doAnimate) this.$backdrop[0].offsetWidth // force reflow
@@ -943,25 +932,24 @@
/* MODAL DATA-API
* ============== */
$(function () {
$('body').on('click.modal.data-api', '[data-toggle="modal"]', function ( e ) {
var $this = $(this)
, href = $this.attr('href')
, $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())
$(document).on('click.modal.data-api', '[data-toggle="modal"]', function (e) {
var $this = $(this)
, href = $this.attr('href')
, $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())
e.preventDefault()
e.preventDefault()
$target
.modal(option)
.one('hide', function () {
$this.focus()
})
})
$target
.modal(option)
.one('hide', function () {
$this.focus()
})
})
}(window.jQuery);/* ===========================================================
* bootstrap-tooltip.js v2.1.1
}(window.jQuery);
/* ===========================================================
* bootstrap-tooltip.js v2.2.1
* http://twitter.github.com/bootstrap/javascript.html#tooltips
* Inspired by the original jQuery.tipsy by Jason Frame
* ===========================================================
@@ -1081,9 +1069,9 @@
inside = /in/.test(placement)
$tip
.remove()
.detach()
.css({ top: 0, left: 0, display: 'block' })
.appendTo(inside ? this.$element : document.body)
.insertAfter(this.$element)
pos = this.getPosition(inside)
@@ -1106,7 +1094,7 @@
}
$tip
.css(tp)
.offset(tp)
.addClass(placement)
.addClass('in')
}
@@ -1128,18 +1116,18 @@
function removeWithAnimation() {
var timeout = setTimeout(function () {
$tip.off($.support.transition.end).remove()
$tip.off($.support.transition.end).detach()
}, 500)
$tip.one($.support.transition.end, function () {
clearTimeout(timeout)
$tip.remove()
$tip.detach()
})
}
$.support.transition && this.$tip.hasClass('fade') ?
removeWithAnimation() :
$tip.remove()
$tip.detach()
return this
}
@@ -1197,8 +1185,9 @@
this.enabled = !this.enabled
}
, toggle: function () {
this[this.tip().hasClass('in') ? 'hide' : 'show']()
, toggle: function (e) {
var self = $(e.currentTarget)[this.type](this._options).data(this.type)
self[self.tip().hasClass('in') ? 'hide' : 'show']()
}
, destroy: function () {
@@ -1231,12 +1220,11 @@
, trigger: 'hover'
, title: ''
, delay: 0
, html: true
, html: false
}
}(window.jQuery);
/* ===========================================================
* bootstrap-popover.js v2.1.1
}(window.jQuery);/* ===========================================================
* bootstrap-popover.js v2.2.1
* http://twitter.github.com/bootstrap/javascript.html#popovers
* ===========================================================
* Copyright 2012 Twitter, Inc.
@@ -1338,7 +1326,7 @@
})
}(window.jQuery);/* =============================================================
* bootstrap-scrollspy.js v2.1.1
* bootstrap-scrollspy.js v2.2.1
* http://twitter.github.com/bootstrap/javascript.html#scrollspy
* =============================================================
* Copyright 2012 Twitter, Inc.
@@ -1488,7 +1476,7 @@
})
}(window.jQuery);/* ========================================================
* bootstrap-tab.js v2.1.1
* bootstrap-tab.js v2.2.1
* http://twitter.github.com/bootstrap/javascript.html#tabs
* ========================================================
* Copyright 2012 Twitter, Inc.
@@ -1538,7 +1526,7 @@
if ( $this.parent('li').hasClass('active') ) return
previous = $ul.find('.active a').last()[0]
previous = $ul.find('.active:last a')[0]
e = $.Event('show', {
relatedTarget: previous
@@ -1614,15 +1602,13 @@
/* TAB DATA-API
* ============ */
$(function () {
$('body').on('click.tab.data-api', '[data-toggle="tab"], [data-toggle="pill"]', function (e) {
e.preventDefault()
$(this).tab('show')
})
$(document).on('click.tab.data-api', '[data-toggle="tab"], [data-toggle="pill"]', function (e) {
e.preventDefault()
$(this).tab('show')
})
}(window.jQuery);/* =============================================================
* bootstrap-typeahead.js v2.1.1
* bootstrap-typeahead.js v2.2.1
* http://twitter.github.com/bootstrap/javascript.html#typeahead
* =============================================================
* Copyright 2012 Twitter, Inc.
@@ -1797,7 +1783,7 @@
.on('keypress', $.proxy(this.keypress, 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))
}
@@ -1806,6 +1792,15 @@
.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) {
if (!this.shown) return
@@ -1844,6 +1839,9 @@
switch(e.keyCode) {
case 40: // down arrow
case 38: // up arrow
case 16: // shift
case 17: // ctrl
case 18: // alt
break
case 9: // tab
@@ -1911,18 +1909,16 @@
/* TYPEAHEAD DATA-API
* ================== */
$(function () {
$('body').on('focus.typeahead.data-api', '[data-provide="typeahead"]', function (e) {
var $this = $(this)
if ($this.data('typeahead')) return
e.preventDefault()
$this.typeahead($this.data())
})
$(document).on('focus.typeahead.data-api', '[data-provide="typeahead"]', function (e) {
var $this = $(this)
if ($this.data('typeahead')) return
e.preventDefault()
$this.typeahead($this.data())
})
}(window.jQuery);
/* ==========================================================
* bootstrap-affix.js v2.1.1
* bootstrap-affix.js v2.2.1
* http://twitter.github.com/bootstrap/javascript.html#affix
* ==========================================================
* Copyright 2012 Twitter, Inc.
@@ -1951,7 +1947,9 @@
var Affix = function (element, 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.checkPosition()
}

View File

@@ -1,2 +1,2 @@
<?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>