1
0
mirror of https://github.com/monstra-cms/monstra.git synced 2025-08-04 12:17:42 +02:00

942 Commits

Author SHA1 Message Date
Awilum
2dd6faceed Merge branch 'dev' 2014-08-01 18:06:25 +04:00
Awilum
ac8ba8a6dc Monstra 3.0.0 2014-08-01 18:03:17 +04:00
Sergey Romanenko
19e0e36eec Markdown plugin filter disabled for site content by default 2014-08-01 09:19:46 +04:00
Sergey Romanenko
009e32e635 Blog Plugin - Pager Issue #326 2014-07-31 14:25:53 +04:00
Sergey Romanenko
7ff4ff29d9 Blog Plugin: fix for notice 2014-07-31 14:22:56 +04:00
Sergey Romanenko
31b103d9d3 Update default.css 2014-07-27 23:13:48 +04:00
Awilum
6b7f1fce17 MinifyCSS line 114 commented for now 2014-07-26 23:08:24 +04:00
Awilum
a4af90a72e Fix Users Frontend Registration 2014-07-26 14:45:05 +04:00
Awilum
eaccc1056d Repository Fix 2014-07-26 14:33:40 +04:00
Awilum
728f6509a6 Missing Translates added 2014-07-26 14:32:07 +04:00
Awilum
169803c85a FilesManager: fix translates 2014-07-26 12:25:28 +04:00
Awilum
3fddfa8d06 Layoyt Fixes 2014-07-26 12:21:07 +04:00
Awilum
5d696d9a47 Fix for Frontend User Reset Password page 2014-07-26 11:58:11 +04:00
Awilum
1c43b78d71 Fix for Frontend User Auth page 2014-07-26 11:52:07 +04:00
Awilum
d58e1c2f92 Monstra 3.0.0 will be! 2014-07-26 01:20:03 +04:00
Awilum
ab471b9555 UI Defect: Filesmanager Index View looks broken on iPhone #321 #320 2014-07-26 01:16:13 +04:00
Awilum
9f5516233d UI Defect: Pages Index View looks broken for portrait view on iPhone #319 2014-07-26 01:07:59 +04:00
Awilum
f8fa3f966b UI Defect: Plugins View looks broken for on iPhone #322 2014-07-26 01:05:56 +04:00
Awilum
7c548aa5b4 UI Defect: Backups View looks broken for portrait view on iPhone #323 2014-07-26 01:02:36 +04:00
Awilum
3592d3342a UI Defect: Information View looks broken for portrait view on iPhone #324 2014-07-26 00:59:02 +04:00
Awilum
4743f4e6e1 UI Defect: Navigation looks broken for portrait view on IPAD #318 2014-07-21 23:52:03 +04:00
Sergey Romanenko
55324b20a0 Update CHANGELOG.md 2014-07-21 23:02:01 +04:00
Sergey Romanenko
c11ee609bc Merge pull request #315 from ravilrrr/patch-6
FIX breadcrumbs only pages
2014-06-22 11:32:26 +04:00
Sergey Romanenko
43655828c9 Update layout.email.php 2014-06-19 13:31:23 +04:00
Sergey Romanenko
19afcbd9e8 Update layout.email.php 2014-06-19 11:53:22 +04:00
Sergey Romanenko
2643a33820 Merge pull request #317 from ravilrrr/patch-1
add robots
2014-06-18 22:26:23 +04:00
ravilrrr
4fb4de67d4 add robots
добавил список роботов для России и не только
2014-06-18 16:45:50 +04:00
Sergey Romanenko
b9d3292899 Merge pull request #316 from ravilrrr/dev
Ссылка на русскоязычный форум при русском языке в настройках.
2014-06-18 00:55:55 +04:00
ravilrrr
3470c28c03 Ссылка на русскоязычный форум при русском языке в настройках. 2014-06-18 00:02:11 +04:00
ravilrrr
3e7f381fc0 Update pages.plugin.php 2014-06-17 15:19:39 +04:00
Sergey Romanenko
392d8c253f Merge pull request #314 from ravilrrr/patch-4
Update registration.view.php vs Captcha
2014-06-16 21:53:28 +04:00
ravilrrr
c7133368d1 Update registration.view.php
Если не включена каптча, то кнопка Регистрация смещается т.к остается тег div
2014-06-15 19:11:31 +04:00
Sergey Romanenko
c5534d26ad Update codemirror.plugin.php 2014-06-05 14:30:04 +04:00
Sergey Romanenko
17569174aa Pages Shortcode issue #308 2014-06-04 09:56:33 +04:00
Sergey Romanenko
90057e13d0 Merge pull request #308 from ravilrrr/patch-1
Update pages.plugin.php
2014-06-04 09:53:06 +04:00
Sergey Romanenko
5abc71089e Merge pull request #310 from ravilrrr/patch-2
Update Html.php
2014-06-03 06:59:31 +04:00
ravilrrr
a078ba2ad1 Update Html.php 2014-05-31 18:19:07 +00:00
ravilrrr
5bbb9a7871 Update pages.plugin.php 2014-05-30 17:30:33 +03:00
Sergey Romanenko
ad5d92bbff Merge pull request #307 from archi-mobile/patch-5
Update login.template.php
2014-05-28 14:41:36 +03:00
archi-mobile
00f4c551a1 Update login.template.php 2014-05-28 01:35:47 -07:00
Sergey Romanenko
1d2c4cd068 Merge pull request #303 from archi-mobile/patch-1
Update header.chunk.php
2014-05-28 10:56:33 +03:00
Sergey Romanenko
0414e887e1 Merge pull request #300 from ravilrrr/dev
Fix plugin Codemirror
2014-05-28 10:54:28 +03:00
Sergey Romanenko
49347e80b6 Merge pull request #305 from archi-mobile/patch-3
Update index.view.php
2014-05-28 10:50:27 +03:00
Sergey Romanenko
1bb101edef Merge pull request #304 from archi-mobile/patch-2
Update ru.lang.php
2014-05-28 10:49:51 +03:00
archi-mobile
918f0470e0 Update index.view.php 2014-05-28 00:46:42 -07:00
archi-mobile
aaae5c723f Update ru.lang.php 2014-05-28 00:42:50 -07:00
archi-mobile
ed9490042d Update header.chunk.php 2014-05-28 00:36:42 -07:00
Sergey Romanenko
1ef144ba21 Merge pull request #299 from Kibele/dev
Update tr.lang.php files in plugins
2014-05-28 07:45:05 +03:00
ravilrrr
970ce69cfa Update codemirror.plugin.php 2014-05-27 19:39:14 +03:00
ravilrrr
33eedc9481 1.Изменил тему по умолчанию на более удобную/красивую
2.FIX Добавил правильную подсветку html и php в сниппетах и темах
3.Добавил подсветку в CSS файлах
4.Скорректировал шрифт
2014-05-27 19:24:21 +03:00
Ali Galip Çamlı
5bf01e01ca Update tr.lang.php in box/dashboard plugin
Merhaba...
2014-05-24 18:17:17 +03:00
Ali Galip Çamlı
8c66bac570 Update tr.lang.php in box/filesmanager plugin
'Maximum upload file size: :upload_max_filesize'
2014-05-24 18:14:06 +03:00
Ali Galip Çamlı
cd6cd24ed2 Update en.lang.php in box/filesmanager plugin
'Maximum upload file size: :upload_max_filesize'
2014-05-24 18:13:06 +03:00
Ali Galip Çamlı
d293b649b8 Update tr.lang.php in box/filesmanager plugin
'Drop File Here' is missed.
2014-05-24 18:11:13 +03:00
Ali Galip Çamlı
a27564c317 Update en.lang.php in box/filesmanager plugin
'Drop File Here' is missed.
2014-05-24 18:10:18 +03:00
Ali Galip Çamlı
c713cf40d2 Update tr.lang.php in box/filesmanager plugin
'Directory:' and 'File:' are missed.
2014-05-24 18:08:19 +03:00
Ali Galip Çamlı
abdde2411a Update en.lang.php in box/filesmanager plugin
'File:' and 'Directory:' are missed.
2014-05-24 18:07:18 +03:00
Ali Galip Çamlı
d9ee6c89d9 Update tr.lang.php in box/filesmanager plugin
'Rename' is missed.
2014-05-24 18:05:04 +03:00
Ali Galip Çamlı
f871958e51 Update en.lang.php in box/filesmanager plugin
'Rename' is missed.
2014-05-24 18:04:20 +03:00
Ali Galip Çamlı
552c84c7b2 Update tr.lang.php in box/filesmanager plugin
Some missed entries...
2014-05-24 18:02:11 +03:00
Ali Galip Çamlı
b9408b3522 Update en.lang.php in box/filesmanager plugin
Some missed entries...
2014-05-24 17:59:25 +03:00
Ali Galip Çamlı
c4895264de Update tr.lang.php in box/filesmanager plugin
'Select file' is missed.
2014-05-24 17:46:11 +03:00
Ali Galip Çamlı
3834f931d9 Update tr.lang.php in box/themes plugin
'Site Theme' is missed.
2014-05-24 17:44:06 +03:00
Ali Galip Çamlı
dba81f723e Update tr.lang.php in box/themes plugin
'Cancel' is missed.
2014-05-24 17:42:01 +03:00
Ali Galip Çamlı
c2e00b3f81 Update en.lang.php in box/themes plugin
'Cancel' is missed.
2014-05-24 17:41:18 +03:00
Ali Galip Çamlı
7a89ba8a9b Update tr.lang.php in box/backup plugin
Some missed entries...
2014-05-24 17:37:27 +03:00
Ali Galip Çamlı
45f6c4952e Update en.lang.php in box/backup plugin
Some missed entries...
2014-05-24 17:34:28 +03:00
Ali Galip Çamlı
b758b6e503 Update tr.lang.php in box/backup plugin
'Restore' is missed.
2014-05-24 17:30:14 +03:00
Ali Galip Çamlı
2b3bbd247b Update en.lang.php in box/backup plugin
'Restore' is missed.
2014-05-24 17:28:59 +03:00
Ali Galip Çamlı
3c79bc2a45 Update tr.lang.php in box/filesmanager plugin
"Cancel" and "Create" are missed.
2014-05-24 13:09:24 +03:00
Ali Galip Çamlı
29d11febfd Update tr.lang.php in box/filesmanager plugin
"Directory Name" is missed.
2014-05-24 13:06:37 +03:00
Ali Galip Çamlı
33d8024866 Update tr.lang.php in box/menu plugin
'Cancel' is missed.
2014-05-24 13:03:41 +03:00
Ali Galip Çamlı
9e92cc5372 Update tr.lang.php in box/snippets plugin
'Cancel' is missed.
2014-05-24 13:01:56 +03:00
Ali Galip Çamlı
cc3ca4476f Update tr.lang.php in box/pages plugin
Minor changes...
2014-05-24 13:00:22 +03:00
Ali Galip Çamlı
7dc755db99 Update tr.lang.php in box/pages plugin
'Name (slug)' => 'Ad (makine adı)', // check whether in use or not
'Slug (url)' is missed.
2014-05-24 12:58:38 +03:00
Ali Galip Çamlı
bacfb156f4 Update en.lang.php in box/pages plugin
'Name (slug)' => 'Name (slug)', // check whether in use or not
'Slug (url)' is missed
2014-05-24 12:56:46 +03:00
Ali Galip Çamlı
d469da3b2d Update tr.lang.php in box/pages plugin
'Cancel' is missed.
2014-05-24 12:53:18 +03:00
Ali Galip Çamlı
de90f501b6 Update en.lang.php in box/pages plugin
'Tags' is missed.
2014-05-24 12:51:39 +03:00
Ali Galip Çamlı
11ec340a15 Update tr.lang.php in box/pages plugin
'Tags' is missed.
2014-05-24 12:50:23 +03:00
Ali Galip Çamlı
5c8b3a2da1 Update tr.lang.php in box/information plugin 2014-05-24 12:46:19 +03:00
Ali Galip Çamlı
4eaa1165b0 Update tr.lang.php in box/blocks plugin 2014-05-24 12:36:53 +03:00
Ali Galip Çamlı
0285dabee3 Update edit.view.php in box/emails plugin
The word here is in no more blocks plugin, it is in emails plugin now.
2014-05-24 12:36:00 +03:00
Ali Galip Çamlı
a8000d167d Update tr.lang.php in box/backup plugin 2014-05-24 12:31:28 +03:00
Ali Galip Çamlı
2a35099a83 Update en.lang.php in box/backup plugin
'Backup' is missed.
2014-05-24 12:30:42 +03:00
Ali Galip Çamlı
fcf349d0a1 Update tr.lang.php in box/users plugin 2014-05-24 12:27:56 +03:00
Ali Galip Çamlı
44f1fd2e0a Update en.lang.php in box/users plugin 2014-05-24 12:22:49 +03:00
Ali Galip Çamlı
acb88579c8 Update tr.lang.php in box/users plugin
'Register New user' does not match 'Register New User'. "u" in "user" should be capitalized.
2014-05-24 12:21:54 +03:00
Ali Galip Çamlı
e18c4912b5 Update tr.lang.php in box/filesmanager plugin
"Create New Directory" entry...
2014-05-24 11:39:17 +03:00
Ali Galip Çamlı
b7ce4670ec Update tr.lang.php in box/system plugin
"Aç" instead of "Açık". It should be a verb as in "Open Maintenance Mode" for saying "Maintenance Mode On".
2014-05-24 11:25:45 +03:00
Ali Galip Çamlı
ff18aba1b5 Create tr.lang.php in sandbox plugin 2014-05-24 11:00:40 +03:00
Ali Galip Çamlı
bf7e12b16d Create tr.lang.php in captcha plugin 2014-05-24 10:58:30 +03:00
Ali Galip Çamlı
418f89f64d Create tr.lang.php in blog plugin 2014-05-24 10:56:45 +03:00
Ali Galip Çamlı
b1455d63af Update tr.lang.php in box/information plugin 2014-05-24 10:52:14 +03:00
Ali Galip Çamlı
7089970cf6 Update tr.lang.php in box/menu plugin 2014-05-24 10:11:02 +03:00
Ali Galip Çamlı
91dec98620 Update tr.lang.php in box/pages plugin 2014-05-24 10:07:39 +03:00
Ali Galip Çamlı
6d682b3d7f Update tr.lang.php box/plugins plugin 2014-05-24 10:02:05 +03:00
Ali Galip Çamlı
91d769a1c4 Create tr.lang.php in box/sitemap plugin 2014-05-24 09:59:40 +03:00
Ali Galip Çamlı
3a58e39f5c Update tr.lang.php in box/snippets plugin 2014-05-24 09:57:22 +03:00
Ali Galip Çamlı
fc685e0514 Update tr.lang.php in box/themes plugin 2014-05-23 12:53:58 +03:00
Ali Galip Çamlı
f15766ee86 Update tr.lang.php in box/users plugin 2014-05-23 12:44:12 +03:00
Ali Galip Çamlı
e78cce729b Update tr.lang.php in box/filemanager plugin 2014-05-23 10:25:06 +03:00
Ali Galip Çamlı
fc0a4cf3b3 Create tr.lang.php in box/emails plugin 2014-05-23 10:23:19 +03:00
Ali Galip Çamlı
8a905b9481 Create tr.lang.php in box/editor plugin 2014-05-23 10:17:14 +03:00
Ali Galip Çamlı
fb5e278073 Create tr.lang.php in box/dashboard plugin 2014-05-23 10:14:05 +03:00
Ali Galip Çamlı
dc6a689013 Update tr.lang.php in box/blocks plugin 2014-05-23 10:10:54 +03:00
Ali Galip Çamlı
b91e746c09 Update tr.lang.php in box/backup plugin 2014-05-23 10:05:31 +03:00
Ali Galip Çamlı
6be93036ae Update tr.lang.php in system (box) plugin 2014-05-22 18:33:59 +03:00
Awilum
ac1a4b4a6c Translation Updates 2014-05-21 23:54:16 +04:00
Awilum
cbacd6db91 Translation Updates 2014-05-21 23:46:19 +04:00
Awilum
f5566ef2b4 Translation Updates 2014-05-21 23:43:37 +04:00
Awilum
a2596a13a8 Translation Updates 2014-05-21 23:43:36 +04:00
Sergey Romanenko
054cb8ec65 Merge pull request #298 from DmitriyMX/dev-fix295
#295 Backup plugin: fix notification
2014-05-17 08:29:48 +03:00
DmitriyMX
99a22cf36e #295 Backup plugin: fix notification 2014-05-17 01:05:32 +04:00
Awilum
daf306bcb3 #64 Admin Responsive - Next Round 2014-05-16 16:33:43 +04:00
Sergey Romanenko
b386055643 Merge pull request #297 from DmitriyMX/dev-fix296
Fixed #296
2014-05-14 08:04:46 +03:00
DmitriyMX
d7510e699e Fix #296 2014-05-13 22:46:06 +04:00
Awilum
b9fb53820e Translation Updates 2014-05-12 23:31:18 +04:00
Awilum
b6be58ba07 Monstra 2.4.0 Release Candidate 2014-05-11 23:27:07 +04:00
Awilum
947ebb4a3d #64 Admin Responsive - Next Round 2014-05-10 22:12:06 +04:00
Awilum
e816be56a4 #64 Admin Responsive - Next Round 2014-05-09 00:33:43 +04:00
Awilum
531e81b2ac #64 Admin Responsive - Next Round 2014-05-08 23:35:38 +04:00
Awilum
7357d1c26a #64 Admin Responsive - Next Round 2014-05-08 23:30:00 +04:00
Awilum
fd3a16d72f #64 Admin Responsive - Next Round 2014-05-08 23:20:14 +04:00
Awilum
b697274f86 #64 Admin Responsive - Next Round 2014-05-08 22:54:13 +04:00
Awilum
a01ef33951 #64 Admin Responsive - Next Round 2014-05-08 22:53:27 +04:00
Awilum
a17ee5f09c #64 Admin Responsive - Next Round 2014-05-08 22:52:08 +04:00
Awilum
635eb98c4e #64 Admin Responsive - Next Round 2014-05-08 22:46:14 +04:00
Awilum
ea574a1d40 #64 Admin Responsive - Next Round 2014-05-02 23:30:55 +04:00
Awilum
a115a51fd9 Users Plugin: fixes 2014-05-02 21:32:57 +04:00
Sergey Romanenko
23360d4c42 Merge pull request #294 from DmitriyMX/dev-translate
Plugins: fix translate
2014-04-30 14:03:30 +03:00
DmitriyMX
58bedf57e7 Plugins: fix translate 2014-04-30 10:48:46 +04:00
Awilum
b52ff6abb7 Admin: login page fixes 2014-04-28 23:46:52 +04:00
Awilum
745c06df7f Gelato: Minify CSS try to fix bug 2014-04-28 11:50:50 +04:00
Awilum
a62a1e7ef5 Fix Translates 2014-04-28 11:47:52 +04:00
Awilum
9741538fb2 Pages Plugins fixes 2014-04-27 14:07:31 +04:00
Awilum
48b7be3ecc Fix Translates 2014-04-27 14:00:20 +04:00
Awilum
fe4caf0802 Sandbox Plugin: small fixes 2014-04-27 09:21:18 +04:00
Awilum
30f5a5969f Blog Plugin as a part of Monstra CMS - Layout Updates #188 2014-04-27 08:26:43 +04:00
Awilum
47af0a0d4b Menu Manager: js is broken #293 2014-04-13 22:21:23 +04:00
Awilum
b39381990a Monstra 2.4.0 beta 2014-04-13 13:49:00 +04:00
Awilum
1a335cfaad google analytics hide for now 2014-04-13 10:58:41 +04:00
Awilum
ab647fdce5 google analytics hide for now 2014-04-13 10:57:24 +04:00
Awilum
a3c75d72fb UI Improvements - Default Theme - Updates #194 2014-04-13 10:41:48 +04:00
Awilum
c60cd592c4 UI Improvements - Default Theme - Updates #194 2014-04-13 10:36:36 +04:00
Awilum
a36b72f32f Email Templates Plugin - Updates #2 2014-04-11 09:36:42 +04:00
Awilum
4803e3285e UI Improvements - Admin Default Theme - Updates #194 2014-04-03 00:21:49 +04:00
Awilum
312d79c2c9 UI Improvements - Admin Default Theme - Updates #194 2014-04-03 00:20:59 +04:00
Sergey Romanenko
5bea8e2b72 Update CHANGELOG.md 2014-04-01 13:32:35 +03:00
Oleg Gatseluk
b5a9b3f49a Merge branch 'dev' of https://github.com/Awilum/monstra-cms into dev 2014-03-31 09:36:49 +03:00
Oleg Gatseluk
a9c720659d Uploading new plugins via the admin panel #215 2014-03-31 09:36:43 +03:00
Awilum
ae587082ac Turkish Language 2014-03-30 00:03:51 +04:00
Awilum
ee168a2aa0 Files Manager: File Info Popup #232 2014-03-30 00:03:51 +04:00
Awilum
144a3e7cc3 Plugins. README.MD #167 2014-03-30 00:03:50 +04:00
Sergey Romanenko
295e2cb873 Update CHANGELOG.md 2014-03-29 21:39:54 +02:00
Awilum
f2b9975eca Pages - Meta Title #165 2014-03-29 00:20:09 +04:00
Awilum
12d4be693b DB Update 2014-03-29 00:12:25 +04:00
Awilum
616e3a3608 Update CHANGELOG.md 2014-03-28 23:53:56 +04:00
Awilum
34cade84cf Turkish Language 2014-03-27 23:50:38 +04:00
Awilum
a898a84739 Turkish Language 2014-03-27 23:50:38 +04:00
Awilum
6a7c3a3462 Turkish Language 2014-03-27 23:50:37 +04:00
Awilum
eb5f918f5d Monstra automatically rename files Issue #231 2014-03-27 23:50:37 +04:00
Oleg Gatseluk
6c68b1023c merge 2014-03-25 17:37:52 +02:00
Oleg Gatseluk
9cdf1a3d71 Files Manager: File Info Popup #232 2014-03-25 17:29:21 +02:00
metal_gvc
cec57dc108 Sitemap Errors - ERROR 2 #175 2014-03-18 21:31:46 +02:00
Awilum
bd3df9598a Monstra Dashboard #204 2014-03-16 01:42:20 +04:00
Awilum
798c121e51 Chinese Language 2014-03-16 01:33:15 +04:00
Awilum
4f2fb1a319 Plugins Table Updates 2014-03-16 01:29:37 +04:00
Awilum
79e8c94468 General Updates 2014-03-16 01:28:47 +04:00
Awilum
de4b0eff15 Monstra Dashboard #204 2014-03-16 01:27:17 +04:00
Awilum
0fa5c3c91d Themes component of Box plugin not updated to support the new UI #203 2014-03-15 22:24:21 +04:00
Awilum
ab69a6128b Themes component of Box plugin not updated to support the new UI #203 2014-03-15 22:23:14 +04:00
Awilum
9981219800 Pages - Meta Title #165 2014-03-15 12:49:28 +04:00
Awilum
cd2b94c7cc Pages - Meta Title - DB update #165 2014-03-15 11:51:55 +04:00
Awilum
926b99b2fa Pages - Meta Title #165 2014-03-15 11:49:48 +04:00
Awilum
eeffcca348 Blog Plugin as a part of Monstra CMS #188 2014-03-15 01:13:20 +04:00
Awilum
1f3ed549d5 Chinese Language 2014-03-15 01:09:59 +04:00
Awilum
fea6350416 Chinese Language 2014-03-14 20:10:36 +04:00
Awilum
01cef7e8e9 Chinese Language 2014-03-14 20:09:22 +04:00
Awilum
efb026013e Chinese Language 2014-03-14 20:09:09 +04:00
Sergey Romanenko
56562942cd Merge pull request #236 from bernte/patch-3
Update header.chunk.php
2014-03-01 15:01:51 +02:00
Sergey Romanenko
8b63ae4c39 Merge pull request #286 from bernte/patch-52
Update index.view.php
2014-03-01 15:00:14 +02:00
Sergey Romanenko
a98ae9bbc2 Merge pull request #251 from bernte/patch-16
Update de.lang.php
2014-03-01 14:59:16 +02:00
Sergey Romanenko
431337e138 Merge pull request #249 from bernte/patch-14
Update de.lang.php
2014-03-01 14:58:24 +02:00
Sergey Romanenko
7a9aa577dd Merge pull request #248 from bernte/patch-13
Update de.lang.php
2014-03-01 14:56:30 +02:00
Sergey Romanenko
9ea7b09e15 Merge pull request #247 from bernte/patch-12
Update de.lang.php
2014-03-01 14:56:18 +02:00
Sergey Romanenko
c3a1a33c73 Merge pull request #246 from bernte/patch-11
Update de.lang.php
2014-03-01 14:55:00 +02:00
Sergey Romanenko
44e3f5f31c Merge pull request #245 from bernte/patch-10
Update de.lang.php
2014-03-01 14:54:47 +02:00
Sergey Romanenko
4e2f2b6528 Merge pull request #271 from bernte/patch-37
Update es.lang.php
2014-03-01 14:52:05 +02:00
Sergey Romanenko
9594f0d48b Merge pull request #272 from bernte/patch-38
Update fa.lang.php
2014-03-01 14:51:42 +02:00
Sergey Romanenko
8ea46eac2c Merge pull request #273 from bernte/patch-39
Update fr.lang.php
2014-03-01 14:51:28 +02:00
Sergey Romanenko
961f03a7a4 Merge pull request #274 from bernte/patch-40
Update hu.lang.php
2014-03-01 14:50:41 +02:00
Sergey Romanenko
a23885d619 Merge pull request #275 from bernte/patch-41
Update id.lang.php
2014-03-01 14:50:21 +02:00
Sergey Romanenko
71d0244a01 Merge pull request #277 from bernte/patch-43
Update ja.lang.php
2014-03-01 14:49:39 +02:00
Sergey Romanenko
90f8020d92 Merge pull request #276 from bernte/patch-42
Update it.lang.php
2014-03-01 14:49:09 +02:00
Sergey Romanenko
369eb76f09 Merge pull request #278 from bernte/patch-44
Update lt.lang.php
2014-03-01 14:48:58 +02:00
Sergey Romanenko
5e1a5f9150 Merge pull request #279 from bernte/patch-45
Update nl.lang.php
2014-03-01 14:48:44 +02:00
Sergey Romanenko
e4ed4a3e00 Merge pull request #280 from bernte/patch-46
Update pl.lang.php
2014-03-01 14:47:51 +02:00
Sergey Romanenko
8c20dd5155 Merge pull request #281 from bernte/patch-47
Update pt-br.lang.php
2014-03-01 14:47:35 +02:00
Sergey Romanenko
80ea7dbc3a Merge pull request #282 from bernte/patch-48
Update ru.lang.php
2014-03-01 14:47:22 +02:00
Sergey Romanenko
5f79f19542 Merge pull request #283 from bernte/patch-49
Update sk.lang.php
2014-03-01 14:46:53 +02:00
Sergey Romanenko
3624af6371 Merge pull request #284 from bernte/patch-50
Update sr-yu.lang.php
2014-03-01 14:21:35 +02:00
Sergey Romanenko
11eaf2702a Merge pull request #285 from bernte/patch-51
Update uk.lang.php
2014-03-01 14:20:40 +02:00
Sergey Romanenko
69b23097e1 Merge pull request #287 from bernte/patch-53
Update en.lang.php
2014-03-01 14:20:23 +02:00
Sergey Romanenko
66b331c8a6 Merge pull request #288 from bernte/patch-54
Update pl.lang.php
2014-03-01 14:19:59 +02:00
Sergey Romanenko
faad94b51f Merge pull request #240 from bernte/patch-5
Update de.lang.php
2014-03-01 14:19:14 +02:00
Sergey Romanenko
92afccf4f8 Merge pull request #241 from bernte/patch-7
Create de.lang.php
2014-03-01 14:18:57 +02:00
Sergey Romanenko
9d48963513 Merge pull request #289 from bernte/patch-55
Update ru.lang.php
2014-03-01 14:17:54 +02:00
Sergey Romanenko
43925eaf54 Merge pull request #253 from bernte/patch-18
Update en.lang.php
2014-03-01 14:01:57 +02:00
Sergey Romanenko
80fcdb20f9 Merge pull request #290 from bernte/patch-56
Update uk.lang.php
2014-03-01 14:01:41 +02:00
Sergey Romanenko
b71b0a422a Merge pull request #291 from bernte/patch-57
Create de.lang.php
2014-03-01 13:51:56 +02:00
bernte
2e51c5ecf9 Update de.lang.php 2014-03-01 11:56:57 +01:00
bernte
253cb63630 Update de.lang.php 2014-03-01 11:52:01 +01:00
bernte
2070d0ab32 Create de.lang.php 2014-03-01 11:36:40 +01:00
bernte
f84ce335c7 Update uk.lang.php 2014-03-01 11:34:34 +01:00
bernte
507142df0a Update ru.lang.php 2014-03-01 11:34:05 +01:00
bernte
fa7fdfce56 Update pl.lang.php 2014-03-01 11:33:35 +01:00
bernte
c462909f0d Update en.lang.php 2014-03-01 11:32:33 +01:00
bernte
de3ad26ece Update index.view.php
changed it to new language file!
2014-03-01 01:28:47 +01:00
bernte
84d1fffc71 Update uk.lang.php 2014-03-01 01:26:52 +01:00
bernte
6b55dd36e5 Update sr-yu.lang.php 2014-03-01 01:26:37 +01:00
bernte
d046e53ef9 Update sk.lang.php 2014-03-01 01:26:22 +01:00
bernte
2031d25253 Update ru.lang.php 2014-03-01 01:26:05 +01:00
bernte
57544b6740 Update pt-br.lang.php 2014-03-01 01:25:52 +01:00
bernte
c5b8ad8c3d Update pl.lang.php 2014-03-01 01:25:36 +01:00
bernte
059ad82591 Update nl.lang.php 2014-03-01 01:25:23 +01:00
bernte
febd1e7e71 Update lt.lang.php 2014-03-01 01:25:10 +01:00
bernte
616c8a18af Update ja.lang.php 2014-03-01 01:24:50 +01:00
bernte
e442d4debd Update it.lang.php 2014-03-01 01:24:34 +01:00
bernte
5a876fddb1 Update id.lang.php 2014-03-01 01:24:14 +01:00
bernte
6658500691 Update hu.lang.php 2014-03-01 01:24:01 +01:00
bernte
4756be2309 Update fr.lang.php 2014-03-01 01:23:43 +01:00
bernte
16dbbcdb16 Update fa.lang.php 2014-03-01 01:23:03 +01:00
bernte
5c1ea1f819 Update es.lang.php 2014-03-01 01:22:24 +01:00
bernte
b2ca81e9d6 Update en.lang.php 2014-02-28 23:51:55 +01:00
bernte
dfb4c01ffd Update de.lang.php 2014-02-28 23:11:35 +01:00
bernte
45cb0e69d8 Update de.lang.php 2014-02-28 22:58:57 +01:00
bernte
ca43003293 Update de.lang.php 2014-02-28 22:56:07 +01:00
bernte
4bddfae60f Update de.lang.php 2014-02-28 22:45:26 +01:00
bernte
314996be6b Update de.lang.php 2014-02-28 22:42:03 +01:00
bernte
32472a1a0e Update de.lang.php 2014-02-28 22:37:39 +01:00
bernte
ec6e4bba27 Create de.lang.php 2014-02-28 22:12:24 +01:00
bernte
438a81af8f Update de.lang.php 2014-02-28 22:06:05 +01:00
bernte
e51ed4c587 Update header.chunk.php
validation: removed ul
2014-02-28 19:44:02 +01:00
Sergey Romanenko
a8c163a535 Merge pull request #234 from mwidz/dev
Updated language files and adding translations.
2014-02-27 00:06:50 +02:00
Mirosław Widz
0102715cf3 Adding translation of the word 'Continue' in the file install.php and the related update language files 'en' and 'pl'. 2014-02-26 22:23:26 +01:00
Mirosław Widz
d68a4c5e28 Updated and added 'pl' language files
--HG--
rename : plugins/blog/languages/en.lang.php => plugins/blog/languages/pl.lang.php
rename : plugins/box/dashboard/languages/en.lang.php => plugins/box/dashboard/languages/pl.lang.php
rename : plugins/box/emails/languages/en.lang.php => plugins/box/emails/languages/pl.lang.php
2014-02-26 21:35:58 +01:00
Oleg Gatseluk
9c54a443d9 Uploading new plugins via the admin panel - active tab 'Install New' after plugin uploading #215 2014-02-26 17:43:04 +02:00
Oleg Gatseluk
2178b7d406 Uploading new plugins via the admin panel - active tab 'Install New' after plugin uploading #215 2014-02-26 17:22:13 +02:00
Oleg Gatseluk
34d4482911 Unzip Functionality - hide on Windows #229 2014-02-20 17:02:49 +02:00
Awilum
a0719eac94 UI Improvements - Admin Default Theme - Updates #194 2014-02-18 23:02:59 +02:00
Awilum
32e2890b37 UI Improvements - Admin Default Theme - Updates #194 2014-02-18 23:02:26 +02:00
Awilum
e449381555 UI Improvements - Admin Default Theme - Updates #194 2014-02-18 00:45:31 +02:00
Awilum
ac3c4e6ac8 Update CHANGELOG.md 2014-02-18 00:00:18 +02:00
Awilum
06981a768e UI Improvements - Default Theme - Updates #194 2014-02-17 23:54:50 +02:00
Awilum
e5af6b060a UI Improvements - Default Theme - Updates #194 2014-02-17 23:54:23 +02:00
Awilum
f0899e9358 Ink Framework #192 2014-02-17 21:58:31 +02:00
Awilum
e3bc818348 Ink Framework #192 2014-02-17 21:48:40 +02:00
Awilum
b32452a815 UI Improvements - Admin Default Theme - Updates #194 2014-02-17 20:44:20 +02:00
Awilum
a242cd8804 Pages Plugin: add tags field #4 2014-02-17 20:42:38 +02:00
Awilum
9fc9843639 Translation string missing in Themes plugin #137 2014-02-17 19:24:33 +02:00
Awilum
190bbe05b1 MarkItUp Color Pallete #141 2014-02-17 19:22:27 +02:00
Awilum
b0c19f7c81 Pages Plugins Select - get 'template' field 2014-02-17 19:09:04 +02:00
Awilum
cae9c77d0a Installer Flags Order #105 2014-02-17 18:50:50 +02:00
Sergey Romanenko
8b58e1536f Update CHANGELOG.md 2014-02-17 15:04:04 +02:00
Awilum
3339ad0ce5 Update datarangepicker to 1.3.2 2014-02-16 01:01:08 +02:00
Awilum
c003072a5d Update CHANGELOG.md 2014-02-16 00:51:28 +02:00
Awilum
710f86ffc6 Update jQuery to 2.1.0 2014-02-16 00:50:33 +02:00
Awilum
c1a20a5f6e Update Twitter Bootstrap to 3.1.1 2014-02-16 00:42:43 +02:00
Awilum
207a13904d Update CHANGELOG.md 2014-02-16 00:39:30 +02:00
Awilum
5942c29fe9 Plugins. README.MD #167 2014-02-16 00:22:48 +02:00
Awilum
2a3d9720d1 Monstra automatically rename files Issue #231 2014-02-15 22:56:10 +02:00
Awilum
163914b579 Monstra automatically rename files Issue #231 2014-02-15 22:55:51 +02:00
Awilum
41076ede4a UI Improvements - Admin Default Theme - Updates #194 2014-02-15 14:27:42 +02:00
Awilum
44451af610 UI Improvements - Admin Default Theme - Updates #194 2014-02-15 14:27:29 +02:00
Awilum
e3d0da1047 UI Improvements - Admin Default Theme - Updates #194 2014-02-14 21:35:56 +02:00
Awilum
e436317d7e UI Improvements - Admin Default Theme - Updates #194 2014-02-14 21:35:24 +02:00
Awilum
3b7288cbdb UI Improvements - Admin Default Theme - Updates #194 2014-02-14 19:54:19 +02:00
Awilum
9896ea7c31 UI Improvements - Default Theme - Updates #194 2014-02-14 19:41:20 +02:00
Awilum
5e2984e448 UI Improvements - Plugins Views without Headers #194 2014-02-14 19:41:19 +02:00
Awilum
82a516d431 UI Improvements - Default Theme - Updates #194 2014-02-14 19:41:19 +02:00
metal_gvc
f7bc03ef91 Merge branch 'dev' of https://github.com/Awilum/monstra-cms into dev 2014-02-14 17:21:28 +02:00
metal_gvc
7ca3946f8a Uploading new plugins via the admin panel - fileuploader refactoring: drag&drop uploader multiple instances support #215 2014-02-14 17:21:18 +02:00
Sergey Romanenko
80582f2c9f Update default.css 2014-02-14 10:24:16 +02:00
Awilum
3e4bd66e16 UI Improvements - Default Theme - Updates #194 2014-02-14 01:19:42 +02:00
Awilum
3bd33ab305 Restore Site from Backup - Updates #228 2014-02-13 23:52:40 +02:00
Awilum
608c987e6d Uploading new plugins via the admin panel #215 2014-02-13 23:29:14 +02:00
Awilum
582f49418e UI Improvements - Admin Default Theme - Updates #194 2014-02-13 23:12:19 +02:00
Awilum
1b77c928f4 UI Improvements - Admin Default Theme - Updates #194 2014-02-13 23:03:48 +02:00
Awilum
f2d0bd2745 UI Improvements - Default Theme - Updates #194 2014-02-13 22:28:20 +02:00
metal_gvc
1085953b3b Restore Site from Backup - Remove checkboxes #228 2014-02-13 21:31:05 +02:00
metal_gvc
8ac3b92248 Restore Site from Backup - backup all except plugins/box #228 2014-02-13 21:22:37 +02:00
Awilum
37ec41199d Blog Plugin as a part of Monstra CMS #188 2014-02-12 23:56:40 +02:00
Awilum
9ea4477bd8 Blog Plugin as a part of Monstra CMS #188 2014-02-12 23:53:31 +02:00
Awilum
81ffb867be Gelato: ErroHandler styles updates 2014-02-12 23:53:31 +02:00
Awilum
eea5606985 Gelato: ErroHandler styles updates 2014-02-12 23:53:30 +02:00
metal_gvc
c01e03e139 Restore Site from Backup - tmp directory fix #228 2014-02-12 21:35:04 +02:00
metal_gvc
071595fd61 Merge branch 'dev' of https://github.com/Awilum/monstra-cms into dev 2014-02-12 21:29:53 +02:00
metal_gvc
847af54c11 Restore Site from Backup - tmp directory fix #228 2014-02-12 21:13:35 +02:00
Awilum
308483f167 Admin Default Theme Updates 2014-02-12 00:55:54 +02:00
Awilum
1a5d05bfaa Plugins. README.MD #167 2014-02-12 00:33:08 +02:00
Awilum
e17bc2454d Plugins. README.MD #167 2014-02-12 00:32:53 +02:00
Awilum
e662a9937b Plugins. README.MD #167 2014-02-12 00:08:13 +02:00
Awilum
d8a9c746b4 Plugins. README.MD #167 2014-02-11 23:16:41 +02:00
Awilum
0a08b4131d Plugins. README.MD #167 2014-02-11 23:15:34 +02:00
Awilum
ba78201812 Update CHANGELOG.md 2014-02-11 23:14:59 +02:00
Awilum
36bb23db5b Plugins. README.MD #167 2014-02-11 23:12:28 +02:00
Awilum
6713282196 Blog Plugin as a part of Monstra CMS #188 2014-02-11 23:11:28 +02:00
Awilum
bcf3d58c14 Update CHANGELOG.md 2014-02-11 22:27:13 +02:00
Awilum
3f7e3e5b98 Markdown Plugin #230 2014-02-11 22:17:14 +02:00
Awilum
baefbef8ab Plugins. README.MD #167 2014-02-09 21:50:47 +02:00
Awilum
f5ff259344 UI Improvements - Admin Theme Updates #194 2014-02-09 21:50:46 +02:00
metal_gvc
8380ec5b7d Restore Site from Backup #228 2014-02-09 21:48:07 +02:00
metal_gvc
44c274cf8c Merge branch 'dev' of https://github.com/Awilum/monstra-cms into dev 2014-02-09 21:10:51 +02:00
metal_gvc
bcac217db3 Uploading new plugins via the admin panel #215 2014-02-09 21:09:40 +02:00
Awilum
a1c7aa1d46 Plugins. README.MD #167 2014-02-08 14:09:41 +02:00
Awilum
594d6fd51d Monstra Dashboard #204 2014-02-08 14:09:40 +02:00
metal_gvc
9a6329a6cd Merge branch 'dev' of https://github.com/Awilum/monstra-cms into dev 2014-02-08 13:27:19 +02:00
metal_gvc
1350491545 Unzip Functionality #229 2014-02-08 13:25:58 +02:00
Awilum
61317e99fe UI Improvements - Installer - updates #194 2014-02-01 20:57:38 +02:00
Awilum
46c2d5e93d UI Improvements - Admin - updates #194 2014-02-01 18:08:56 +02:00
Awilum
35029b1e24 New Flags Added 2014-02-01 17:43:03 +02:00
Awilum
8a107d190c UI Improvements - Admin - updates #194 2014-02-01 17:03:57 +02:00
Awilum
ff26fc105c UI Improvements - Admin - updates #194 2014-02-01 17:03:39 +02:00
Awilum
2e19f5c1a7 Files Manager Improvements - fixes #94 2014-02-01 14:47:08 +02:00
Awilum
0bbf9544da UI Improvements - Admin - Login page updates #194 2014-02-01 13:09:13 +02:00
Awilum
27cf070816 Update Changelog 2014-02-01 01:07:45 +02:00
Awilum
66eb4fd120 Idiorm Updated to 1.4.1 2014-02-01 01:07:27 +02:00
Awilum
3aad8db409 Update Changelog 2014-02-01 01:01:35 +02:00
Awilum
6d703b1286 Update Twitter Bootstrap to 3.1.0 2014-02-01 01:00:50 +02:00
Awilum
948bf57a1c Box Plugins: .htaccess added 2014-01-31 21:54:43 +02:00
Awilum
ef63bda6da DB Updates 2014-01-31 21:48:34 +02:00
Awilum
87135d00ae Email Templates Plugin - Updates #2 2014-01-31 21:28:33 +02:00
Awilum
350dd8ed8b Email Templates Plugin - Updates #2 2014-01-31 21:27:27 +02:00
Awilum
b8ebd53272 CodeMirror Plugin as a part of Monstra CMS #187 2014-01-31 21:23:34 +02:00
Awilum
358c7fdefe Update users.plugin.php 2014-01-31 20:42:47 +02:00
Awilum
062460895d Email Templates Plugin - Updates #2 2014-01-31 20:24:46 +02:00
Awilum
7113f09937 Restore Site from Backup #228 2014-01-31 20:24:07 +02:00
Awilum
918820da3e UI Improvements - Admin - Login page updates #194 2014-01-31 20:18:20 +02:00
Awilum
8f0e576f99 Files Manager Improvements - Bootstrap: fileinput.js v3.0.0-p7 #94 2014-01-31 19:02:44 +02:00
Awilum
eecf2e85a4 Files Manager Improvements - Bootstrap: fileinput.js v3.0.0-p7 #94 2014-01-31 19:02:44 +02:00
metal_gvc
933c1df4f6 Monstra Dashboard - GA - hide settings link on GA settings page #204 2014-01-29 21:31:51 +02:00
Awilum
28ec930671 Files Manager Improvements - Maximum upload file size message - added #94 2014-01-29 20:56:39 +02:00
Awilum
e74111fb7d Gelato: Number Class new method convertToBytes() added. 2014-01-29 20:56:39 +02:00
Awilum
551ce3be6b Gelato: Number Class new method convertToBytes() added. 2014-01-29 20:56:39 +02:00
Sergey Romanenko
ceb19b2e83 Update CHANGELOG.md 2014-01-29 15:36:33 +02:00
Sergey Romanenko
38efadd6bf Update CHANGELOG.md 2014-01-29 15:35:17 +02:00
Sergey Romanenko
97dc6a8f69 Plugin API - Filters - Closure support added. 2014-01-29 15:34:58 +02:00
Sergey Romanenko
1e3689204e Update CHANGELOG.md 2014-01-29 15:33:12 +02:00
Sergey Romanenko
fee8dc34e9 Update CHANGELOG.md 2014-01-29 15:30:53 +02:00
Sergey Romanenko
a5dbfaee85 Update install.php 2014-01-29 11:44:35 +02:00
Sergey Romanenko
e72dcc3a94 Merge pull request #227 from Awilum/master
Merge with master branch
2014-01-29 01:14:49 -08:00
Awilum
106c7b2c56 Files Manager Improvements - Updates #94 2014-01-29 00:13:48 +02:00
Awilum
6749608a17 Monstra Dashboard - Updates #204 2014-01-29 00:05:29 +02:00
Awilum
4b381efb10 Files Manager Improvements - Updates #94 2014-01-29 00:05:29 +02:00
metal_gvc
8d16632454 Prefetch DNS to reduce look up times #202 2014-01-28 20:12:16 +02:00
Awilum
67bf91a872 Files Manager Improvements - fixes #94 2014-01-25 13:17:28 +02:00
Awilum
482e865358 Files Manager Improvements - fixes #94 2014-01-25 11:12:01 +02:00
metal_gvc
fb906708b9 Merge branch 'dev' of https://github.com/Awilum/monstra-cms into dev 2014-01-25 00:24:26 +02:00
metal_gvc
76c71c8174 Monstra Dashboard - GA update #204 2014-01-25 00:24:02 +02:00
Awilum
6d20d97c86 Chocolat Fixes 2014-01-24 23:15:51 +02:00
metal_gvc
2ba945313f Files Manager Improvements - Ability to rename Files & Directories #94 2014-01-24 22:56:13 +02:00
Sergey Romanenko
52192f9dea Update style.css 2014-01-24 12:15:00 +02:00
Sergey Romanenko
054aa46635 Update I18n.php 2014-01-23 11:15:52 +02:00
Sergey Romanenko
cff06f5564 Merge pull request #223 from ANISSA90/master
language
2014-01-23 01:10:41 -08:00
Sergey Romanenko
14dfc59b9e Merge pull request #226 from gracix/master
Create japanese language files
2014-01-23 01:08:40 -08:00
metal_gvc
03045d03ae Files Manager Improvements - Drug'n'Drop uploader - error handler updates #94 2014-01-23 00:27:33 +02:00
Takefumi Ota
5d8a4abcb9 Add Japanese language files. 2014-01-22 10:59:38 +09:00
Takefumi Ota
3ad2cf7a56 Create Japanese language file 2014-01-22 09:56:23 +09:00
Sergey Romanenko
474fddd803 Email Templates Plugin - Updates #2 2014-01-21 15:06:57 +02:00
Sergey Romanenko
a1942f55dc Update codemirror.plugin.php 2014-01-21 15:05:55 +02:00
Sergey Romanenko
38e6961a91 Email Templates Plugin - Updates #2 2014-01-21 15:05:31 +02:00
Sergey Romanenko
73d78f0585 Email Templates Plugin - Updates #2 2014-01-21 15:04:58 +02:00
Sergey Romanenko
bd84514fce Email Templates Plugin - Updates #2 2014-01-21 15:04:08 +02:00
Sergey Romanenko
9d66c5ca32 Update users.plugin.php 2014-01-21 14:40:09 +02:00
Sergey Romanenko
54660eb5c1 Rename reset_password.email.php to reset-password.email.php 2014-01-21 14:39:12 +02:00
Sergey Romanenko
ea3f059a41 Rename new_user.email.php to new-user.email.php 2014-01-21 14:39:02 +02:00
Sergey Romanenko
1e2fe718c1 Rename new_password.email.php to new-password.email.php 2014-01-21 14:38:51 +02:00
Sergey Romanenko
aaba7cef27 Email Templates Plugin - Updates #2 2014-01-21 14:37:32 +02:00
Sergey Romanenko
2afaba814b Email Templates Plugin - Updates #2 2014-01-21 14:36:52 +02:00
Sergey Romanenko
2a465bab1b Email Templates Plugin - Updates #2 2014-01-21 14:36:01 +02:00
Sergey Romanenko
fff6890205 Update LICENSE.md 2014-01-21 13:38:18 +02:00
Sergey Romanenko
9a5f0a99ba Update LICENSE.md 2014-01-21 13:37:26 +02:00
Sergey Romanenko
2c4d1c36f9 Rename license.txt to LICENSE.md 2014-01-21 13:34:54 +02:00
Sergey Romanenko
7b397ddfaa Rename changelog.txt to CHANGELOG.md 2014-01-21 13:33:33 +02:00
Sergey Romanenko
0cecc2e9a6 Users Plugin - Email Templates - Updates #2 2014-01-21 13:01:04 +02:00
Awilum
a8b2725721 Email Templates Plugin - Email Templates - Updates #2 2014-01-21 00:11:12 +02:00
Awilum
274e9a1849 Files Manager Improvements - Drop Files section fixes #94 2014-01-20 22:14:07 +02:00
Awilum
a76207ae96 Files Manager Improvements - Drop Files section fixes #94 2014-01-20 21:44:15 +02:00
Sergey Romanenko
0bb9915708 Admin Default Theme Updates 2014-01-20 15:58:24 +02:00
Sergey Romanenko
f7a716cb76 Update changelog.txt 2014-01-20 15:19:42 +02:00
Awilum
dfb0b41467 iCheck for checkboxes #225 2014-01-20 01:07:42 +02:00
Awilum
ad5c1802d0 Blog Plugin as a part of Monstra CMS #188 2014-01-20 00:25:00 +02:00
Awilum
390c5a1354 iCheck for checkboxes #225 2014-01-19 18:03:45 +02:00
Awilum
3f4a04e03a iCheck for checkboxes #225 2014-01-19 18:02:48 +02:00
Sergey Romanenko
669289af32 Merge pull request #224 from DmitriyMX/dev
Fix: JSON.parse: unexpected character
2014-01-19 07:00:47 -08:00
DmitriyMX
d4f57e35d3 Fix: JSON.parse: unexpected character 2014-01-19 18:51:29 +04:00
ANISSA90
cc7d270bfb Create id.lang.php 2014-01-19 16:25:59 +07:00
ANISSA90
caecc6df07 Create id.lang.php 2014-01-19 16:17:33 +07:00
ANISSA90
0f357ec80b Create id.lang.php 2014-01-19 16:12:34 +07:00
ANISSA90
57c43319f7 Create id.lang.php 2014-01-19 15:32:53 +07:00
ANISSA90
00ac33e273 Create id.lang.php 2014-01-19 15:13:47 +07:00
ANISSA90
3947d3560d Create id.lang.php 2014-01-19 14:20:01 +07:00
ANISSA90
4907964484 Create id.lang.php 2014-01-19 13:58:13 +07:00
ANISSA90
38c8a3340c Create id.lang.php 2014-01-19 13:39:28 +07:00
Awilum
7532ad1127 Fixes for #94 and #204 2014-01-18 12:06:39 +02:00
Awilum
cc613247f3 UI Improvements - Admin Theme Fixes #194 2014-01-18 11:40:00 +02:00
Awilum
92064df622 Files Manager Improvements #94 2014-01-18 11:22:30 +02:00
Awilum
fb121a88d1 Merge branch 'dev' of https://github.com/metalgvc/monstra-cms into metalgvc-dev
Conflicts:
	plugins/box/filesmanager/views/backend/index.view.php
