From c0ce1c3c316780663dbed29ba35c0c6aad3d694d Mon Sep 17 00:00:00 2001 From: dignajar Date: Fri, 20 Nov 2015 00:21:39 -0300 Subject: [PATCH] Updater, Profile Image bug fixes, Catch language files corrupt --- kernel/abstract/dbjson.class.php | 2 +- kernel/admin/controllers/dashboard.php | 27 +++++++++++++++++ kernel/admin/themes/default/img/default.jpg | Bin 1455 -> 1491 bytes kernel/admin/themes/default/index.php | 6 ++-- kernel/boot/init.php | 4 +++ kernel/boot/rules/70.posts.php | 2 +- kernel/dblanguage.class.php | 13 +++++--- kernel/dbsite.class.php | 9 +++++- kernel/dbtags.class.php | 2 +- kernel/dbusers.class.php | 32 ++++++++++---------- 10 files changed, 69 insertions(+), 28 deletions(-) diff --git a/kernel/abstract/dbjson.class.php b/kernel/abstract/dbjson.class.php index ccd3fa80..1c96feb1 100644 --- a/kernel/abstract/dbjson.class.php +++ b/kernel/abstract/dbjson.class.php @@ -46,7 +46,7 @@ class dbJSON } } - public function restoreDb() + public function restoreDB() { $this->db = $this->dbBackup; return true; diff --git a/kernel/admin/controllers/dashboard.php b/kernel/admin/controllers/dashboard.php index 44abfa52..f3f8216a 100644 --- a/kernel/admin/controllers/dashboard.php +++ b/kernel/admin/controllers/dashboard.php @@ -3,6 +3,28 @@ // ============================================================================ // Functions // ============================================================================ +function updateBludit() +{ + global $Site; + + // Check if Bludit need to be update. + if($Site->currentBuild() < BLUDIT_BUILD) + { + $directories = array(PATH_POSTS, PATH_PAGES, PATH_PLUGINS_DATABASES, PATH_UPLOADS_PROFILES); + + foreach($directories as $dir) + { + // Check if the directory is already created. + if(!file_exists($dir)) { + // Create the directory recursive. + mkdir($dir, DIR_PERMISSIONS, true); + } + } + + // Set and save the database. + $Site->set(array('currentBuild'=>BLUDIT_BUILD)); + } +} // ============================================================================ // Main before POST @@ -16,6 +38,10 @@ // Main after POST // ============================================================================ +// Try update Bludit +updateBludit(); + +// Get draft posts and schedules $_draftPosts = array(); $_scheduledPosts = array(); foreach($posts as $Post) @@ -28,6 +54,7 @@ foreach($posts as $Post) } } +// Get draft pages $_draftPages = array(); foreach($pages as $Page) { diff --git a/kernel/admin/themes/default/img/default.jpg b/kernel/admin/themes/default/img/default.jpg index b8f1f6724c7934452f454274a694c13739cd6096..2854b89266edee31e735082b88c109370286e49f 100644 GIT binary patch delta 895 zcmZ3_eVKbgEU&@>W(F1p1_nkTR+yOO!mPlcuyNx_#(EZJW@Z*v79e0{X9WRv4t6l$ zfC4Ts;06I+IQV~?!I_bXi3zBg4TyL-**W2IL^J;1WnigiVETWHfrpuqfk}{Akinke zlht40zccMq_H$P}KKSiFgTOwO%I{&nCVPJ4wUUft`IKDL78%PiS?AR4&`5_kPnC!D z_FrAP=O->GkZ>o5Pddw28BF2=H+3n~}i-MVPqc8i&B3IAJpvClonxu+iM3k4ix&NmA zp?mBfYL6e$Z~IrfcHgXvfA{;%3Y%*)Q$}H$dQr-$&3aGM62d1qO5~qARsVPTkJpc9 zukYH&c(qQhMqo?5_`O$N8}Hq_VO5`gD|&HzLEha-?6Z7#hp80Z_DsIO{NwwY7rVB% zmwL|?j@>-#(7&^1if`Xh?DM!$+_Ze2yTTWRCxz}UGmj;AoqFnSzOw4#L z$JX0TPR-3`Oq|>H^NG&k3vZkAYB^=k)~)cADOPsXTD_RZXu}ERJ5qmSeh7cO9`{4? z5%<|(pUvIDo31SM$j@0?EIva?b#ciAHjNjN4XP1|9m*EUZ}@*ylmQZ3&vBpi{Hx&&sklp%1D}3hv^HbO)uk%mcVG7PKUrbi^{Iz1oX1RUxz6SC z@6mhj^}GCvtm(gG@wiVUVo|6|U~8xZLp5Xk)cYR-^m%Va{Mdi!pJtP(=htfO*^#Gu z^3C)m!}5c-)$aVlP$qi4{_x?o{~2C5*Z+~`|L3y4|DSbyP3iT0mOq-#hg^B{=(5h1 z8*$Rw8gouR?exf$eWK{Sduo73s6+t6IZqqI51%_et@$_4TGspKC9jx!Ut-^jP1=%j l?_1T&1%>lPpGv%0SCM1tm$_~2yRF%_aVtx9{ha^*CIJ5kj)njL delta 859 zcmcc2y`FnQEU)4MW(F1p1_nkT)|!~*!mP!hxN+l2#(Gv}W@c74Rv=*GU;_aTE)Fo@ zf&v~e-~$1EIQV~?!I_bXiHU`Ug&l|lxH-86NCyA!GO*M$F#o^Bz{AYQz$C~l$Y9U# z_s{yX`M0$Haq%y$G5Y9xztK+erNNK(pv$t0_U_p^v2{tXKCei&oRnMegy%&Kj?6X_ ze;Kc?&-l-f8uy$Oe}6vr z=5x!}vl#xi|Iq)>z*?{6TYaQ#p8SvF3vay?yS`?l-qPh;nj}(^7>u2@tvP-^Jv?du zU1gQJb&HpDY;rp|wLzhIg5wLv^-sd~ukgQl{&(^}5%t6O-@f^~{WsU)vbt~Q6>Ik1 z{ho7sx6O0QXAQQCx-=H>|G)5;^Y60%40-KghRzX?$ca}-ES zXC+InGoM5iyLuOBvX@oJ&%UR#{qOw$3>kOh;-y~vQ`-I`_|ad_Gqd_;u39oFGx(1A zy?OWEiTu6x`LorD#X6p{oc203&L2b1_tjKC(wB@qkup8%ieBEy=SwabuVDDXAi(g3 zO}lRa|3(x0_Wul&u#*-#onLG;AtdI$S4THr-LF;e zm0yJXYp6T_pW#EmTJ}fbJvlXukLU9*Z_6|F6uWom*}ZzRo6Cwj9!`u5ov`uHYNi7l z8CqqoKfLSB@;TaH_U!H%OFNqvuRN@+c|zfv!UguP=UwaU>JK0Jy8q|v-2V)9`+rN> zKYUbmzy8nHZT}he$N%kRsQ-WQQJqoUvHMd0WPh9vy!?fq>y@0!g(tFKrzB_z- znl(!&M|tmohf~|*9F
  • username().'.jpg'; - if(!file_exists($profilePictureSrc)) { - $profilePictureSrc = HTML_PATH_ADMIN_THEME_IMG.'default.jpg'; + $profilePictureSrc = HTML_PATH_ADMIN_THEME_IMG.'default.jpg'; + if(file_exists(PATH_UPLOADS_PROFILES.$Login->username().'.jpg')) { + $profilePictureSrc = HTML_PATH_UPLOADS_PROFILES.$Login->username().'.jpg'; } ?> diff --git a/kernel/boot/init.php b/kernel/boot/init.php index ef7f8e5f..7c537758 100644 --- a/kernel/boot/init.php +++ b/kernel/boot/init.php @@ -4,6 +4,7 @@ define('BLUDIT_VERSION', 'githubVersion'); define('BLUDIT_CODENAME', ''); define('BLUDIT_RELEASE_DATE', ''); +define('BLUDIT_BUILD', '20151119'); // Debug mode define('DEBUG_MODE', TRUE); @@ -85,6 +86,9 @@ define('TOKEN_EMAIL_TTL', '+15 minutes'); // Charset, default UTF-8. define('CHARSET', 'UTF-8'); +// Directory permissions +define('DIR_PERMISSIONS', '0755'); + // Multibyte string extension loaded. define('MB_STRING', extension_loaded('mbstring')); diff --git a/kernel/boot/rules/70.posts.php b/kernel/boot/rules/70.posts.php index 2294d624..4ad9a82a 100644 --- a/kernel/boot/rules/70.posts.php +++ b/kernel/boot/rules/70.posts.php @@ -22,7 +22,7 @@ function reIndexTagsPosts() $dbTags->reindexPosts( $dbPosts->db ); // Restore de db on dbPost - $dbPosts->restoreDb(); + $dbPosts->restoreDB(); return true; } diff --git a/kernel/dblanguage.class.php b/kernel/dblanguage.class.php index 6cb9bd11..0cc98689 100644 --- a/kernel/dblanguage.class.php +++ b/kernel/dblanguage.class.php @@ -93,14 +93,17 @@ class dbLanguage extends dbJSON foreach($files as $file) { - $t = new dbJSON($file, false); - $native = $t->db['language-data']['native']; - $locale = basename($file, '.json'); - $tmp[$locale] = $native; + + // Check if the JSON is complete. + if(isset($t->db['language-data']['native'])) + { + $native = $t->db['language-data']['native']; + $locale = basename($file, '.json'); + $tmp[$locale] = $native; + } } return $tmp; } - } \ No newline at end of file diff --git a/kernel/dbsite.class.php b/kernel/dbsite.class.php index 7a000448..0cc438da 100644 --- a/kernel/dbsite.class.php +++ b/kernel/dbsite.class.php @@ -21,7 +21,8 @@ class dbSite extends dbJSON 'cliMode'=> array('inFile'=>false, 'value'=>true), 'emailFrom'=> array('inFile'=>false, 'value'=>''), 'dateFormat'=> array('inFile'=>false, 'value'=>'F j, Y'), - 'timeFormat'=> array('inFile'=>false, 'value'=>'g:i a') + 'timeFormat'=> array('inFile'=>false, 'value'=>'g:i a'), + 'currentBuild'=> array('inFile'=>false, 'value'=>0) ); function __construct() @@ -167,6 +168,12 @@ class dbSite extends dbJSON return $this->getField('timezone'); } + // Returns the current build / version of Bludit. + public function currentBuild() + { + return $this->getField('currentBuild'); + } + // Returns posts per page. public function postsPerPage() { diff --git a/kernel/dbtags.class.php b/kernel/dbtags.class.php index 8ab3b6bd..c91b32f7 100644 --- a/kernel/dbtags.class.php +++ b/kernel/dbtags.class.php @@ -8,7 +8,7 @@ class dbTags extends dbJSON $postsIndex['tag2']['name'] = 'Tag 2'; $postsIndex['tag2']['posts'] = array('post1','post5'); */ - private $dbFields = array( + public $dbFields = array( 'postsIndex'=>array('inFile'=>false, 'value'=>array()), 'pagesIndex'=>array('inFile'=>false, 'value'=>array()) ); diff --git a/kernel/dbusers.class.php b/kernel/dbusers.class.php index b13bf1ee..677e79b7 100644 --- a/kernel/dbusers.class.php +++ b/kernel/dbusers.class.php @@ -2,17 +2,17 @@ class dbUsers extends dbJSON { - private $dbFields = array( - 'firstName'=> array('inFile'=>false, 'value'=>''), - 'lastName'=> array('inFile'=>false, 'value'=>''), - 'username'=> array('inFile'=>false, 'value'=>''), - 'role'=> array('inFile'=>false, 'value'=>'editor'), - 'password'=> array('inFile'=>false, 'value'=>''), - 'salt'=> array('inFile'=>false, 'value'=>'!Pink Floyd!Welcome to the machine!'), - 'email'=> array('inFile'=>false, 'value'=>''), - 'registered'=> array('inFile'=>false, 'value'=>'1985-03-15 10:00'), - 'tokenEmail'=> array('inFile'=>false, 'value'=>''), - 'tokenEmailTTL'=>array('inFile'=>false, 'value'=>'2009-03-15 14:00') + public $dbFields = array( + 'firstName'=> array('inFile'=>false, 'value'=>''), + 'lastName'=> array('inFile'=>false, 'value'=>''), + 'username'=> array('inFile'=>false, 'value'=>''), + 'role'=> array('inFile'=>false, 'value'=>'editor'), + 'password'=> array('inFile'=>false, 'value'=>''), + 'salt'=> array('inFile'=>false, 'value'=>'!Pink Floyd!Welcome to the machine!'), + 'email'=> array('inFile'=>false, 'value'=>''), + 'registered'=> array('inFile'=>false, 'value'=>'1985-03-15 10:00'), + 'tokenEmail'=> array('inFile'=>false, 'value'=>''), + 'tokenEmailTTL'=> array('inFile'=>false, 'value'=>'2009-03-15 14:00') ); function __construct() @@ -20,6 +20,11 @@ class dbUsers extends dbJSON parent::__construct(PATH_DATABASES.'users.php'); } + public function getAll() + { + return $this->db; + } + // Return an array with the username databases, filtered by username. public function getDb($username) { @@ -51,11 +56,6 @@ class dbUsers extends dbJSON return isset($this->db[$username]); } - public function getAll() - { - return $this->db; - } - public function generateTokenEmail($username) { // Random hash