diff --git a/inc/poche/Poche.class.php b/inc/poche/Poche.class.php index 4371c3d..cb865a2 100644 --- a/inc/poche/Poche.class.php +++ b/inc/poche/Poche.class.php @@ -41,15 +41,23 @@ class Poche { $msg = ''; $allIsGood = TRUE; - if (file_exists('./install') && !DEBUG_POCHE) { - Tools::logm('folder /install exists'); + + if (file_exists('./install/update.php') && !DEBUG_POCHE) { + $msg = 'A poche update is needed. Please execute this update by clicking here. If you have already do the update, please delete /install folder.'; + $allIsGood = FALSE; + } + else if (file_exists('./install') && !DEBUG_POCHE) { $msg = 'If you want to update your poche, you just have to delete /install folder.
To install your poche with sqlite, copy /install/poche.sqlite in /db and delete the folder /install. you have to delete the /install folder before using poche.'; $allIsGood = FALSE; } - - if (STORAGE == 'sqlite' && !is_writable(STORAGE_SQLITE)) { - Tools::logm('you don\'t have write access on db file'); - $msg = 'You don\'t have write access on ' . STORAGE_SQLITE . ' file.'; + else if (STORAGE == 'sqlite' && !is_writable(STORAGE_SQLITE)) { + Tools::logm('you don\'t have write access on sqlite file'); + $msg = 'You don\'t have write access on sqlite file.'; + $allIsGood = FALSE; + } + else if (!is_writable(CACHE)) { + Tools::logm('you don\'t have write access on cache directory'); + $msg = 'You don\'t have write access on cache directory.'; $allIsGood = FALSE; } @@ -118,10 +126,12 @@ class Poche if (($_POST['password'] == $_POST['password_repeat']) && $_POST['password'] != "" && $_POST['login'] != "") { # let's rock, install poche baby ! - $this->store->install($_POST['login'], Tools::encodeString($_POST['password'] . $_POST['login'])); - Session::logout(); - Tools::logm('poche is now installed'); - Tools::redirect(); + if ($this->store->install($_POST['login'], Tools::encodeString($_POST['password'] . $_POST['login']))) + { + Session::logout(); + Tools::logm('poche is now installed'); + Tools::redirect(); + } } else { Tools::logm('error during installation'); diff --git a/inc/poche/Tools.class.php b/inc/poche/Tools.class.php index 0eb0d9e..1baf745 100644 --- a/inc/poche/Tools.class.php +++ b/inc/poche/Tools.class.php @@ -233,4 +233,30 @@ class Tools return $minutes; } + + + public static function createMyConfig() + { + $myconfig_file = './inc/poche/myconfig.inc.php'; + + if (version_compare(POCHE_VERSION, '1.0-beta3') == 1) { + # $myconfig_file is only created with poche > 1.0-beta3 + # in 1.0-beta3, the update script creates $myconfig_file + + if (!is_writable('./inc/poche/')) { + self::logm('you don\'t have write access to create ./inc/poche/myconfig.inc.php'); + die('You don\'t have write access to create ./inc/poche/myconfig.inc.php.'); + } + + if (!file_exists($myconfig_file)) + { + $fp = fopen($myconfig_file, 'w'); + fwrite($fp, 'the documentation.'); } - -require_once './inc/poche/User.class.php'; -require_once './inc/poche/Tools.class.php'; -require_once './inc/poche/Url.class.php'; -require_once './inc/3rdparty/class.messages.php'; -require_once './inc/poche/Poche.class.php'; -require_once './inc/3rdparty/Readability.php'; -require_once './inc/3rdparty/Encoding.php'; -require_once './inc/poche/Database.class.php'; -require_once './vendor/autoload.php'; -require_once './inc/3rdparty/simple_html_dom.php'; -require_once './inc/3rdparty/paginator.php'; -require_once './inc/3rdparty/Session.class.php'; + +if (file_exists(__DIR__ . '/../../inc/poche/myconfig.inc.php')) { + require_once __DIR__ . '/../../inc/poche/myconfig.inc.php'; +} +require_once __DIR__ . '/../../inc/poche/User.class.php'; +require_once __DIR__ . '/../../inc/poche/Url.class.php'; +require_once __DIR__ . '/../../inc/3rdparty/class.messages.php'; +require_once __DIR__ . '/../../inc/poche/Poche.class.php'; +require_once __DIR__ . '/../../inc/3rdparty/Readability.php'; +require_once __DIR__ . '/../../inc/3rdparty/Encoding.php'; +require_once __DIR__ . '/../../inc/poche/Database.class.php'; +require_once __DIR__ . '/../../vendor/autoload.php'; +require_once __DIR__ . '/../../inc/3rdparty/simple_html_dom.php'; +require_once __DIR__ . '/../../inc/3rdparty/paginator.php'; +require_once __DIR__ . '/../../inc/3rdparty/Session.class.php'; if (DOWNLOAD_PICTURES) { - require_once './inc/poche/pochePictures.php'; + require_once __DIR__ . '/../../inc/poche/pochePictures.php'; } $poche = new Poche(); diff --git a/inc/poche/define.inc.php b/inc/poche/define.inc.php new file mode 100644 index 0000000..c32ca09 --- /dev/null +++ b/inc/poche/define.inc.php @@ -0,0 +1,30 @@ + + * @copyright 2013 + * @license http://www.wtfpl.net/ see COPYING file + */ + +define ('STORAGE','sqlite'); # postgres, mysql, sqlite +define ('STORAGE_SERVER', 'localhost'); # leave blank for sqlite +define ('STORAGE_DB', 'poche'); # only for postgres & mysql +define ('STORAGE_SQLITE', __DIR__ . '/../../db/poche.sqlite'); +define ('STORAGE_USER', 'postgres'); # leave blank for sqlite +define ('STORAGE_PASSWORD', 'postgres'); # leave blank for sqlite + +define ('MODE_DEMO', FALSE); +define ('DEBUG_POCHE', FALSE); +define ('CONVERT_LINKS_FOOTNOTES', FALSE); +define ('REVERT_FORCED_PARAGRAPH_ELEMENTS', FALSE); +define ('DOWNLOAD_PICTURES', FALSE); +define ('SHARE_TWITTER', TRUE); +define ('SHARE_MAIL', TRUE); +define ('ABS_PATH', 'assets/'); +define ('TPL', __DIR__ . '/../../tpl'); +define ('LOCALE', __DIR__ . '/../../locale'); +define ('CACHE', __DIR__ . '/../../cache'); +define ('PAGINATION', '10'); +define ('THEME', 'light'); \ No newline at end of file diff --git a/index.php b/index.php index a60e4e9..51a33d7 100644 --- a/index.php +++ b/index.php @@ -8,6 +8,9 @@ * @license http://www.wtfpl.net/ see COPYING file */ +require_once './inc/poche/Tools.class.php'; +Tools::createMyConfig(); + include dirname(__FILE__).'/inc/poche/config.inc.php'; # Parse GET & REFERER vars diff --git a/install/update.php b/install/update.php new file mode 100644 index 0000000..392ab80 --- /dev/null +++ b/install/update.php @@ -0,0 +1,78 @@ + + + + + + + + + + updating poche + + +

update poche to 1.0-beta3

+ +

Changelog

+

+

+

+

+

+
+
+
+
+

+login($_POST['login'], sha1($_POST['password'] . $_POST['login'] . $old_salt)); + if ($user != array()) { + $new_salt = md5(time() . $_SERVER['SCRIPT_FILENAME'] . rand()); + $myconfig_file = '../inc/poche/myconfig.inc.php'; + if (!is_writable('../inc/poche/')) { + die('You don\'t have write access to create ./inc/poche/myconfig.inc.php.'); + } + + if (!file_exists($myconfig_file)) + { + $fp = fopen($myconfig_file, 'w'); + + fwrite($fp, 'updatePassword($user['id'], sha1($_POST['password'] . $_POST['login'] . $new_salt)); +?> +

your poche is up to date!

+

don't forget to delete ./install/ folder after the update.

+

go back to your poche

+ + + \ No newline at end of file