2014-01-18 11:14:21 +02:00
Awilum
abc04ee218 UI Improvements - Admin Theme Updates #194 2014-01-18 00:15:54 +02:00
Awilum
0faba762ba UI Improvements - Admin Theme Updates #194 2014-01-18 00:15:53 +02:00
Awilum
fed3aa5664 Files Manager Improvements - Drop Files section added #94 2014-01-18 00:15:53 +02:00
Sergey Romanenko
6e3a2a63e7 Merge pull request #221 from metalgvc/dev
Monstra Dashboard - Google Analytics #204
2014-01-17 14:13:34 -08:00
metal_gvc
c119c9f84a Monstra Dashboard #204 2014-01-17 23:50:14 +02:00
ANISSA90
3eae0d2114 Create id.lang.php 2014-01-18 00:15:45 +07:00
ANISSA90
955ba2a9ca Create id.lang.php 2014-01-18 00:07:21 +07:00
Sergey Romanenko
25bee212a8 Merge pull request #220 from metalgvc/dev
Dashboard google analytics #204
2014-01-17 01:26:46 -08:00
Sergey Romanenko
e5f319a961 Update changelog.txt 2014-01-17 10:26:51 +02:00
Oleg Gatseluk
251acd4949 google analytics dashboard init fix 2014-01-17 10:20:46 +02:00
Sergey Romanenko
bc429ac098 Update changelog.txt 2014-01-17 10:18:11 +02:00
Sergey Romanenko
a76590930f Update changelog.txt 2014-01-17 10:15:07 +02:00
Sergey Romanenko
2f873985a8 Update changelog.txt 2014-01-17 10:14:02 +02:00
metal_gvc
ffc0bf62c2 google analytics init 2014-01-17 09:11:03 +02:00
Sergey Romanenko
678573b91a Plugin API - Actions - Closure support added. 2014-01-16 12:17:07 +02:00
ANISSA90
83abaae0af Create id.lang.php 2014-01-16 07:29:31 +07:00
ANISSA90
bd310d6c7c Create id.lang.php 2014-01-16 07:15:30 +07:00
ANISSA90
9fabc679b4 Create id.lang.php 2014-01-16 07:05:14 +07:00
Awilum
5e06c10ef9 Users Plugin: Improvements 2014-01-15 00:39:00 +02:00
Awilum
fa00499d93 CodeMirror Plugin as a part of Monstra CMS #187 2014-01-15 00:18:15 +02:00
Awilum
ed323cfe7b Blog Plugin as a part of Monstra CMS #188 2014-01-14 23:56:52 +02:00
Awilum
5dc4c65f76 Blog Plugin as a part of Monstra CMS #188 2014-01-14 23:56:07 +02:00
Awilum
3dfef0e3a3 Gelato Html - W3 Fixes #189 2014-01-14 23:49:29 +02:00
Awilum
87a55ed5bb Users Plugin: Notifications Updates 2014-01-14 23:44:16 +02:00
Awilum
40afdaccc7 Email Templates Plugin and Ink Framework integration #2 #192 2014-01-14 20:15:34 +02:00
Awilum
290ab4bec2 Backup Plugin: Improvements 2014-01-14 20:11:42 +02:00
Awilum
14baa34888 Backup Plugin: Notifications added 2014-01-14 20:11:41 +02:00
Sergey Romanenko
5c03f0cfab Update filesmanager.admin.php 2014-01-13 12:22:43 +02:00
Awilum
f9ec0b9e18 Email Templates Plugin - Email Templates - Added #2 2014-01-12 20:39:25 +02:00
Awilum
d2ab853939 minify.[css|js] cached by the browser #212 2014-01-12 17:59:54 +02:00
Awilum
fae12cefda UI Improvements - Plugins - Layout fixes #194 2014-01-12 15:12:45 +02:00
Awilum
1dbd208832 UI Improvements - Plugins - Layout fixes #194 2014-01-11 23:05:33 +02:00
Awilum
2b1e28a0d5 minify.[css|js] cached by the browser #212 2014-01-11 11:31:30 +02:00
Awilum
2c268fc873 UI Improvements - Admin Theme - Styles fixes #194 2014-01-11 01:18:33 +02:00
Awilum
15535a460c UI Improvements - Admin Theme - Styles fixes #194 2014-01-11 01:18:17 +02:00
Awilum
c2a2dba621 Twitter Bootsrap 3 - Admin - Fixes #185 2014-01-11 00:56:21 +02:00
Awilum
f340fcd3a2 Files Manager Improvements - Breadcrumbs fixes #94 2014-01-11 00:52:52 +02:00
Awilum
7f71f3e3bc Blog Plugin as a part of Monstra CMS #188 2014-01-10 22:48:01 +02:00
Awilum
0170c3015e Localization fixes 2014-01-10 22:14:56 +02:00
Awilum
141df2033d Localization fixes 2014-01-10 22:12:54 +02:00
Awilum
a8c9f864e5 minify.[css|js] cached by the browser #212 2014-01-10 22:06:59 +02:00
Awilum
8b5bdd266f minify.[css|js] cached by the browser - Added abblity to increment js and css version #212 2014-01-10 22:06:58 +02:00
Sergey Romanenko
97a5dcf317 Merge pull request #218 from metalgvc/dev
Files Manager Improvements - create directory #94
2014-01-10 10:02:39 -08:00
metal_gvc
e78f59126a Files Manager Improvements - create directory #94 2014-01-10 20:00:21 +02:00
Awilum
81b070322e UI Improvements - Admin Theme - Styles fixes #194 2014-01-10 19:40:30 +02:00
Awilum
aabbb4461e Blog Plugin as a part of Monstra CMS - Layout Updates #188 2014-01-09 23:05:09 +02:00
Awilum
e08c17df4b Blog Plugin as a part of Monstra CMS - getPostAuthor() - added #188 2014-01-09 22:20:41 +02:00
Awilum
01be9f66e4 Blog Plugin as a part of Monstra CMS - Layout Updates #188 2014-01-09 22:19:33 +02:00
Awilum
4381179378 Blog Plugin as a part of Monstra CMS - getPostDate() - added #188 2014-01-09 20:53:28 +02:00
Awilum
015aff3cb3 Blog Plugin as a part of Monstra CMS - Layout Updates #188 2014-01-09 20:50:17 +02:00
Awilum
fb44416902 Blog Plugin as a part of Monstra CMS #188 2014-01-09 20:30:39 +02:00
Awilum
6721c7829f Blog Plugin as a part of Monstra CMS #188 2014-01-09 20:30:20 +02:00
Awilum
df745f597c Monstra Dashboard - Fixes #204 2014-01-09 19:21:37 +02:00
Awilum
95a791e871 Monstra Dashboard - Fixes #204 2014-01-09 19:19:24 +02:00
Sergey Romanenko
7196ac5067 Update Monstra.php 2014-01-09 12:27:51 +02:00
Sergey Romanenko
1db7253e63 Twitter Bootsrap 3 - Admin - Fixes #185 2014-01-09 12:22:05 +02:00
Sergey Romanenko
1998674217 Twitter Bootsrap 3 - Admin - Fixes #185 2014-01-09 12:19:31 +02:00
Sergey Romanenko
d6e269a7fa Update index.template.php 2014-01-09 12:16:30 +02:00
Sergey Romanenko
bd1b9d24d6 Merge pull request #213 from promo360/dev
Localization fixes
2014-01-08 23:42:57 -08:00
Евгений
1c42312010 Themes - boostrap 3 fixes 2014-01-09 07:46:15 +06:00
Евгений
31e0616a42 Localization fixes 2014-01-09 07:33:27 +06:00
Awilum
b3767f9f59 Email Templates Plugin - fixes #2 2014-01-09 01:45:39 +02:00
Awilum
c68ac3f03a Email Templates Plugin - Skeleton Added #2 2014-01-09 01:43:52 +02:00
Awilum
e8f79e99b5 Email Templates Plugin - DB Updates #2 2014-01-09 01:40:36 +02:00
Awilum
5433a17aa5 Information Plugin set menu priority 6 2014-01-09 01:36:52 +02:00
Awilum
0ab72c4208 UI Improvements - Admin Theme - .error-message class added #194 2014-01-09 00:59:27 +02:00
Awilum
e71bb980a5 UI Improvements - Menu Plugin - Fixes #194 2014-01-09 00:58:45 +02:00
Awilum
7c0a4d7a50 UI Improvements - Menu Plugin - Fixes #194 2014-01-09 00:52:37 +02:00
Awilum
ca65abd10c UI Improvements - Users Client Side - Fixes #194 2014-01-09 00:27:18 +02:00
Awilum
26f1abd717 UI Improvements - Admin - Cancel Button Added #194 2014-01-09 00:11:19 +02:00
Awilum
281894d08a Monstra Dashboard - localization - fixes #204 2014-01-08 22:31:51 +02:00
Awilum
b2f3d3d526 jQuery in head #211 2014-01-08 21:54:44 +02:00
Awilum
1bc19bc850 jQuery in head #211 2014-01-08 21:54:17 +02:00
Awilum
73b20836c8 Alert #208 2014-01-08 21:30:06 +02:00
Awilum
aef599de95 Alert #208 2014-01-08 21:22:18 +02:00
Sergey Romanenko
0fcae326cb UI Improvements - Admin Theme - Styles fixes #194 2014-01-08 16:43:21 +02:00
Sergey Romanenko
6d38fb9c39 Update changelog.txt 2014-01-08 09:22:52 +02:00
Awilum
64d13302d5 Monstra Dashboard #204 2014-01-08 01:17:33 +02:00
Awilum
cc9ce84648 Monstra Dashboard - Set as default Plugin for Admin Panel #204 2014-01-08 01:08:45 +02:00
Awilum
9d6d3dec95 Monstra Dashboard - DB Updates #204 2014-01-08 01:02:52 +02:00
Awilum
365dbafcc9 UI Improvements - Admin Login Page - Fixes #194 2014-01-08 01:00:49 +02:00
Sergey Romanenko
da4e3b60c0 Merge pull request #207 from promo360/dev
Modal. Bootstrap 3
2014-01-07 14:49:51 -08:00
Евгений
ed1edc32db Merge branch 'dev' of https://github.com/Awilum/monstra-cms into dev 2014-01-08 04:47:04 +06:00
Евгений
dbb3db8e6b Merge branch 'master' of https://github.com/Awilum/monstra-cms into dev 2014-01-08 04:46:27 +06:00
Awilum
27d55c2e51 Monstra Dashboard #204 2014-01-08 00:44:05 +02:00
Awilum
2bc94dbe6a Monstra Dashboard #204 2014-01-08 00:43:29 +02:00
Евгений
d3b00d894b Modal. Bootstrap 3 2014-01-08 04:39:53 +06:00
Awilum
5a142a2353 UI Improvements - Admin - Updates #194 2014-01-07 23:39:15 +02:00
Awilum
88b244a6df HubSpot Messaging Library #195 2014-01-07 20:39:06 +02:00
Awilum
1fd4892969 Core: Javascript may be broken if there is no break line - fixed 2014-01-07 20:35:58 +02:00
Awilum
a48a587fcd UI Improvements - Admin - Cleanup #194 2014-01-07 20:17:16 +02:00
Awilum
30f5aae0be UI Improvements - Admin - Updates #194 2014-01-07 20:10:09 +02:00
Awilum
14d7d93373 Monstra Dashboard - Plugin Skeleton #204 2014-01-07 20:10:08 +02:00
Sergey Romanenko
4f92cb32c2 Merge pull request #205 from EuanMead/dev
Numerous Improvements & Tweaks
2014-01-07 10:01:13 -08:00
Awilum
1e3e3ce8b3 Sandbox Plugin - cleanup 2014-01-07 19:56:56 +02:00
EuanMead
e3c80959f8 Lossless Compression of Images 2014-01-07 16:55:59 +00:00
EuanMead
b36a30c4c3 Lossless Compression of Images 2014-01-07 16:55:56 +00:00
EuanMead
7f8833286c Lossless Compression of Images 2014-01-07 16:55:47 +00:00
EuanMead
3bfee0107d Lossless Compression of Images 2014-01-07 16:55:42 +00:00
EuanMead
9d263cb2c9 Lossless Compression of Images 2014-01-07 16:55:37 +00:00
EuanMead
01a1b5d62d Lossless Compression of Images 2014-01-07 16:55:33 +00:00
EuanMead
1286de90ae Lossless Compression of Images 2014-01-07 16:55:18 +00:00
EuanMead
b6de5a3261 Lossless Compression of Images 2014-01-07 16:55:13 +00:00
EuanMead
5abc7c89db Lossless Compression of Images 2014-01-07 16:55:08 +00:00
EuanMead
32165e0b18 Lossless Compression of Images 2014-01-07 16:54:55 +00:00
EuanMead
bdb27de2f1 Lossless Compression of Images 2014-01-07 16:54:51 +00:00
EuanMead
70f3338470 Lossless Compression of Images 2014-01-07 16:54:42 +00:00
EuanMead
f82f677f79 Lossless Compression of Images 2014-01-07 16:53:26 +00:00
EuanMead
a8a425bec1 Lossless Compression of Images 2014-01-07 16:53:22 +00:00
EuanMead
4bb991ebe8 Lossless Compression of Images 2014-01-07 16:53:11 +00:00
EuanMead
2c87b85daa Lossless Compression of Images 2014-01-07 16:53:07 +00:00
EuanMead
fabf51c624 Lossless Compression of Images 2014-01-07 16:52:52 +00:00
EuanMead
5655dd70a8 Lossless Compression of Images 2014-01-07 16:52:43 +00:00
EuanMead
4d7383637a Use CDNJS For Hosting Scripts. 2014-01-07 16:33:43 +00:00
EuanMead
8ee7c234e1 Use CDNJS For Hosting Scripts. 2014-01-07 16:33:37 +00:00
EuanMead
b757c19778 Update to use Bootstrap V3
Minor changes to structure and changes to classes to provide UI
consistent with pages.
2014-01-07 16:15:45 +00:00
Awilum
2574431dd8 Admin Navbar Increase Gravatar size #193 2014-01-07 15:36:31 +02:00
Awilum
b43422f090 No Bootstrap.min.css - Fixed #200 2014-01-07 15:34:11 +02:00
Awilum
450a7f3c2f Site Url without trailing slashes #186 2014-01-07 01:26:13 +02:00
Awilum
79f0ef2701 UI Improvements - Admin - Navbar Updates #194 2014-01-07 01:23:02 +02:00
Awilum
ce14f9b241 Core: Store user_email in Session 2014-01-07 01:21:12 +02:00
Awilum
843b460614 Core: Store user_email in Session 2014-01-07 01:19:33 +02:00
Awilum
15b089f043 Users Plugin - Improve getGravatarURL() #193 2014-01-06 23:59:12 +02:00
Awilum
2baee12915 UI Improvements - Users Client Side - Fixes #194 2014-01-06 22:54:04 +02:00
Awilum
1d13ebe490 Gelato Form - W3 Fixes #189 2014-01-06 22:47:27 +02:00
Awilum
dee1b7ba75 UI Improvements - Users Client Side - Fixes #194 2014-01-06 22:44:10 +02:00
Awilum
469a015b8b DUI Improvements - Default Theme is Flat - Fixes #194 2014-01-06 22:43:16 +02:00
Awilum
44860b5cba UI Improvements - Users Client Side - Fixes #194 2014-01-06 22:36:24 +02:00
Awilum
dd2e241207 Changelog - updates 2014-01-06 22:24:47 +02:00
Sergey Romanenko
986353aa88 Merge pull request #197 from promo360/dev
Site Url without trailing slashes
2014-01-06 11:53:13 -08:00
Awilum
5b4a0c3bbf UI Improvements - Installer Fixes #194 2014-01-06 21:50:56 +02:00
Евгений
e60fb9921e Site Url without trailing slashes 2014-01-07 01:32:50 +06:00
Sergey Romanenko
5cb23c76c3 Merge pull request #196 from promo360/dev
Dev
2014-01-06 11:09:59 -08:00
Awilum
02fa169760 Files Manager Improvements #94 2014-01-06 21:05:12 +02:00
Евгений
3d83dc775f Site Url without trailing slashes 2014-01-07 01:02:23 +06:00
Евгений
432942abf8 W3 Fixes <br/> > <br> 2014-01-07 00:44:58 +06:00
Евгений
29d506a862 W3 2014-01-07 00:39:31 +06:00
Awilum
83f7be1c7d Site Url without trailing slashes #186 #188 2014-01-06 19:49:39 +02:00
Awilum
bbc74df954 #187 #188 - DataBase Updates 2014-01-06 19:43:47 +02:00
Евгений
fbb65d4568 Merge pull request #1 from Awilum/dev
Dev
2014-01-06 09:41:09 -08:00
Awilum
543b8ae883 Site Url without trailing slashes #186 2014-01-06 19:35:20 +02:00
Awilum
51e2cd0a45 Site Url without trailing slashes #186 2014-01-06 19:17:23 +02:00
Awilum
aa3d785b97 Site Url without trailing slashes 2014-01-04 23:52:28 +02:00
Awilum
cd40c09496 Site Url without trailing slashes 2014-01-04 23:21:56 +02:00
Awilum
7c0fcf42cf Site Url without trailing slashes 2014-01-04 01:14:54 +02:00
Awilum
a32056db45 Site Url without trailing slashes 2014-01-04 00:58:34 +02:00
Awilum
de0c1da61c Default Theme on Twitter Bootstrap 3 2014-01-03 23:46:12 +02:00
Awilum
8b0ba10a5a Site Url without trailing slashes 2014-01-03 23:45:28 +02:00
Awilum
8d681709d2 CodeMirror Plugin as a part of Monstra CMS 2014-01-03 20:56:46 +02:00
Awilum
7f0cdeba25 Frontend Improvements 2014-01-03 20:56:33 +02:00
Awilum
f4d9b9c53d CodeMirror Plugin as a part of Monstra CMS 2014-01-03 20:49:25 +02:00
Awilum
7b8949dc2b Site Url without trailing slashes 2014-01-03 20:38:29 +02:00
Awilum
108581e4ef Frontend Improvements 2014-01-03 20:38:11 +02:00
Awilum
83264e41f3 Blog Plugin as a part of Monstra CMS 2014-01-03 19:07:05 +02:00
Awilum
79f4abe6bd Site Url without trailing slashes 2014-01-03 19:04:03 +02:00
Awilum
9da99040e1 Site Url without trailing slashes 2014-01-03 18:39:03 +02:00
Awilum
c3fe4d16bc FilesManager Improvements 2014-01-03 02:56:01 +02:00
Awilum
c1a523acf6 jQuery v1.10.2 2014-01-03 02:55:43 +02:00
Awilum
03653831c8 FilesManager Improvements 2014-01-03 02:44:48 +02:00
Awilum
fb12bc8d85 Frontend Improvements 2014-01-03 02:43:22 +02:00
Awilum
6bbf1ffd51 bootstrap-confirm.js - Removed 2014-01-03 02:41:35 +02:00
Awilum
0c118fb984 bootstrap-confirm.js - Added 2014-01-03 02:17:53 +02:00
Awilum
b33b85860f FilesManager Improvements 2014-01-03 01:44:00 +02:00
Awilum
d1ef0e47f9 Chocolat Added 2014-01-03 01:43:32 +02:00
Awilum
5466099cae Project Assets - CleanUp 2014-01-03 00:06:38 +02:00
Awilum
2df64961e6 Monstra Logo 256px - Added 2014-01-03 00:05:37 +02:00
Awilum
d01a5e36fb Chocolat Added 2014-01-03 00:05:13 +02:00
Awilum
97b9982ba0 Frontend Improvements 2014-01-02 22:22:04 +02:00
Awilum
cac3aeb813 default.js - old js removed 2014-01-02 22:11:59 +02:00
Awilum
7b24e315b7 Frontend Improvements 2014-01-02 19:56:08 +02:00
Awilum
73abb00785 Frontend Improvements 2014-01-02 19:54:18 +02:00
Awilum
4d16d07b2c Frontend Improvements 2014-01-02 02:37:11 +02:00
Awilum
54be2aa7d0 Frontend Improvements 2014-01-02 02:37:00 +02:00
Awilum
42e807db22 Monstra Installer - Frontend Improvements 2014-01-02 02:29:14 +02:00
Awilum
76f216f516 Frontend Improvements - FlatUI & Foundation inspiration 2014-01-02 02:29:01 +02:00
Awilum
5def336ff9 Frontend Improvements 2014-01-02 02:16:33 +02:00
Awilum
b90f3ec00d Frontend Improvements 2014-01-02 02:12:49 +02:00
Awilum
e58399298f Admin Help Section - Added 2014-01-02 02:02:28 +02:00
Awilum
e31c081732 Frontend Improvements - FlatUI & Foundation inspiration 2014-01-02 01:44:40 +02:00
Awilum
588f67b2e9 Frontend Improvements - FlatUI & Foundation inspiration 2014-01-02 01:34:41 +02:00
Awilum
e3a623b31f Monstra Installer - Frontend Improvements 2014-01-02 00:59:56 +02:00
Awilum
8cacd03c40 Merge fixes 2014-01-01 21:35:04 +02:00
Awilum
5ea80e31e0 Merge branch 'origin/dev'
Conflicts:
	engine/Monstra.php
	public/assets/js/bootstrap.js
2014-01-01 21:32:20 +02:00
Awilum
83f80306d3 Frontend Improvements 2014-01-01 21:29:40 +02:00
Awilum
bfc41e03ea W3 Fixes 2014-01-01 21:21:26 +02:00
Awilum
7241410c2d Monstra 2.4.0 pre-alpha in progress 2014-01-01 21:15:35 +02:00
Awilum
8284902d57 Frontend Improvements 2014-01-01 21:06:06 +02:00
Awilum
791e73c1b6 Frontend Improvements 2014-01-01 19:46:52 +02:00
Awilum
80d1439471 Frontend Improvements 2014-01-01 19:46:23 +02:00
Awilum
197cd7afde Frontend Improvements 2013-12-30 23:38:45 +02:00
Sergey Romanenko
326a846be3 Merge pull request #184 from mwidz/master
Updated 'pl' language files
2013-12-27 04:37:08 -08:00
Mirosław Widz
97542ada1b Adding a newline 2013-12-25 21:56:50 +01:00
Mirosław Widz
db5e6b7868 Updated 'pl' language files 2013-12-25 21:50:44 +01:00
Awilum
81ff2288b9 Merge branch 'dev' 2013-12-25 00:32:50 +02:00
Awilum
cd0d8296a5 Monstra 2.3.1 2013-12-25 00:32:27 +02:00
Awilum
03e5fc320c Email Layout: footer fixes 2013-12-25 00:24:00 +02:00
Awilum
b29abf8da1 Gelato: Number Class - updated bytes format (JEDEC & IEC 60027) by mbarzda 2013-12-25 00:08:56 +02:00
Awilum
6f55f9238b Readme Updated 2013-12-25 00:04:14 +02:00
Awilum
ad870b2120 new favicon added #182 2013-12-24 23:58:57 +02:00
Awilum
d9ea1c3d7c Merge branch 'master' 2013-12-24 23:52:02 +02:00
Sergey Romanenko
6531d3ee87 Update Image.php 2013-12-24 21:01:55 +02:00
Sergey Romanenko
c7935e6636 Update README.md 2013-12-24 14:19:42 +02:00
Sergey Romanenko
a33d1a39d9 Update README.md 2013-12-24 10:24:04 +02:00
Sergey Romanenko
cbaa84f50e Update README.md 2013-12-24 10:22:14 +02:00
Sergey Romanenko
339413581d Update README.md 2013-12-24 10:21:45 +02:00
Sergey Romanenko
7696d90752 Installer: SERVER_PORT issue - fixed by KANekT 2013-12-23 16:44:08 +02:00
Sergey Romanenko
c83bb55df3 Merge pull request #179 from bernte/patch-1
Update login.template.php
2013-12-23 00:15:46 -08:00
Sergey Romanenko
e76cd74d5b Merge pull request #181 from bernte/patch-3
Update index.template.php
2013-12-23 00:13:31 -08:00
bernte
099b206e66 Update index.template.php 2013-12-23 03:47:11 +01:00
bernte
10a6b56b34 Update login.template.php
added year
2013-12-22 23:49:47 +01:00
Sergey Romanenko
8e83ca5bd1 Merge pull request #178 from bernte/patch-2
Update Javascript.php
2013-12-22 14:41:55 -08:00
bernte
524052b4bf Update Javascript.php
adding a linebreak for sourcecode after <script> ... </script>
2013-12-22 23:23:32 +01:00
Sergey Romanenko
f4eaded4f3 Merge pull request #177 from bernte/patch-1
Update actions.php
2013-12-22 14:20:40 -08:00
bernte
2efff484fc Update actions.php
adding a linebreak for sourcecode after
`
<meta name="generator" content="Powered by Monstra 2.3.0" />`
2013-12-22 23:16:49 +01:00
Awilum
b134abb96e Merge branch 'master' 2013-12-22 23:34:50 +02:00
Awilum
1a1bfabda0 Sitemap Errors #175 - fixes 2013-12-22 23:31:38 +02:00
Sergey Romanenko
a8ea2d4e02 Merge pull request #176 from bernte/patch-20
Update install.php
2013-12-22 11:43:44 -08:00
Sergey Romanenko
ce571b6ef3 Merge pull request #173 from bernte/patch-18
Update 2.page.txt
2013-12-22 11:41:39 -08:00
Sergey Romanenko
ac3eeb1508 Merge pull request #172 from bernte/patch-17
Update bootstrap.js
2013-12-22 11:38:59 -08:00
Sergey Romanenko
e9691d6b71 Merge pull request #174 from bernte/patch-19
Update footer.chunk.php
2013-12-22 11:38:08 -08:00
Sergey Romanenko
7734822789 Merge pull request #171 from bernte/patch-16
Update de.lang.php
2013-12-22 11:37:23 -08:00
Sergey Romanenko
75af5452bc Merge pull request #170 from bernte/patch-15
Update de.lang.php
2013-12-22 11:37:06 -08:00
Sergey Romanenko
c9019ca5fa Merge pull request #169 from bernte/patch-13
Update login.template.php
2013-12-22 10:39:08 -08:00
bernte
ee8e1abfd4 Update install.php
replaced invalid code
2013-12-22 19:27:03 +01:00
bernte
6b576be9a5 Update footer.chunk.php
made validation fixes for demo site
2013-12-22 15:13:06 +01:00
bernte
e823494ab5 Update 2.page.txt
made validation fixes for demo site
2013-12-22 15:07:39 +01:00
bernte
f7f3b91f46 Update bootstrap.js 2013-12-22 02:46:46 +01:00
bernte
0c90ab6bfe Update de.lang.php 2013-12-22 02:41:36 +01:00
bernte
35b75e9027 Update de.lang.php 2013-12-22 02:39:17 +01:00
bernte
2d5eb31569 Update login.template.php
added alt tag and backslash
2013-12-22 02:32:56 +01:00
Awilum
146e94c1ac Monstra 2.3.0 2013-12-20 00:41:07 +02:00
Sergey Romanenko
e7bd1d284a Revert back to 5.2.4 2013-12-20 00:37:53 +02:00
Awilum
b0b62f5444 Merge branch 'dev' 2013-12-19 22:25:55 +02:00
Awilum
5d430aa2ee Monstra 2.3.0 2013-12-19 22:24:54 +02:00
Awilum
93481f78cf Merge branch 'master' 2013-12-19 22:19:48 +02:00
Awilum
2dc3560f08 Installer Updates 2013-12-19 22:18:44 +02:00
Sergey Romanenko
8808a47dc7 Merge pull request #166 from promo360/master
Update Image.php
2013-12-19 11:55:25 -08:00
Sergey Romanenko
d5550aa245 Update changelog.txt 2013-12-19 13:17:11 +02:00
Sergey Romanenko
db0f5eda80 Update changelog.txt 2013-12-19 13:16:23 +02:00
Sergey Romanenko
7947bd3f05 Update changelog.txt 2013-12-19 13:13:56 +02:00
Awilum
2c3d224e62 Frontend Improvements 2013-12-17 11:01:24 +02:00
Awilum
2fbb4c30c3 Frontend Improvements 2013-12-16 10:03:24 +02:00
Awilum
0dfc0e5951 Engine Alert: use Messenger Library 2013-12-15 16:36:19 +02:00
Awilum
fc4d4cde4f Frontend Improvements 2013-12-15 16:35:26 +02:00
Awilum
b23f2b9c5a Messenger Library - Admin integration 2013-12-15 16:34:40 +02:00
Awilum
4f35153ac2 Messenger Library - Added 2013-12-15 16:31:48 +02:00
Awilum
82f02a7ab5 Default Theme - use Twitter Bootstrap 3.x.x 2013-12-14 00:43:06 +02:00
Awilum
16975a3062 Update Twitter Bootstrap to 3.0.3 2013-12-14 00:42:43 +02:00
Awilum
9b4ff3e2e3 Frontend Improvements 2013-12-14 00:40:55 +02:00
Awilum
798f558558 Frontend Improvements 2013-12-14 00:38:58 +02:00
Sergey Romanenko
033d66a81a Pages Plugin: Bug with pages renaming - fixed 2013-12-13 12:06:19 +02:00
Евгений
f311163ef4 Update Image.php 2013-12-11 17:48:07 +06:00
Awilum
8947295b83 Fix Translates 2013-12-09 22:10:22 +04:00
Awilum
fccf7b3c63 Monstra 2.3.0 beta 2013-12-08 21:06:56 +04:00
Awilum
98c618dbaf Merge branch 'master' 2013-12-08 21:04:12 +04:00
Awilum
4ae5fe6ede Set new Copyright date 2013-12-08 21:02:23 +04:00
Awilum
230b397530 Set new Copyright date 2013-12-08 21:02:23 +04:00
Awilum
fc2183b970 Set new Copyright date 2013-12-08 21:02:22 +04:00
Awilum
25fe85c8f1 Set new Copyright date 2013-12-08 21:02:22 +04:00
Awilum
c554b42f17 Set new Copyright date 2013-12-08 21:02:21 +04:00
Sergey Romanenko
988da91526 Update changelog.txt 2013-12-08 17:59:42 +02:00
Awilum
d1257fb00b Monstra Email Templates #164 2013-12-07 22:42:33 +04:00
Sergey Romanenko
31ec9de178 Merge pull request #163 from promo360/master
Gelato image, resize and crop
2013-11-28 03:00:20 -08:00
Евгений
05a9ff440f Update Image.php 2013-11-28 14:02:22 +06:00
Евгений
b54cac24b1 Update Image.php
функция resize(200, 200) растягивала изображение, теперь нет.
http://f3.s.qip.ru/2Q3rL699.jpg - сверху до, снизу после
2013-11-28 14:00:41 +06:00
Евгений
950b816ca6 function resize, crop
Доработана функция resize
Оптимизирован код функции crop
2013-11-28 13:57:19 +06:00
Sergey Romanenko
dc0c47f5fa Update changelog.txt 2013-11-24 19:33:48 +02:00
Sergey Romanenko
dbefe506f0 Merge pull request #162 from bernte/patch-12
Update available_pages.view.php
2013-11-24 09:31:55 -08:00
Sergey Romanenko
454b328442 Merge pull request #154 from bernte/patch-10
Update de.lang.php
2013-11-24 09:31:15 -08:00
Sergey Romanenko
52353d79ef Merge pull request #146 from bernte/patch-2
Update de.lang.php
2013-11-24 09:31:03 -08:00
Sergey Romanenko
6dcc5ffac8 Merge pull request #121 from nogit/master
Captcha label tiny modification
2013-11-24 09:30:41 -08:00
Sergey Romanenko
f73aa53e40 Update changelog.txt 2013-11-24 19:17:57 +02:00
bernte
07a8e823f8 Update available_pages.view.php
shows only published sites on frontend

found @ http://forum.monstra.org/post/1276/#p1276
2013-11-23 21:57:17 +01:00
Awilum
489f7017d1 Merge branch 'master' 2013-11-23 23:26:40 +04:00
Sergey Romanenko
b2ef78b556 Merge pull request #161 from bernte/patch-14
Update de.lang.php
2013-11-23 08:43:36 -08:00
bernte
d1a5a9c0e2 Update de.lang.php 2013-11-23 15:58:54 +01:00
Awilum
eaeff17cb9 #123 General method getPages() created 2013-11-23 15:35:53 +04:00
Awilum
9e2a7bc23b #158 deleting users - fixed by Oleg Gatseluk 2013-11-23 15:19:12 +04:00
Sergey Romanenko
d1c4f58c2e Update changelog.txt 2013-11-22 00:12:50 +02:00
Awilum
53c079f00a Merge remote-tracking branch 'refs/remotes/origin/master' into dev 2013-11-22 00:11:58 +02:00
Sergey Romanenko
b23bb4b218 Merge pull request #131 from DmitriyMX/fix_table_php
XMLDB: error select for empty table fix
2013-11-21 14:10:10 -08:00
Awilum
5491848f29 Installer layout updates 2013-11-21 23:12:14 +02:00
Awilum
2548103a77 NL added 2013-11-21 22:08:06 +02:00
Awilum
c396744e64 PL flag added 2013-11-21 22:08:04 +02:00
Sergey Romanenko
a6156db3a9 Update changelog.txt 2013-11-21 21:52:05 +02:00
Sergey Romanenko
ad965bbcb9 Update changelog.txt 2013-11-21 21:36:30 +02:00
Sergey Romanenko
2a8babb4f8 Update PHPMailer to 5.2.7 2013-11-21 21:32:55 +02:00
Sergey Romanenko
a8c582c302 Update changelog.txt 2013-11-21 21:28:39 +02:00
Awilum
31c661a1e8 Merge remote-tracking branch 'refs/remotes/origin/master' into dev
Conflicts:
	plugins/box/users/views/frontend/login.view.php
2013-11-21 21:06:22 +02:00
Sergey Romanenko
a5c197fa99 Merge pull request #153 from bernte/patch-9
Update de.lang.php
2013-11-21 10:53:08 -08:00
Sergey Romanenko
09addce76e Merge pull request #152 from bernte/patch-8
Update de.lang.php
2013-11-21 10:52:45 -08:00
Sergey Romanenko
6c280ef102 Merge pull request #151 from bernte/patch-7
Update de.lang.php
2013-11-21 10:52:15 -08:00
Sergey Romanenko
1623d2b1fb Merge pull request #150 from bernte/patch-6
Update de.lang.php
2013-11-21 10:51:52 -08:00
Sergey Romanenko
2cabdf2864 Merge pull request #149 from bernte/patch-5
Update de.lang.php
2013-11-21 10:51:09 -08:00
Sergey Romanenko
397218d9e6 Merge pull request #148 from bernte/patch-4
Update de.lang.php
2013-11-21 10:50:40 -08:00
Sergey Romanenko
1eb7991f36 Merge pull request #147 from bernte/patch-3
Update de.lang.php
2013-11-21 10:49:07 -08:00
Sergey Romanenko
bae207e053 Merge pull request #156 from bernte/patch-11
Maintenance Improvements
2013-11-21 10:39:00 -08:00
Sergey Romanenko
4c3dcbcc36 Merge pull request #145 from bernte/patch-1
Update Stylesheet.php
2013-11-21 04:47:46 -08:00
Sergey Romanenko
74baf298c5 Merge pull request #157 from promo360/master
Promo360 - Fixes
2013-11-21 04:46:24 -08:00
Евгений
9f8d7f5198 Idiorm configure (utf8)
Без указания кодировки, возникают проблемы с кириллицей
2013-11-18 11:10:37 +06:00
Евгений
8f60502a0e Update en.lang.php 2013-11-18 10:58:13 +06:00
Евгений
d79b092542 Update ru.lang.php
При сохранении настроек выскакивало оповещение "Your changes have been saved."
2013-11-18 10:57:30 +06:00
Евгений
4d85666c18 Transparency PNG
При использовании функций resize или crop (остальные функции не проверялись) к PNG изображению с прозрачным фоном терялась прозрачность, фон становился черным.
2013-11-18 10:40:39 +06:00
bernte
faf95e268e Update index.php
503 is the correct server response for "We're closed". If you substitute a normal HTML page saying "We're closed" and serve a 200 it's very likely to get indexed by Google.

If you give the Googlebot a 503, it will just go away and come back later without indexing what you give it.
2013-11-17 17:49:27 +01:00
bernte
1d69c31aca Update de.lang.php 2013-11-10 01:33:20 +01:00
bernte
ca2bd3df8a Update de.lang.php 2013-11-10 01:26:52 +01:00
bernte
49185659f6 Update de.lang.php 2013-11-10 01:22:36 +01:00
bernte
d9a91f514f Update de.lang.php 2013-11-10 01:15:48 +01:00
bernte
5371f9f5db Update de.lang.php 2013-11-10 01:12:22 +01:00
bernte
df85b392b8 Update de.lang.php 2013-11-10 01:08:53 +01:00
bernte
af9432be1a Update de.lang.php 2013-11-10 01:02:23 +01:00
bernte
7e4b4cf9d8 Update de.lang.php
updated german languange
2013-11-10 00:59:32 +01:00
bernte
70e5f13649 Update de.lang.php
updated german language
2013-11-10 00:54:35 +01:00
bernte
09c8deed7f Update Stylesheet.php
sourcecode misses a linebreak after minified css
2013-11-10 00:42:25 +01:00
Sergey Romanenko
a5118781e2 Merge pull request #125 from mwidz/master
Localization: Polish(pl) translations added.
2013-10-04 03:37:39 -07:00
Sergey Romanenko
f1ebf0fcc8 Merge pull request #136 from micheldejoode/master
Created dutch translation for Monstra
2013-09-25 12:45:42 -07:00
micheldejoode
e2175d6d0f Completed Dutch Translation 2013-09-21 08:19:14 +02:00
micheldejoode
3854ad3bb5 Create nl.lang.php 2013-09-20 19:35:12 +02:00
micheldejoode
276c429070 Create nl.lang.php 2013-09-20 19:34:07 +02:00
micheldejoode
34e79a661c Update nl.lang.php
Completed dutch translation
2013-09-20 18:29:42 +02:00
micheldejoode
9e422f259d Update nl.lang.php 2013-09-20 18:02:02 +02:00
micheldejoode
21aba2e8be Update nl.lang.php 2013-09-20 17:30:47 +02:00
micheldejoode
ac1e309b99 Create nl.lang.php 2013-09-20 17:25:14 +02:00
micheldejoode
c47ed55eb8 Update nl.lang.php
Completed dutch translation
2013-09-20 16:57:37 +02:00
micheldejoode
20473439c0 Update nl.lang.php 2013-09-20 16:37:47 +02:00
micheldejoode
1a4622deb1 Create nl.lang.php
Created nl translation file, not yet ready
2013-09-20 16:34:20 +02:00
micheldejoode
daaac9038a Create nl.lang.php
Completed dutch translation
2013-09-20 05:31:31 +02:00
micheldejoode
47ef2a091e Create nl.lang.php
Completed dutch translation
2013-09-20 04:41:06 +02:00
micheldejoode
208025b7c8 Create nl.lang.php
Completed dutch translation
2013-09-20 04:40:07 +02:00
micheldejoode
408a344bad Create nl.lang.php
Completed dutch translation
2013-09-20 04:37:11 +02:00
micheldejoode
6a63c2da9d Create nl.lang.php
Completed dutch translation
2013-09-20 04:24:06 +02:00
micheldejoode
bd216f4581 Create nl.lang.php
Completed dutch translation
2013-09-20 04:13:17 +02:00
micheldejoode
2a034bd1ed Create nl.lang.php
Completed dutch translation
2013-09-20 03:51:21 +02:00
micheldejoode
eecbcbc4ea Create nl.lang.php
Completed dutch translation
2013-09-19 07:09:52 +02:00
micheldejoode
e6ffd0130e Create nl.lang.php
Completed dutch translation
2013-09-19 07:06:32 +02:00
micheldejoode
e0b21a9a3f Create nl.lang.php
Completed dutch translation
2013-09-19 06:59:57 +02:00
micheldejoode
1e7120be12 Update nl.lang.php
Completed dutch translation
2013-09-19 06:57:12 +02:00
micheldejoode
4704926a64 Create nl.lang.php 2013-09-19 06:37:07 +02:00
Sergey Romanenko
8f930f8c6d Fix Number.php: Undefined offset 2013-08-24 12:47:33 +03:00
Sergey Romanenko
52465c5cf4 Fix Number.php: Undefined offset 2013-08-24 12:45:43 +03:00
DmitriyMX
bb8ccb57b7 Resolve #88 2013-08-12 11:22:28 +04:00
Mirosław Widz
bf0e5a0f3c Update install.php
Localization: Polish(pl) translations added.
2013-07-21 00:35:17 +02:00
Mirosław Widz
ed03e383e0 Create pl.lang.php 2013-07-21 00:30:01 +02:00
Mirosław Widz
0566c705b5 Create pl.lang.php 2013-07-21 00:28:22 +02:00
Mirosław Widz
c90badf68c Create pl.lang.php 2013-07-21 00:11:18 +02:00
Mirosław Widz
d05d7e77b9 Create pl.lang.php 2013-07-21 00:07:46 +02:00
Mirosław Widz
5219b4e1fc Create pl.lang.php 2013-07-21 00:05:54 +02:00
Mirosław Widz
82c1f97b7d Create pl.lang.php 2013-07-21 00:04:55 +02:00
Mirosław Widz
5bbfb1880b Create pl.lang.php 2013-07-21 00:03:01 +02:00
Mirosław Widz
13556f2e7d Create pl.lang.php 2013-07-20 23:52:14 +02:00
Mirosław Widz
a72c03a7c7 Create pl.lang.php 2013-07-20 23:50:23 +02:00
Mirosław Widz
27d78e32ff Create pl.lang.php 2013-07-20 23:43:46 +02:00
Mirosław Widz
954b19a064 Create pl.lang.php 2013-07-20 23:41:19 +02:00
Mirosław Widz
6abf4ded20 Create pl.lang.php 2013-07-20 23:39:58 +02:00
Mirosław Widz
20e2fe9a99 Create pl.lang.php 2013-07-20 23:33:46 +02:00
Mirosław Widz
8788146d39 Create pl.lang.php 2013-07-20 23:15:14 +02:00
Mirosław Widz
8a8e35cfab Create pl.lang.php
Localization: Polish(pl) translations added.
2013-07-20 23:00:53 +02:00
nogit
75a3df1bd7 Update password_reset.view.php 2013-07-17 02:16:44 +08:00
nogit
7ade902802 Update registration.view.php
captcha translation doesn't work
2013-07-17 02:14:53 +08:00
nogit
246e5519b9 Update login.template.php
captcha translation doesn't work
2013-07-17 02:12:54 +08:00
nogit
1839a71bbd Update registration.view.php
<label><?php echo __('Captcha'); ?></label>
2013-07-16 23:36:02 +08:00
nogit
31f4dd3edc Update password_reset.view.php
<label><?php echo __('Captcha'); ?></label>
2013-07-16 23:35:26 +08:00
nogit
25c33271a6 Update login.template.php
Captcha </label>
2013-07-16 23:33:29 +08:00
Awilum
cc070065a9 Update changelog.txt 2013-06-30 16:38:00 +03:00
Awilum
28b54e8adf Obfuscate users email to prevent spam-bots from sniffing it. 2013-06-30 16:34:30 +03:00
Awilum
63b2bf2255 Added limits for login attempts #104 2013-06-30 16:27:33 +03:00
Awilum
2c34eb68d4 Added limits for login attempts #104 2013-06-30 16:27:01 +03:00
Awilum
cd160deff0 Files Manager: jasny bootstrap-fileupload - added. #89 2013-06-30 16:25:36 +03:00
Awilum
3e47ca02f3 Files Manager: jasny bootstrap-fileupload - added. #89 2013-06-29 23:47:09 +03:00
Awilum
de50eb52dc Files Manager: jasny bootstrap-fileupload - added. #89 2013-06-29 23:46:45 +03:00
Awilum
e8c599f33f Users Plugin: login page fixes 2013-06-29 13:44:13 +03:00
Awilum
86312eb270 Pages Plugin: page expand ajax bug #115 - fixed 2013-06-29 13:13:46 +03:00
Sergey Romanenko
48a62e5011 Update changelog.txt 2013-06-27 13:16:58 +03:00
Sergey Romanenko
ebda1cb7ba .htaccess SEO improvements 2013-06-27 13:14:47 +03:00
Sergey Romanenko
8637f7240b Update changelog.txt 2013-06-27 13:08:06 +03:00
Sergey Romanenko
d2ba3e0dc7 Update PHPMailer to 5.2.6 2013-06-27 13:04:28 +03:00
Sergey Romanenko
14b9fa89a5 Update Twitter Bootstrap to 2.3.2 2013-06-27 13:02:53 +03:00
Sergey Romanenko
6f4fb89839 Update Twitter Bootstrap to 2.3.2 2013-06-27 13:01:55 +03:00
Sergey Romanenko
2fcf8b6c42 Update Twitter Bootstrap to 2.3.2 2013-06-27 12:59:53 +03:00
Sergey Romanenko
696d7d35bb Update Twitter Bootstrap to 2.3.2 2013-06-27 12:58:47 +03:00
Awilum
8deb6e8cca Monstra: Added ability to map Monstra Engine Directory 2013-04-27 21:46:16 +03:00
Awilum
783a1160ea Hot Fixes 2013-04-07 00:14:29 +03:00
Awilum
e439fc04f4 Merge remote-tracking branch 'refs/remotes/origin/dev' 2013-04-07 00:01:00 +03:00
Awilum
812acbe956 Monstra 2.2.1 2013-04-06 23:56:47 +03:00
Awilum
6496e1bad1 Merge remote-tracking branch 'refs/remotes/origin/master' into dev 2013-04-06 23:51:29 +03:00
Sergey Romanenko
928c12abc7 Merge pull request #113 from mbarzda/languages-fix
Lithuanian flag and other languages fixes
2013-04-06 13:43:37 -07:00
Awilum
e007040feb Remove turn off Error Handler for Production environment 2013-04-06 13:45:10 +03:00
Awilum
ee1fd08621 Update Gelato to 1.0.3 2013-04-04 19:03:37 +03:00
Martynas Barzda
08a61017f9 Lithuanian flag and other languages fixes 2013-04-01 11:00:40 +03:00
Martynas Barzda
f42a4ce42d Merge remote-tracking branch 'original/master'
Conflicts:
	plugins/box/system/system.admin.php
2013-04-01 10:21:14 +03:00
Awilum
f4f699b73a Missing Translation on Login Page - fixed #106 2013-03-29 22:46:04 +02:00
Awilum
68fed3a3e5 Pages Manager: fix translates #107 2013-03-28 22:29:03 +02:00
Awilum
be4c58d242 Localization: Farsi(fa) translations fixes. 2013-03-26 22:48:46 +02:00
Awilum
ad3c63a3d4 Merge remote-tracking branch 'refs/remotes/origin/dev' 2013-03-25 21:39:00 +02:00
Awilum
b180b797ee Monstra 2.2.0 2013-03-25 21:32:55 +02:00
Awilum
9d165d34f5 Monstra 2.2.0 2013-03-25 21:30:34 +02:00
Awilum
e2fff5db3c Changelog updates 2013-03-25 21:17:51 +02:00
Awilum
3d886007b3 Installer Updates. 2013-03-24 00:53:16 +02:00
Awilum
3dabdda2b8 Farsi flag added 2013-03-24 00:40:44 +02:00
Awilum
ce8aa7f921 Fix files encoding. 2013-03-23 10:55:39 +02:00
Awilum
b2c7eaeb14 Localization: Persian(fa) translations added. 2013-03-22 00:22:37 +02:00
Awilum
a01a304a83 Localization: Persian(fa) translations added. 2013-03-22 00:22:19 +02:00
Awilum
d626ae68be I18N: Persian(farsi) added 2013-03-22 00:21:25 +02:00
Awilum
5ee512a77b Translation Updates 2013-03-19 22:10:13 +02:00
Awilum
6257af8e71 Translation Updates 2013-03-19 22:08:02 +02:00
Awilum
dd84366820 Translation Updates 2013-03-19 22:05:40 +02:00
Awilum
b24cdaec96 Menus Manager: $menu_item_order_array set 40 items 2013-03-19 22:01:19 +02:00
Awilum
25a3e4df3d Readme updates 2013-03-16 14:07:22 +02:00
Awilum
946c1f79d5 Monstra 2.2.0 beta 3 2013-03-16 13:46:39 +02:00
Awilum
9db1ae1b15 Added missing flags 2013-03-16 13:45:40 +02:00
Awilum
abde9ff8fa Installer Fixes 2013-03-16 13:41:51 +02:00
Awilum
4e78ac015a Monstra 2.2.0 beta 3 2013-03-16 13:35:20 +02:00
Awilum
289e4d228a Gelato: fixes 2013-03-16 13:34:11 +02:00
Awilum
23024a9162 Gelato: ErrorHandler fixes 2013-03-16 13:33:26 +02:00
Awilum
6b9077ef35 Gelato: Minify fixes 2013-03-16 13:32:47 +02:00
Awilum
60929b17bf Gelato: ClassLoader add abb to work with php 5.2.3 2013-03-16 13:30:52 +02:00
Awilum
702efc6a11 Monstra requires PHP 5.2.3 or greater 2013-03-16 13:29:33 +02:00
Awilum
3936d266e7 Changelog updates 2013-03-16 11:24:58 +02:00
Awilum
7f7bcaef5f Installer Script: missing languages added. 2013-03-16 11:21:26 +02:00
Awilum
ad494c4dc9 Localization: Magyar(hu) translations added. 2013-03-16 11:18:30 +02:00
Awilum
8b1c3a7ba6 Changelog updates 2013-03-16 11:12:24 +02:00
Awilum
f3c304c5b7 Localization: Français(fr) translations added. 2013-03-16 11:09:58 +02:00
Awilum
bc1c7ffdee Installer Script: missing languages added. 2013-03-16 11:05:18 +02:00
Awilum
8f32e07721 Changelog updates 2013-03-15 00:14:13 +02:00
Awilum
9617d9e864 Localization: Spanish(es) translations added. 2013-03-15 00:11:50 +02:00
Awilum
15d9ad3500 Gelato Updates 2013-03-14 23:54:09 +02:00
Awilum
658031c004 Translation Updates 2013-03-09 00:24:37 +02:00
Awilum
599cf96199 Filesmanager: Bootstrap Lightbox added instead of default Modal Dialog. #100 2013-03-09 00:04:01 +02:00
Awilum
23f7fbf39f Filesmanager: Bootstrap Lightbox added instead of default Modal Dialog. #100 2013-03-09 00:02:59 +02:00
Awilum
cb973d3ea9 Filesmanager: Bootstrap Lightbox added instead of default Modal Dialog. #100 2013-03-09 00:01:41 +02:00
Awilum
d261be9b07 Changelog updates 2013-03-08 23:37:30 +02:00
Awilum
2c0fa8eb72 Pages Manager: added ability to quickly update status and access. 2013-03-08 23:36:33 +02:00
Awilum
a768bc31ed Default Theme: fix footer chunk 2013-03-05 23:51:05 +02:00
Awilum
7433dbd24c Update Gelato to 1.0.1 2013-03-05 23:15:28 +02:00
Awilum
a464d2bff5 Monstra 2.2.0 beta 2013-03-02 00:48:28 +02:00
Awilum
99ecf3774b Code fix 2013-03-02 00:47:54 +02:00
Awilum
29d6d8daf3 Translation Updates 2013-03-02 00:39:42 +02:00
Awilum
a5d19114cb Filesmanager: removed dir size for now 2013-03-02 00:14:20 +02:00
Awilum
6c8f9cad05 blocks folder 2013-03-02 00:13:09 +02:00
Awilum
28b3002ded TEMP CODE removed 2013-03-01 23:40:52 +02:00
Awilum
af4bc97bf2 Remove jQuery Migrate from project 2013-03-01 23:35:55 +02:00
Awilum
3ab9fcc1a8 Update MarkItUp! to 1.1.14 2013-03-01 23:33:00 +02:00
Awilum
4e389d4de2 Revert back Sandbox Manifest 2013-03-01 23:19:10 +02:00
Awilum
85c2849037 Translation Updates 2013-03-01 23:13:54 +02:00
Awilum
3cd0ec09dc Translation Updates 2013-03-01 23:12:44 +02:00
Awilum
614b876faf Translation Updates 2013-03-01 23:12:13 +02:00
Awilum
3cb31c2616 Code fix 2013-03-01 22:59:38 +02:00
Awilum
b0452c7932 Site Structure Updates 2013-03-01 22:54:51 +02:00
Awilum
03e10b4507 Update PHPMailer to 5.2.4 2013-03-01 22:54:09 +02:00
Awilum
207d6b4956 Update Twitter Bootstrap to 2.3.1 #95 2013-03-01 22:47:45 +02:00
Awilum
e55b1e3344 Site Structure Updates 2013-03-01 22:43:30 +02:00
Awilum
0d5e023887 Site Structure Updates 2013-03-01 22:36:50 +02:00
Awilum
42bd547365 Site Structure Updates 2013-03-01 22:31:54 +02:00
Awilum
0f39d039d0 Site Structure Updates 2013-03-01 22:29:57 +02:00
Awilum
af67698147 PagesPlugin: fix 2013-03-01 21:17:31 +02:00
Awilum
0a4eb5900a Site Structure Updates 2013-03-01 21:13:07 +02:00
Awilum
db8547c173 Site Structure Updates 2013-03-01 21:09:05 +02:00
Awilum
f112ec8ddd Site Structure Updates 2013-03-01 21:06:29 +02:00
Awilum
37f4faa2ff Gelato 1.1.0 2013-02-28 21:09:30 +02:00
Awilum
362ec1f2a2 Merge remote-tracking branch 'origin/dev' into dev 2013-02-28 20:22:59 +02:00
Awilum
00abeaba1b DropDown Menu for Mobile Devices - fixes 2013-02-28 20:21:57 +02:00
Sergey Romanenko
5b15c1c284 Update admin/themes/default/login.template.php 2013-02-27 14:02:26 +02:00
Sergey Romanenko
7c70d34552 Update admin/themes/default/index.template.php 2013-02-27 14:02:08 +02:00
Sergey Romanenko
4282ad853e Create jquery-migrate-1.1.1.js 2013-02-27 14:01:11 +02:00
Awilum
664e29b6dc Update Twitter Bootstrap to 2.3.0 #95 2013-02-25 21:25:47 +02:00
Awilum
29bc706fd7 Fix icons path again 2013-02-23 13:45:50 +02:00
Awilum
5ce635283e Readme.md fixes 2013-02-23 13:09:25 +02:00
Awilum
4e945e9b4e Changelog updates 2013-02-23 12:51:00 +02:00
Awilum
0ac1a1d44b Fix strange issue for menus manager plugin 2013-02-23 12:49:06 +02:00
Awilum
fafb50476b Update jQuey to 1.9.1 #96 2013-02-23 12:48:25 +02:00
Awilum
6e875be7ca Update Twitter Bootstrap to 2.3.0 #95 2013-02-23 12:43:36 +02:00
Awilum
0f68f836d3 Update Sandbox Manifest 2013-02-09 23:15:26 +02:00
Sergey Romanenko
30157ecb94 Update changelog.txt 2013-02-08 12:16:16 +02:00
Sergey Romanenko
8384465526 Update Idiorm to 1.3.0 #92 2013-02-08 12:12:28 +02:00
Awilum
356b4d3194 Update Sandbox Manifest 2013-02-02 00:16:34 +02:00
Awilum
daefb787f3 Update Sandbox Manifest 2013-02-01 22:52:05 +02:00
Awilum
05590c76b3 Merge remote-tracking branch 'origin/dev' into dev 2013-02-01 21:48:12 +02:00
Awilum
37d9d215c5 Pages Manager: page cloning problem #90 - fixed. 2013-02-01 21:42:19 +02:00
Sergey Romanenko
a3b46fb25f Update changelog.txt 2013-02-01 10:36:39 +02:00
Awilum
beda4326cb New Sandbox Plugin Manifest 2013-01-27 22:05:38 +02:00
Awilum
fd87b58bca Installer: Default Site Email #87 2013-01-27 20:58:05 +02:00
Awilum
5bac23c097 Installer: Default Site Email #87 2013-01-27 20:52:32 +02:00
Awilum
341ca86075 #64 Admin Responsive - Next Round 2013-01-27 20:48:17 +02:00
Awilum
70954e8cdb #64 Admin Responsive - Next Round 2013-01-27 20:43:04 +02:00
Awilum
aba5dda41b #64 Admin Responsive - Next Round 2013-01-27 20:42:14 +02:00
Awilum
ce75fde7a8 Code Fix 2013-01-26 01:06:24 +02:00
Awilum
2e1c8ebc0e Translation Updates 2013-01-26 00:45:55 +02:00
Awilum
13fb6babb7 Translation Updates 2013-01-26 00:11:19 +02:00
Awilum
572d64323e Translation Updates 2013-01-25 23:48:43 +02:00
Awilum
fa9f43227c Translation Updates 2013-01-25 22:40:56 +02:00
Awilum
4a5403e0c3 Translation Updates: Login Page 2013-01-25 22:27:33 +02:00
Awilum
aee0387649 Translation Updates: Login Page 2013-01-25 22:27:15 +02:00
Awilum
c506bbff08 Gelato ErrorHandler and Logger improvments 2013-01-25 21:49:28 +02:00
Awilum
0e5e21d5a3 Plugins Manager: use Monstra::cleanTmp() 2013-01-25 16:21:53 +02:00
Sergey Romanenko
d3ddd11ed9 Installer: Default Site Email #87 2013-01-25 10:41:43 +02:00
Awilum
027ae36e69 Improve Installer Usability. Flags Added. 2013-01-24 23:46:03 +02:00
Awilum
a0ab314424 Plugin Javascript Class: remove js minification for now. 2013-01-24 22:34:58 +02:00
Awilum
e25f5ba2f3 Plugins Manager: update Get More Plugins link. set plugins.monstra.org 2013-01-24 22:18:27 +02:00
Sergey Romanenko
bc037a6758 Engine Plugin: plugin system registration updates. 2013-01-24 15:48:43 +02:00
Sergey Romanenko
75fb5bfe92 Update install.php 2013-01-22 13:17:57 +02:00
Sergey Romanenko
ef47cbedff Update changelog.txt 2013-01-22 12:58:38 +02:00
Sergey Romanenko
8d04772473 Update changelog.txt 2013-01-22 10:44:32 +02:00
Awilum
537f1b999b XMLDB: Table Class - fix select method. Thanks to DmitriyMX 2013-01-21 23:20:53 +02:00
Awilum
cf1ce4b660 Engine Uri: code improvements 2013-01-21 10:58:16 +02:00
Awilum
f259e2e700 Installer: add sk and sr-yu 2013-01-20 17:50:32 +02:00
Awilum
5c7ce4f3a4 Languages fix de 2013-01-20 17:49:37 +02:00
Awilum
d322887f05 Slovenčina Language added. Thanks to Neri 2013-01-20 17:38:16 +02:00
Awilum
878aa46457 upd 2013-01-20 17:33:55 +02:00
Awilum
5315020c1e Use New Minify Classes! 2013-01-20 01:25:37 +02:00
Awilum
ded831e9a7 New Minify Classes! 2013-01-20 01:25:04 +02:00
Awilum
2f2ef57e9d Admin: PHPMailer class used. 2013-01-19 23:55:56 +02:00
Awilum
514815a559 Users Plugin: New html email template added. PHPMailer class used. 2013-01-19 23:55:20 +02:00
Awilum
b050af69d1 Update Monstra.php 2013-01-19 21:13:13 +02:00
Awilum
70a9286c33 PHPMailer added. 2013-01-19 20:36:48 +02:00
Awilum
d0c5296540 Gelato: remove email.php 2013-01-19 20:26:39 +02:00
Awilum
bd7591a3c9 Gelato: Token Class - updates. 2013-01-19 00:21:31 +02:00
Awilum
efc3dd429d Monstra Security: updates 2013-01-18 23:33:46 +02:00
Awilum
242930c425 Gelato: added Email class 2013-01-18 22:47:50 +02:00
Awilum
0a9ba78091 Gelato: default _logs folder added. 2013-01-18 00:04:19 +02:00
Awilum
5baddfa952 Monstra: use GELATO_DISPLAY_DEVELOPMENT constant. 2013-01-17 23:59:50 +02:00
Awilum
b9c2967b18 Gelato: ErrorHandler improvments for PRODUCTION Environment. 2013-01-17 23:59:09 +02:00
Awilum
0f47fd5d50 Gelato: Cache class updates 2013-01-17 23:19:39 +02:00
Awilum
6f97bf10e7 Gelato: general updates. 2013-01-17 23:18:23 +02:00
Awilum
33795d5267 Gelato: Log class added. 2013-01-17 23:15:31 +02:00
Awilum
58c0e1207d PSR - fix 2013-01-17 22:39:21 +02:00
Sergey Romanenko
fa5824e03c XMLDB: method _save() use utf-8 encoding. 2013-01-15 15:41:01 +02:00
Sergey Romanenko
b9471a505e Update plugins/box/system/system.admin.php 2013-01-15 14:12:12 +02:00
Sergey Romanenko
4e3802cde3 Update engine/Monstra.php
New static method cleanTmp() added.
2013-01-15 13:52:14 +02:00
Awilum
1018411068 Merge remote-tracking branch 'origin/dev' 2012-12-09 19:42:27 +02:00
Awilum
cebb6deac8 Merge remote-tracking branch 'origin/dev' 2012-12-05 21:57:15 +02:00
Awilum
38e53c08db Merge remote-tracking branch 'origin/dev' 2012-11-30 19:52:42 +02:00
Awilum
d2aab04430 Merge remote-tracking branch 'origin/dev' 2012-11-29 18:58:30 +02:00
Awilum
0f8103d6ae Merge remote-tracking branch 'origin/dev' 2012-11-29 18:33:16 +02:00
Martynas Barzda
27e355cd56 System Plugin: updated checkMonstraVersion function 2012-10-29 17:12:28 +02:00
833 changed files with 80108 additions and 12738 deletions

View File

@@ -19,8 +19,16 @@ Options -Indexes
# Setting rewrite rules.
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /projects/monstra-cms/
# Update code bellow for SEO improvements
# RewriteCond %{HTTP_HOST} ^www.example.org [NC]
# RewriteRule ^(.*)$ http://example.org/$1 [R=301,L]
RewriteBase /%siteurlhere%/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [QSA,L]
# Update code bellow for SEO improvements
# Redirect 301 /home http://example.org/
</IfModule>

View File

@@ -1,3 +1,126 @@
Monstra 3.0.0, 2014-08-01
------------------------
- Mobile Ready! Monstra fully responsive for mobile devices, tablets, and normal computer screens.
- Twitter Bootstrap updated to 3.1.1
- Idiorm updated to 1.4.1
- jQuery updated to 2.1.0
- Admin: New Modern User Interface
- Site: New default theme
- Layout fixes according to World Wide Web Consortium (W3C) Standards
- Prefetch DNS to reduce look up times
- Files Manager: added ability to create & rename directories.
- Files Manager: Maximum upload file size message - added.
- Files Manager: Bootstrap fileinput.js updated to 3.0.0
- Files Manager: File Info Popup
- Backup: Restore Site from Backup added
- Plugins Manager: Uploading new plugins via the admin panel added
- Plugins Manager: Read plugin help(README.MD) ability added.
- Responsive Chocolat Lightbox instead of TB Lightbox
- Blog Plugin as a part of Monstra CMS
- CodeMirror Plugin as a part of Monstra CMS
- Markdown Plugin as a part of Monstra CMS
- MarkItUp Color Pallete fixes
- Site Url without trailing slashes
- Admin Help Section - added.
- Pages Plugin: tags field added.
- Pages Plugin: Meta Title added.
- Sitemap Errors Fixes.
- Monstra automatically renames files - fixed
- Monstra Dashboard created and set as default Plugin for Admin Panel
- Ink Framework for Monstra Email Templates
- iCheck plugin for checkboxes added.
- Emails Manager Plugin added.
- HubSpot Messaging Library added for notifications
- Gelato: Unzip Functionality added.
- Gelato: Number Class new method convertToBytes() added.
- Gelato: ErroHandler styles updates
- Users Plugin getGravatarURL() improve
- Plugin API - Actions - Closure support added.
- Plugin API - Filters - Closure support added.
- Core: Better statuses notification (error,success,warning)
- Core: Store user_email in Session
- Core: Javascript may be broken if there is no break line - fixed
- Core: Added ability to avoid caching JS/CSS by the browser.
- Core: Monstra automatically rename files Issue - fixed
- Sandbox Plugin cleanup
- New Flags: Japanese(JA), Indonesian(ID), Chinese(ZH-CN), Turkish(TR) added.
- Localization: Japanese(JA), Indonesian(ID), Chinese(ZH-CN), Turkish(TR) translations added.
- Localization: Major Fixes
Monstra 2.3.1, 2013-12-25
------------------------
- Localization: Major Fixes
- Gelato: Image.php Major Fixes
- Sitemap: Errors #175 - fixes
- New favicon added #182 - by bernte
- Layouts: General Fixes - by bernte
- Installer: SERVER_PORT issue - fixed by KANekT
- Gelato: Number Class - updated bytes format (JEDEC & IEC 60027) by mbarzda
- Email Layout: footer fixes
Monstra 2.3.0, 2013-12-19
------------------------
- Update Twitter Bootstrap to 2.3.2
- Security: Added limits for login attempts #104
- Security: Obfuscate users email to prevent spam-bots from sniffing it.
- Core: Added ability to map Monstra Engine Directory.
- Core: Maintenance Mode Improvements
- Core: ORM::configure - driver options added
- Gelato: Image.php fix for PNG files
- Gelato: Number.php: Undefined offset fix
- XMLDB: error select for empty table fix
- Plugin API: Stylesheet.php updates - sourcecode misses a linebreak after minified css
- Files Manager: jasny bootstrap-fileupload - added #89
- Users Plugin: login page fixes
- Users Plugin: Deleting users - fixed by Oleg Gatseluk #158
- Pages Plugin: General method getPages() created #123
- Pages Plugin: page expand ajax bug #115 - fixed
- Pages Plugin: Improved available() method to show only published pages
- Pages Plugin: Bug with pages renaming - fixed
- Monstra Email Templates #164
- Localization: Major Fixes
- Localization: PL added
- Localization: NL added
- .htaccess SEO improvements
Monstra 2.2.1, 2013-04-06
------------------------
- Update Gelato to 1.0.3
- Error Handler turned off for Production environment
- Localization: Farsi(fa) translations fixes.
- Pages Manager: fix translates #107
- Missing Translation on Login Page - fixed #106
- Lithuanian flag and other languages fixes. Thanks to mbarzda
Monstra 2.2.0, 2013-03-25
------------------------
- Mobile Ready! Monstra fully responsive for mobile devices, tablets, and normal computer screens.
- Improved Monstra Architecture!
- New Stand-alone Monstra Library (Gelato) was created! Totally improved old classes and added new classes!
- Monstra Library with new useful classes - ClassLoader, ErrorHandler, Log, MinifyJS, MinifyCSS, MinifyHTML, Token, Registry.
- Adopted PSR-0 PSR-1 PSR-2
- Localization: Farsi(fa), Magyar(hu), Français(fr), Spanish(es), Serbian(sr-yu), Slovakian(sk) translations added. Thanks to Abdulhalim, Lez, Neri, Mapadesign, Hugomano and Nakome.
- Idiorm Updated to 1.3.0
- jQuery Updated to 1.9.1
- Twitter Bootstrap Updated to 2.3.0
- Default Theme: Social Meta Tags - added.
- Default Theme: Hook "theme_meta" - added.
- Admin Default Theme: Added missing meta tags.
- Improve Installer Usability. Flags Added.
- Default Site Email added.
- PHPMailer added.
- Pages Manager: added ability to quickly update page status and page access.
- Intstaller Layout: Added missing meta tags.
- Filesmanager plugin: added ability to view images.
- Filesmanager Plugin: forbidden types array - updated.
- CSRF detection text - updated.
- Engine Uri: code improvements.
- XMLDB: Table Class - fixed select method. Thanks to DmitriyMX
- Bootstrap CSS: Icons url - fixed.
- Plugins Manager: buttons confirm dialog message - fixed.
- Pages Manager: page cloning problem - fixed.
- Localizations: translations fixes.
Monstra 2.1.3, 2012-12-09
------------------------
- Pages Plugin: New shortcodes added - page_author, page_slug, page_url page_available, page_breadcrumbs, page_date, page_content.

View File

@@ -1,15 +1,10 @@
# Monstra CMS
Fast and small content management system written in PHP!
Monstra is a modern and lightweight Content Management System.
## System Requirements
- UNIX/Linux host
- PHP 5.2.0 or higher
- SimpleXML Module
- Apache Mod Rewrite
- Multibyte String
Operation system: Unix, Linux, Windows, Mac OS
Middleware: PHP 5.2.3 or higher with PHP's [SimpleXML module](http://php.net/simplexml) and [Multibyte String module](http://php.net/mbstring)
Webserver: Apache with [Mod Rewrite](http://httpd.apache.org/docs/current/mod/mod_rewrite.html) or Ngnix with [Rewrite Module](http://wiki.nginx.org/HttpRewriteModule)
## Steps to Install
1. [Download the latest version.](http://monstra.org/download)
@@ -19,21 +14,18 @@ Fast and small content management system written in PHP!
5. Also you may also need to recursively CHMOD the /install.php, /.htaccess and /sitemap.xml to 755(or 777) if your host doesn't set it implicitly.
6. Type http://example.org/install.php in the browser.
## Contributing
1. Help on the [Forum.](http://forum.monstra.org)
2. Donate to keep Monstra free. We will add you to Monstra [Sponsors Page.](http://monstra.org/about/sponsors)
2. Donate to keep Monstra free. We will add you to Monstra [Sponsors Page.](http://monstra.org/contribute/sponsors)
3. Develop a new plugin.
4. Create a new theme.
5. Find and [report issues.](https://github.com/Monstra/monstra-cms/issues)
5. Find and [report issues.](https://github.com/Awilum/monstra-cms/issues)
6. Link back to [Monstra](http://monstra.org).
## Links
- [Site](http://monstra.org)
- [Forum](http://forum.monstra.org)
- [Documentation](http://monstra.org/documentation)
- [Github Repository](https://github.com/Monstra/monstra-cms)
- [Github Repository](https://github.com/Awilum/monstra-cms)
Copyright (C) 2012-2013 Romanenko Sergey / Awilum [awilum@msn.com]
Copyright (C) 2012-2014 Romanenko Sergey / Awilum [awilum@msn.com]

View File

@@ -9,7 +9,7 @@
* @package Monstra
*
* @author Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2013 Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2014 Romanenko Sergey / Awilum <awilum@msn.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
@@ -33,6 +33,12 @@ $users = new Table('users');
// Admin login
if (Request::post('login_submit')) {
if (Cookie::get('login_attempts') && Cookie::get('login_attempts') >= 5) {
$login_error = __('You are banned for 10 minutes. Try again later', 'users');
} else {
$user = $users->select("[login='" . trim(Request::post('login')) . "']", null);
if (count($user) !== 0) {
if ($user['login'] == Request::post('login')) {
@@ -42,15 +48,43 @@ if (Request::post('login_submit')) {
Session::set('user_id', (int) $user['id']);
Session::set('user_login', (string) $user['login']);
Session::set('user_role', (string) $user['role']);
Session::set('user_email', (string) $user['email']);
Request::redirect('index.php');
}
} else {
$login_error = __('Wrong <b>username</b> or <b>password</b>', 'users');
if (Cookie::get('login_attempts')) {
if (Cookie::get('login_attempts') < 5) {
$attempts = Cookie::get('login_attempts') + 1;
Cookie::set('login_attempts', $attempts, 600);
} else {
$login_error = __('You are banned for 10 minutes. Try again later', 'users');
}
} else {
Cookie::set('login_attempts', 1, 600);
}
}
}
} else {
$login_error = __('Wrong <b>username</b> or <b>password</b>', 'users');
if (Cookie::get('login_attempts')) {
if (Cookie::get('login_attempts') < 5) {
$attempts = Cookie::get('login_attempts') + 1;
Cookie::set('login_attempts', $attempts, 600);
} else {
$login_error = __('You are banned for 10 minutes. Try again later', 'users');
}
} else {
Cookie::set('login_attempts', 1, 600);
}
}
}
Notification::setNow('error', $login_error);
}
// Errors
@@ -79,24 +113,29 @@ if (Request::post('reset_password_submit')) {
// Update user hash
$users->updateWhere("[login='" . $user_login . "']", array('hash' => $new_hash));
// Message
$message = View::factory('box/users/views/frontend/reset_password_email')
$mail = new PHPMailer();
$mail->CharSet = 'utf-8';
$mail->ContentType = 'text/html';
$mail->SetFrom(Option::get('system_email'));
$mail->AddReplyTo(Option::get('system_email'));
$mail->AddAddress($user['email'], $user['login']);
$mail->Subject = __('Your login details for :site_name', 'users', array(':site_name' => $site_name));
$mail->MsgHTML(View::factory('box/emails/views/emails/email_layout')
->assign('site_url', $site_url)
->assign('site_name', $site_name)
->assign('user_id', $user['id'])
->assign('user_login', $user['login'])
->assign('new_hash', $new_hash)
->render();
// Send
@mail($user['email'], __('Your login details for :site_name', 'users', array(':site_name' => $site_name)), $message);
->assign('email_template', 'reset-password')
->render());
$mail->Send();
// Set notification
Notification::set('success', __('Your login details for :site_name has been sent', 'users', array(':site_name' => $site_name)));
Notification::set('reset_password', 'reset_password');
// Redirect to password-reset page
Request::redirect(Site::url().'admin');
Request::redirect(Site::url().'/admin');
}
@@ -122,7 +161,7 @@ if ($is_admin) {
if (Request::get('id')) {
$area = Request::get('id');
} else {
Request::redirect('index.php?id=pages');
Request::redirect('index.php?id=dashboard');
}
$plugins_registered = Plugin::$plugins;

View File

@@ -1,106 +1,322 @@
/************************************
Monstra
styles.css
default.css
*************************************
CONTENTS
1. GENERAL
2. HEADER
3. CONTENT
4. LEFT MENU
5. AUTHORIZATION
6. MISC
2. COMPONENTS
3. MEDIA QUERIES
*************************************
1. GENERAL
*************************************/
@font-face {
font-family: 'Glyphicons Halflings';
src: url('@site_url/public/assets/fonts/glyphicons-halflings-regular.eot');
src: url('@site_url/public/assets/fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'),
url('@site_url/public/assets/fonts/glyphicons-halflings-regular.woff') format('woff'),
url('@site_url/public/assets/fonts/glyphicons-halflings-regular.ttf') format('truetype'),
url('@site_url/public/assets/fonts/glyphicons-halflings-regular.svg#glyphicons-halflingsregular') format('svg');
}
body {
padding-top: 60px;
margin: 0;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
font-size: 13px;
line-height: 18px;
color: #333333;
background-color: #ffffff;
background: #FAFAFA;
}
h1,
h2,
h3,
h4,
h5,
h6 {
margin: 0;
font-family: inherit;
h1,h2,h3,h4,h5 {
color: #222;
}
.error-none {
display: none;
}
.error-field {
border:1px solid red!important;
}
.error-message {
color: red;
}
a.btn-expand {
color: #333;
font-weight: bold;
color: inherit;
text-rendering: optimizelegibility;
}
h1 small,
h2 small,
h3 small,
h4 small,
h5 small,
h6 small {
font-weight: normal;
color: #999999;
}
h1 {
font-size: 30px;
line-height: 36px;
}
h1 small {
font-size: 18px;
}
h2 {
font-size: 24px;
line-height: 36px;
}
h2 small {
font-size: 18px;
}
h3 {
line-height: 27px;
font-size: 16px;
}
h3 small {
font-size:14px;
}
h4,
h5,
h6 {
line-height: 18px;
}
h4 {
font-size: 14px;
}
h4 small {
font-size: 12px;
}
h5 {
font-size: 12px;
}
h6 {
font-size: 11px;
color: #999999;
text-transform: uppercase;
text-decoration: none;
padding-left:4px;
padding-right:4px;
}
/* Inputs */
input[type=text]:focus,
input[type=email]:focus,
input[type=url]:focus,
input[type=phone]:focus,
input[type=password]:focus,
select:focus,
textarea:focus {
border-color: #999;
.btn:active,
.btn.active {
background-image: none;
outline: 0;
box-shadow: none;
}
/* Tables */
.login-footer,
.login-footer a {
color:#777;
font-size:12px;
}
footer {
margin-top: 40px;
}
footer,
footer a {
color:#777;
font-size:12px;
}
footer span {
border-top: 1px solid #E0E0E0;
padding-top: 10px;
}
/*************************************
2. COMPONENTS
*************************************/
/* Well */
.well {
border: none;
border-radius: 0px;
background: #fff;
color: #555;
-webkit-font-smoothing: subpixel-antialiased;
-webkit-box-shadow: 0 1px 3px rgba(0,0,0,.13);
box-shadow: 0 1px 3px rgba(0,0,0,.13);
}
.dashboard-well {
padding-top: 6px;
padding-bottom: 6px;
}
.dashboard-well a.welcome-back {
text-decoration: none;
color: #333;
font-size: 16px;
padding-left: 0;
}
/* Admin Form */
.form-signin {
max-width: 400px;
}
.form-signin {
margin-top: 40px;
}
.form-signin .administration-area,
.form-signin .reset-password-area {
margin-top: 40px;
}
/* Dropdown Menu */
.dropdown-menu .divider {
background-color: #555454;
}
.dropdown-menu {
border: 1px solid #333;
background: #333;
box-shadow: none;
}
.dropdown-menu > li > a {
color: #eee;
}
/* Navbar */
.navbar-inverse .navbar-nav > li > a {
color: #eee;
}
.navbar-inverse {
background: #222;
}
.navbar-default {
border-radius: 0px;
}
ul.navbar-nav {
min-height: 60px;
}
.navbar-nav > li {
min-height: 60px;
}
.navbar-nav > li > a {
line-height: 30px;
}
.navbar-brand {
font-size: 24px;
padding: 13px 15px;
line-height: inherit;
}
.navbar-inverse .navbar-nav > .open > a,
.navbar-inverse .navbar-nav > .open > a:hover,
.navbar-inverse .navbar-nav > .open > a:focus {
background: #333;
}
.navbar-inverse .navbar-nav > .active > a,
.navbar-inverse .navbar-nav > .active > a:hover,
.navbar-inverse .navbar-nav > .active > a:focus {
background: #333;
}
a.navbar-brand {
font-weight: bold;
color: #FAFAFA!important;
}
.navbar-nav .dropdown-menu {
padding-top: 0;
padding-bottom: 0;
}
.navbar-nav .dropdown-menu > li > a {
padding: 7px 20px;
}
.nav > li > a {
padding-top: 15px;
padding-bottom: 15px;
padding-left: 20px;
padding-right: 20px;
}
.nav > li > a > img {
width: 28px;
height: 28px;
border: 1px solid #888;
margin: 0 0 0 4px;
}
/* Flat Elements */
.form-control,
.btn,
.dropdown-menu,
.modal-content,
.badge,
.label,
.input-group-addon,
.alert,
.tooltip,
.tooltip-inner,
pre,
code {
border-radius: 0px;
}
.badge,
.tooltip,
.tooltip-inner,
.label,
pre,
code {
font-weight: normal;
text-shadow: none;
}
pre {
border: none;
}
/* Inputs */
select,
textarea,
input[type="text"],
input[type="password"],
input[type="datetime"],
input[type="datetime-local"],
input[type="date"],
input[type="month"],
input[type="time"],
input[type="week"],
input[type="number"],
input[type="email"],
input[type="url"],
input[type="search"],
input[type="tel"],
input[type="color"],
.form-control,
.uneditable-input {
color: #3c3c3c;
border-color: #d0d0d0;
background-color: #fff;
}
select:focus,
textarea:focus,
input[type="text"]:focus,
input[type="password"]:focus,
input[type="datetime"]:focus,
input[type="datetime-local"]:focus,
input[type="date"]:focus,
input[type="month"]:focus,
input[type="time"]:focus,
input[type="week"]:focus,
input[type="number"]:focus,
input[type="email"]:focus,
input[type="url"]:focus,
input[type="search"]:focus,
input[type="tel"]:focus,
input[type="color"]:focus,
.form-control:focus,
.uneditable-input:focus {
border-color: #aaaaaa;
-webkit-box-shadow: 0 0 8px #dce1e5;
-moz-box-shadow: 0 0 8px #dce1e5;
box-shadow: 0 0 8px #dce1e5;
}
/* Datapicker */
.datapicker {
width: 200px;
}
/* Breadcrumb */
.breadcrumb {
background: #fff;
border-radius: 0px;
}
/* Tabs */
.nav-tabs > li > a {
border-radius: 0px;
}
.tab-page {
background: #fff;
}
.tab-pane > table {
border-top:none!important;
}
.tab-content {
overflow: visible;
}
.tab-page {
border-bottom: 1px solid #DDDDDD;
border-left: 1px solid #DDDDDD;
border-right: 1px solid #DDDDDD;
padding: 20px 10px 10px;
}
/* Tables */
table {
max-width: 100%;
border-collapse: collapse;
@@ -117,6 +333,7 @@ table {
line-height: 18px;
text-align: left;
border-top: 1px solid #dddddd;
background: #fff;
}
.table th {
font-weight: bold;
@@ -142,9 +359,6 @@ table {
border-left: 0;
border-collapse: separate;
*border-collapse: collapsed;
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
border-radius: 4px;
}
.table-bordered th:first-child,
.table-bordered td:first-child {
@@ -160,48 +374,14 @@ table {
.table-bordered tbody:first-child tr:first-child td {
border-top: 0;
}
.table-bordered thead:first-child tr:first-child th:first-child,
.table-bordered tbody:first-child tr:first-child td:first-child {
-webkit-border-radius: 4px 0 0 0;
-moz-border-radius: 4px 0 0 0;
border-radius: 4px 0 0 0;
}
.table-bordered thead:first-child tr:first-child th:last-child,
.table-bordered tbody:first-child tr:first-child td:last-child {
-webkit-border-radius: 0 4px 0 0;
-moz-border-radius: 0 4px 0 0;
border-radius: 0 4px 0 0;
}
.table-bordered thead:last-child tr:last-child th:first-child,
.table-bordered tbody:last-child tr:last-child td:first-child {
-webkit-border-radius: 0 0 0 4px;
-moz-border-radius: 0 0 0 4px;
border-radius: 0 0 0 4px;
}
.table-bordered thead tr th {
font-weight:bold;
background-color: #f5f5f5;
background-repeat: repeat-x;
background-image: -khtml-gradient(linear, left top, left bottom, from(#ffffff), to(#f5f5f5));
background-image: -moz-linear-gradient(top, #ffffff, #f5f5f5);
background-image: -ms-linear-gradient(top, #ffffff, #f5f5f5);
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ffffff), color-stop(100%, #f5f5f5));
background-image: -webkit-linear-gradient(top, #ffffff, #f5f5f5);
background-image: -o-linear-gradient(top, #ffffff, #f5f5f5);
background-image: linear-gradient(top, #ffffff, #f5f5f5);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#f5f5f5', GradientType=0);
border-top: 1px solid #fff;
background-color: #fff;
}
.table-bordered thead:last-child tr:last-child th:last-child,
.table-bordered tbody:last-child tr:last-child td:last-child {
-webkit-border-radius: 0 0 4px 0;
-moz-border-radius: 0 0 4px 0;
border-radius: 0 0 4px 0;
}
.table-bordered thead:first-child tr:first-child > th:first-child, .table-bordered tbody:first-child tr:first-child > td:first-child {
.table-bordered thead:first-child tr:first-child > th:first-child,
.table-bordered tbody:first-child tr:first-child > td:first-child {
border-top-left-radius: 0px;
}
@@ -214,13 +394,20 @@ table {
.table-striped tbody tr:nth-child(odd) th {
background-color: #f9f9f9;
}
.table tbody tr:hover td,
.table tbody tr:hover th {
background-color: #f5f5f5;
}
.table-bordered th, .table-bordered td {
.table-bordered th,
.table-bordered td {
border-left: none;
height: 50px;
}
.table-bordered > thead > tr {
height: 45px;
}
td, th {
@@ -228,254 +415,203 @@ td, th {
vertical-align: inherit!important;
}
/* Buttons */
.btn-toolbar {
margin:0;
}
.btn-group .btn {
margin-left: 5px;
}
.btn-actions-default {
-webkit-border-top-left-radius: 4px!important;
-moz-border-radius-topleft: 4px!important;
border-top-left-radius: 4px!important;
-webkit-border-bottom-left-radius: 4px!important;
-moz-border-radius-bottomleft: 4px!important;
border-bottom-left-radius: 4px!important;
}
/* Tabs */
.tab-pane > table {
margin-top:-20px;
}
.tab-pane > table {
border-top:none!important;
}
.tab-content {
overflow: visible;
}
.tab-page {
border-bottom: 1px solid #DDDDDD;
border-left: 1px solid #DDDDDD;
border-right: 1px solid #DDDDDD;
margin-top: -20px;
padding: 20px 10px 10px;
}
/**************************************
2. HEADER
*************************************/
.monstra-header {
top: 0;
left: 0;
right: 0;
margin-top:-60px;
position: relative;
z-index:999;
}
.monstra-header h3 a:hover, .monstra-header .brand:hover, .monstra-header ul .active > a {
color: #ffffff;
text-decoration: none;
}
.monstra-header h3 {
position: relative;
}
.monstra-header h3 a, .monstra-header .brand {
float: left;
display: block;
padding-top:15px;
padding-left:10px;
margin-left: 0px;
color: #fdfdfd;
font-family: arial;
font-weight: 600;
line-height: 1;
font-size: 24px;
text-shadow: 0 1px 2px rgba(0,0,0,.5);
width:188px;
}
.monstra-header p {
margin: 0;
line-height: 60px;
}
.monstra-header-inner, .topbar .fill {
background-color: #ccc;
background: url('@theme_admin_url/img/noisy_grid_dark.png');
-webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1);
-moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1);
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1);
}
/*************************************
3. CONTENT
*************************************/
.monstra-content {
padding-top:20px;
}
/*************************************
4. LEFT MENU
*************************************/
.monstra-menu-category-separator {
.table-bordered > thead > tr > th,
.table-bordered > tbody > tr > th,
.table-bordered > tfoot > tr > th,
.table-bordered > thead > tr > td,
.table-bordered > tbody > tr > td,
.table-bordered > tfoot > tr > td {
border: 0;
border-bottom: 1px solid #ccc;
margin-top:5px;
margin-bottom:8px;
}
.monstra-menu-sidebar {
background: url('@theme_admin_url/img/noisy_grid.png');
background-color:#ccc;
max-width:192px!important;
min-width:136px!important;
margin-bottom: 20px;
padding: 19px;
border-bottom:2px solid #ccc;
border-right:2px solid #ccc;
.vertical-align {
display: table;
width: 100%;
}
.monstra-menu-sidebar ul {
clear: both;
margin: 0;
padding: 0;
font-family: 'lucida grande','Lucida Sans Unicode', Tahoma, sans-serif;
.vertical-align > div {
display: table-cell;
vertical-align: middle;
}
.monstra-menu-sidebar li {
list-style: none;
margin: 0 0 0 -22px;
padding: 0;
.vertical-align > div > h1,
.vertical-align > div > h2,
.vertical-align > div > h3,
.vertical-align > div > h4,
.vertical-align > div > h5 {
margin-top: 10px;
margin-bottom: 10px;
}
.monstra-menu-sidebar li a {
width:97%;
color: #333;
padding-left: 23px;
text-decoration: none;
display: inline-block;
height: 20px;
line-height: 20px;
text-shadow: 0 1px 0 #fff;
margin: 2px 0;
.margin-top-1 {
margin-top: 1em;
}
.monstra-menu-sidebar li a.current {
color: #000;
padding-top:3px;
cursor: pointer;
display: inline-block;
background-color: #e6e6e6;
background-repeat: no-repeat;
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), color-stop(25%, #ffffff), to(#e6e6e6));
background-image: -webkit-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);
background-image: -moz-linear-gradient(top, #ffffff, #ffffff 25%, #e6e6e6);
background-image: -ms-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);
background-image: -o-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);
background-image: linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6', GradientType=0);
text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);
line-height: normal;
.margin-top-2 {
margin-top: 2em;
}
.margin-bottom-1 {
margin-bottom: 1em;
}
.margin-bottom-2 {
margin-bottom: 2em;
}
/* Editor */
#editor_area {
height: 400px!important;
border: 1px solid #ccc;
border-bottom-color: #bbb;
border-right:2px solid #ccc;
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
-moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
-webkit-transition: 0.1s linear all;
-moz-transition: 0.1s linear all;
-ms-transition: 0.1s linear all;
-o-transition: 0.1s linear all;
transition: 0.1s linear all;
margin-left: 1px;
}
.monstra-menu-sidebar li a:hover {
color: #000;
background:#fff;
}
.nav-list > .active > a,
.nav-list > .active > a:hover {
color: #ffffff;
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2);
background-color: #0088cc;
}
/*************************************
5. AUTHORIZATION
*************************************/
.login-body {
background-color: #FBFBFB;
}
.form-signin {
max-width: 290px;
padding: 19px 29px 29px;
margin: 0 auto 20px;
background: none repeat scroll 0 0 #fff;
-webkit-box-shadow: 0 1px 5px rgba(0,0,0,.15);
-moz-box-shadow: 0 1px 5px rgba(0,0,0,.15);
box-shadow: 0 1px 5px rgba(0,0,0,.15);
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
border-radius: 4px;
}
/*************************************
6. MISC
*************************************/
.small-grey-text {
color:#333;
font-size: 10px;
}
.small-grey-text:hover {
color:#000;
}
.small-white-text {
color:#fff;
font-size: 10px;
}
.small-white-text:hover {
color:#fdfdfd;
}
.error-none {display:none;}
.error-field {border:1px solid red!important;}
.container-fluid {padding-left:0px;}
img {max-width:none;}
a.btn-expand{
color: #333;
font-weight:bold;
color: #555;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
font-size: 14px;
text-decoration: none;
padding-left:4px;
padding-right:4px;
line-height: 1.428571429;
padding: 6px 9px;
}
footer a , footer{
color:#333;
font-size:10px;
.markItUpHeader ul li {
padding: 5px;
}
.markItUpHeader ul .markItUpSeparator {
display: none;
}
.modal-header {
border-bottom: 1px solid #F3F3F3;
}
.modal-header .close {
font-size: 26px;
}
.modal-footer {
border-top: 1px solid #F3F3F3;
}
.drop-file-here {
padding: 5px 40px;
background: #ccc;
margin-left: 4px;
background: #f7f7f7;
border: 3px dashed #D5D5D5;
color: #ccc;
}
.modal-backdrop {
background-color: #000;
}
.modal-backdrop.in {
opacity: 0.8;
}
.modal-content {
box-shadow: none;
border: none;
}
#readme .modal-dialog {
width: 70%;
}
#readme .modal-body {
padding-top: 0px;
}
#Choco_container_via {
display: none;
}
/*************************************
3. MEDIA QUERIES
*************************************/
@media (max-width: 480px) {
/* MarkItUp */
.markItUpButton11,
.markItUpButton12,
.markItUpButton13,
.markItUpButton14,
.markItUpButton15,
.markItUpButton16,
.markItUpButton17,
.markItUpButton18 {
display: none;
}
.markItUpSeparator{
display: none;
}
/* Dashboard */
.dashboard-well .col-xs-6 {
width: 100%;
}
.dashboard-well .col-xs-6 .pull-right {
float: left!important;
}
.btn-phone {
width: 100%;
}
.row-phone {
display: block!important;
width: 100%!important;
text-align: left!important;
}
/* Users */
.users-btns > div {
display: block;
text-align: left;
margin-top: 10px;
width: 100%;
}
.users-btns > div:nth-child(2) {
margin-top: 15px;
}
.page-users .btn-cancel {
margin-bottom: 20px;
}
}
@media (max-width: 768px) {
.nav > li > a {
padding: 15px 9px!important;
}
}
@media (max-width: 320px) {
.mobile-nav-tabs .nav-tabs > li {
width: 100%;
height: 46px;
margin: 0px;
}
.mobile-nav-tabs .nav-tabs > li > a {
background: #fff;
border: 0;
}
.mobile-nav-tabs .nav-tabs > li.active > a,
.mobile-nav-tabs .nav-tabs > li.active > a:hover,
.mobile-nav-tabs .nav-tabs > li.active > a:focus {
border: 0;
color: #fff;
background-color: #428bca;
}
.mobile-nav-tabs .nav-tabs {
margin-top: 10px;
margin-bottom: 10px;
border: 0;
}
.mobile-nav-tabs .tab-pane > table {
border-top: 1px solid #ddd!important;
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

View File

@@ -2,75 +2,138 @@
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="x-dns-prefetch-control" content="on">
<link rel="dns-prefetch" href="<?php echo Site::url(); ?>" />
<link rel="dns-prefetch" href="//www.google-analytics.com" />
<link rel="dns-prefetch" href="//www.gravatar.com" />
<title>Monstra :: <?php echo __('Administration', 'system'); ?></title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="Monstra admin area" />
<link rel="icon" href="<?php echo Option::get('siteurl'); ?>favicon.ico" type="image/x-icon" />
<link rel="shortcut icon" href="<?php echo Option::get('siteurl'); ?>favicon.ico" type="image/x-icon" />
<meta name="description" content="Monstra Admin Area" />
<link rel="icon" href="<?php echo Option::get('siteurl'); ?>/favicon.ico" type="image/x-icon" />
<link rel="shortcut icon" href="<?php echo Option::get('siteurl'); ?>/favicon.ico" type="image/x-icon" />
<!-- Styles -->
<?php Stylesheet::add('public/assets/css/bootstrap.css', 'backend', 1); ?>
<?php Stylesheet::add('public/assets/css/bootstrap-responsive.css', 'backend', 2); ?>
<?php Stylesheet::add('admin/themes/default/css/default.css', 'backend', 3); ?>
<link rel="stylesheet" href="<?php echo Site::url(); ?>/public/assets/css/bootstrap.css" type="text/css" />
<link rel="stylesheet" href="<?php echo Site::url(); ?>/public/assets/css/messenger.css" type="text/css" />
<link rel="stylesheet" href="<?php echo Site::url(); ?>/public/assets/css/messenger-theme-flat.css" type="text/css" />
<?php Stylesheet::add('public/assets/css/chocolat.css', 'backend', 2); ?>
<?php Stylesheet::add('public/assets/css/bootstrap-fileupload.css', 'backend', 3); ?>
<?php Stylesheet::add('public/assets/css/icheck-blue.css', 'backend', 4); ?>
<?php Stylesheet::add('admin/themes/default/css/default.css', 'backend', 5); ?>
<?php Stylesheet::load(); ?>
<!-- JavaScripts -->
<?php Javascript::add('public/assets/js/jquery.js', 'backend', 1); ?>
<?php Javascript::add('public/assets/js/bootstrap.js', 'backend', 2); ?>
<?php Javascript::add('admin/themes/default/js/default.js', 'backend', 3); ?>
<script src="<?php echo Site::url(); ?>/public/assets/js/jquery.min.js"></script>
<script src="<?php echo Site::url(); ?>/public/assets/js/bootstrap.min.js"></script>
<script src="<?php echo Site::url(); ?>/public/assets/js/messenger.min.js"></script>
<script src="<?php echo Site::url(); ?>/public/assets/js/icheck.min.js"></script>
<?php Javascript::add('public/assets/js/jquery.chocolat.js', 'backend', 3); ?>
<?php Javascript::add('public/assets/js/bootstrap-fileupload.js', 'backend', 4); ?>
<?php Javascript::add('admin/themes/default/js/default.js', 'backend', 5); ?>
<?php Javascript::load(); ?>
<?php Action::run('admin_header'); ?>
<script>
$(document).ready(function() {
$('.chocolat').Chocolat({
overlayColor : '#000',
leftImg : "<?php echo Option::get('siteurl'); ?>/public/assets/img/chocolat/left.gif",
rightImg : "<?php echo Option::get('siteurl'); ?>/public/assets/img/chocolat/right.gif",
closeImg : "<?php echo Option::get('siteurl'); ?>/public/assets/img/chocolat/close.gif",
loadingImg : "<?php echo Option::get('siteurl'); ?>/public/assets/img/chocolat/loading.gif"
});
$('input').iCheck({
checkboxClass: 'icheckbox_square-blue',
radioClass: 'iradio_square-blue',
increaseArea: '20%'
});
});
</script>
<!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!--[if lt IE 9]>
<link rel="stylesheet" href="css/ie.css" type="text/css" media="screen" />
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7/html5shiv.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/respond.js/1.4.2/respond.js"></script>
<![endif]-->
</head>
<body>
<!-- Block_topbar -->
<div class="monstra-header">
<div class="monstra-header-inner">
<div class="container-fluid">
<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>
<p class="pull-right">
<?php Navigation::draw('top', Navigation::TOP); ?>
</p>
<body class="page-<?php echo Request::get('id'); ?>">
<nav class="navbar navbar-default navbar-inverse" role="navigation">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="<?php echo Site::url(); ?>/admin/index.php?id=dashboard">MONSTRA</a>
</div>
</div>
</div>
<!-- /Block_topbar -->
<!-- Block_container -->
<div class="container-fluid">
<div class="row-fluid">
<!-- Block_sidebar -->
<div class="span2 monstra-menu-sidebar hidden-phone">
<h3><?php echo __('Content', 'pages'); ?></h3>
<ul>
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav">
<li<?php if (Request::get('id') == 'dashboard') { ?> class="active"<?php } ?>><a href="<?php echo Site::url(); ?>/admin/index.php?id=dashboard"><?php echo __('Dashboard', 'dashboard'); ?></a></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><?php echo __('Content', 'pages'); ?> <b class="caret"></b></a>
<ul class="dropdown-menu">
<?php Navigation::draw('content'); ?>
</ul>
<div class="monstra-menu-category-separator"></div>
</li>
<?php if (Session::exists('user_role') && in_array(Session::get('user_role'), array('admin'))) { ?>
<h3><?php echo __('Extends', 'system'); ?></h3>
<ul>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><?php echo __('Extends', 'system'); ?> <b class="caret"></b></a>
<ul class="dropdown-menu">
<?php Navigation::draw('extends'); ?>
</ul>
<div class="monstra-menu-category-separator"></div>
</li>
<?php } ?>
<h3><?php echo __('System', 'system'); ?></h3>
<ul>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><?php echo __('System', 'system'); ?> <b class="caret"></b></a>
<ul class="dropdown-menu">
<?php Navigation::draw('system'); ?>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><?php echo __('Help', 'system'); ?> <b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="http://monstra.org/documentation" target="_blank"><?php echo __('Documentation', 'system'); ?></a></li>
<?php if (Option::get('language') == 'ru') { ?>
<li><a href="http://ru.forum.monstra.org" target="_blank"><?php echo __('Official Support Forum', 'system'); ?></a></li>
<?php } else { ?>
<li><a href="http://forum.monstra.org" target="_blank"><?php echo __('Official Support Forum', 'system'); ?></a></li>
<?php } ?>
</ul>
</li>
</ul>
<ul class="nav navbar-nav navbar-right">
<li><a href="<?php echo Site::url(); ?>" target="_blank"><?php echo __('View Site', 'system'); ?></a></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><?php echo Session::get('user_login'); ?> <img src="<?php echo Users::getGravatarURL(Session::get('user_email'), 28); ?>" alt=""> <b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="<?php echo Site::url(); ?>/admin/index.php?id=users&action=edit&user_id=<?php echo Session::get('user_id'); ?>"><?php echo __('Profile', 'users')?></a></li>
<li><a href="<?php echo Site::url(); ?>/admin/?logout=do"><?php echo __('Log Out', 'users'); ?></a></li>
</ul>
</li>
</ul>
</div>
<!-- /Block_sidebar -->
</div>
</nav>
<!-- Block_content -->
<div class="span10 monstra-content">
<div class="container">
<?php
// Monstra Notifications
Notification::get('success') AND Alert::success(Notification::get('success'));
Notification::get('warning') AND Alert::warning(Notification::get('warning'));
Notification::get('error') AND Alert::error(Notification::get('error'));
?>
<div id="update-monstra"></div>
<div><?php Action::run('admin_pre_template'); ?></div>
@@ -88,26 +151,20 @@
?>
</div>
<div><?php Action::run('admin_post_template'); ?></div>
</div>
<!-- /Block_content -->
</div>
<!-- Block_footer -->
<footer>
<p align="right">
<span style="border-top:1px solid #E0E0E0; padding-top:10px;">
<div class="margin-top-1 margin-bottom-1 hidden-md"></div>
<footer class="container visible-md visible-lg">
<p class="pull-right">
<span>
<?php if (Option::get('language') == 'ru') { ?>
<a href="http://ru.forum.monstra.org" target="_blank"><?php echo __('Official Support Forum', 'system'); ?></a> /
<?php } else { ?>
<a href="http://forum.monstra.org" target="_blank"><?php echo __('Official Support Forum', 'system'); ?></a> /
<?php } ?>
<a href="http://monstra.org/documentation" target="_blank"><?php echo __('Documentation', 'system'); ?></a> /
© 2012 - 2013 <a href="http://monstra.org" target="_blank">Monstra</a> <?php echo __('Version', 'system'); ?> <?php echo Monstra::VERSION; ?>
© 2012 - 2014 <a href="http://monstra.org" target="_blank">Monstra</a> <?php echo __('Version', 'system'); ?> <?php echo Monstra::VERSION; ?>
</span>
</p>
</footer>
<!-- /Block_footer -->
</div>
<!-- /Block_container -->
</body>
</html>

View File

@@ -1,19 +1,23 @@
/**
* Monstra JS module
*
* This source file is part of the Monstra Engine. More information,
* documentation and tutorials can be found at http://monstra.org
*
* @package Monstra
* @author Romanenko Sergey / Awilum
* @copyright 2012 Romanenko Sergey / Awilum
* @version $Id$
* @since 1.0.0
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
* Monstra is free software. This version may have been modified pursuant
* to the GNU General Public License, and as distributed it includes or
* is derivative of works licensed under the GNU General Public License or
* other free or open source software licenses.
* See COPYING.txt for copyright notices and details.
* @filesource
*
* @author Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2014 Romanenko Sergey / Awilum <awilum@msn.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
/* Confirm delete */
function confirmDelete(msg){var data=confirm(msg+" ?"); return data;}
/* Messanger */
Messenger.options = {
extraClasses: 'messenger-fixed messenger-on-bottom messenger-on-right',
theme: 'flat'
}

View File

@@ -5,20 +5,28 @@
<title>Monstra :: <?php echo __('Administration', 'system'); ?></title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="Monstra Admin Area">
<link rel="icon" href="<?php echo Option::get('siteurl'); ?>favicon.ico" type="image/x-icon" />
<link rel="shortcut icon" href="<?php echo Option::get('siteurl'); ?>favicon.ico" type="image/x-icon" />
<link rel="icon" href="<?php echo Option::get('siteurl'); ?>/favicon.ico" type="image/x-icon" />
<link rel="shortcut icon" href="<?php echo Option::get('siteurl'); ?>/favicon.ico" type="image/x-icon" />
<!-- Styles -->
<?php Stylesheet::add('public/assets/css/bootstrap.css', 'backend', 1); ?>
<?php Stylesheet::add('public/assets/css/bootstrap-responsive.css', 'backend', 2); ?>
<?php Stylesheet::add('admin/themes/default/css/default.css', 'backend', 3); ?>
<link rel="stylesheet" href="<?php echo Site::url(); ?>/public/assets/css/bootstrap.css" type="text/css" />
<link rel="stylesheet" href="<?php echo Site::url(); ?>/public/assets/css/messenger.css" type="text/css" />
<link rel="stylesheet" href="<?php echo Site::url(); ?>/public/assets/css/messenger-theme-flat.css" type="text/css" />
<?php Stylesheet::add('public/assets/css/bootstrap-lightbox.css', 'backend', 2); ?>
<?php Stylesheet::add('public/assets/css/bootstrap-fileupload.css', 'backend', 3); ?>
<?php Stylesheet::add('admin/themes/default/css/default.css', 'backend', 5); ?>
<?php Stylesheet::load(); ?>
<!-- JavaScripts -->
<?php Javascript::add('public/assets/js/jquery.js', 'backend', 1); ?>
<?php Javascript::add('public/assets/js/bootstrap.js', 'backend', 2); ?>
<?php Javascript::add('admin/themes/default/js/default.js', 'backend', 3); ?>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script src="<?php echo Site::url(); ?>/public/assets/js/bootstrap.min.js"></script>
<script src="<?php echo Site::url(); ?>/public/assets/js/messenger.min.js"></script>
<script src="<?php echo Site::url(); ?>/public/assets/js/messenger-theme-flat.js"></script>
<?php Javascript::add('public/assets/js/bootstrap-lightbox.js', 'backend', 3); ?>
<?php Javascript::add('public/assets/js/bootstrap-fileupload.js', 'backend', 4); ?>
<?php Javascript::add('admin/themes/default/js/default.js', 'backend', 5); ?>
<?php Javascript::load(); ?>
<script type="text/javascript">
$().ready(function () {
<?php if (Notification::get('reset_password') == 'reset_password') { ?>
@@ -43,47 +51,56 @@
<?php Action::run('admin_header'); ?>
<!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!--[if lt IE 9]>
<link rel="stylesheet" href="css/ie.css" type="text/css" media="screen" />
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7/html5shiv.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/respond.js/1.4.2/respond.js"></script>
<![endif]-->
</head>
<body class="login-body">
<?php
// Monstra Notifications
Notification::get('success') AND Alert::success(Notification::get('success'));
Notification::get('warning') AND Alert::warning(Notification::get('warning'));
Notification::get('error') AND Alert::error(Notification::get('error'));
?>
<div class="container form-signin">
<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 class="text-center"><a class="brand" href="<?php echo Option::get('siteurl'); ?>/admin"><img src="<?php echo Option::get('siteurl'); ?>/public/assets/img/monstra-logo-256px.png" alt="monstra" /></a></div>
<div class="administration-area well">
<div>
<h2 style="text-align:center;"><?php echo __('Administration', 'system'); ?></h2><br />
<form method="post">
<div class="form-group">
<label><?php echo __('Username', 'users'); ?></label>
<input class="input-xlarge" name="login" type="text" />
<input class="form-control" name="login" type="text" />
</div>
<div class="form-group">
<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'); ?>" />
<input class="form-control" name="password" type="password" />
</div>
<div class="form-group">
<input type="submit" name="login_submit" class="btn btn-primary" value="<?php echo __('Log In', 'users'); ?>" />
</div>
</form>
</div>
</div>
<div class="reset-password-area">
<hr>
<div class="reset-password-area well">
<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">
<div class="form-group">
<label><?php echo __('Username', 'users'); ?></label>
<input name="login" class="input-xlarge" type="text" value="<?php echo $user_login; ?>" />
<input name="login" class="form-control" type="text" value="<?php echo $user_login; ?>" />
</div>
<?php if (Option::get('captcha_installed') == 'true') { ?>
<label><?php echo __('Captcha'); ?><label>
<input type="text" name="answer" class="input-xlarge">
<div class="form-group">
<label><?php echo __('Captcha', 'users'); ?></label>
<input type="text" name="answer" class="form-control">
<br>
<?php CryptCaptcha::draw(); ?>
</div>
<?php } ?>
<br>
<?php
@@ -93,24 +110,29 @@
}
}
?>
<input type="submit" name="reset_password_submit" class="btn" value="<?php echo __('Send New Password', 'users')?>" />
<div class="form-group">
<input type="submit" name="reset_password_submit" class="btn btn-primary" value="<?php echo __('Send New Password', 'users')?>" />
</div>
</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 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 class="login-footer">
<div class="text-center">
<a href="<?php echo Option::get('siteurl'); ?>"><?php echo __('Back to Website', 'system');?></a> -
<a class="reset-password-btn" href="javascript:;"><?php echo __('Forgot your password ?', 'system');?></a>
<a class="administration-btn" href="javascript:;"><?php echo __('Log In', 'users');?></a>
</div>
<div class="text-center">
<span>© 2012 - 2014 <a href="http://monstra.org" class="small-grey-text" target="_blank">Monstra</a> <?php echo __('Version', 'system'); ?> <?php echo Monstra::VERSION; ?></span>
</div>
</div>
</body>
</html>

View File

@@ -9,7 +9,7 @@
* @package Monstra
*
* @author Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2013 Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2014 Romanenko Sergey / Awilum <awilum@msn.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
@@ -35,16 +35,21 @@ class Alert
* </code>
*
* @param string $message Message
* @param integer $time Time
* @param integer $seconds Seconds
*/
public static function success($message, $time = 3000)
public static function success($message, $seconds = 3)
{
// Redefine vars
$message = (string) $message;
$time = (int) $time;
$seconds = (int) $seconds;
echo '<div class="alert alert-info">'.$message.'</div>
<script type="text/javascript">setTimeout(\'$(".alert").slideUp("slow")\', '.$time.'); </script>';
echo '<script type="text/javascript">
Messenger().post({
type: "success",
message : "'.$message.'",
hideAfter: '.$seconds.'
});
</script>';
}
/**
@@ -55,16 +60,21 @@ class Alert
* </code>
*
* @param string $message Message
* @param integer $time Time
* @param integer $seconds Seconds
*/
public static function warning($message, $time = 3000)
public static function warning($message, $seconds = 3)
{
// Redefine vars
$message = (string) $message;
$time = (int) $time;
$seconds = (int) $seconds;
echo '<div class="alert alert-warning">'.$message.'</div>
<script type="text/javascript">setTimeout(\'$(".alert").slideUp("slow")\', '.$time.'); </script>';
echo '<script type="text/javascript">
Messenger().post({
type: "info",
message : "'.$message.'",
hideAfter: '.$seconds.'
});
</script>';
}
/**
@@ -75,16 +85,21 @@ class Alert
* </code>
*
* @param string $message Message
* @param integer $time Time
* @param integer $seconds Seconds
*/
public static function error($message, $time = 3000)
public static function error($message, $seconds = 3)
{
// Redefine vars
$message = (string) $message;
$time = (int) $time;
$seconds = (int) $seconds;
echo '<div class="alert alert-error">'.$message.'</div>
<script type="text/javascript">setTimeout(\'$(".alert").slideUp("slow")\', '.$time.'); </script>';
echo '<script type="text/javascript">
Messenger().post({
type: "error",
message : "'.$message.'",
hideAfter: '.$seconds.'
});
</script>';
}
}

View File

@@ -5,7 +5,7 @@
*
* Monstra - Content Management System.
* Site: www.mostra.org
* Copyright (C) 2012-2013 Romanenko Sergey / Awilum <awilum@msn.com>
* Copyright (C) 2012-2014 Romanenko Sergey / Awilum <awilum@msn.com>
*
* This source file is part of the Monstra Engine. More information,
* documentation and tutorials can be found at http://monstra.org
@@ -13,7 +13,7 @@
* @package Monstra
*
* @author Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2013 Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2014 Romanenko Sergey / Awilum <awilum@msn.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
@@ -39,7 +39,8 @@ class Monstra
/**
* The version of Monstra
*/
const VERSION = '2.1.3';
const VERSION = '3.0.0';
/**
* Monstra environment
@@ -113,14 +114,24 @@ class Monstra
* Set Gelato Display Errors to False for Production environment.
*/
if (Monstra::$environment == Monstra::PRODUCTION) {
define('GELATO_DISPLAY_ERRORS', false);
define('GELATO_DEVELOPMENT', false);
}
/**
* Define Monstra Folder for Gelato Logs
*/
define ('GELATO_LOGS_PATH', LOGS);
/**
* Include Gelato Library
*/
include ROOT . DS . 'libraries'. DS .'Gelato'. DS .'Gelato.php';
/**
* Map Monstra Engine Directory
*/
ClassLoader::directory(ROOT . DS . 'engine' . DS);
/**
* Map all Monstra Classes
*/
@@ -157,6 +168,9 @@ class Monstra
// Idiorm
'ORM' => ROOT . DS .'libraries'. DS . 'Idiorm'. DS .'ORM.php',
// PHPMailer
'PHPMailer' => ROOT . DS .'libraries'. DS . 'PHPMailer'. DS .'PHPMailer.php',
));
/**
@@ -171,18 +185,14 @@ class Monstra
ORM::configure(MONSTRA_DB_DSN);
ORM::configure('username', MONSTRA_DB_USER);
ORM::configure('password', MONSTRA_DB_PASSWORD);
ORM::configure('driver_options', array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'));
}
/**
* Auto cleanup if MONSTRA_DEBUG is TRUE
* Auto cleanup if DEVELOPMENT environment
*/
if (Monstra::$environment == Monstra::DEVELOPMENT) {
// Cleanup minify
if (count($files = File::scan(MINIFY, array('css', 'js', 'php'))) > 0) foreach ($files as $file) File::delete(MINIFY . DS . $file);
// Cleanup cache
if (count($namespaces = Dir::scan(CACHE)) > 0) foreach ($namespaces as $namespace) Dir::delete(CACHE . DS . $namespace);
Monstra::cleanTmp();
}
/**
@@ -293,6 +303,18 @@ class Monstra
}
/**
* Clean Monstra TMP folder.
*/
public static function cleanTmp()
{
// Cleanup minify
if (count($files = File::scan(MINIFY, array('css', 'js', 'php'))) > 0) foreach ($files as $file) File::delete(MINIFY . DS . $file);
// Cleanup cache
if (count($namespaces = Dir::scan(CACHE)) > 0) foreach ($namespaces as $namespace) Dir::delete(CACHE . DS . $namespace);
}
/**
* Initialize Monstra Engine
*

View File

@@ -9,7 +9,7 @@
* @package Monstra
*
* @author Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2013 Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2014 Romanenko Sergey / Awilum <awilum@msn.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.

View File

@@ -9,7 +9,7 @@
* @package Monstra
*
* @author Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2013 Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2014 Romanenko Sergey / Awilum <awilum@msn.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
@@ -47,7 +47,7 @@ class Action
* </code>
*
* @param string $action_name Action name
* @param string $added_function Added function
* @param mixed $added_function Added function
* @param integer $priority Priority. Default is 10
* @param array $args Arguments
*/
@@ -56,7 +56,7 @@ class Action
// Hooks a function on to a specific action.
Action::$actions[] = array(
'action_name' => (string) $action_name,
'function' => (string) $added_function,
'function' => $added_function,
'priority' => (int) $priority,
'args' => $args
);

View File

@@ -9,7 +9,7 @@
* @package Monstra
*
* @author Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2013 Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2014 Romanenko Sergey / Awilum <awilum@msn.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.

View File

@@ -9,7 +9,7 @@
* @package Monstra
*
* @author Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2013 Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2014 Romanenko Sergey / Awilum <awilum@msn.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
@@ -91,7 +91,7 @@ class Filter
* </code>
*
* @param string $filter_name The name of the filter to hook the $function_to_add to.
* @param string $function_to_add The name of the function to be called when the filter is applied.
* @param mixed $function_to_add The name of the function to be called when the filter is applied.
* @param integer $priority Function to add priority - default is 10.
* @param integer $accepted_args The number of arguments the function accept default is 1.
* @return boolean
@@ -100,7 +100,7 @@ class Filter
{
// Redefine arguments
$filter_name = (string) $filter_name;
$function_to_add = (string) $function_to_add;
$function_to_add = $function_to_add;
$priority = (int) $priority;
$accepted_args = (int) $accepted_args;

View File

@@ -9,7 +9,7 @@
* @package Monstra
*
* @author Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2013 Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2014 Romanenko Sergey / Awilum <awilum@msn.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.

View File

@@ -9,7 +9,7 @@
* @package Monstra
*
* @author Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2013 Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2014 Romanenko Sergey / Awilum <awilum@msn.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
@@ -32,11 +32,13 @@ class I18n
'el' => 'Ελληνικά',
'en' => 'English',
'es' => 'Español',
'fa' => 'Farsi',
'fi' => 'Suomi',
'fr' => 'Français',
'gl' => 'Galego',
'hu' => 'Magyar',
'it' => 'Italiano',
'id' => 'Bahasa Indonesia',
'ja' => '日本語',
'lt' => 'Lietuvių',
'nl' => 'Nederlands',
@@ -51,7 +53,7 @@ class I18n
'sr-yu' => 'Serbian',
'tr' => 'Türkçe',
'uk' => 'Українська',
'zh' => '中文',
'zh-cn' => '中文',
);
/**

View File

@@ -9,7 +9,7 @@
* @package Monstra
*
* @author Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2013 Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2014 Romanenko Sergey / Awilum <awilum@msn.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
@@ -92,7 +92,7 @@ class Javascript
if ($backend_regenerate) {
foreach ($javascripts as $javascript) {
if ((file_exists(ROOT . DS . $javascript['file'])) and (($javascript['load'] == 'backend') or ($javascript['load'] == 'both')) ) {
$backend_buffer .= file_get_contents(ROOT . DS . $javascript['file']);
$backend_buffer .= file_get_contents(ROOT . DS . $javascript['file'])."\n";
}
}
file_put_contents($backend_site_js_path, $backend_buffer);
@@ -115,7 +115,7 @@ class Javascript
if ($frontend_regenerate) {
foreach ($javascripts as $javascript) {
if ((file_exists(ROOT . DS . $javascript['file'])) and (($javascript['load'] == 'frontend') or ($javascript['load'] == 'both')) ) {
$frontend_buffer .= file_get_contents(ROOT . DS . $javascript['file']);
$frontend_buffer .= file_get_contents(ROOT . DS . $javascript['file'])."\n";
}
}
file_put_contents($frontend_site_js_path, $frontend_buffer);
@@ -126,11 +126,19 @@ class Javascript
// Render
if (BACKEND) {
echo '<script type="text/javascript" src="'.Option::get('siteurl').'tmp/minify/backend_site.minify.js"></script>';
echo '<script type="text/javascript" src="'.Option::get('siteurl').'/tmp/minify/backend_site.minify.js?'.Option::get('javascript_version').'"></script>';
} else {
echo '<script type="text/javascript" src="'.Option::get('siteurl').'tmp/minify/frontend_site.minify.js"></script>';
echo '<script type="text/javascript" src="'.Option::get('siteurl').'/tmp/minify/frontend_site.minify.js?'.Option::get('javascript_version').'"></script>'."\n";
}
}
}
/**
* javascriptVersionIncrement
*/
public static function javascriptVersionIncrement() {
Option::update('javascript_version', (int) Option::get('javascript_version') + 1);
}
}

View File

@@ -9,7 +9,7 @@
* @package Monstra
*
* @author Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2013 Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2014 Romanenko Sergey / Awilum <awilum@msn.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
@@ -110,4 +110,86 @@ class Navigation
}
}
/**
* Draw items
*
* <code>
* Navigation::draw('content');
* Navigation::draw('top', Navigation::TOP);
* <code>
*
* @param string $category Category
* @param integer $type Type. Default is LEFT
*/
public static function get($category, $type = Navigation::LEFT)
{
// Sort items by priority
$items = Arr::subvalSort(Navigation::$items, 'priority');
// Draw left navigation
if ($type == Navigation::LEFT) {
// Loop trough the items
foreach ($items as $item) {
// If current plugin id == selected item id then set class to current
if (Request::get('id') == $item['id'] && $item['external'] == false) $class = 'class = "current" '; else $class = '';
// If current category == item category and navigation type is left them draw this item
if ($item['category'] == $category && $item['type'] == Navigation::LEFT) {
// Is external item id or not ?
if ($item['external'] == false) {
echo '<li><a '.$class.'href="index.php?id='.$item['id'].'">'.$item['name'].'</a></li>';
} else {
echo '<li><a target="_blank" href="'.$item['id'].'">'.$item['name'].'</a></li>';
}
}
}
} elseif ($type == Navigation::TOP) {
// Draw top navigation
foreach ($items as $item) {
if ($item['category'] == $category && $item['type'] == Navigation::TOP) {
if ($item['external'] == false) {
echo '<a class="btn btn-small btn-inverse" href="index.php?id='.$item['id'].'">'.$item['name'].'</a>'.Html::nbsp(2);
} else {
echo '<a target="_blank" class="btn btn-small btn-inverse" href="'.$item['id'].'">'.$item['name'].'</a>'.Html::nbsp(2);
}
}
}
}
}
/**
* Draw dropdown items
*
* <code>
* Navigation::getDropdown('content');
* <code>
*
* @param string $category Category
*/
public static function getDropdown($category)
{
// Sort items by priority
$items = Arr::subvalSort(Navigation::$items, 'priority');
// Loop trough the items
foreach ($items as $item) {
// If current plugin id == selected item id then set class to current
if (Request::get('id') == $item['id'] && $item['external'] == false) $class = 'selected = "selected" '; else $class = '';
// If current category == item category and navigation type is left them draw this item
if ($item['category'] == $category && $item['type'] == Navigation::LEFT) {
// Is external item id or not ?
if ($item['external'] == false) {
echo '<option '.$class.'rel="index.php?id='.$item['id'].'">'.$item['name'].'</option>';
}
}
}
}
}

View File

@@ -9,7 +9,7 @@
* @package Monstra
*
* @author Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2013 Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2014 Romanenko Sergey / Awilum <awilum@msn.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
@@ -68,7 +68,7 @@ class Plugin
$plugins = new Table('plugins');
// Select all plugins
$records = $plugins->select(null, 'all', null, array('location', 'frontend', 'backend', 'status', 'priority'), 'priority', 'ASC');
$records = $plugins->select(null, 'all', null, array('location', 'status', 'priority'), 'priority', 'ASC');
// Now include plugins from $records plugins array
// If plugin is active then load it to the system.

View File

@@ -9,7 +9,7 @@
* @package Monstra
*
* @author Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2013 Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2014 Romanenko Sergey / Awilum <awilum@msn.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
@@ -96,7 +96,7 @@ class Stylesheet
}
}
$backend_buffer = Stylesheet::parseVariables($backend_buffer);
file_put_contents($backend_site_css_path, Minify::css($backend_buffer));
file_put_contents($backend_site_css_path, MinifyCSS::process($backend_buffer));
$backend_regenerate = false;
}
@@ -120,7 +120,7 @@ class Stylesheet
}
}
$frontend_buffer = Stylesheet::parseVariables($frontend_buffer);
file_put_contents($frontend_site_css_path, Minify::css($frontend_buffer));
file_put_contents($frontend_site_css_path, MinifyCSS::process($frontend_buffer));
$frontend_regenerate = false;
}
@@ -128,9 +128,9 @@ class Stylesheet
// Render
if (BACKEND) {
echo '<link rel="stylesheet" href="'.Option::get('siteurl').'tmp/minify/backend_site.minify.css'.'" type="text/css" />';
echo '<link rel="stylesheet" href="'.Option::get('siteurl').'/tmp/minify/backend_site.minify.css?'.Option::get('styles_version').'" type="text/css" />';
} else {
echo '<link rel="stylesheet" href="'.Option::get('siteurl').'tmp/minify/frontend_site.minify.css'.'" type="text/css" />';
echo '<link rel="stylesheet" href="'.Option::get('siteurl').'/tmp/minify/frontend_site.minify.css?'.Option::get('styles_version').'" type="text/css" />'."\n";
}
}
}
@@ -144,9 +144,16 @@ class Stylesheet
'@theme_site_url',
'@theme_admin_url'),
array(Option::get('siteurl'),
Option::get('siteurl').'public/themes/'.Option::get('theme_site_name'),
Option::get('siteurl').'admin/themes/'.Option::get('theme_admin_name')),
Option::get('siteurl').'/public/themes/'.Option::get('theme_site_name'),
Option::get('siteurl').'/admin/themes/'.Option::get('theme_admin_name')),
$frontend_buffer);
}
/**
* stylesVersionIncrement
*/
public static function stylesVersionIncrement() {
Option::update('styles_version', (int) Option::get('styles_version') + 1);
}
}

View File

@@ -9,7 +9,7 @@
* @package Monstra
*
* @author Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2013 Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2014 Romanenko Sergey / Awilum <awilum@msn.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.

View File

@@ -9,7 +9,7 @@
* @package Monstra
*
* @author Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2013 Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2014 Romanenko Sergey / Awilum <awilum@msn.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
@@ -22,7 +22,7 @@ class Security
*
* @var string
*/
public static $token_name = 'security_token';
protected static $token_name = 'security_token';
/**
* Protected constructor since this is a static class.
@@ -111,7 +111,7 @@ class Security
* </code>
*
* @param string $str String
* @param string $delimiter String delimiter
* @param mixed $delimiter String delimiter
* @param boolean $lowercase String Lowercase
* @return string
*/
@@ -119,9 +119,9 @@ class Security
{
// Redefine vars
$str = (string) $str;
$delimiter = (string) $delimiter;
$delimiter = $delimiter;
$lowercase = (bool) $lowercase;
$delimiter = (string) $delimiter;
$delimiter = $delimiter;
// Remove tags
$str = filter_var($str, FILTER_SANITIZE_STRING);
@@ -150,8 +150,10 @@ class Security
// Remove characters
$str = preg_replace("/[^a-zA-Z0-9\/_|+ -]/", '', $str);
if ($delimiter != null) {
$str = preg_replace("/[\/_|+ -]+/", $delimiter, $str);
$str = trim($str, $delimiter);
}
// Lowercase
if ($lowercase === true) $str = Text::lowercase($str);

View File

@@ -9,7 +9,7 @@
* @package Monstra
*
* @author Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2013 Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2014 Romanenko Sergey / Awilum <awilum@msn.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.

View File

@@ -9,7 +9,7 @@
* @package Monstra
*
* @author Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2013 Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2014 Romanenko Sergey / Awilum <awilum@msn.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
@@ -176,7 +176,7 @@ class Site
if ( ! file_exists(MINIFY . DS . 'theme.' . $current_theme . '.minify.' . $template . '.template.php') or
filemtime(THEMES_SITE . DS . $current_theme . DS . $template .'.template.php') > filemtime(MINIFY . DS . 'theme.' . $current_theme . '.minify.' . $template . '.template.php')) {
$buffer = file_get_contents(THEMES_SITE. DS . $current_theme . DS . $template .'.template.php');
$buffer = Minify::html($buffer);
$buffer = MinifyHTML::process($buffer);
file_put_contents(MINIFY . DS . 'theme.' . $current_theme . '.minify.' . $template . '.template.php', $buffer);
}
@@ -185,7 +185,7 @@ class Site
if ( ! File::exists(MINIFY . DS . 'theme.' . $current_theme . '.' . 'minify.index.template.php') or
filemtime(THEMES_SITE . DS . $current_theme . DS . 'index.template.php') > filemtime(MINIFY . DS . 'theme.' . $current_theme . '.' . 'minify.index.template.php')) {
$buffer = file_get_contents(THEMES_SITE . DS . $current_theme . DS . 'index.template.php');
$buffer = Minify::html($buffer);
$buffer = MinifyHTML::process($buffer);
file_put_contents(MINIFY . DS . 'theme.' . $current_theme . '.' . 'minify.index.template.php', $buffer);
}

View File

@@ -9,7 +9,7 @@
* @package Monstra
*
* @author Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2013 Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2014 Romanenko Sergey / Awilum <awilum@msn.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
@@ -137,14 +137,11 @@ class Uri
// param1/param2
if ($uri[0] !== Uri::$default_component) {
if (isset($uri[1])) {
$data[0] = $uri[0];
$data[1] = $uri[1];
// Some more uri parts :)
// site.ru/part1/part2/part3/part4/part5/part6/
if (isset($uri[2])) $data[2] = $uri[2];
if (isset($uri[3])) $data[3] = $uri[3];
if (isset($uri[4])) $data[4] = $uri[4];
if (isset($uri[5])) $data[5] = $uri[5];
foreach ($uri as $part) {
$data[] = $part;
}
} else { // default
$data[0] = $uri[0];
}

View File

@@ -9,7 +9,7 @@
* @package Monstra
*
* @author Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2013 Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2014 Romanenko Sergey / Awilum <awilum@msn.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.

View File

@@ -9,7 +9,7 @@
* @package Monstra
*
* @author Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2013 Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2014 Romanenko Sergey / Awilum <awilum@msn.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
@@ -546,7 +546,7 @@ class Table
if ($order_by == 'id') {
$records[$count]['sort'] = (int) $vars['id'];
} else {
$records[$count]['sort'] = (string) $value;
$records[$count]['sort'] = (string) $vars[$order_by];
}
}
@@ -807,6 +807,7 @@ class Table
return $c;
}
return $a;
}
/**
@@ -853,7 +854,7 @@ class Table
*/
protected static function _save($table)
{
$dom = new DOMDocument('1.0');
$dom = new DOMDocument('1.0', 'utf-8');
$dom->preserveWhiteSpace = false;
// Save new xml data to xml file only if loadXML successful.

View File

@@ -9,7 +9,7 @@
* @package Monstra
*
* @author Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2013 Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2014 Romanenko Sergey / Awilum <awilum@msn.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.

View File

@@ -1,19 +1,10 @@
<?php defined('MONSTRA_ACCESS') or die('No direct script access.');
/**
* Report All Errors
*
* By setting error reporting to -1, we essentially force PHP to report
* every error, and this is guranteed to show every error on future
* releases of PHP. This allows everything to be fixed early!
* Monstra requires PHP 5.2.3 or greater
*/
error_reporting(-1);
/**
* Monstra requires PHP 5.2.0 or greater
*/
if (version_compare(PHP_VERSION, "5.2.0", "<")) {
exit("Monstra requires PHP 5.2.0 or greater.");
if (version_compare(PHP_VERSION, "5.2.3", "<")) {
exit("Monstra requires PHP 5.2.3 or greater.");
}
/**
@@ -30,7 +21,16 @@ include ROOT . DS .'engine'. DS .'Monstra.php';
* Monstra::STAGING - The staging environment.
* Monstra::PRODUCTION - The production environment.
*/
Monstra::$environment = Monstra::DEVELOPMENT;
Monstra::$environment = Monstra::PRODUCTION;
/**
* Report Errors
*/
if (Monstra::$environment == Monstra::PRODUCTION) {
error_reporting(0);
} else {
error_reporting(-1);
}
/**
* Initialize Monstra

View File

@@ -4,4 +4,4 @@
* Set meta generator
*/
Action::add('theme_meta', 'setMetaGenerator');
function setMetaGenerator() { echo '<meta name="generator" content="Powered by Monstra '.Monstra::VERSION.'" />'; }
function setMetaGenerator() { echo '<meta name="generator" content="Powered by Monstra '.Monstra::VERSION.'" />'."\n"; }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -9,7 +9,7 @@
* @package Monstra
*
* @author Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2013 Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2014 Romanenko Sergey / Awilum <awilum@msn.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
@@ -21,16 +21,6 @@ define('ROOT', rtrim(dirname(__FILE__), '\\/'));
define('BACKEND', false);
define('MONSTRA_ACCESS', true);
/* TEMP CODE BEGIN */
function byteFormat($size)
{
$unit = array('b', 'kb', 'mb', 'gb', 'tb', 'pb');
return @round($size/pow(1024, ($i=floor(log($size, 1024)))), 2).' '.$unit[$i];
}
$_start = memory_get_usage();
/* TEMP CODE END */
// First check for installer then go
if (file_exists('install.php')) {
if (isset($_GET['install'])) {
@@ -55,6 +45,9 @@ if (file_exists('install.php')) {
if ((Session::exists('user_role')) and (Session::get('user_role') == 'admin' or Session::get('user_role') == 'editor')) {
// Monstra show this page :)
} else {
header('HTTP/1.1 503 Service Temporarily Unavailable');
header('Status: 503 Service Temporarily Unavailable');
header('Retry-After: 600');
die (Text::toHtml(Option::get('maintenance_message')));
}
}
@@ -71,7 +64,3 @@ if (file_exists('install.php')) {
// Flush (send) the output buffer and turn off output buffering
ob_end_flush();
}
/* TEMP CODE BEGIN */
echo byteFormat(memory_get_usage() - $_start);
/* TEMP CODE END */

View File

@@ -10,17 +10,20 @@
if ( ! defined('BACKEND')) define('BACKEND', false);
if ( ! defined('MONSTRA_ACCESS')) define('MONSTRA_ACCESS', true);
// Set default timezone
$system_timezone = date_default_timezone_get();
// Load bootstrap file
require_once(ROOT . DS . 'engine' . DS . '_init.php');
// Get array with the names of all modules compiled and loaded
$php_modules = get_loaded_extensions();
// Get server port
if ($_SERVER["SERVER_PORT"] == "80") $port = ""; else $port = ':'.$_SERVER["SERVER_PORT"];
// Get site URL
$site_url = 'http://'.$_SERVER["SERVER_NAME"].str_replace(array("index.php", "install.php"), "", $_SERVER['PHP_SELF']);
$site_url = 'http://'.$_SERVER["SERVER_NAME"].$port.str_replace(array("index.php", "install.php"), "", $_SERVER['PHP_SELF']);
// Replace last slash in site_url
$site_url = rtrim($site_url, '/');
// Rewrite base
$rewrite_base = str_replace(array("index.php", "install.php"), "", $_SERVER['PHP_SELF']);
@@ -32,16 +35,21 @@
$dir_array = array('public', 'storage', 'backups', 'tmp');
// Languages array
$languages_array = array('en', 'ru', 'lt', 'it', 'de', 'pt-br', 'uk');
$languages_array = array('en', 'ru', 'fr', 'de', 'it', 'es', 'lt', 'pl', 'pt-br', 'hu', 'fa' , 'sk', 'uk', 'nl', 'sr-yu', 'id', 'ja', 'zh-cn', 'tr');
// Select Monstra language
if (Request::get('language')) {
if (Request::get('action') && Request::get('action') == 'install') {
$action = '?action=install';
} else {
$action = '';
}
if (in_array(Request::get('language'), $languages_array)) {
if (Option::update('language', Request::get('language'))) {
Request::redirect($site_url);
Request::redirect($site_url.$action);
}
} else {
Request::redirect($site_url);
Request::redirect($site_url.$action);
}
}
@@ -77,6 +85,7 @@
'slogan' => __('Site slogan', 'system'),
'defaultpage' => 'home',
'timezone' => Request::post('timezone'),
'system_email' => Request::post('email'),
'theme_site_name' => 'default',
'theme_admin_name' => 'default'));
@@ -101,6 +110,8 @@
// Installation done :)
header("location: index.php?install=done");
} else {
Notification::setNow('errors', $errors);
}
}
?>
@@ -111,89 +122,119 @@
<title>Monstra :: Install</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="Monstra Install Area">
<link rel="icon" href="<?php echo $site_url; ?>favicon.ico" type="image/x-icon" />
<link rel="shortcut icon" href="<?php echo $site_url; ?>favicon.ico" type="image/x-icon" />
<link rel="stylesheet" href="<?php echo $site_url; ?>public/assets/css/bootstrap.css" media="all" type="text/css" />
<link rel="stylesheet" href="<?php echo $site_url; ?>public/assets/css/bootstrap-responsive.css" media="all" type="text/css" />
<link rel="stylesheet" href="<?php echo $site_url; ?>admin/themes/default/css/default.css" media="all" type="text/css" />
<link rel="icon" href="<?php echo $site_url; ?>/favicon.ico" type="image/x-icon" />
<link rel="shortcut icon" href="<?php echo $site_url; ?>/favicon.ico" type="image/x-icon" />
<link rel="stylesheet" href="<?php echo $site_url; ?>/public/assets/css/bootstrap.css" media="all" type="text/css" />
<link rel="stylesheet" href="<?php echo $site_url; ?>/admin/themes/default/css/default.css" media="all" type="text/css" />
<style>
.input-xlarge {
width: 285px;
.install-body {
margin-top: 40px;
background: #FAFAFA;
}
.install-languages {
margin: 0 auto;
float: none!important;
margin-bottom:5px;
padding-right:20px;
max-width: 300px;
margin: 20px auto 20px;
text-align: center;
width: 600px;
}
.install-block {
.install-block,
.monstra-dialog,
.install-block-footer {
margin: 0 auto;
float: none!important;
max-width: 300px;
padding: 19px 29px 29px;
background: none repeat scroll 0 0 #fff;
-webkit-box-shadow: 0 1px 5px rgba(0,0,0,.15);
-moz-box-shadow: 0 1px 5px rgba(0,0,0,.15);
box-shadow: 0 1px 5px rgba(0,0,0,.15);
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
border-radius: 4px;
width: 600px;
}
.install-block-footer {
margin: 0 auto;
float: none!important;
margin-top:10px;
margin-bottom:10px;
max-width: 300px;
margin-top: 20px;
margin-bottom: 20px;
}
.install-body {
background-color: #FBFBFB;
padding-top:40px;
.well {
border: none;
border-radius: 0px;
background: #fff;
color: #555;
-webkit-font-smoothing: subpixel-antialiased;
-webkit-box-shadow: 0 1px 3px rgba(0,0,0,.13);
box-shadow: 0 1px 3px rgba(0,0,0,.13);
}
.form-control {
border-radius: 0px;
}
.monstra-says {
margin: 20px;
}
.error {
color:#8E0505;
padding-top: 5px;
padding-bottom: 5px;
padding-top: 5px;
padding-bottom: 5px;
margin-bottom: 5px;
}
.ok {
color:#00853F;
padding-top: 5px;
padding-bottom: 5px;
margin-bottom: 5px;
}
.warn {
color: #F74C18;
padding-top: 5px;
padding-bottom: 5px;
}
.language-link {
color:#7A7A7C;
.install-languages a {
padding-left: 2px;
padding-right: 2px;
}
.language-link+.language-link:before {
color: #ccc;
content: ' | ';
.language-link img {
-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=30)";
filter: alpha(opacity=30);
-khtml-opacity: 0.3;
-moz-opacity:0.3;
opacity: 0.3;
}
.language-link:hover {
color:#000;
text-decoration: none;
.language-link-current img {
-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
filter: alpha(opacity=100);
-moz-opacity:1.0;
-khtml-opacity: 1.0;
opacity: 1.0;
}
.language-link-current {
color:#000;
font-weight: 700;
.install-languages a img:hover {
-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
filter: alpha(opacity=100);
-moz-opacity:1.0;
-khtml-opacity: 1.0;
opacity: 1.0;
}
.continue {
width: 100%;
}
</style>
<script src="<?php echo $site_url; ?>/public/assets/js/jquery.min.js"></script>
<script src="<?php echo $site_url; ?>/public/assets/js/bootstrap.min.js"></script>
</head>
<body class="install-body">
<?php
if (version_compare(PHP_VERSION, "5.2.0", "<")) {
if (version_compare(PHP_VERSION, "5.2.3", "<")) {
$errors['php'] = 'error';
} else {
$errors['php'] = '';
@@ -243,41 +284,73 @@
}
?>
<div class="text-center"><a class="brand" href="<?php echo Html::toText($site_url); ?>"><img src="<?php echo $site_url; ?>/public/assets/img/monstra-logo-256px.png" alt="Monstra"></a></div>
<div class="install-languages">
<?php
if (Request::get('action') && Request::get('action') == 'install') {
$action = '&action=install';
} else {
$action = '';
}
?>
<?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>
<a data-placement="top" data-toggle="tooltip" class="language-link<?php if (Option::get('language') == $lang_code) echo ' language-link-current';?>" title="<?php echo I18n::$locales[$lang_code]; ?>" href="<?php echo $site_url.'/?language=' . $lang_code.$action; ?>"><img src="<?php echo $site_url; ?>/public/assets/img/flags/<?php echo $lang_code?>.png" alt="<?php echo $lang_code?>"></a>
<?php } ?>
</div>
<div class="install-block">
<div style="text-align:center;"><a class="brand" href="<?php echo Html::toText($site_url); ?>"><img src="<?php echo $site_url; ?>public/assets/img/monstra-logo.png" height="27" width="171" alt="Monstra"></a></div>
<hr>
<div>
<form action="install.php" method="post">
<input type="hidden" name="php" value="<?php echo $errors['php']; ?>" />
<input type="hidden" name="simplexml" value="<?php echo $errors['simplexml']; ?>" />
<input type="hidden" name="mod_rewrite" value="<?php echo $errors['mod_rewrite']; ?>" />
<input type="hidden" name="install" value="<?php echo $errors['install']; ?>" />
<input type="hidden" name="sitemap" value="<?php echo $errors['sitemap']; ?>" />
<input type="hidden" name="htaccess" value="<?php echo $errors['htaccess']; ?>" />
<input type="hidden" name="public" value="<?php echo $errors['public']; ?>" />
<input type="hidden" name="storage" value="<?php echo $errors['storage']; ?>" />
<input type="hidden" name="backups" value="<?php echo $errors['backups']; ?>" />
<input type="hidden" name="tmp" value="<?php echo $errors['tmp']; ?>" />
<label><?php echo __('Site name', 'system'); ?></label>
<input class="input-xlarge" name="sitename" type="text" value="<?php if (Request::post('sitename')) echo Html::toText(Request::post('sitename')); ?>" />
<br />
<label><?php echo __('Site url', 'system'); ?></label>
<input class="input-xlarge" name="siteurl" type="text" value="<?php echo Html::toText($site_url); ?>" />
<br />
<div class="install-block <?php if(Request::get('action') && Request::get('action') == 'install') { ?><?php } else { ?> hide <?php } ?>">
<ul class="list-unstyled">
<?php
// Monstra Notifications
if (Notification::get('errors') && count(Notification::get('errors') > 0)) {
foreach (Notification::get('errors') as $error) {
?>
<li class="error alert alert-danger"><?php echo $error; ?></li>
<?php
}
}
?>
</ul>
<div class="well">
<form action="install.php?action=install" method="post">
<input type="hidden" name="php" value="<?php echo $errors['php']; ?>">
<input type="hidden" name="simplexml" value="<?php echo $errors['simplexml']; ?>">
<input type="hidden" name="mod_rewrite" value="<?php echo $errors['mod_rewrite']; ?>">
<input type="hidden" name="install" value="<?php echo $errors['install']; ?>">
<input type="hidden" name="sitemap" value="<?php echo $errors['sitemap']; ?>">
<input type="hidden" name="htaccess" value="<?php echo $errors['htaccess']; ?>">
<input type="hidden" name="public" value="<?php echo $errors['public']; ?>">
<input type="hidden" name="storage" value="<?php echo $errors['storage']; ?>">
<input type="hidden" name="backups" value="<?php echo $errors['backups']; ?>">
<input type="hidden" name="tmp" value="<?php echo $errors['tmp']; ?>">
<div class="form-group">
<label><?php echo __('Site Name', 'system'); ?></label>
<input class="form-control" name="sitename" type="text" value="<?php if (Request::post('sitename')) echo Html::toText(Request::post('sitename')); ?>" />
</div>
<div class="form-group">
<label><?php echo __('Site Url', 'system'); ?></label>
<input class="form-control" name="siteurl" type="text" value="<?php echo Html::toText($site_url); ?>" />
</div>
<div class="form-group">
<label><?php echo __('Username', 'users'); ?></label>
<input class="input-xlarge" class="login" name="login" value="<?php if(Request::post('login')) echo Html::toText(Request::post('login')); ?>" type="text" />
<br />
<input class="form-control login" name="login" value="<?php if(Request::post('login')) echo Html::toText(Request::post('login')); ?>" type="text" />
</div>
<div class="form-group">
<label><?php echo __('Password', 'users'); ?></label>
<input class="input-xlarge" name="password" type="password" />
<br />
<input class="form-control" name="password" type="password" />
</div>
<div class="form-group">
<label><?php echo __('Time zone', 'system'); ?></label>
<select class="input-xlarge" name="timezone">
<select class="form-control" name="timezone">
<option value="Kwajalein">(GMT-12:00) International Date Line West</option>
<option value="Pacific/Samoa">(GMT-11:00) Midway Island, Samoa</option>
<option value="Pacific/Honolulu">(GMT-10:00) Hawaii</option>
@@ -365,87 +438,104 @@
<option value="Pacific/Auckland">(GMT+12:00) Auckland, Wellington</option>
<option value="Pacific/Tongatapu">(GMT+13:00) Nukualofa</option>
</select>
<label><?php echo __('Email', 'users'); ?></label>
<input name="email" class="input-xlarge" value="<?php if (Request::post('email')) echo Html::toText(Request::post('email')); ?>" type="text" />
<br /><br />
<input type="submit" class="btn" name="install_submit" value="<?php echo __('Install', 'system'); ?>" />
</form>
</div>
<hr>
<p align="center"><strong><?php echo __('...Monstra says...', 'system'); ?></strong></p>
<div>
<ul>
<div class="form-group">
<label><?php echo __('Email', 'users'); ?></label>
<input name="email" class="form-control" value="<?php if (Request::post('email')) echo Html::toText(Request::post('email')); ?>" type="text" />
</div>
<div class="form-group">
<input type="submit" class="btn btn-primary" name="install_submit" value="<?php echo __('Install', 'system'); ?>" />
</div>
</form>
</div>
</div>
<div class="monstra-dialog <?php if(Request::get('action') && Request::get('action') == 'install') { ?>hide<?php } ?>">
<ul class="list-unstyled">
<?php
if (version_compare(PHP_VERSION, "5.2.0", "<")) {
echo '<span class="error"><li>'.__('PHP 5.2 or greater is required', 'system').'</li></span>';
echo '<li class="error alert alert-danger">'.__('PHP 5.2 or greater is required', 'system').'</li>';
} else {
echo '<span class="ok"><li>'.__('PHP Version', 'system').' '.PHP_VERSION.'</li></span>';
echo '<li class="ok alert alert-success">'.__('PHP Version', 'system').' '.PHP_VERSION.'</li>';
}
if (in_array('SimpleXML', $php_modules)) {
echo '<span class="ok"><li>'.__('Module SimpleXML is installed', 'system').'</li></span>';
echo '<li class="ok alert alert-success">'.__('Module SimpleXML is installed', 'system').'</li>';
} else {
echo '<span class="error"><li>'.__('SimpleXML module is required', 'system').'</li></span>';
echo '<li class="error alert alert-danger">'.__('SimpleXML module is required', 'system').'</li>';
}
if (in_array('dom', $php_modules)) {
echo '<span class="ok"><li>'.__('Module DOM is installed', 'system').'</li></span>';
echo '<li class="ok alert alert-success">'.__('Module DOM is installed', 'system').'</li>';
} else {
echo '<span class="error"><li>'.__('Module DOM is required', 'system').'</li></span>';
echo '<li class="error alert alert-danger">'.__('Module DOM is required', 'system').'</li>';
}
if (function_exists('apache_get_modules')) {
if ( ! in_array('mod_rewrite',apache_get_modules())) {
echo '<span class="error"><li>'.__('Apache Mod Rewrite is required', 'system').'</li></span>';
echo '<li class="error alert alert-danger">'.__('Apache Mod Rewrite is required', 'system').'</li>';
} else {
echo '<span class="ok"><li>'.__('Module Mod Rewrite is installed', 'system').'</li></span>';
echo '<li class="ok alert alert-success">'.__('Module Mod Rewrite is installed', 'system').'</li>';
}
} else {
echo '<span class="ok"><li>'.__('Module Mod Rewrite is installed', 'system').'</li></span>';
echo '<li class="ok alert alert-success">'.__('Module Mod Rewrite is installed', 'system').'</li>';
}
foreach ($dir_array as $dir) {
if (is_writable($dir.'/')) {
echo '<span class="ok"><li>'.__('Directory: <b> :dir </b> writable', 'system', array(':dir' => $dir)).'</li></span>';
echo '<li class="ok alert alert-success">'.__('Directory: <b> :dir </b> writable', 'system', array(':dir' => $dir)).'</li>';
} else {
echo '<span class="error"><li>'.__('Directory: <b> :dir </b> not writable', 'system', array(':dir' => $dir)).'</li></span>';
echo '<li class="error alert alert-danger">'.__('Directory: <b> :dir </b> not writable', 'system', array(':dir' => $dir)).'</li>';
}
}
if (is_writable(__FILE__)) {
echo '<span class="ok"><li>'.__('Install script writable', 'system').'</li></span>';
echo '<li class="ok alert alert-success">'.__('Install script writable', 'system').'</li>';
} else {
echo '<span class="error"><li>'.__('Install script not writable', 'system').'</li></span>';
echo '<li class="error alert alert-danger">'.__('Install script not writable', 'system').'</li>';
}
if (is_writable('sitemap.xml')) {
echo '<span class="ok"><li>'.__('Sitemap file writable', 'system').'</li></span>';
echo '<li class="ok alert alert-success">'.__('Sitemap file writable', 'system').'</li>';
} else {
echo '<span class="error"><li>'.__('Sitemap file not writable', 'system').'</li></span>';
echo '<li class="error alert alert-danger">'.__('Sitemap file not writable', 'system').'</li>';
}
if (is_writable('.htaccess')) {
echo '<span class="ok"><li>'.__('Main .htaccess file writable', 'system').'</li></span>';
echo '<li class="ok alert alert-success">'.__('Main .htaccess file writable', 'system').'</li>';
} else {
echo '<span class="error"><li>'.__('Main .htaccess file not writable', 'system').'</li></span>';
echo '<li class="error alert alert-danger">'.__('Main .htaccess file not writable', 'system').'</li>';
}
if (isset($errors['sitename'])) echo '<span class="error"><li>'.$errors['sitename'].'</li></span>';
if (isset($errors['siteurl'])) echo '<span class="error"><li>'.$errors['siteurl'].'</li></span>';
if (isset($errors['login'])) echo '<span class="error"><li>'.$errors['login'].'</li></span>';
if (isset($errors['password'])) echo '<span class="error"><li>'.$errors['password'].'</li></span>';
if (isset($errors['email'])) echo '<span class="error"><li>'.$errors['email'].'</li></span>';
if (isset($errors['email_valid'])) echo '<span class="error"><li>'.$errors['email_valid'].'</li></span>';
if (isset($errors['sitename'])) echo '<li class="error">'.$errors['sitename'].'</li>';
if (isset($errors['siteurl'])) echo '<li class="error">'.$errors['siteurl'].'</li>';
if (isset($errors['login'])) echo '<li class="error">'.$errors['login'].'</li>';
if (isset($errors['password'])) echo '<li class="error">'.$errors['password'].'</li>';
if (isset($errors['email'])) echo '<li class="error">'.$errors['email'].'</li>';
if (isset($errors['email_valid'])) echo '<li class="error">'.$errors['email_valid'].'</li>';
?>
</ul>
<a href="install.php?action=install" class="btn btn-primary continue"><?php echo __('Continue', 'system'); ?></a>
</div>
<div class="install-block-footer login-footer">
<div class="text-center">
<span>© 2012 - 2014 <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 class="install-block-footer">
<div style="text-align:center">
<span class="small-grey-text">© 2012 - 2013 <a href="http://monstra.org" class="small-grey-text" target="_blank">Monstra</a> <?php echo __('Version', 'system'); ?> <?php echo Monstra::VERSION; ?></span>
</div>
</div>
<script type="text/javascript">
$('.language-link').tooltip();
$(document).ready(function() {
$('.continue').click(function() {
$('.monstra-dialog').addClass('hide');
$('.install-block').removeClass('hide');
});
});
</script>
</body>
</html>

View File

@@ -9,7 +9,7 @@
* @package Gelato
*
* @author Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2013 Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2014 Romanenko Sergey / Awilum <awilum@msn.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
@@ -71,6 +71,12 @@ class Agent
'infoseek',
'lycos',
'ia_archiver',
'yandex',
'mail.ru',
'ask.com',
'Copyscape.com',
'bing.com',
);
/**

View File

@@ -9,7 +9,7 @@
* @package Gelato
*
* @author Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2013 Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2014 Romanenko Sergey / Awilum <awilum@msn.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.

View File

@@ -9,7 +9,7 @@
* @package Gelato
*
* @author Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2013 Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2014 Romanenko Sergey / Awilum <awilum@msn.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
@@ -22,14 +22,14 @@ class Cache
*
* @var string
*/
public static $cache_dir = '';
protected static $cache_dir = '';
/**
* Cache file ext
*
* @var string
*/
public static $cache_file_ext = 'txt';
protected static $cache_file_ext = 'txt';
/**
* Cache life time (in seconds)

View File

@@ -9,7 +9,7 @@
* @package Gelato
*
* @author Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2013 Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2014 Romanenko Sergey / Awilum <awilum@msn.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
@@ -124,7 +124,7 @@ class ClassLoader
* Set an alias for a class.
*
* <code>
* ClassLoader::registerNamespace('ClassNameAlias', 'ClassName');
* ClassLoader::alias('ClassNameAlias', 'ClassName');
* </code>
*
* @access public
@@ -222,4 +222,15 @@ class ClassLoader
return false;
}
/**
* Register the Gelato ClassLoader to the SPL autoload stack.
*
* @return void
*/
public static function register()
{
spl_autoload_register('ClassLoader::load', true);
}
}

View File

@@ -9,7 +9,7 @@
* @package Gelato
*
* @author Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2013 Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2014 Romanenko Sergey / Awilum <awilum@msn.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.

View File

@@ -9,7 +9,7 @@
* @package Gelato
*
* @author Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2013 Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2014 Romanenko Sergey / Awilum <awilum@msn.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.

View File

@@ -9,7 +9,7 @@
* @package Gelato
*
* @author Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2013 Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2014 Romanenko Sergey / Awilum <awilum@msn.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.

View File

@@ -9,7 +9,7 @@
* @package Gelato
*
* @author Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2013 Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2014 Romanenko Sergey / Awilum <awilum@msn.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.

View File

@@ -9,7 +9,7 @@
* @package Gelato
*
* @author Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2013 Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2014 Romanenko Sergey / Awilum <awilum@msn.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
@@ -18,6 +18,25 @@
class ErrorHandler
{
/**
* Error Levels
*/
public static $levels = array (
E_ERROR => 'Fatal Error',
E_PARSE => 'Parse Error',
E_COMPILE_ERROR => 'Compile Error',
E_COMPILE_WARNING => 'Compile Warning',
E_STRICT => 'Strict Mode Error',
E_NOTICE => 'Notice',
E_WARNING => 'Warning',
E_RECOVERABLE_ERROR => 'Recoverable Error',
E_USER_NOTICE => 'Notice',
E_USER_WARNING => 'Warning',
E_USER_ERROR => 'Error',
/*E_DEPRECATED => 'Deprecated',*/ /* PHP 5.3 only */
/*E_USER_DEPRECATED => 'Deprecated'*/ /* PHP 5.3 only */
);
/**
* Protected constructor since this is a static class.
*
@@ -80,12 +99,36 @@ class ErrorHandler
* @param integer $line The line number where the error occurred
* @return boolean
*/
public static function errorHandler($code, $message, $file, $line)
public static function error($code, $message, $file, $line)
{
// If isset error_reporting and $code then throw new error exception
if ((error_reporting() & $code) !== 0) {
/**
* Dont thow NOTICE exception for PRODUCTION Environment. Just write to log.
*/
if (GELATO_DEVELOPMENT == false && $code == 8) {
// Get exception info
$error['code'] = $code;
$error['message'] = $message;
$error['file'] = $file;
$error['line'] = $line;
$error['type'] = 'ErrorException: ';
$codes = array (
E_USER_NOTICE => 'Notice',
);
$error['type'] .= in_array($error['code'], array_keys($codes)) ? $codes[$error['code']] : 'Unknown Error';
// Write to log
Log::write("{$error['type']}: {$error['message']} in {$error['file']} at line {$error['line']}");
} else {
throw new ErrorException($message, $code, 0, $file, $line);
}
}
// Don't execute PHP internal error handler
return true;
@@ -170,7 +213,7 @@ class ErrorHandler
if (isset($entry['file'])) {
$location['file'] = $entry['file'];
$location['line'] = $entry['line'];
$location['code'] = static::highlightCode($entry['file'], $entry['line']);
$location['code'] = self::highlightCode($entry['file'], $entry['line']);
}
/**
@@ -188,9 +231,9 @@ class ErrorHandler
}
/**
* Convert errors not caught by the errorHandler to ErrorExceptions.
* Convert errors not caught by the error handler to ErrorExceptions.
*/
public static function fatalErrorHandler()
public static function fatal()
{
$e = error_get_last();
@@ -210,70 +253,54 @@ class ErrorHandler
public static function exception($exception)
{
try {
// Empty output buffers
// Empty output buffers
while(ob_get_level() > 0) ob_end_clean();
// Get exception info
$error['code'] = $exception->getCode();
$error['message'] = $exception->getMessage();
$error['file'] = $exception->getFile();
$error['line'] = $exception->getLine();
// Determine error type
if ($exception instanceof ErrorException) {
$error['type'] = 'ErrorException: ';
$codes = array
(
E_ERROR => 'Fatal Error',
E_PARSE => 'Parse Error',
E_COMPILE_ERROR => 'Compile Error',
E_COMPILE_WARNING => 'Compile Warning',
E_STRICT => 'Strict Mode Error',
E_NOTICE => 'Notice',
E_WARNING => 'Warning',
E_RECOVERABLE_ERROR => 'Recoverable Error',
/*E_DEPRECATED => 'Deprecated',*/
E_USER_NOTICE => 'Notice',
E_USER_WARNING => 'Warning',
E_USER_ERROR => 'Error',
/*E_USER_DEPRECATED => 'Deprecated'*/
);
$error['type'] .= in_array($error['code'], array_keys($codes)) ? $codes[$error['code']] : 'Unknown Error';
$error['type'] .= in_array($error['code'], array_keys(ErrorHandler::$levels)) ? ErrorHandler::$levels[$error['code']] : 'Unknown Error';
} else {
$error['type'] = get_class($exception);
}
// @todo Write to error log
/*if () {
Write here
}*/
// Write to log
Log::write("{$error['type']}: {$error['message']} in {$error['file']} at line {$error['line']}");
// Send headers and output
@header('Content-Type: text/html; charset=UTF-8');
if (GELATO_DISPLAY_ERRORS) {
if (GELATO_DEVELOPMENT) {
$error['backtrace'] = $exception->getTrace();
if ($exception instanceof ErrorException) {
$error['backtrace'] = array_slice($error['backtrace'], 1); //Remove call to error handler from backtrace
}
$error['backtrace'] = static::formatBacktrace($error['backtrace']);
$error['highlighted'] = static::highlightCode($error['file'], $error['line']);
$error['backtrace'] = self::formatBacktrace($error['backtrace']);
$error['highlighted'] = self::highlightCode($error['file'], $error['line']);
Response::status(500);
@header('HTTP/1.1 500 Internal Server Error');
include 'Resources/Views/Errors/exception.php';
} else {
Response::status(500);
@header('HTTP/1.1 500 Internal Server Error');
include 'Resources/Views/Errors/production.php';
}
} catch (Exception $e) {
// Empty output buffers
while(ob_get_level() > 0) ob_end_clean();
echo $e->getMessage() . ' in ' . $e->getFile() . ' (line ' . $e->getLine() . ').';

View File

@@ -4,13 +4,17 @@
<meta charset="utf-8">
<title>Error</title>
<style type="text/css">
body {
background: #F5F5F5;
padding: 0;
margin: 0;
}
#gelato-error {
background:#eee;
background:#F5F5F5;
color:0;
width:95%;
width:100%;
font-size:14px;
font-family:Verdana, Arial, Helvetica, "Nimbus Sans", FreeSans, Malayalam, sans-serif;
margin:20px auto;
}
#gelato-error pre {
@@ -21,16 +25,17 @@
}
#gelato-error a {
color:#cc0a0a;
color:#DC143C;
text-decoration:none;
}
#gelato-error .error {
background:#cc0a0a;
background:#DC143C;
color:#fff;
font-size:24px;
font-weight:700;
padding:10px;
}
#gelato-error .body {
@@ -271,7 +276,10 @@
<?php endforeach; ?>
</table>
</div>
<div style="padding-top:20px;padding-bottom:20px; padding-left:10px;"><a href="http://gelato.monstra.org">Gelato Library</a></div>
<div style="padding-top:20px;padding-bottom:20px; padding-left:10px;">
<a href="http://monstra.org">MONSTRA</a>
<a href="http://gelato.monstra.org">GELATO</a>
</div>
</div>
<script type="text/javascript">

View File

@@ -9,7 +9,7 @@
* @package Gelato
*
* @author Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2013 Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2014 Romanenko Sergey / Awilum <awilum@msn.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
@@ -203,4 +203,26 @@ class Dir
return $total_size;
}
/**
* Copy directory.
* <code>
* Dir::copy('source_folder_path', 'destination_folder_path);
* </code>
* @param $src
* @param $dst
*/
public static function copy($src, $dst) {
$dir = opendir($src);
@mkdir($dst);
while(false !== ( $file = readdir($dir)) ) {
if (( $file != '.' ) && ( $file != '..' )) {
if ( is_dir($src .'/'. $file) ) {
self::copy($src .'/'. $file, $dst .'/'. $file);
} else {
copy($src .'/'. $file,$dst .'/'. $file);
}
}
}
closedir($dir);
}
}

View File

@@ -9,7 +9,7 @@
* @package Gelato
*
* @author Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2013 Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2014 Romanenko Sergey / Awilum <awilum@msn.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.

View File

@@ -9,7 +9,7 @@
* @package Gelato
*
* @author Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2013 Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2014 Romanenko Sergey / Awilum <awilum@msn.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
@@ -141,7 +141,7 @@ class Form
$attributes['type'] = 'text';
}
return '<input'.Html::attributes($attributes).' />';
return '<input'.Html::attributes($attributes).'>';
}
/**

View File

@@ -9,7 +9,7 @@
* @package Gelato
*
* @author Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2013 Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2014 Romanenko Sergey / Awilum <awilum@msn.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
@@ -18,22 +18,46 @@
/**
* The version of Gelato
*/
define('GELATO_VERSION', '1.0.0');
define('GELATO_VERSION', '1.0.3');
/**
* Define __DIR__ constant for PHP 5.2.x
*/
if ( ! defined('__DIR__')) {
define('__DIR__', dirname(__FILE__));
}
/**
* Display Gelato Errors or not ?
*/
if ( ! defined('GELATO_DISPLAY_ERRORS')) {
define('GELATO_DISPLAY_ERRORS', true);
if ( ! defined('GELATO_DEVELOPMENT')) {
define('GELATO_DEVELOPMENT', true);
}
/**
* Display Gelato Autoloader or not ?
* Use Gelato Class Loader or not ?
*/
if ( ! defined('GELATO_AUTOLOADER')) {
define('GELATO_AUTOLOADER', true);
if ( ! defined('GELATO_CLASS_LOADER')) {
define('GELATO_CLASS_LOADER', true);
}
/**
* Load Gelato Logger
*/
require_once __DIR__ . '/Log/Log.php';
/**
* Use Gelato Logger default path or not ?
*/
if ( ! defined('GELATO_LOGS_PATH')) {
define('GELATO_LOGS_PATH', __DIR__. '/_logs');
}
/**
* Configure Gelato Logger
*/
Log::configure('path', GELATO_LOGS_PATH);
/**
* Load Gelato Error Handler
*/
@@ -42,12 +66,12 @@ require_once __DIR__ . '/ErrorHandler/ErrorHandler.php';
/**
* Set Error Handler
*/
set_error_handler('ErrorHandler::errorHandler');
set_error_handler('ErrorHandler::error');
/**
* Set Fatal Error Handler
*/
register_shutdown_function('ErrorHandler::fatalErrorHandler');
register_shutdown_function('ErrorHandler::fatal');
/**
* Set Exception Handler
@@ -76,7 +100,9 @@ ClassLoader::mapClasses(array(
'Html' => __DIR__.'/Html/Html.php',
'Image' => __DIR__.'/Image/Image.php',
'Inflector' => __DIR__.'/Inflector/Inflector.php',
'Minify' => __DIR__.'/Minify/Minify.php',
'MinifyCSS' => __DIR__.'/Minify/MinifyCSS.php',
'MinifyHTML' => __DIR__.'/Minify/MinifyHTML.php',
'MinifyJS' => __DIR__.'/Minify/MinifyJS.php',
'Notification' => __DIR__.'/Notification/Notification.php',
'Number' => __DIR__.'/Number/Number.php',
'Registry' => __DIR__.'/Registry/Registry.php',
@@ -91,8 +117,8 @@ ClassLoader::mapClasses(array(
));
/**
* Register Gelato Autoloader
* Register Gelato Class Loader
*/
if (GELATO_AUTOLOADER) {
spl_autoload_register('ClassLoader::load');
if (GELATO_CLASS_LOADER) {
ClassLoader::register();
}

View File

@@ -9,7 +9,7 @@
* @package Gelato
*
* @author Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2013 Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2014 Romanenko Sergey / Awilum <awilum@msn.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
@@ -29,6 +29,13 @@ class Html
'style', 'selected', 'checked', 'readonly', 'disabled',
);
/**
* The registered custom macros.
*
* @var array
*/
public static $macros = array();
/**
* Protected constructor since this is a static class.
*
@@ -44,7 +51,7 @@ class Html
*
* <code>
*
* // Registering a Htmlk macro
* // Registering a Html macro
* Html::macro('my_element', function() {
* return '<element id="monstra">';
* });
@@ -54,7 +61,7 @@ class Html
*
*
* // Registering a Html macro with parameters
* Html::macro('my_element', function(id = '') {
* Html::macro('my_element', function($id = '') {
* return '<element id="'.$id.'">';
* });
*
@@ -150,7 +157,7 @@ class Html
*/
public static function br($num = 1)
{
return str_repeat("<br />",(int) $num);
return str_repeat("<br>",(int) $num);
}
/**
@@ -278,7 +285,56 @@ class Html
$attributes['src'] = $file;
$attributes['alt'] = (isset($attributes['alt'])) ? $attributes['alt'] : pathinfo($file, PATHINFO_FILENAME);
return '<img'.Html::attributes($attributes).' />';
return '<img'.Html::attributes($attributes).'>';
}
/**
* Obfuscate an e-mail address to prevent spam-bots from sniffing it.
*
* <code>
* echo Html::email('gelato@monstra.org');
* </code>
*
* @param string $email
* @return string
*/
public static function email($email)
{
return str_replace('@', '&#64;', Html::obfuscate($email));
}
/**
* Obfuscate a string to prevent spam-bots from sniffing it.
*
* This method obfuscate the value, randomly convert each
* letter to its entity or hexadecimal representation, keeping a
* bot from sniffing the randomly obfuscated letters.
*
* <code>
* echo Html::obfuscate('gelato@monstra.org');
* </code>
*
* @param string $value
* @return string
*/
public static function obfuscate($value)
{
$safe = '';
foreach (str_split($value) as $letter) {
switch (rand(1, 3)) {
case 1:
$safe .= '&#'.ord($letter).';';
break;
case 2:
$safe .= '&#x'.dechex(ord($letter)).';';
break;
case 3:
$safe .= $letter;
}
}
return $safe;
}
/**

View File

@@ -9,7 +9,7 @@
* @package Gelato
*
* @author Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2013 Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2014 Romanenko Sergey / Awilum <awilum@msn.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.

View File

@@ -9,7 +9,7 @@
* @package Gelato
*
* @author Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2013 Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2014 Romanenko Sergey / Awilum <awilum@msn.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.

View File

@@ -9,7 +9,7 @@
* @package Gelato
*
* @author Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2013 Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2014 Romanenko Sergey / Awilum <awilum@msn.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
@@ -176,6 +176,7 @@ class Image
$width = (int) $width;
$height = ($height === null) ? null : (int) $height;
$aspect_ratio = ($aspect_ratio === null) ? null : (int) $aspect_ratio;
$xpos = $ypos = 0;
// Resizes the image to {$width}% of the original size
if ($height === null) {
@@ -186,7 +187,7 @@ class Image
} else {
// Resizes the image to the smalles possible dimension while maintaining aspect ratio
if ($aspect_ratio === Image::AUTO) {
if ($aspect_ratio === Image::AUTO || $aspect_ratio === null) {
// Calculate smallest size based on given height and width while maintaining aspect ratio
$percentage = min(($width / $this->width), ($height / $this->height));
@@ -194,6 +195,11 @@ class Image
$new_width = round($this->width * $percentage);
$new_height = round($this->height * $percentage);
if ($aspect_ratio === null) {
$xpos = (int)(($width - $new_width) / 2);
$ypos = (int)(($height - $new_height) / 2);
}
// Resizes the image using the width to maintain aspect ratio
} elseif ($aspect_ratio === Image::WIDTH) {
@@ -216,23 +222,27 @@ class Image
}
}
// Create a new true color image width new width and height
$resized = imagecreatetruecolor($new_width, $new_height);
$old_image = $this->image;
// Copy and resize part of an image with resampling
imagecopyresampled($resized, $this->image, 0, 0, 0, 0, $new_width, $new_height, $this->width, $this->height);
// Destroy an image
imagedestroy($this->image);
// Create a new true color image width new width and height
if ($aspect_ratio === null) {
$this->image = imagecreatetruecolor($width, $height);
} else {
$this->image = imagecreatetruecolor($new_width, $new_height);
}
if ($this->type === IMAGETYPE_PNG) {
$bgcolor = imagecolorallocatealpha($this->image, 0, 0, 0, 127);
} else {
$bgcolor = imagecolorallocate($this->image, 255, 255, 255);
}
imagefill($this->image, 0, 0, $bgcolor);
// Copy and resize part of an image with resampling
imagecopyresampled($this->image, $resized, 0, 0, 0, 0, $new_width, $new_height, $new_width, $new_height);
imagecopyresampled($this->image, $old_image, $xpos, $ypos, 0, 0, $new_width, $new_height, $this->width, $this->height);
// Destroy an image
imagedestroy($resized);
imagedestroy($old_image);
// Save new width and height
$this->width = $new_width;
@@ -267,23 +277,19 @@ class Image
if ($y + $height > $this->height) $height = $this->height - $y;
if ($width <= 0 || $height <= 0) return false;
// Create a new true color image
$crop = imagecreatetruecolor($width, $height);
// Copy and resize part of an image with resampling
imagecopyresampled($crop, $this->image, 0, 0, $x, $y, $this->width, $this->height, $this->width, $this->height);
// Destroy an image
imagedestroy($this->image);
$old_image = $this->image;
// Create a new true color image
$this->image = imagecreatetruecolor($width, $height);
$transparent = imagecolorallocatealpha($this->image, 0, 0, 0, 127);
imagefill($this->image, 0, 0, $transparent);
// Copy and resize part of an image with resampling
imagecopyresampled($this->image, $crop, 0, 0, 0, 0, $width, $height, $width, $height);
imagecopyresampled($this->image, $old_image, 0, 0, $x, $y, $width, $height, $width, $height);
// Destroy an image
imagedestroy($crop);
imagedestroy($old_image);
// Save new width and height
$this->width = $width;

View File

@@ -9,7 +9,7 @@
* @package Gelato
*
* @author Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2013 Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2014 Romanenko Sergey / Awilum <awilum@msn.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.

View File

@@ -0,0 +1,63 @@
<?php
/**
* Gelato Library
*
* This source file is part of the Gelato Library. More information,
* documentation and tutorials can be found at http://gelato.monstra.org
*
* @package Gelato
*
* @author Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2014 Romanenko Sergey / Awilum <awilum@msn.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
class Log
{
/**
* Path to the logs.
*
* @var string
*/
protected static $path = '';
/**
* Protected constructor since this is a static class.
*
* @access protected
*/
protected function __construct()
{
// Nothing here
}
/**
* Configure Log
*
* @access public
* @param string $setting The setting
* @param string $value The value
*/
public static function configure($setting, $value)
{
if (property_exists("log", $setting)) Log::$$setting = $value;
}
/**
* Writes message to log.
*
* @access public
* @param string $message The message to write to the log
* @return boolean
*/
public static function write($message)
{
return (bool) file_put_contents(rtrim(Log::$path, '/') . '/' . gmdate('Y_m_d') . '.log',
'[' . gmdate('d-M-Y H:i:s') . '] ' . $message . PHP_EOL,
FILE_APPEND);
}
}

View File

@@ -1,93 +0,0 @@
<?php
/**
* Gelato Library
*
* This source file is part of the Gelato Library. More information,
* documentation and tutorials can be found at http://gelato.monstra.org
*
* @package Gelato
*
* @author Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2013 Romanenko Sergey / Awilum <awilum@msn.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
class Minify
{
/**
* Protected constructor since this is a static class.
*
* @access protected
*/
protected function __construct()
{
// Nothing here
}
/**
* Minify html
*
* <code>
* echo Minify::html($buffer);
* </code>
*
* @param string $buffer html
* @return string
*/
public static function html($buffer)
{
return preg_replace('/^\\s+|\\s+$/m', '', $buffer);
}
/**
* Minify css
*
* <code>
* echo Minify::css($buffer);
* </code>
*
* @param string $buffer css
* @return string
*/
public static function css($buffer)
{
// Remove comments
$buffer = preg_replace('!/\*[^*]*\*+([^/][^*]*\*+)*/!', '', $buffer);
// Remove tabs, spaces, newlines, etc.
$buffer = str_replace(array("\r\n", "\r", "\n", "\t", ' ', ' ', ' '), '', $buffer);
// Preserve empty comment after '>' http://www.webdevout.net/css-hacks#in_css-selectors
$buffer = preg_replace('@>/\\*\\s*\\*/@', '>/*keep*/', $buffer);
// Preserve empty comment between property and value
// http://css-discuss.incutio.com/?page=BoxModelHack
$buffer = preg_replace('@/\\*\\s*\\*/\\s*:@', '/*keep*/:', $buffer);
$buffer = preg_replace('@:\\s*/\\*\\s*\\*/@', ':/*keep*/', $buffer);
// Remove ws around { } and last semicolon in declaration block
$buffer = preg_replace('/\\s*{\\s*/', '{', $buffer);
$buffer = preg_replace('/;?\\s*}\\s*/', '}', $buffer);
// Remove ws surrounding semicolons
$buffer = preg_replace('/\\s*;\\s*/', ';', $buffer);
// Remove ws around urls
$buffer = preg_replace('/url\\(\\s*([^\\)]+?)\\s*\\)/x', 'url($1)', $buffer);
// Remove ws between rules and colons
$buffer = preg_replace('/\\s*([{;])\\s*([\\*_]?[\\w\\-]+)\\s*:\\s*(\\b|[#\'"])/x', '$1$2:$3', $buffer);
// Minimize hex colors
$buffer = preg_replace('/([^=])#([a-f\\d])\\2([a-f\\d])\\3([a-f\\d])\\4([\\s;\\}])/i', '$1#$2$3$4$5', $buffer);
// Replace any ws involving newlines with a single newline
$buffer = preg_replace('/[ \\t]*\\n+\\s*/', "\n", $buffer);
return $buffer;
}
}

View File

@@ -0,0 +1,241 @@
<?php
/**
* Gelato Library
*
* This source file is part of the Gelato Library. More information,
* documentation and tutorials can be found at http://gelato.monstra.org
*
* @package Gelato
*
* @author Romanenko Sergey / Awilum <awilum@msn.com>
* @author Stephen Clay <steve@mrclay.org>
* @copyright 2012-2014 Romanenko Sergey / Awilum <awilum@msn.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
class MinifyCSS
{
/**
* @var array
*/
protected $_options = null;
/**
* Are we "in" a hack? I.e. are some browsers targetted until the next comment?
*
* @var bool
*/
protected $_inHack = false;
/**
* Constructor
*
* @param array $options (currently ignored)
*/
private function __construct($options)
{
$this->_options = $options;
}
/**
* Minify a CSS string
*
* @param string $css
*
* @param array $options (currently ignored)
*
* @return string
*/
public static function process($css, $options = array())
{
$obj = new MinifyCSS($options);
return $obj->_process($css);
}
/**
* Minify a CSS string
*
* @param string $css
*
* @return string
*/
protected function _process($css)
{
$css = str_replace("\r\n", "\n", $css);
// preserve empty comment after '>'
// http://www.webdevout.net/css-hacks#in_css-selectors
$css = preg_replace('@>/\\*\\s*\\*/@', '>/*keep*/', $css);
// preserve empty comment between property and value
// http://css-discuss.incutio.com/?page=BoxModelHack
$css = preg_replace('@/\\*\\s*\\*/\\s*:@', '/*keep*/:', $css);
$css = preg_replace('@:\\s*/\\*\\s*\\*/@', ':/*keep*/', $css);
// apply callback to all valid comments (and strip out surrounding ws
$css = preg_replace_callback('@\\s*/\\*([\\s\\S]*?)\\*/\\s*@'
,array($this, '_commentCB'), $css);
// remove ws around { } and last semicolon in declaration block
$css = preg_replace('/\\s*{\\s*/', '{', $css);
$css = preg_replace('/;?\\s*}\\s*/', '}', $css);
// remove ws surrounding semicolons
$css = preg_replace('/\\s*;\\s*/', ';', $css);
// remove ws around urls
$css = preg_replace('/
url\\( # url(
\\s*
([^\\)]+?) # 1 = the URL (really just a bunch of non right parenthesis)
\\s*
\\) # )
/x', 'url($1)', $css);
// remove ws between rules and colons
$css = preg_replace('/
\\s*
([{;]) # 1 = beginning of block or rule separator
\\s*
([\\*_]?[\\w\\-]+) # 2 = property (and maybe IE filter)
\\s*
:
\\s*
(\\b|[#\'"-]) # 3 = first character of a value
/x', '$1$2:$3', $css);
// minimize hex colors
/*$css = preg_replace('/([^=])#([a-f\\d])\\2([a-f\\d])\\3([a-f\\d])\\4([\\s;\\}])/i'
, '$1#$2$3$4$5', $css);*/
// remove spaces between font families
$css = preg_replace_callback('/font-family:([^;}]+)([;}])/'
,array($this, '_fontFamilyCB'), $css);
$css = preg_replace('/@import\\s+url/', '@import url', $css);
// replace any ws involving newlines with a single newline
$css = preg_replace('/[ \\t]*\\n+\\s*/', "\n", $css);
// separate common descendent selectors w/ newlines (to limit line lengths)
$css = preg_replace('/([\\w#\\.\\*]+)\\s+([\\w#\\.\\*]+){/', "$1\n$2{", $css);
// Use newline after 1st numeric value (to limit line lengths).
$css = preg_replace('/
((?:padding|margin|border|outline):\\d+(?:px|em)?) # 1 = prop : 1st numeric value
\\s+
/x'
,"$1\n", $css);
// prevent triggering IE6 bug: http://www.crankygeek.com/ie6pebug/
$css = preg_replace('/:first-l(etter|ine)\\{/', ':first-l$1 {', $css);
return trim($css);
}
/**
* Replace what looks like a set of selectors
*
* @param array $m regex matches
*
* @return string
*/
protected function _selectorsCB($m)
{
// remove ws around the combinators
return preg_replace('/\\s*([,>+~])\\s*/', '$1', $m[0]);
}
/**
* Process a comment and return a replacement
*
* @param array $m regex matches
*
* @return string
*/
protected function _commentCB($m)
{
$hasSurroundingWs = (trim($m[0]) !== $m[1]);
$m = $m[1];
// $m is the comment content w/o the surrounding tokens,
// but the return value will replace the entire comment.
if ($m === 'keep') {
return '/**/';
}
if ($m === '" "') {
// component of http://tantek.com/CSS/Examples/midpass.html
return '/*" "*/';
}
if (preg_match('@";\\}\\s*\\}/\\*\\s+@', $m)) {
// component of http://tantek.com/CSS/Examples/midpass.html
return '/*";}}/* */';
}
if ($this->_inHack) {
// inversion: feeding only to one browser
if (preg_match('@
^/ # comment started like /*/
\\s*
(\\S[\\s\\S]+?) # has at least some non-ws content
\\s*
/\\* # ends like /*/ or /**/
@x', $m, $n)) {
// end hack mode after this comment, but preserve the hack and comment content
$this->_inHack = false;
return "/*/{$n[1]}/**/";
}
}
if (substr($m, -1) === '\\') { // comment ends like \*/
// begin hack mode and preserve hack
$this->_inHack = true;
return '/*\\*/';
}
if ($m !== '' && $m[0] === '/') { // comment looks like /*/ foo */
// begin hack mode and preserve hack
$this->_inHack = true;
return '/*/*/';
}
if ($this->_inHack) {
// a regular comment ends hack mode but should be preserved
$this->_inHack = false;
return '/**/';
}
// Issue 107: if there's any surrounding whitespace, it may be important, so
// replace the comment with a single space
return $hasSurroundingWs // remove all other comments
? ' '
: '';
}
/**
* Process a font-family listing and return a replacement
*
* @param array $m regex matches
*
* @return string
*/
protected function _fontFamilyCB($m)
{
// Issue 210: must not eliminate WS between words in unquoted families
$pieces = preg_split('/(\'[^\']+\'|"[^"]+")/', $m[1], null, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY);
$out = 'font-family:';
while (null !== ($piece = array_shift($pieces))) {
if ($piece[0] !== '"' && $piece[0] !== "'") {
$piece = preg_replace('/\\s+/', ' ', $piece);
$piece = preg_replace('/\\s?,\\s?/', ',', $piece);
}
$out .= $piece;
}
return $out . $m[2];
}
}

View File

@@ -0,0 +1,47 @@
<?php
/**
* Gelato Library
*
* This source file is part of the Gelato Library. More information,
* documentation and tutorials can be found at http://gelato.monstra.org
*
* @package Gelato
*
* @author Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2014 Romanenko Sergey / Awilum <awilum@msn.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
class MinifyHTML
{
/**
* Minify html
*
* <code>
* echo MinifyHTML::process($html);
* </code>
*
* @param string $buffer html
* @return string
*/
public static function process($html)
{
// Remove HTML comments (not containing IE conditional comments).
$html = preg_replace_callback('/<!--([\\s\\S]*?)-->/', 'MinifyHTML::_comments', $html);
// Trim each line.
$html = preg_replace('/^\\s+|\\s+$/m', '', $html);
// Return HTML
return $html;
}
protected static function _comments($m)
{
return (0 === strpos($m[1], '[') || false !== strpos($m[1], '<![')) ? $m[0] : '';
}
}

View File

@@ -0,0 +1,50 @@
<?php
/**
* Gelato Library
*
* This source file is part of the Gelato Library. More information,
* documentation and tutorials can be found at http://gelato.monstra.org
*
* @package Gelato
*
* @author Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2014 Romanenko Sergey / Awilum <awilum@msn.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
class MinifyJS
{
/**
* Minify js
*
* <code>
* echo MinifyJS::process($js);
* </code>
*
* @param string $buffer html
* @return string
*/
public static function process($js)
{
// newlines > linefeed
$js = str_replace(array("\r\n", "\r", "\n"), "\n", $js);
// empty lines > collapse
$js = preg_replace('/^[ \t]*|[ \t]*$/m', '', $js);
$js = preg_replace('/\n+/m', "\n", $js);
$js = trim($js);
// redundant whitespace > remove
$js = preg_replace('/(?<=[{}\[\]\(\)=><&\|;:,\?!\+-])[ \t]*|[ \t]*(?=[{}\[\]\(\)=><&\|;:,\?!\+-])/i', '', $js);
$js = preg_replace('/[ \t]+/', ' ', $js);
// redundant semicolons (followed by another semicolon or closing curly bracket) > remove
$js = preg_replace('/;\s*(?=[;}])/s', '', $js);
// Return JS
return $js;
}
}

View File

@@ -9,7 +9,7 @@
* @package Gelato
*
* @author Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2013 Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2014 Romanenko Sergey / Awilum <awilum@msn.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.

View File

@@ -9,7 +9,7 @@
* @package Gelato
*
* @author Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2013 Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2014 Romanenko Sergey / Awilum <awilum@msn.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
@@ -28,7 +28,7 @@ class Number
}
/**
* Convert bytes in 'kb','mb','gb','tb','pb'
* Convert bytes in 'KB','MB','GB','TiB','PiB'
*
* <code>
* echo Number::byteFormat(10000);
@@ -42,9 +42,31 @@ class Number
// Redefine vars
$size = (int) $size;
$unit = array('b', 'kb', 'mb', 'gb', 'tb', 'pb');
$unit = array('B', 'KB', 'MB', 'GB', 'TiB', 'PiB');
return @round($size/pow(1024, ($i=floor(log($size, 1024)))), 2).' '.$unit[$i];
return @round($size/pow(1024, ($i=floor(log($size, 1024)))), 2).' '.$unit[($i < 0 ? 0 : $i)];
}
/**
* Convert 'KB','MB','GB' in bytes
*
* <code>
* echo Number::convertToBytes('10MB');
* </code>
*
* @param string $num Number to convert
* @return int
*/
public static function convertToBytes( $num ) {
$num = strtolower( $num );
$bytes = (int) $num;
if ( strpos( $num, 'k' ) !== false )
$bytes = intval( $num ) * 1024;
elseif ( strpos( $num, 'm' ) !== false )
$bytes = intval($num) * 1024 * 1024;
elseif ( strpos( $num, 'g' ) !== false )
$bytes = intval( $num ) * 1024 * 1024 * 1024;
return $bytes;
}
/**

View File

@@ -4,6 +4,6 @@ Gelato is a PHP5 library for kickass Web Applications.
## Links
- [Site](http://gelato.monstra.org)
- [Github Repository](https://github.com/Monstra/gelato-library)
- [Github Repository](https://github.com/MonstrLab/gelato)
Copyright (C) 2012-2013 Romanenko Sergey / Awilum [awilum@msn.com]
Copyright (C) 2013 Romanenko Sergey / Awilum [awilum@msn.com]

View File

@@ -9,7 +9,7 @@
* @package Gelato
*
* @author Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2013 Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2014 Romanenko Sergey / Awilum <awilum@msn.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.

View File

@@ -9,7 +9,7 @@
* @package Gelato
*
* @author Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2013 Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2014 Romanenko Sergey / Awilum <awilum@msn.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
@@ -22,7 +22,7 @@ class Token
*
* @var string
*/
public static $token_name = 'security_token';
protected static $token_name = 'security_token';
/**
* Protected constructor since this is a static class.

View File

@@ -9,7 +9,7 @@
* @package Gelato
*
* @author Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2013 Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2014 Romanenko Sergey / Awilum <awilum@msn.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.

View File

@@ -9,7 +9,7 @@
* @package Gelato
*
* @author Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2013 Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2014 Romanenko Sergey / Awilum <awilum@msn.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.

View File

@@ -9,7 +9,7 @@
* @package Gelato
*
* @author Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2013 Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2014 Romanenko Sergey / Awilum <awilum@msn.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.

View File

@@ -9,7 +9,7 @@
* @package Gelato
*
* @author Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2013 Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2014 Romanenko Sergey / Awilum <awilum@msn.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.

View File

@@ -9,7 +9,7 @@
* @package Gelato
*
* @author Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2013 Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2014 Romanenko Sergey / Awilum <awilum@msn.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
@@ -24,6 +24,12 @@ class Zip
public $offset = 0;
public $now;
private $_archive_info = array();
private $_zip_signature = "\x50\x4b\x03\x04";
private $_dir_signature = "\x50\x4b\x01\x02";
private $_central_signature_end = "\x50\x4b\x05\x06";
private $farc = null;
/**
* Constructor
*/
@@ -264,7 +270,7 @@ class Zip
* @param string $root_path Root path
* @return mixed
*/
public function readDir($path, $preserve_filepath = true, $root_path = null)
public function readDir($path, $preserve_filepath = true, $root_path = null, $exclude_files = array())
{
if ( ! $fp = @opendir($path)) {
return false;
@@ -277,12 +283,12 @@ class Zip
while (false !== ($file = readdir($fp))) {
if (substr($file, 0, 1) == '.') {
if (substr($file, 0, 1) == '.' || in_array($path.$file, $exclude_files)) {
continue;
}
if (@is_dir($path.$file)) {
$this->readDir($path.$file."/", $preserve_filepath, $root_path);
$this->readDir($path.$file."/", $preserve_filepath, $root_path, $exclude_files);
} else {
if (false !== ($data = file_get_contents($path.$file))) {
$name = str_replace("\\", "/", $path);
@@ -372,4 +378,302 @@ class Zip
$this->offset = 0;
}
public function extract($zip_file, $target_dir = null)
{
$chmod = 0777;
$this->_archive_info = array();
$files = $this->_read_archive($zip_file);
if (!$files) {
return false;
}
$file_locations = array();
foreach ($files as $file => $trash) {
$dirname = pathinfo($file, PATHINFO_DIRNAME);
$folders = explode('/', $dirname);
$out_dn = $target_dir . '/' . $dirname;
if ( !is_dir($out_dn)) {
$str = '';
foreach ($folders as $folder) {
$str = $str ? $str . '/' . $folder : $folder;
if ( !is_dir($target_dir . '/' . $str)) {
if ( ! @mkdir($target_dir . '/' . $str)) {
return false;
}
chmod($target_dir . '/' . $str, $chmod);
}
}
}
if (substr($file, -1, 1) == '/') {
continue;
}
$file_locations[] = $file_location = $target_dir . '/' . $file;
$this->_extract_file($file, $file_location);
}
$this->_archive_info = array();
return $file_locations;
}
private function _read_archive($zip_file)
{
if (sizeof($this->_archive_info)) {
return $this->_archive_info;
}
$fh = fopen($zip_file, 'r');
$this->farc = &$fh;
if ( !$fh) {
return false;
}
if ( !$this->_read_file_list_by_eof($fh)) {
if ( !$this->_read_files_by_signatures($fh)) {
return false;
}
}
return $this->_archive_info;
}
private function _read_file_list_by_eof(&$fh)
{
for ($x = 0; $x < 1024; $x++) {
fseek($fh, -22 - $x, SEEK_END);
$signature = fread($fh, 4);
if ($signature == $this->_central_signature_end) {
$eodir['disk_number_this'] = unpack("v", fread($fh, 2));
$eodir['disk_number'] = unpack("v", fread($fh, 2));
$eodir['total_entries_this'] = unpack("v", fread($fh, 2));
$eodir['total_entries'] = unpack("v", fread($fh, 2));
$eodir['size_of_cd'] = unpack("V", fread($fh, 4));
$eodir['offset_start_cd'] = unpack("V", fread($fh, 4));
$zip_comment_lenght = unpack("v", fread($fh, 2));
$eodir['zipfile_comment'] = $zip_comment_lenght[1] ? fread($fh, $zip_comment_lenght[1]) : '';
fseek($fh, $eodir['offset_start_cd'][1]);
$signature = fread($fh, 4);
while ($signature == $this->_dir_signature) {
$dir['version_madeby'] = unpack("v", fread($fh, 2));
$dir['version_needed'] = unpack("v", fread($fh, 2));
$dir['general_bit_flag'] = unpack("v", fread($fh, 2));
$dir['compression_method'] = unpack("v", fread($fh, 2));
$dir['lastmod_time'] = unpack("v", fread($fh, 2));
$dir['lastmod_date'] = unpack("v", fread($fh, 2));
$dir['crc-32'] = fread($fh, 4);
$dir['compressed_size'] = unpack("V", fread($fh, 4));
$dir['uncompressed_size'] = unpack("V", fread($fh, 4));
$zip_file_length = unpack("v", fread($fh, 2));
$extra_field_length = unpack("v", fread($fh, 2));
$fileCommentLength = unpack("v", fread($fh, 2));
$dir['disk_number_start'] = unpack("v", fread($fh, 2));
$dir['internal_attributes'] = unpack("v", fread($fh, 2));
$dir['external_attributes1'] = unpack("v", fread($fh, 2));
$dir['external_attributes2'] = unpack("v", fread($fh, 2));
$dir['relative_offset'] = unpack("V", fread($fh, 4));
$dir['file_name'] = fread($fh, $zip_file_length[1]);
$dir['extra_field'] = $extra_field_length[1] ? fread($fh, $extra_field_length[1]) : '';
$dir['file_comment'] = $fileCommentLength[1] ? fread($fh, $fileCommentLength[1]) : '';
$binary_mod_date = str_pad(decbin($dir['lastmod_date'][1]), 16, '0', STR_PAD_LEFT);
$binary_mod_time = str_pad(decbin($dir['lastmod_time'][1]), 16, '0', STR_PAD_LEFT);
$last_mod_year = bindec(substr($binary_mod_date, 0, 7)) + 1980;
$last_mod_month = bindec(substr($binary_mod_date, 7, 4));
$last_mod_day = bindec(substr($binary_mod_date, 11, 5));
$last_mod_hour = bindec(substr($binary_mod_time, 0, 5));
$last_mod_minute = bindec(substr($binary_mod_time, 5, 6));
$last_mod_second = bindec(substr($binary_mod_time, 11, 5));
$central_dir_list[$dir['file_name']] = array(
'version_madeby' => $dir['version_madeby'][1],
'version_needed' => $dir['version_needed'][1],
'general_bit_flag' => str_pad(decbin($dir['general_bit_flag'][1]), 8, '0', STR_PAD_LEFT),
'compression_method' => $dir['compression_method'][1],
'lastmod_datetime' => mktime($last_mod_hour, $last_mod_minute, $last_mod_second, $last_mod_month, $last_mod_day, $last_mod_year),
'crc-32' => str_pad(dechex(ord($dir['crc-32'][3])), 2, '0', STR_PAD_LEFT) .
str_pad(dechex(ord($dir['crc-32'][2])), 2, '0', STR_PAD_LEFT) .
str_pad(dechex(ord($dir['crc-32'][1])), 2, '0', STR_PAD_LEFT) .
str_pad(dechex(ord($dir['crc-32'][0])), 2, '0', STR_PAD_LEFT),
'compressed_size' => $dir['compressed_size'][1],
'uncompressed_size' => $dir['uncompressed_size'][1],
'disk_number_start' => $dir['disk_number_start'][1],
'internal_attributes' => $dir['internal_attributes'][1],
'external_attributes1' => $dir['external_attributes1'][1],
'external_attributes2' => $dir['external_attributes2'][1],
'relative_offset' => $dir['relative_offset'][1],
'file_name' => $dir['file_name'],
'extra_field' => $dir['extra_field'],
'file_comment' => $dir['file_comment'],
);
$signature = fread($fh, 4);
}
if (isset($central_dir_list)) {
foreach ($central_dir_list as $filename => $details) {
$i = $this->_get_file_header($fh, $details['relative_offset']);
$this->_archive_info[$filename]['file_name'] = $filename;
$this->_archive_info[$filename]['compression_method'] = $details['compression_method'];
$this->_archive_info[$filename]['version_needed'] = $details['version_needed'];
$this->_archive_info[$filename]['lastmod_datetime'] = $details['lastmod_datetime'];
$this->_archive_info[$filename]['crc-32'] = $details['crc-32'];
$this->_archive_info[$filename]['compressed_size'] = $details['compressed_size'];
$this->_archive_info[$filename]['uncompressed_size'] = $details['uncompressed_size'];
$this->_archive_info[$filename]['lastmod_datetime'] = $details['lastmod_datetime'];
$this->_archive_info[$filename]['extra_field'] = $i['extra_field'];
$this->_archive_info[$filename]['contents_start_offset'] = $i['contents_start_offset'];
}
}
return true;
}
}
return true;
}
private function _read_files_by_signatures(&$fh)
{
fseek($fh, 0);
$return = false;
for (;;) {
$details = $this->_get_file_header($fh);
if ( !$details) {
fseek($fh, 12 - 4, SEEK_CUR);
$details = $this->_get_file_header($fh);
}
if ( !$details) {
break;
}
$filename = $details['file_name'];
$this->_archive_info[$filename] = $details;
$return = true;
}
return $return;
}
private function _get_file_header(&$fh, $start_offset = FALSE)
{
if ($start_offset !== false) {
fseek($fh, $start_offset);
}
$signature = fread($fh, 4);
if ($signature == $this->_zip_signature) {
$file['version_needed'] = unpack("v", fread($fh, 2));
$file['general_bit_flag'] = unpack("v", fread($fh, 2));
$file['compression_method'] = unpack("v", fread($fh, 2));
$file['lastmod_time'] = unpack("v", fread($fh, 2));
$file['lastmod_date'] = unpack("v", fread($fh, 2));
$file['crc-32'] = fread($fh, 4);
$file['compressed_size'] = unpack("V", fread($fh, 4));
$file['uncompressed_size'] = unpack("V", fread($fh, 4));
$zip_file_length = unpack("v", fread($fh, 2));
$extra_field_length = unpack("v", fread($fh, 2));
$file['file_name'] = fread($fh, $zip_file_length[1]);
$file['extra_field'] = $extra_field_length[1] ? fread($fh, $extra_field_length[1]) : '';
$file['contents_start_offset'] = ftell($fh);
fseek($fh, $file['compressed_size'][1], SEEK_CUR);
$binary_mod_date = str_pad(decbin($file['lastmod_date'][1]), 16, '0', STR_PAD_LEFT);
$binary_mod_time = str_pad(decbin($file['lastmod_time'][1]), 16, '0', STR_PAD_LEFT);
$last_mod_year = bindec(substr($binary_mod_date, 0, 7)) + 1980;
$last_mod_month = bindec(substr($binary_mod_date, 7, 4));
$last_mod_day = bindec(substr($binary_mod_date, 11, 5));
$last_mod_hour = bindec(substr($binary_mod_time, 0, 5));
$last_mod_minute = bindec(substr($binary_mod_time, 5, 6));
$last_mod_second = bindec(substr($binary_mod_time, 11, 5));
return array(
'file_name' => $file['file_name'],
'compression_method' => $file['compression_method'][1],
'version_needed' => $file['version_needed'][1],
'lastmod_datetime' => mktime($last_mod_hour, $last_mod_minute, $last_mod_second, $last_mod_month, $last_mod_day, $last_mod_year),
'crc-32' => str_pad(dechex(ord($file['crc-32'][3])), 2, '0', STR_PAD_LEFT) .
str_pad(dechex(ord($file['crc-32'][2])), 2, '0', STR_PAD_LEFT) .
str_pad(dechex(ord($file['crc-32'][1])), 2, '0', STR_PAD_LEFT) .
str_pad(dechex(ord($file['crc-32'][0])), 2, '0', STR_PAD_LEFT),
'compressed_size' => $file['compressed_size'][1],
'uncompressed_size' => $file['uncompressed_size'][1],
'extra_field' => $file['extra_field'],
'general_bit_flag' => str_pad(decbin($file['general_bit_flag'][1]), 8, '0', STR_PAD_LEFT),
'contents_start_offset' => $file['contents_start_offset']
);
}
return false;
}
private function _extract_file($compressed_file_name, $target_file_name = false)
{
if ( !sizeof($this->_archive_info)) {
return false;
}
$fdetails = &$this->_archive_info[$compressed_file_name];
if ( ! isset($this->_archive_info[$compressed_file_name])) {
return false;
}
if (substr($compressed_file_name, -1) == '/') {
return false;
}
if ( !$fdetails['uncompressed_size']) {
return $target_file_name ? file_put_contents($target_file_name, '') : '';
}
fseek($this->farc, $fdetails['contents_start_offset']);
$ret = $this->_uncompress(
fread($this->farc, $fdetails['compressed_size']),
$fdetails['compression_method'],
$fdetails['uncompressed_size'],
$target_file_name
);
if ($target_file_name) {
chmod($target_file_name, 0644);
}
return $ret;
}
private function _uncompress($content, $mode, $uncompressed_size, $target_file_name = false)
{
switch ($mode) {
case 0:
return $target_file_name ? file_put_contents($target_file_name, $content) : $content;
case 8:
return $target_file_name
? file_put_contents($target_file_name, gzinflate($content, $uncompressed_size))
: gzinflate($content, $uncompressed_size);
case 12:
return $target_file_name
? file_put_contents($target_file_name, bzdecompress($content)) : bzdecompress($content);
default:
return false;
}
}
}

View File

View File

@@ -1,3 +1,21 @@
Gelato 1.0.0, XXXX-XX-XX
Gelato 1.0.3, 2013-04-03
------------------------
- Html Class: obfuscate() method added.
- Html Class: email() method added.
- Html Class: missing $macros var added.
Gelato 1.0.2, 2013-03-17
------------------------
- Added support for PHP 5.2.3
Gelato 1.0.1, 2013-03-05
------------------------
- New constant GELATO_CLASS_LOADER instead of GELATO_AUTOLOADER
- ErrorHanler Class Improvements.
- Log Class Improvements.
- ClassLoader: new method register() added.
- Define __DIR__ constant for PHP 5.2.x
Gelato 1.0.0, 2013-02-26
------------------------
- Initial release

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

40
plugins/blog/README.md Normal file
View File

@@ -0,0 +1,40 @@
Blog
================
### Usage
#### Get Post
<?php echo Blog::getPost(); ?>
#### Get Posts
<?php echo Blog::getPosts(); ?>
#### Get 5 Posts (could be any amount, 5 or 1 or 25):
<?php echo Blog::getPosts(5); ?>
#### Get related Posts
<?php echo Blog::getRelatedPosts(); ?>
#### Get 4 latest posts from Blog
<?php echo Blog::getPostsBlock(4); ?>
#### Get Tags&Keywords
<?php Blog::getTags(); ?>
#### Get Tags&Keywords for current page
<?php Blog::getTags(Page::slug()); ?>
Get Post Title
<?php echo Blog::getPostTitle(); ?>
### Shortcode for content
#### Divided post into 2 parts (short and full)
{cut}
Example:
<p>Best free themes for Monstra CMS at monstrathemes.com</p>
{cut}
<p>There is going to display your content as blog post =)</p>

View File

@@ -0,0 +1,399 @@
<?php
/**
* Blog plugin
*
* @package Monstra
* @subpackage Plugins
* @author Romanenko Sergey / Awilum
* @copyright 2012 Romanenko Sergey / Awilum
* @version 1.7.3
*
*/
// Register plugin
Plugin::register( __FILE__,
__('Blog', 'blog'),
__('Blog plugin for Monstra', 'blog'),
'1.7.3',
'Awilum',
'http://monstra.org/');
// Add action
Action::add('frontend_pre_render', 'Blog::_rss');
/**
* Blog Class
*/
class Blog {
/**
* Parrent page name(slug)
*
* @var string
*/
public static $parent_page_name = 'blog';
/**
* Get tags
*
* <code>
* echo Blog::getTags();
* </code>
*
* @return string
*/
public static function getTags($slug = null) {
// Display view
return View::factory('blog/views/frontend/tags')
->assign('tags', Blog::getTagsArray($slug))
->render();
}
/**
* Get breadcrumbs
*
* <code>
* echo Blog::breadcrumbs();
* </code>
*
* @return string
*/
public static function breadcrumbs() {
$current_page = Pages::$requested_page;
$parent_page = '';
if ($current_page !== 'error404') {
$page = Pages::$pages->select('[slug="'.$current_page.'"]', null);
if (trim($page['parent']) !== '') {
$parent = true;
$parent_page = Pages::$pages->select('[slug="'.$page['parent'].'"]', null);
} else {
$parent = false;
}
// Display view
View::factory('blog/views/frontend/breadcrumbs')
->assign('current_page', $current_page)
->assign('page', $page)
->assign('parent', $parent)
->assign('parent_page', $parent_page)
->display();
}
}
/**
* Get tags array
*
* <code>
* echo Blog::getTagsArray();
* </code>
*
* @return array
*/
public static function getTagsArray($slug = null) {
// Init vars
$tags = array();
$tags_string = '';
if ($slug == null) {
$posts = Pages::$pages->select('[parent="'.Blog::$parent_page_name.'" and status="published"]', 'all');
} else {
$posts = Pages::$pages->select('[parent="'.Blog::$parent_page_name.'" and status="published" and slug="'.$slug.'"]', 'all');
}
foreach($posts as $post) {
if (isset($post['tags'])) {
$tags_string .= $post['tags'].',';
}
}
$tags_string = substr($tags_string, 0, strlen($tags_string)-1);
// Explode tags in tags array
$tags = explode(',', $tags_string);
// Remove empty array elementss
foreach ($tags as $key => $value) {
if ($tags[$key] == '') {
unset($tags[$key]);
}
}
// Trim tags
array_walk($tags, create_function('&$val', '$val = trim($val);'));
// Get unique tags
$tags = array_unique($tags);
// Return tags
return $tags;
}
/**
* Get posts
*
* <code>
* // Get all posts
* echo Blog::getPosts();
*
* // Get last 5 posts
* echo Blog::getPosts(5);
* </code>
*
* @param integer $num Number of posts to show
* @return string
*/
public static function getPosts($nums = 10) {
// Get page param
$page = (Request::get('page')) ? (int)Request::get('page') : 1;
if (Request::get('tag')) {
$query = '[parent="'.Blog::$parent_page_name.'" and status="published" and contains(tags, "'.Request::get('tag').'")]';
Notification::set('tag', Request::get('tag'));
} else {
$query = '[parent="'.Blog::$parent_page_name.'" and status="published"]';
Notification::clean();
}
// Get Elements Count
$elements = count(Pages::$pages->select($query, 'all'));
// Get Pages Count
$pages = ceil($elements/$nums);
if ($page < 1) {
$page = 1;
} elseif ($page > $pages) {
$page = $pages;
}
$start = ($page-1)*$nums;
// If there is no posts
if ($start < 0) $start = 0;
// Get posts and sort by DESC
$posts = Pages::$pages->select($query, $nums, $start, array('slug', 'title', 'author', 'date'), 'date', 'DESC');
// Loop
foreach($posts as $key => $post) {
$post_short = explode("{cut}", Text::toHtml(File::getContent(STORAGE . DS . 'pages' . DS . $post['id'] . '.page.txt')));
$posts[$key]['content'] = Filter::apply('content', $post_short[0]);
}
// Display view
return View::factory('blog/views/frontend/index')
->assign('posts', $posts)
->render().
View::factory('blog/views/frontend/pager')
->assign('pages', $pages)
->assign('page', $page)
->render();
}
/**
* Get posts block
*
* <code>
* // Get all posts
* echo Blog::getPostsBlock();
*
* // Get last 5 posts
* echo Blog::getPostsBlock(5);
* </code>
*
* @param integer $num Number of posts to show
* @return string
*/
public static function getPostsBlock($nums = 10) {
// XPath Query
$query = '[parent="'.Blog::$parent_page_name.'" and status="published"]';
// Get posts and sort by DESC
$posts = Pages::$pages->select($query, $nums, 0, array('slug', 'title', 'author', 'date'), 'date', 'DESC');
// Loop
foreach($posts as $key => $post) {
$post_short = explode("{cut}", Text::toHtml(File::getContent(STORAGE . DS . 'pages' . DS . $post['id'] . '.page.txt')));
$posts[$key]['content'] = Filter::apply('content', $post_short[0]);
}
// Display view
return View::factory('blog/views/frontend/block')
->assign('posts', $posts)
->render();
}
/**
* Get related posts
*
* <code>
* echo Blog::getRelatedPosts();
* </code>
*
* @return string
*/
public static function getRelatedPosts($limit = null) {
$related_posts = array();
$tags = Blog::getTagsArray(Page::slug());
foreach($tags as $tag) {
$query = '[parent="'.Blog::$parent_page_name.'" and status="published" and contains(tags, "'.$tag.'") and slug!="'.Page::slug().'"]';
if ($result = Arr::subvalSort(Pages::$pages->select($query, ($limit == null) ? 'all' : (int)$limit), 'date', 'DESC')) {
$related_posts = $result;
}
}
// Display view
return View::factory('blog/views/frontend/related_posts')
->assign('related_posts', $related_posts)
->render();
}
/**
* Get post content
*
* <code>
* echo Blog::getPost();
* </code>
*
* @return string
*/
public static function getPost() {
// Get post
$post = Text::toHtml(File::getContent(STORAGE . DS . 'pages' . DS . Pages::$page['id'] . '.page.txt'));
// Apply content filter
$post = Filter::apply('content', $post);
// Remove {cut} shortcode
$post = strtr($post, array('{cut}' => ''));
// Return post
return $post;
}
/**
* Get post content before cut
*
* <code>
* echo Blog::getPostBeforeCut('home');
* </code>
*
* @return string
*/
public static function getPostBeforeCut($slug) {
$page = Pages::$pages->select('[slug="'.$slug.'"]', null);
// Get post
$post = explode("{cut}", Text::toHtml(File::getContent(STORAGE . DS . 'pages' . DS . $page['id'] . '.page.txt')));
// Apply content filter
$post_content = Filter::apply('content', $post[0]);
// Return post
return $post_content;
}
/**
* Get post content after cut
*
* <code>
* echo Blog::getPostAfterCut('home');
* </code>
*
* @return string
*/
public static function getPostAfterCut($slug) {
$page = Pages::$pages->select('[slug="'.$slug.'"]', null);
// Get post
$post = explode("{cut}", Text::toHtml(File::getContent(STORAGE . DS . 'pages' . DS . $page['id'] . '.page.txt')));
// Apply content filter
$post_content = Filter::apply('content', $post[1]);
// Return post
return $post_content;
}
/**
* Get Blog Post title
*
* <code>
* echo Blog::getPostTitle();
* </code>
*
* @return string
*/
public static function getPostTitle() {
return Page::title();
}
/**
* Get Blog Post Date
*
* <code>
* echo Blog::getPostDate();
* </code>
*
* @param string $format Date format
* @return string
*/
public static function getPostDate($format = 'Y-m-d') {
return Page::date($format);
}
/**
* Get author of current post
*
* <code>
* echo Blog::getPostAuthor();
* </code>
*
* @return string
*/
public static function getPostAuthor()
{
return Page::author();
}
/**
* _rss
*/
public static function _rss() {
if (Uri::segment(0) == 'rss') {
include PLUGINS . DS . 'blog' . DS . 'rss.php';
Request::shutdown();
}
}
}

View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<root>
<plugin_location>plugins/blog/blog.plugin.php</plugin_location>
<plugin_status>active</plugin_status>
<plugin_priority>15</plugin_priority>
<plugin_name>Blog</plugin_name>
<plugin_description>Blog plugin for Monstra</plugin_description>
<plugin_version>1.7.3</plugin_version>
<plugin_author>Awilum</plugin_author>
<plugin_author_uri>http://monstra.org/</plugin_author_uri>
</root>

View File

@@ -0,0 +1,12 @@
<?php
return array(
'blog' => array(
'Blog' => 'Blog',
'Blog plugin for Monstra' => 'Blog plugin for Monstra',
'begin' => 'begin',
'end' => 'end',
'prev' => 'prev',
'next' => 'next',
)
);

View File

@@ -0,0 +1,12 @@
<?php
return array(
'blog' => array(
'Blog' => 'Blog',
'Blog plugin for Monstra' => 'Wtyczka Blog dla systemu Monstra',
'begin' => 'początek',
'end' => 'koniec',
'prev' => 'poprzedni',
'next' => 'następny',
)
);

View File

@@ -0,0 +1,13 @@
<?php
return array(
'blog' => array(
'Blog' => 'Блог',
'Blog plugin for Monstra' => 'Плагин блога для Monstra',
'begin' => 'начало',
'end' => 'конец',
'prev' => 'назад',
'next' => 'вперед',
'Related posts' => 'Статьи по теме',
)
);

View File

@@ -0,0 +1,12 @@
<?php
return array(
'blog' => array(
'Blog' => 'Günce',
'Blog plugin for Monstra' => 'Monstra için günce eklentisi',
'begin' => 'Baş',
'end' => 'Son',
'prev' => 'Önceki',
'next' => 'Sonraki',
)
);

34
plugins/blog/rss.php Normal file
View File

@@ -0,0 +1,34 @@
<?php
// Get all posts for blog parent page/post
$posts = Pages::$pages->select('[parent="'.Blog::$parent_page_name.'" and status="published"]', 5, 0, array('slug', 'title', 'author', 'date'), 'date', 'DESC');
// Date now
$now = date("D, d M Y H:i:s T");
ob_end_clean();
?>
<?php header('Content-type: text/xml; charset="utf-8"'); ?>
<?php echo'<?xml version="1.0" encoding="utf-8"?>'."\n"; ?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>MonstraCMS::BLOG::RSS</title>
<link><?php echo Option::get('siteurl'); ?>/blog</link>
<description>The latest updates for <?php echo Option::get('sitename'); ?>.</description>
<language>en-us</language>
<pubDate><?php echo $now; ?></pubDate>
<lastBuildDate><?php echo $now; ?></lastBuildDate>
<atom:link href="<?php echo Option::get('siteurl'); ?>/rss.php" rel="self" type="application/rss+xml" />
<generator>Monstra</generator>
<?php foreach ($posts as $post) { ?>
<item>
<title><?php echo $post['title']; ?></title>
<link><?php echo Option::get('siteurl').'/blog/'.$post['slug']; ?></link>
<guid><?php echo Option::get('siteurl').'/blog/'.$post['slug']; ?></guid>
<pubDate><?php echo Date::format($post['date'], 'd M Y'); ?></pubDate>
<description><![CDATA[<?php echo Text::toHtml(Text::cut(File::getContent(STORAGE . DS . 'pages' . DS . $post['id'] . '.page.txt'), 300)); ?>]]></description>
<author><?php echo $post['author']; ?></author>
</item>
<?php } ?>
</channel>
</rss>
<?php Response::status(200); ?>

View File

@@ -0,0 +1,7 @@
<?php foreach($posts as $post) { ?>
<h3 class="monstra-blog-title"><a href="<?php echo Option::get('siteurl'); ?>/<?php echo Blog::$parent_page_name; ?>/<?php echo $post['slug'] ?>"><?php echo $post['title']; ?></a></h3>
<small class="monstra-blog-date"><?php echo Date::format($post['date'], 'd M Y'); ?></small>
<div class="monstra-blog-post">
<?php echo $post['content']; ?>
</div>
<?php } ?>

View File

@@ -0,0 +1,5 @@
<?php if ($parent) { ?>
<a href="<?php echo Site::url()."/".$page['parent']; ?><?php if(Notification::get('tag')) { ?>?tag=<?php echo Notification::get('tag'); ?><?php } ?>"><?php echo $parent_page['title']; ?></a>&nbsp;<span>&rarr;</span>&nbsp;<a href="<?php echo Site::url().$page['parent'].'/'.$page['slug']; ?>"><?php echo $page['title']; ?></a>
<?php } else { ?>
<a href="<?php echo Site::url()."/".$page['slug']; ?><?php if(Notification::get('tag')) { ?>?tag=<?php echo Notification::get('tag'); ?><?php } ?>"><?php echo $page['title']; ?></a>
<?php } ?>

View File

@@ -0,0 +1,7 @@
<?php foreach($posts as $post) { ?>
<h3 class="monstra-blog-title"><a href="<?php echo Option::get('siteurl'); ?>/<?php echo Blog::$parent_page_name; ?>/<?php echo $post['slug'] ?>"><?php echo $post['title']; ?></a></h3>
<small class="monstra-blog-date"><?php echo Date::format($post['date'], 'd M Y'); ?> / <?php echo $post['author']; ?></small>
<div class="monstra-blog-post">
<?php echo $post['content']; ?>
</div>
<?php } ?>

View File

@@ -0,0 +1,29 @@
<br><br>
<?php
if (Request::get('tag')) $tag = '&tag='.Request::get('tag'); else $tag = '';
$neighbours = 6;
$left_neighbour = $page - $neighbours;
if ($left_neighbour < 1) $left_neighbour = 1;
$right_neighbour = $page + $neighbours;
if ($right_neighbour > $pages) $right_neighbour = $pages;
if ($page > 1) {
echo ' <a href="?page=1'.$tag.'">'.__('begin', 'blog').'</a> ... <a href="?page=' . ($page-1) . $tag.'"> '.__('prev', 'blog').'</a> ';
}
for ($i=$left_neighbour; $i<=$right_neighbour; $i++) {
if ($i != $page) {
echo ' <a href="?page=' . $i . $tag.'">' . $i . '</a> ';
} else {
echo ' <b>' . $i . '</b> ';
}
}
if ($page < $pages) {
echo ' <a href="?page=' . ($page+1) . $tag.'">'.__('next', 'blog').'</a> ... <a href="?page=' . $pages . $tag.'">'.__('end', 'blog').'</a> ';
}
?>

View File

@@ -0,0 +1,7 @@
<br><br>
<b><?php echo __('Related posts', 'blog'); ?>:</b>
<div>
<?php foreach($related_posts as $related_post) { ?>
<a href="<?php echo Option::get('siteurl'); ?>/<?php echo Blog::$parent_page_name; ?>/<?php echo $related_post['slug']; ?>"><?php echo $related_post['title']; ?></a><br>
<?php } ?>
</div>

View File

@@ -0,0 +1,3 @@
<?php foreach($tags as $tag) { ?>
<a href="<?php echo Option::get('siteurl'); ?>/<?php echo Blog::$parent_page_name; ?>?tag=<?php echo $tag; ?>" class="monstra-blog-tag"><span class="label label-primary"><?php echo $tag; ?></span></a>
<?php } ?>

View File

@@ -15,8 +15,6 @@ class BackupAdmin extends Backend
{
$backups_path = ROOT . DS . 'backups';
$backups_list = array();
// Create backup
// -------------------------------------
if (Request::post('create_backup')) {
@@ -32,12 +30,18 @@ class BackupAdmin extends Backend
$zip->readDir(STORAGE . DS, false);
// Add public folder
if (Request::post('add_public_folder')) $zip->readDir(ROOT . DS . 'public' . DS, false);
$zip->readDir(ROOT . DS . 'public' . DS, false);
// Add plugins folder
if (Request::post('add_plugins_folder')) $zip->readDir(PLUGINS . DS, false);
$zip->readDir(PLUGINS . DS, false, null, array(PLUGINS . DS . 'box'));
$zip->archive($backups_path . DS . Date::format(time(), "Y-m-d-H-i-s").'.zip');
if ($zip->archive($backups_path . DS . Date::format(time(), "Y-m-d-H-i-s").'.zip')) {
Notification::set('success', __('Backup was created', 'backup'));
} else {
Notification::set('error', __('Backup was not created', 'backup'));
}
Request::redirect(Option::get('siteurl').'/admin/index.php?id=backup');
} else { die('Request was denied because it contained an invalid security token. Please refresh the page and try again.'); }
}
@@ -48,8 +52,13 @@ class BackupAdmin extends Backend
if (Security::check(Request::get('token'))) {
File::delete($backups_path . DS . Request::get('delete_file'));
Request::redirect(Option::get('siteurl').'admin/index.php?id=backup');
if (File::delete($backups_path . DS . Request::get('delete_file'))) {
Notification::set('success', __('Backup was deleted', 'backup'));
} else {
Notification::set('error', __('Backup was not deleted', 'backup'));
}
Request::redirect(Option::get('siteurl').'/admin/index.php?id=backup');
} else { die('Request was denied because it contained an invalid security token. Please refresh the page and try again.'); }
}
@@ -62,12 +71,34 @@ class BackupAdmin extends Backend
} else { die('Request was denied because it contained an invalid security token. Please refresh the page and try again.'); }
}
// Get backup list
$backups_list = File::scan($backups_path, '.zip');
// Restore backup
// -------------------------------------
if (Request::get('restore')) {
if (Security::check(Request::get('token'))) {
$tmp_dir = ROOT . DS . 'tmp' . DS . uniqid('backup_');
if (Dir::create($tmp_dir)) {
$file_locations = Zip::factory()->extract($backups_path . DS . Request::get('restore'), $tmp_dir);
if (!empty($file_locations)) {
Dir::copy($tmp_dir, ROOT . DS);
Notification::set('success', __('Backup was restored', 'backup'));
} else {
Notification::set('error', __('Unzip error', 'backup'));
}
} else {
Notification::set('error', __('Backup was not restored', 'backup'));
}
Request::redirect(Option::get('siteurl').'/admin/index.php?id=backup');
} else { die('Request was denied because it contained an invalid security token. Please refresh the page and try again.'); }
}
// Display view
View::factory('box/backup/views/backend/index')
->assign('backups_list', $backups_list)
->assign('backups_list', File::scan($backups_path, '.zip'))
->display();
}
}

View File

@@ -6,7 +6,7 @@
* @package Monstra
* @subpackage Plugins
* @author Romanenko Sergey / Awilum
* @copyright 2012-2013 Romanenko Sergey / Awilum
* @copyright 2012-2014 Romanenko Sergey / Awilum
* @version 1.0.0
*
*/

View File

@@ -3,8 +3,8 @@
return array(
'backup' => array(
'Backups' => 'Backups',
'Backup date' => 'Backup Datum',
'Create backup' => 'Erstelle Backup',
'Backup' => 'Backup',
'Create Backup' => 'Erstelle Backup',
'Delete' => 'Löschen',
'storage' => 'Speicher',
'public' => 'Öffentliche',

View File

@@ -3,8 +3,10 @@
return array(
'backup' => array(
'Backups' => 'Backups',
'Backup date' => 'Backup date',
'Create backup' => 'Create backup',
'Backup' => 'Backup',
'Backup Date' => 'Backup Date',
'Create Backup' => 'Create Backup',
'Restore' => 'Restore',
'Delete' => 'Delete',
'storage' => 'storage',
'public' => 'public',
@@ -13,5 +15,12 @@
'Actions' => 'Actions',
'Delete backup: :backup' => 'Delete backup: :backup',
'Creating...' => 'Creating...',
'Backup was created' => 'Backup was created',
'Backup was not created' => 'Backup was not created',
'Backup was deleted' => 'Backup was deleted',
'Backup was not deleted' => 'Backup was not deleted',
'Backup was restored' => 'Backup was restored',
'Unzip error' => 'Unzip error',
'Backup was not restored' => 'Backup was not restored',
)
);

View File

@@ -0,0 +1,17 @@
<?php
return array(
'backup' => array(
'Backups' => 'Backup',
'Backup date' => 'Backup dia',
'Create Backup' => 'Crear Backup',
'Delete' => 'Borrar',
'storage' => 'Almacen',
'public' => 'publico',
'plugins' => 'plugins',
'Size' => 'Tamaño',
'Actions' => 'Acciones',
'Delete backup: :backup' => 'Borrar Backup: :backup',
'Creating...' => 'Creando...',
)
);

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,17 @@
<?php
return array(
'backup' => array(
'Backups' => 'Sauvegardes',
'Backup date' => 'Date de la sauvegarde',
'Create backup' => 'Créer une sauvegarde',
'Delete' => 'Supprimer',
'storage' => 'stockage',
'public' => 'public',
'plugins' => 'plugins',
'Size' => 'Taille',
'Actions' => 'Actions',
'Delete backup: :backup' => 'Supprimer la sauvegarde: :backup',
'Creating...' => 'Création...',
)
);

View File

@@ -0,0 +1,17 @@
<?php
return array(
'backup' => array(
'Backups' => 'Biztonsági mentések',
'Backup date' => 'Biztonsági mentés dátuma',
'Create Backup' => 'Biztonsági mentés készítése',
'Delete' => 'Töröl',
'storage' => 'tárol',
'public' => 'nyilvános',
'plugins' => 'pluginok',
'Size' => 'Méret',
'Actions' => 'Műveletek',
'Delete backup: :backup' => 'Biztonsági mentés törlése: :backup',
'Creating...' => 'Készítés...',
)
);

View File

@@ -0,0 +1,17 @@
<?php
return array(
'backup' => array(
'Backups' => 'Cadangan',
'Backup date' => 'Tanggal Cadangan',
'Create Backup' => 'Buat Cadangan',
'Delete' => 'Hapus',
'storage' => 'Penyimpanan',
'public' => 'Umum',
'plugins' => 'Plugins',
'Size' => 'Ukuran',
'Actions' => 'Tindakan',
'Delete backup: :backup' => 'Hapus Cadangan: :backup',
'Creating...' => 'Dibuat...',
)
);

View File

@@ -3,8 +3,8 @@
return array(
'backup' => array(
'Backups' => 'Backup',
'Backup date' => 'Backup',
'Create backup' => 'Crea backup',
'Backup' => 'Backup',
'Create Backup' => 'Crea Backup',
'Delete' => 'Elimina',
'storage' => 'dati',
'public' => 'pubblica',

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

@@ -3,8 +3,8 @@
return array(
'backup' => array(
'Backups' => 'Atsarginės kopijos',
'Backup date' => 'Atsarginės kopijos data',
'Create backup' => 'Sukurti atsarginę kopiją',
'Backup' => 'Atsarginės kopijos data',
'Create Backup' => 'Sukurti atsarginę kopiją',
'Delete' => 'Ištrinti',
'storage' => 'storage',
'public' => 'public',

Some files were not shown because too many files have changed in this diff Show More