mirror of
https://github.com/wallabag/wallabag.git
synced 2025-09-15 18:57:05 +00:00
commit
7ba37bd91a
21 changed files with 831 additions and 153 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -3,3 +3,4 @@ composer.phar
|
||||||
db/poche.sqlite
|
db/poche.sqlite
|
||||||
output
|
output
|
||||||
phpdoc*
|
phpdoc*
|
||||||
|
inc/config/myconfig.inc.php
|
3
CONTRIBUTING.md
Normal file
3
CONTRIBUTING.md
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
# How contributing
|
||||||
|
|
||||||
|
When you create an issue on github, don't forget to give us your poche version. You can find it in config screen or in ./inc/poche/config.inc.php.
|
83
INSTALL.md
83
INSTALL.md
|
@ -1,53 +1,64 @@
|
||||||
# Installing poche
|
# Installing poche
|
||||||
|
|
||||||
Get the [latest version](https://github.com/inthepoche/poche/archive/1.0-beta1.zip) of poche on github. Unzip it and upload it on your server.
|
## requirements
|
||||||
|
|
||||||
your datas can be stored on sqlite, postgres or mysql databases.
|
it's highly recommended to have php cURL and tidy_parse_string to fetch articles content.
|
||||||
|
|
||||||
Edit /inc/poche/config.inc.php :
|
## you don't want to install twig (the template engine) by yourself
|
||||||
|
|
||||||
|
Download this file http://static.inthepoche.com/files/poche-1.0-latest-with-twig.zip
|
||||||
|
|
||||||
|
Extract this file on your server.
|
||||||
|
|
||||||
|
## you want to install twig by yourself
|
||||||
|
|
||||||
|
Download the latest version here : http://www.inthepoche.com/?pages/T%C3%A9l%C3%A9charger-poche
|
||||||
|
|
||||||
|
Extract this file on your server.
|
||||||
|
|
||||||
```php
|
```php
|
||||||
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', './db/poche.sqlite');
|
|
||||||
define ('STORAGE_USER', 'user'); # leave blank for sqlite
|
|
||||||
define ('STORAGE_PASSWORD', 'pass'); # leave blank for sqlite
|
|
||||||
```
|
|
||||||
|
|
||||||
poche must have write access on assets, cache and db directories.
|
|
||||||
|
|
||||||
[PHP cURL](http://www.php.net/manual/en/book.curl.php) & [tidy_parse_string](http://www.php.net/manual/en/tidy.parsestring.php) are recommended.
|
|
||||||
|
|
||||||
## twig
|
|
||||||
poche now uses twig for templating. You have to install twig.
|
|
||||||
|
|
||||||
Install composer in your project :
|
|
||||||
```bash
|
|
||||||
curl -s http://getcomposer.org/installer | php
|
curl -s http://getcomposer.org/installer | php
|
||||||
```
|
|
||||||
Install via composer :
|
|
||||||
```bash
|
|
||||||
php composer.phar install
|
php composer.phar install
|
||||||
```
|
```
|
||||||
|
|
||||||
If you don't want to install twig by yourself, you can download [this file](http://static.inthepoche.com/files/poche-1.0-latest-with-twig.zip).
|
### using sqlite
|
||||||
|
|
||||||
## storage in sqlite
|
Copy / paste install/poche.sqlite in db folder.
|
||||||
You have to install [sqlite for php](http://www.php.net/manual/en/book.sqlite.php) on your server.
|
|
||||||
|
|
||||||
Copy /install/poche.sqlite in /db
|
### using mysql or postgresql
|
||||||
|
|
||||||
## storage in mysql
|
Execute the sql file in /install (mysql.sql or postgres.sql)
|
||||||
Execute /install/mysql.sql file in your database.
|
|
||||||
|
|
||||||
## storage in postgres
|
Then, go to step 3.
|
||||||
Execute /install/postgres.sql file in your database.
|
|
||||||
|
|
||||||
## upgrading from poche <= 0.3
|
# Upgrading poche
|
||||||
With poche <= 0.3, all your datas were stored in a sqlite file. The structure of this file changed.
|
|
||||||
|
|
||||||
You have to execute http://yourpoche/install/update_sqlite_from_0_to_1.php before using this new version.
|
Replace all the files except **db/poche.sqlite**. Also remember to edit the file /inc/poche/config.inc.php.
|
||||||
|
|
||||||
## installing poche
|
## Upgrading from poche <= 0.3
|
||||||
you can go on your poche http://yourpoche. You have to fill the fields and that's all !
|
|
||||||
|
You have to execute http://yourpoche/install/update_sqlite_from_0_to_1.php
|
||||||
|
|
||||||
|
Then, go to step 3.
|
||||||
|
|
||||||
|
## Upgrading from poche >= 1.0 beta1
|
||||||
|
|
||||||
|
Nothing to do here.
|
||||||
|
|
||||||
|
Then, go to step 3.
|
||||||
|
|
||||||
|
# Here is the step 3
|
||||||
|
|
||||||
|
You must have write access on assets, cache and db directories. These directories may not exist, you'll have to create them.
|
||||||
|
|
||||||
|
You can use poche ! Enjoy.
|
||||||
|
|
||||||
|
# Some problems you may encounter
|
||||||
|
|
||||||
|
## Blank page
|
||||||
|
|
||||||
|
Be sure to have write access on assets, cache and db directories.
|
||||||
|
|
||||||
|
## PHP Fatal error: Call to a member function fetchAll() on a non-object in /var/www/poche/inc/poche/Database.class.php on line 42
|
||||||
|
|
||||||
|
If you want to install poche, delete the db/poche.sqlite file and copy / paste the install/poche.sqlite in /db. Be sure to have write access.
|
48
README.md
48
README.md
|
@ -1,42 +1,26 @@
|
||||||
# poche
|
# what is poche ?
|
||||||
Abandon Pocket, Instapaper and other Readability service : adopt poche. It is the same, but it is open source. Moreover, you can migrate from Pocket & Readability.
|
Abandon Pocket, Instapaper and other Readability service : adopt poche. It is the same, but it is free (like in freedom) and open source.
|
||||||
|
|
||||||

|
## Some features
|
||||||
|
|
||||||
The website of poche is [inthepoche.com](http://inthepoche.com).
|
* adding, deleting, archiving and setting as favorite a link
|
||||||
|
* import from pocket / readability / instapaper
|
||||||
|
* share links by email and on twitter
|
||||||
|
* a design adapted to tablets and smartphones
|
||||||
|
* extensions for Chrome and Firefox
|
||||||
|
* Android application
|
||||||
|
* multi languages (very soon!)
|
||||||
|
* multi users (very soon!)
|
||||||
|
* update notification in configuration screen
|
||||||
|
* many storage modes (sqlite, mysql, postgresql)
|
||||||
|
* many templates
|
||||||
|
* ...
|
||||||
|
|
||||||
To test poche, a demo website is online : [demo.inthepoche.com](http://demo.inthepoche.com) (login poche, password poche).
|
To test poche, a demo website is online : [demo.inthepoche.com](http://demo.inthepoche.com) (login poche, password poche).
|
||||||
|
|
||||||
To get news from poche, [follow us on twitter](http://twitter.com/getpoche) or [read the poche blog](http://inthepoche.com/blog). A Google Group is also available : [poche-users](https://groups.google.com/forum/#!forum/poche-users).
|
|
||||||
|
|
||||||
[](http://flattr.com/thing/1265480/poche-a-read-it-later-open-source-system)
|
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
Read the INSTALL.md file.
|
Read the [INSTALL.md file](https://github.com/inthepoche/poche/blob/master/INSTALL.md).
|
||||||
|
|
||||||
## Security
|
|
||||||
You **have** to protect your db/poche.sqlite file. Modify the virtual host of your website to add this condition :
|
|
||||||
```apache
|
|
||||||
<Files ~ "\.sqlite$">
|
|
||||||
Order allow,deny
|
|
||||||
Deny from all
|
|
||||||
</Files>
|
|
||||||
```
|
|
||||||
|
|
||||||
Nginx version:
|
|
||||||
```nginx
|
|
||||||
location ~ /(db) {
|
|
||||||
deny all;
|
|
||||||
return 404;
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
## Usage
|
|
||||||
See the documentation on our website : [inthepoche.com](http://inthepoche.com).
|
|
||||||
|
|
||||||
## Travis
|
|
||||||
[](http://travis-ci.org/#!/inthepoche/poche)
|
|
||||||
|
|
||||||
## License
|
## License
|
||||||
Copyright © 2010-2013 Nicolas Lœuillet <nicolas.loeuillet@gmail.com>
|
Copyright © 2010-2013 Nicolas Lœuillet <nicolas.loeuillet@gmail.com>
|
||||||
|
|
|
@ -18,11 +18,10 @@ class Poche
|
||||||
|
|
||||||
function __construct()
|
function __construct()
|
||||||
{
|
{
|
||||||
if (file_exists('./install') && !DEBUG_POCHE) {
|
$this->initTpl();
|
||||||
Tools::logm('folder /install exists');
|
if (!$this->checkBeforeInstall()) {
|
||||||
die('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.');
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->store = new Database();
|
$this->store = new Database();
|
||||||
$this->init();
|
$this->init();
|
||||||
$this->messages = new Messages();
|
$this->messages = new Messages();
|
||||||
|
@ -34,6 +33,63 @@ class Poche
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* all checks before installation.
|
||||||
|
* @return boolean
|
||||||
|
*/
|
||||||
|
private function checkBeforeInstall()
|
||||||
|
{
|
||||||
|
$msg = '';
|
||||||
|
$allIsGood = TRUE;
|
||||||
|
|
||||||
|
if (!is_writable(CACHE)) {
|
||||||
|
Tools::logm('you don\'t have write access on cache directory');
|
||||||
|
die('You don\'t have write access on cache directory.');
|
||||||
|
}
|
||||||
|
else if (file_exists('./install/update.php') && !DEBUG_POCHE) {
|
||||||
|
$msg = 'A poche update is needed. Please execute this update <a href="install/update.php">by clicking here</a>. 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. <br />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;
|
||||||
|
}
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$allIsGood) {
|
||||||
|
echo $this->tpl->render('error.twig', array(
|
||||||
|
'msg' => $msg
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
|
return $allIsGood;
|
||||||
|
}
|
||||||
|
|
||||||
|
private function initTpl()
|
||||||
|
{
|
||||||
|
# template engine
|
||||||
|
$loader = new Twig_Loader_Filesystem(TPL);
|
||||||
|
if (DEBUG_POCHE) {
|
||||||
|
$twig_params = array();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$twig_params = array('cache' => CACHE);
|
||||||
|
}
|
||||||
|
$this->tpl = new Twig_Environment($loader, $twig_params);
|
||||||
|
$this->tpl->addExtension(new Twig_Extensions_Extension_I18n());
|
||||||
|
# filter to display domain name of an url
|
||||||
|
$filter = new Twig_SimpleFilter('getDomain', 'Tools::getDomain');
|
||||||
|
$this->tpl->addFilter($filter);
|
||||||
|
|
||||||
|
# filter for reading time
|
||||||
|
$filter = new Twig_SimpleFilter('getReadingTime', 'Tools::getReadingTime');
|
||||||
|
$this->tpl->addFilter($filter);
|
||||||
|
}
|
||||||
|
|
||||||
private function init()
|
private function init()
|
||||||
{
|
{
|
||||||
Tools::initPhp();
|
Tools::initPhp();
|
||||||
|
@ -55,24 +111,6 @@ class Poche
|
||||||
bindtextdomain($language, LOCALE);
|
bindtextdomain($language, LOCALE);
|
||||||
textdomain($language);
|
textdomain($language);
|
||||||
|
|
||||||
# template engine
|
|
||||||
$loader = new Twig_Loader_Filesystem(TPL);
|
|
||||||
if (DEBUG_POCHE) {
|
|
||||||
$twig_params = array();
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$twig_params = array('cache' => CACHE);
|
|
||||||
}
|
|
||||||
$this->tpl = new Twig_Environment($loader, $twig_params);
|
|
||||||
$this->tpl->addExtension(new Twig_Extensions_Extension_I18n());
|
|
||||||
# filter to display domain name of an url
|
|
||||||
$filter = new Twig_SimpleFilter('getDomain', 'Tools::getDomain');
|
|
||||||
$this->tpl->addFilter($filter);
|
|
||||||
|
|
||||||
# filter for reading time
|
|
||||||
$filter = new Twig_SimpleFilter('getReadingTime', 'Tools::getReadingTime');
|
|
||||||
$this->tpl->addFilter($filter);
|
|
||||||
|
|
||||||
# Pagination
|
# Pagination
|
||||||
$this->pagination = new Paginator($this->user->getConfigValue('pager'), 'p');
|
$this->pagination = new Paginator($this->user->getConfigValue('pager'), 'p');
|
||||||
}
|
}
|
||||||
|
@ -87,10 +125,12 @@ class Poche
|
||||||
if (($_POST['password'] == $_POST['password_repeat'])
|
if (($_POST['password'] == $_POST['password_repeat'])
|
||||||
&& $_POST['password'] != "" && $_POST['login'] != "") {
|
&& $_POST['password'] != "" && $_POST['login'] != "") {
|
||||||
# let's rock, install poche baby !
|
# let's rock, install poche baby !
|
||||||
$this->store->install($_POST['login'], Tools::encodeString($_POST['password'] . $_POST['login']));
|
if ($this->store->install($_POST['login'], Tools::encodeString($_POST['password'] . $_POST['login'])))
|
||||||
Session::logout();
|
{
|
||||||
Tools::logm('poche is now installed');
|
Session::logout();
|
||||||
Tools::redirect();
|
Tools::logm('poche is now installed');
|
||||||
|
Tools::redirect();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
Tools::logm('error during installation');
|
Tools::logm('error during installation');
|
||||||
|
@ -180,6 +220,7 @@ class Poche
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
Tools::logm('action ' . $action . 'doesn\'t exist');
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -409,9 +450,11 @@ class Poche
|
||||||
$str_data = file_get_contents("./readability");
|
$str_data = file_get_contents("./readability");
|
||||||
$data = json_decode($str_data,true);
|
$data = json_decode($str_data,true);
|
||||||
Tools::logm('starting import from Readability');
|
Tools::logm('starting import from Readability');
|
||||||
|
$count = 0;
|
||||||
foreach ($data as $key => $value) {
|
foreach ($data as $key => $value) {
|
||||||
$url = '';
|
$url = NULL;
|
||||||
|
$favorite = FALSE;
|
||||||
|
$archive = FALSE;
|
||||||
foreach ($value as $attr => $attr_value) {
|
foreach ($value as $attr => $attr_value) {
|
||||||
if ($attr == 'article__url') {
|
if ($attr == 'article__url') {
|
||||||
$url = new Url(base64_encode($attr_value));
|
$url = new Url(base64_encode($attr_value));
|
||||||
|
@ -420,20 +463,30 @@ class Poche
|
||||||
if (STORAGE == 'postgres') {
|
if (STORAGE == 'postgres') {
|
||||||
$sequence = 'entries_id_seq';
|
$sequence = 'entries_id_seq';
|
||||||
}
|
}
|
||||||
// if ($attr_value == 'favorite' && $attr_value == 'true') {
|
if ($attr_value == 'true') {
|
||||||
// $last_id = $this->store->getLastId($sequence);
|
if ($attr == 'favorite') {
|
||||||
// $this->store->favoriteById($last_id);
|
$favorite = TRUE;
|
||||||
// $this->action('toogle_fav', $url, $last_id, TRUE);
|
}
|
||||||
// }
|
if ($attr == 'archive') {
|
||||||
if ($attr_value == 'archive' && $attr_value == 'true') {
|
$archive = TRUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
# we can add the url
|
||||||
|
if (!is_null($url) && $url->isCorrect()) {
|
||||||
|
$this->action('add', $url, 0, TRUE);
|
||||||
|
$count++;
|
||||||
|
if ($favorite) {
|
||||||
|
$last_id = $this->store->getLastId($sequence);
|
||||||
|
$this->action('toggle_fav', $url, $last_id, TRUE);
|
||||||
|
}
|
||||||
|
if ($archive) {
|
||||||
$last_id = $this->store->getLastId($sequence);
|
$last_id = $this->store->getLastId($sequence);
|
||||||
$this->action('toggle_archive', $url, $last_id, TRUE);
|
$this->action('toggle_archive', $url, $last_id, TRUE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($url->isCorrect())
|
|
||||||
$this->action('add', $url, 0, TRUE);
|
|
||||||
}
|
}
|
||||||
$this->messages->add('s', _('import from Readability completed'));
|
$this->messages->add('s', _('import from Readability completed. ' . $count . ' new links.'));
|
||||||
Tools::logm('import from Readability completed');
|
Tools::logm('import from Readability completed');
|
||||||
Tools::redirect();
|
Tools::redirect();
|
||||||
}
|
}
|
||||||
|
|
|
@ -233,4 +233,30 @@ class Tools
|
||||||
|
|
||||||
return $minutes;
|
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, '<?php'."\r\n");
|
||||||
|
fwrite($fp, "define ('POCHE_VERSION', '1.0-beta3');" . "\r\n");
|
||||||
|
fwrite($fp, "define ('SALT', '" . md5(time() . $_SERVER['SCRIPT_FILENAME'] . rand()) . "');" . "\r\n");
|
||||||
|
fwrite($fp, "define ('LANG', 'en_EN.utf8');" . "\r\n");
|
||||||
|
fclose($fp);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -27,7 +27,7 @@ class Url
|
||||||
|
|
||||||
public function isCorrect()
|
public function isCorrect()
|
||||||
{
|
{
|
||||||
$pattern = '|^http(s)?://[a-z0-9-]+(.[a-z0-9-]+)*(:[0-9]+)?(/.*)?$|i';
|
$pattern = '|^(.*:)//([a-z\-.]+)(:[0-9]+)?(.*)$|i';
|
||||||
|
|
||||||
return preg_match($pattern, $this->url);
|
return preg_match($pattern, $this->url);
|
||||||
}
|
}
|
||||||
|
|
57
inc/poche/config.inc.php
Normal file → Executable file
57
inc/poche/config.inc.php
Normal file → Executable file
|
@ -8,47 +8,30 @@
|
||||||
* @license http://www.wtfpl.net/ see COPYING file
|
* @license http://www.wtfpl.net/ see COPYING file
|
||||||
*/
|
*/
|
||||||
|
|
||||||
# storage
|
require_once __DIR__ . '/../../inc/poche/define.inc.php';
|
||||||
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', './db/poche.sqlite');
|
|
||||||
define ('STORAGE_USER', 'postgres'); # leave blank for sqlite
|
|
||||||
define ('STORAGE_PASSWORD', 'postgres'); # leave blank for sqlite
|
|
||||||
|
|
||||||
define ('POCHE_VERSION', '1.0-beta1');
|
|
||||||
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 ('SALT', '464v54gLLw928uz4zUBqkRJeiPY68zCX');
|
|
||||||
define ('ABS_PATH', 'assets/');
|
|
||||||
define ('TPL', './tpl');
|
|
||||||
define ('LOCALE', './locale');
|
|
||||||
define ('CACHE', './cache');
|
|
||||||
define ('LANG', 'en_EN.UTF8');
|
|
||||||
define ('PAGINATION', '10');
|
|
||||||
define ('THEME', 'light');
|
|
||||||
|
|
||||||
# /!\ Be careful if you change the lines below /!\
|
# /!\ Be careful if you change the lines below /!\
|
||||||
require_once './inc/poche/User.class.php';
|
if (!file_exists(__DIR__ . '/../../vendor/autoload.php')) {
|
||||||
require_once './inc/poche/Tools.class.php';
|
die('Twig does not seem installed. Have a look at <a href="http://inthepoche.com/?pages/Documentation">the documentation.</a>');
|
||||||
require_once './inc/poche/Url.class.php';
|
}
|
||||||
require_once './inc/3rdparty/class.messages.php';
|
|
||||||
require_once './inc/poche/Poche.class.php';
|
if (file_exists(__DIR__ . '/../../inc/poche/myconfig.inc.php')) {
|
||||||
require_once './inc/3rdparty/Readability.php';
|
require_once __DIR__ . '/../../inc/poche/myconfig.inc.php';
|
||||||
require_once './inc/3rdparty/Encoding.php';
|
}
|
||||||
require_once './inc/poche/Database.class.php';
|
require_once __DIR__ . '/../../inc/poche/User.class.php';
|
||||||
require_once './vendor/autoload.php';
|
require_once __DIR__ . '/../../inc/poche/Url.class.php';
|
||||||
require_once './inc/3rdparty/simple_html_dom.php';
|
require_once __DIR__ . '/../../inc/3rdparty/class.messages.php';
|
||||||
require_once './inc/3rdparty/paginator.php';
|
require_once __DIR__ . '/../../inc/poche/Poche.class.php';
|
||||||
require_once './inc/3rdparty/Session.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) {
|
if (DOWNLOAD_PICTURES) {
|
||||||
require_once './inc/poche/pochePictures.php';
|
require_once __DIR__ . '/../../inc/poche/pochePictures.php';
|
||||||
}
|
}
|
||||||
|
|
||||||
$poche = new Poche();
|
$poche = new Poche();
|
||||||
|
|
30
inc/poche/define.inc.php
Normal file
30
inc/poche/define.inc.php
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* poche, a read it later open source system
|
||||||
|
*
|
||||||
|
* @category poche
|
||||||
|
* @author Nicolas Lœuillet <nicolas@loeuillet.org>
|
||||||
|
* @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');
|
|
@ -8,6 +8,9 @@
|
||||||
* @license http://www.wtfpl.net/ see COPYING file
|
* @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';
|
include dirname(__FILE__).'/inc/poche/config.inc.php';
|
||||||
|
|
||||||
# Parse GET & REFERER vars
|
# Parse GET & REFERER vars
|
||||||
|
|
79
install/update.php
Normal file
79
install/update.php
Normal file
|
@ -0,0 +1,79 @@
|
||||||
|
<?php
|
||||||
|
require_once dirname(__FILE__).'/../inc/poche/Tools.class.php';
|
||||||
|
include dirname(__FILE__).'/../inc/poche/define.inc.php';
|
||||||
|
require_once __DIR__ . '/../inc/poche/Database.class.php';
|
||||||
|
$store = new Database();
|
||||||
|
$old_salt = '464v54gLLw928uz4zUBqkRJeiPY68zCX';
|
||||||
|
?>
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<!--[if lte IE 6]> <html class="no-js ie6 ie67 ie678" lang="en"> <![endif]-->
|
||||||
|
<!--[if lte IE 7]> <html class="no-js ie7 ie67 ie678" lang="en"> <![endif]-->
|
||||||
|
<!--[if IE 8]> <html class="no-js ie8 ie678" lang="en"> <![endif]-->
|
||||||
|
<!--[if gt IE 8]><!--> <html class="no-js" lang="en"> <!--<![endif]-->
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>updating poche</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>update poche to 1.0-beta3</h1>
|
||||||
|
|
||||||
|
<h2>Changelog</h2>
|
||||||
|
<p>
|
||||||
|
<ul>
|
||||||
|
<li>this awesome updating step</li>
|
||||||
|
<li>error message when install folder exists</li>
|
||||||
|
<li>more tests before installation (write access, etc.)</li>
|
||||||
|
<li>updated README to make installation easier</li>
|
||||||
|
<li>german language thanks to HLFH</li>
|
||||||
|
<li>spanish language thanks to Nitche</li>
|
||||||
|
<li>new file ./inc/poche/myconfig.inc.php created to store language and salt</li>
|
||||||
|
<li><a href="https://github.com/inthepoche/poche/issues/119">#119</a>: salt is now created when installing poche</li>
|
||||||
|
<li><a href="https://github.com/inthepoche/poche/issues/130">#130</a>: robots.txt added</li>
|
||||||
|
<li><a href="https://github.com/inthepoche/poche/issues/136">#136</a>: error during readability import</li>
|
||||||
|
<li><a href="https://github.com/inthepoche/poche/issues/137">#137</a>: mixed content alert in https</li>
|
||||||
|
<li><a href="https://github.com/inthepoche/poche/issues/138">#138</a>: change pattern to parse url with #</li>
|
||||||
|
</ul>
|
||||||
|
</p>
|
||||||
|
<p>To update your poche, please fill the following fields.</p>
|
||||||
|
<p>
|
||||||
|
<form name="update" method="post">
|
||||||
|
<div><label for="login">login:</label> <input type="text" name="login" id="login" /></div>
|
||||||
|
<div><label for="password">password:</label> <input type="password" name="password" id="password" /></div>
|
||||||
|
<div><input type="hidden" name="go" value="ok" /><input type="submit" value="update" /></div>
|
||||||
|
</form>
|
||||||
|
</p>
|
||||||
|
<?php
|
||||||
|
if (isset($_POST['go'])) {
|
||||||
|
if (!empty($_POST['login']) && !empty($_POST['password'])) {
|
||||||
|
$user = $store->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, '<?php'."\r\n");
|
||||||
|
fwrite($fp, "define ('POCHE_VERSION', '1.0-beta3');" . "\r\n");
|
||||||
|
fwrite($fp, "define ('SALT', '" . $new_salt . "');" . "\r\n");
|
||||||
|
fwrite($fp, "define ('LANG', 'en_EN.utf8');" . "\r\n");
|
||||||
|
fclose($fp);
|
||||||
|
}
|
||||||
|
# faire une mise à jour de la table users en prenant en compte le nouveau SALT généré
|
||||||
|
$store->updatePassword($user['id'], sha1($_POST['password'] . $_POST['login'] . $new_salt));
|
||||||
|
?>
|
||||||
|
<p><span style="color: green;">your poche is up to date!</span></p>
|
||||||
|
<p><span style="color: red;">don't forget to delete ./install/ folder after the update.</span></p>
|
||||||
|
<p><a href="../">go back to your poche</a></p>
|
||||||
|
<?php
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</body>
|
||||||
|
</html>
|
BIN
locale/de_DE.utf8/LC_MESSAGES/de_DE.utf8.mo
Normal file
BIN
locale/de_DE.utf8/LC_MESSAGES/de_DE.utf8.mo
Normal file
Binary file not shown.
114
locale/de_DE.utf8/LC_MESSAGES/de_DE.utf8.po
Normal file
114
locale/de_DE.utf8/LC_MESSAGES/de_DE.utf8.po
Normal file
|
@ -0,0 +1,114 @@
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
# HLFH <gaspard.dhautefeuille@gmail.com>, 2013
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: poche\n"
|
||||||
|
"POT-Creation-Date: 2013-08-02 10:26+0100\n"
|
||||||
|
"PO-Revision-Date: 2013-08-06 11:48+0100\n"
|
||||||
|
"Last-Translator: Nicolas Lœuillet <nicolas.loeuillet@gmail.com>\n"
|
||||||
|
"Language-Team: German (http://www.transifex.com/projects/p/poche/language/"
|
||||||
|
"de/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"Language: de\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
"X-Generator: Poedit 1.5.4\n"
|
||||||
|
"X-Poedit-Basepath: /\n"
|
||||||
|
"X-Poedit-KeywordsList: _;gettext;gettext_noop\n"
|
||||||
|
"X-Poedit-SourceCharset: UTF-8\n"
|
||||||
|
"X-Poedit-SearchPath-0: /var/www/poche-i18n\n"
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/import.php:17
|
||||||
|
msgid "Please execute the import script locally, it can take a very long time."
|
||||||
|
msgstr ""
|
||||||
|
"Wir danken Ihnen, den Import in lokal zu ausführen, kann es einige Zeit "
|
||||||
|
"dauern."
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/import.php:17
|
||||||
|
msgid "Please choose between Pocket & Readabilty :"
|
||||||
|
msgstr "Wir danken Ihnen, zwischen Pocket und Readability zu wählen:"
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/import.php:17
|
||||||
|
msgid "Bye bye Pocket, let's go !"
|
||||||
|
msgstr "Auf wiedersehen Pocket, auf geht's!"
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/import.php:17
|
||||||
|
msgid "Bye bye Readability, let's go !"
|
||||||
|
msgstr "Auf wiedersehen Readability, auf geht's!"
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/import.php:48
|
||||||
|
msgid "Import from Pocket completed."
|
||||||
|
msgstr "Der Import aus Poche ist abgeschlossen."
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/import.php:48 /var/www/poche-i18n/import.php:66
|
||||||
|
msgid "Welcome to poche !"
|
||||||
|
msgstr "Willkommen in Poche!"
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/import.php:66
|
||||||
|
msgid "Import from Readability completed."
|
||||||
|
msgstr "Der Import aus Readability ist abgeschlossen."
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/import.php:70
|
||||||
|
msgid "Error with the import."
|
||||||
|
msgstr "Fehler beim Import."
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/import.php:70
|
||||||
|
msgid "Back to poche"
|
||||||
|
msgstr "Rückkehr zu Poche"
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/index.php:18
|
||||||
|
msgid "Wrong token."
|
||||||
|
msgstr "Ungültiges Token."
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/index.php:43
|
||||||
|
msgid "Login failed !"
|
||||||
|
msgstr "Fehler bei der Anmeldung."
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/index.php:59
|
||||||
|
msgid "your password has been updated"
|
||||||
|
msgstr "Ihr Passwort wurde aktualisiert."
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/index.php:62
|
||||||
|
msgid "in demo mode, you can't update password"
|
||||||
|
msgstr "Im Demo-Modus kann das Passwort nicht geändert werden."
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/index.php:66
|
||||||
|
msgid ""
|
||||||
|
"your password can't be empty and you have to repeat it in the second field"
|
||||||
|
msgstr ""
|
||||||
|
"Ihr Passwort darf nicht leer sein, und Sie müssen es in das zweite Feld zu "
|
||||||
|
"wiederholen."
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/index.php:83
|
||||||
|
msgid "poche, a read it later open source system"
|
||||||
|
msgstr "Poche, eine Opensourceanwendung, um später zu lesen"
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/inc/MyTool.class.php:18
|
||||||
|
msgid "Oops, it seems you don't have PHP 5."
|
||||||
|
msgstr "Hoppla, scheint es, dass PHP 5 nicht installiert ist."
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/inc/functions.php:352
|
||||||
|
msgid "the link has been added successfully"
|
||||||
|
msgstr "der Link wurde erfolgreich hinzugefügt"
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/inc/functions.php:355
|
||||||
|
msgid "error during insertion : the link wasn't added"
|
||||||
|
msgstr "Fehler beim Einfügen: der Link wurde nicht hinzugefügt"
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/inc/functions.php:359
|
||||||
|
msgid "error during url preparation : the link wasn't added"
|
||||||
|
msgstr "Fehler beim Einfügen: der Link wurde nicht hinzugefügt"
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/inc/functions.php:364
|
||||||
|
msgid "error during url preparation : the link is not valid"
|
||||||
|
msgstr "Fehler bei der Herstellung der URL: der Link ist nicht gültig"
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/inc/functions.php:373
|
||||||
|
msgid "the link has been deleted successfully"
|
||||||
|
msgstr "der Link wurde erfolgreich hinzugefügt"
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/inc/functions.php:377
|
||||||
|
msgid "the link wasn't deleted"
|
||||||
|
msgstr "der Link wurde nicht entfernt."
|
BIN
locale/es_ES.utf8/LC_MESSAGES/es_ES.utf8.mo
Normal file
BIN
locale/es_ES.utf8/LC_MESSAGES/es_ES.utf8.mo
Normal file
Binary file not shown.
382
locale/es_ES.utf8/LC_MESSAGES/es_ES.utf8.po
Normal file
382
locale/es_ES.utf8/LC_MESSAGES/es_ES.utf8.po
Normal file
|
@ -0,0 +1,382 @@
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
# Nitche <nicolas.canseco@gmail.com>, 2013
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: poche\n"
|
||||||
|
"POT-Creation-Date: 2013-08-06 08:35+0100\n"
|
||||||
|
"PO-Revision-Date: 2013-08-16 19:09+0100\n"
|
||||||
|
"Last-Translator: Nicolas Lœuillet <nicolas.loeuillet@gmail.com>\n"
|
||||||
|
"Language-Team: Spanish (http://www.transifex.com/projects/p/poche/language/"
|
||||||
|
"es/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"Language: es\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
"X-Generator: Poedit 1.5.4\n"
|
||||||
|
"X-Poedit-Basepath: /\n"
|
||||||
|
"X-Poedit-KeywordsList: _;gettext;gettext_noop\n"
|
||||||
|
"X-Poedit-SourceCharset: UTF-8\n"
|
||||||
|
"X-Poedit-SearchPath-0: /var/www/poche-i18n\n"
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/index.php:43
|
||||||
|
msgid "poche, a read it later open source system"
|
||||||
|
msgstr "poche, a read it later open source system"
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/inc/poche/Poche.class.php:101
|
||||||
|
msgid "the link has been added successfully"
|
||||||
|
msgstr "el enlace a sido agregado con éxito"
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/inc/poche/Poche.class.php:104
|
||||||
|
msgid "error during insertion : the link wasn't added"
|
||||||
|
msgstr "error en la inserción : el enlace no ha sido agregado"
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/inc/poche/Poche.class.php:109
|
||||||
|
msgid "error during fetching content : the link wasn't added"
|
||||||
|
msgstr ""
|
||||||
|
"error durante la recuperación del contenido : el enlace no a sido agregado"
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/inc/poche/Poche.class.php:119
|
||||||
|
msgid "the link has been deleted successfully"
|
||||||
|
msgstr "el enlace a sido suprimido con éxito"
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/inc/poche/Poche.class.php:123
|
||||||
|
msgid "the link wasn't deleted"
|
||||||
|
msgstr "el enlace no ha sido suprimido"
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/inc/poche/Tools.class.php:18
|
||||||
|
msgid "Oops, it seems you don't have PHP 5."
|
||||||
|
msgstr "Parece que PHP 5 no está instalado"
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:32
|
||||||
|
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:70
|
||||||
|
#: /var/www/poche-i18n/cache/76/a4/e7c21f2e0ba29104fc654cd8ba41.php:50
|
||||||
|
msgid "config"
|
||||||
|
msgstr "configuración"
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:46
|
||||||
|
#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:31
|
||||||
|
#: /var/www/poche-i18n/cache/76/a4/e7c21f2e0ba29104fc654cd8ba41.php:26
|
||||||
|
#: /var/www/poche-i18n/cache/dd/a8/530129765655dcde0a70a31a78b6.php:34
|
||||||
|
msgid "home"
|
||||||
|
msgstr "inicio"
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:54
|
||||||
|
#: /var/www/poche-i18n/cache/76/a4/e7c21f2e0ba29104fc654cd8ba41.php:34
|
||||||
|
msgid "favorites"
|
||||||
|
msgstr "favoritos"
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:62
|
||||||
|
#: /var/www/poche-i18n/cache/76/a4/e7c21f2e0ba29104fc654cd8ba41.php:42
|
||||||
|
msgid "archive"
|
||||||
|
msgstr "archivos"
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:74
|
||||||
|
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:76
|
||||||
|
#: /var/www/poche-i18n/cache/76/a4/e7c21f2e0ba29104fc654cd8ba41.php:54
|
||||||
|
#: /var/www/poche-i18n/cache/76/a4/e7c21f2e0ba29104fc654cd8ba41.php:56
|
||||||
|
msgid "logout"
|
||||||
|
msgstr "desconexión "
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:87
|
||||||
|
msgid "Bookmarklet"
|
||||||
|
msgstr "Bookmarklet"
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:91
|
||||||
|
msgid ""
|
||||||
|
"Thanks to the bookmarklet, you will be able to easily add a link to your "
|
||||||
|
"poche."
|
||||||
|
msgstr ""
|
||||||
|
"Gracias a tu bookmarklet, puedes agregar fácilmente un enlace en tu bolsillo"
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:93
|
||||||
|
msgid "Have a look to this documentation:"
|
||||||
|
msgstr "échale un ojo a la documentación :"
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:97
|
||||||
|
msgid "Drag & drop this link to your bookmarks bar and have fun with poche."
|
||||||
|
msgstr ""
|
||||||
|
"Arrastra y suelta ese enlace en tu barra de favoritos en tu navegador y "
|
||||||
|
"disfruta de tu poche."
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:103
|
||||||
|
msgid "poche it!"
|
||||||
|
msgstr "pochéalo!"
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:108
|
||||||
|
msgid "Updating poche"
|
||||||
|
msgstr "Actualizar"
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:113
|
||||||
|
msgid "your version"
|
||||||
|
msgstr "su versión"
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:119
|
||||||
|
msgid "latest stable version"
|
||||||
|
msgstr "ultima versión estable"
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:125
|
||||||
|
msgid "a more recent stable version is available."
|
||||||
|
msgstr "una versión estable más reciente está disponible"
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:128
|
||||||
|
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:142
|
||||||
|
msgid "you are up to date."
|
||||||
|
msgstr "estás al día"
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:133
|
||||||
|
msgid "latest dev version"
|
||||||
|
msgstr "ultima versión de desarollo"
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:139
|
||||||
|
msgid "a more recent development version is available."
|
||||||
|
msgstr "una versión de desarollo más reciente está disponible"
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:150
|
||||||
|
msgid "Change your password"
|
||||||
|
msgstr "Modificar tu contraseña"
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:157
|
||||||
|
msgid "New password:"
|
||||||
|
msgstr "Nueva contraseña :"
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:161
|
||||||
|
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:171
|
||||||
|
#: /var/www/poche-i18n/cache/d4/28/e0d08991ec2d8a7b133505e7c651.php:60
|
||||||
|
#: /var/www/poche-i18n/cache/ae/26/05eb67771213c16bd8c9aaf2d2c4.php:68
|
||||||
|
msgid "Password"
|
||||||
|
msgstr "Contraseña"
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:167
|
||||||
|
msgid "Repeat your new password:"
|
||||||
|
msgstr "Repetir la nueva contraseña :"
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:177
|
||||||
|
msgid "Update"
|
||||||
|
msgstr "Poner al día"
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:193
|
||||||
|
msgid "Import"
|
||||||
|
msgstr "Importar"
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:197
|
||||||
|
msgid "Please execute the import script locally, it can take a very long time."
|
||||||
|
msgstr ""
|
||||||
|
"Gracias por ejecutar la importación en local, esto puede demorar un tiempo"
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:201
|
||||||
|
msgid "More infos in the official doc:"
|
||||||
|
msgstr "Más información en la documentación oficial :"
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:206
|
||||||
|
msgid "import from Pocket"
|
||||||
|
msgstr "la importación desde Pocket está terminada"
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:210
|
||||||
|
msgid "import from Readability"
|
||||||
|
msgstr "la importación desde Readability está terminada"
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:214
|
||||||
|
msgid "import from Instapaper"
|
||||||
|
msgstr "Importar desde Instapaper"
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:220
|
||||||
|
msgid "Export your poche datas"
|
||||||
|
msgstr "Exportar sus datos de poche"
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:224
|
||||||
|
msgid "Click here"
|
||||||
|
msgstr "Haga clic aquí"
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:226
|
||||||
|
msgid "to export your poche datas."
|
||||||
|
msgstr "Para exportar sus datos de poche"
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:46
|
||||||
|
#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:139
|
||||||
|
#: /var/www/poche-i18n/cache/30/97/b548692380c89d047a16cec7af79.php:22
|
||||||
|
msgid "back to home"
|
||||||
|
msgstr "volver a la pagina de inicio"
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:50
|
||||||
|
#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:147
|
||||||
|
#: /var/www/poche-i18n/cache/dd/a8/530129765655dcde0a70a31a78b6.php:119
|
||||||
|
msgid "toggle mark as read"
|
||||||
|
msgstr "marcar como leído"
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:60
|
||||||
|
#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:157
|
||||||
|
#: /var/www/poche-i18n/cache/dd/a8/530129765655dcde0a70a31a78b6.php:129
|
||||||
|
msgid "toggle favorite"
|
||||||
|
msgstr "favorito"
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:70
|
||||||
|
#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:167
|
||||||
|
#: /var/www/poche-i18n/cache/dd/a8/530129765655dcde0a70a31a78b6.php:139
|
||||||
|
msgid "delete"
|
||||||
|
msgstr "suprimir"
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:82
|
||||||
|
#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:179
|
||||||
|
msgid "tweet"
|
||||||
|
msgstr "tweetear"
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:93
|
||||||
|
#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:190
|
||||||
|
msgid "email"
|
||||||
|
msgstr "enviar por mail"
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:109
|
||||||
|
#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:125
|
||||||
|
#: /var/www/poche-i18n/cache/dd/a8/530129765655dcde0a70a31a78b6.php:153
|
||||||
|
msgid "original"
|
||||||
|
msgstr "original"
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:143
|
||||||
|
msgid "back to top"
|
||||||
|
msgstr "volver arriba"
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:198
|
||||||
|
msgid "this article appears wrong?"
|
||||||
|
msgstr "este articulo no se ve bien ?"
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:200
|
||||||
|
msgid "create an issue"
|
||||||
|
msgstr "crear un ticket"
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:202
|
||||||
|
msgid "or"
|
||||||
|
msgstr "o"
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:206
|
||||||
|
msgid "contact us by mail"
|
||||||
|
msgstr "contactarnos por mail"
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/cache/88/8a/ee3b7080c13204391c14947a0c2c.php:22
|
||||||
|
msgid "powered by"
|
||||||
|
msgstr "propulsado por"
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/cache/d4/28/e0d08991ec2d8a7b133505e7c651.php:31
|
||||||
|
msgid "installation"
|
||||||
|
msgstr "instalacion"
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/cache/d4/28/e0d08991ec2d8a7b133505e7c651.php:42
|
||||||
|
msgid "install your poche"
|
||||||
|
msgstr "instala tu poche"
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/cache/d4/28/e0d08991ec2d8a7b133505e7c651.php:47
|
||||||
|
msgid ""
|
||||||
|
"poche is still not installed. Please fill the below form to install it. "
|
||||||
|
"Don't hesitate to <a href='http://inthepoche.com/?pages/Documentation'>read "
|
||||||
|
"the documentation on poche website</a>."
|
||||||
|
msgstr ""
|
||||||
|
"poche todavia no està instalado. Gracias de llenar los campos siguientes "
|
||||||
|
"para instalarlo. No dudes de <a href='http://inthepoche.com/?pages/"
|
||||||
|
"Documentation'>leer la documentacion en el sitio de poche</a>."
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/cache/d4/28/e0d08991ec2d8a7b133505e7c651.php:53
|
||||||
|
#: /var/www/poche-i18n/cache/ae/26/05eb67771213c16bd8c9aaf2d2c4.php:55
|
||||||
|
msgid "Login"
|
||||||
|
msgstr "Nombre de usuario"
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/cache/d4/28/e0d08991ec2d8a7b133505e7c651.php:67
|
||||||
|
msgid "Repeat your password"
|
||||||
|
msgstr "repita su contraseña"
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/cache/d4/28/e0d08991ec2d8a7b133505e7c651.php:74
|
||||||
|
msgid "Install"
|
||||||
|
msgstr "Instalar"
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/cache/ae/26/05eb67771213c16bd8c9aaf2d2c4.php:31
|
||||||
|
#: /var/www/poche-i18n/cache/ae/26/05eb67771213c16bd8c9aaf2d2c4.php:42
|
||||||
|
msgid "login to your poche"
|
||||||
|
msgstr "conectarse a tu poche"
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/cache/ae/26/05eb67771213c16bd8c9aaf2d2c4.php:48
|
||||||
|
msgid "you are in demo mode, some features may be disabled."
|
||||||
|
msgstr ""
|
||||||
|
"este es el modo de demostración, algunas funcionalidades pueden estar "
|
||||||
|
"desactivadas."
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/cache/ae/26/05eb67771213c16bd8c9aaf2d2c4.php:80
|
||||||
|
msgid "Stay signed in"
|
||||||
|
msgstr "seguir conectado"
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/cache/ae/26/05eb67771213c16bd8c9aaf2d2c4.php:86
|
||||||
|
msgid "(Do not check on public computers)"
|
||||||
|
msgstr "(no marcar en un ordenador publico)"
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/cache/ae/26/05eb67771213c16bd8c9aaf2d2c4.php:93
|
||||||
|
msgid "Sign in"
|
||||||
|
msgstr "conectarse"
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/cache/dd/a8/530129765655dcde0a70a31a78b6.php:55
|
||||||
|
#: /var/www/poche-i18n/cache/dd/a8/530129765655dcde0a70a31a78b6.php:57
|
||||||
|
msgid "by date asc"
|
||||||
|
msgstr "por fecha ascendiente"
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/cache/dd/a8/530129765655dcde0a70a31a78b6.php:59
|
||||||
|
msgid "by date"
|
||||||
|
msgstr "por fecha"
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/cache/dd/a8/530129765655dcde0a70a31a78b6.php:65
|
||||||
|
#: /var/www/poche-i18n/cache/dd/a8/530129765655dcde0a70a31a78b6.php:67
|
||||||
|
msgid "by date desc"
|
||||||
|
msgstr "por fecha descendiente"
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/cache/dd/a8/530129765655dcde0a70a31a78b6.php:75
|
||||||
|
#: /var/www/poche-i18n/cache/dd/a8/530129765655dcde0a70a31a78b6.php:77
|
||||||
|
msgid "by title asc"
|
||||||
|
msgstr "por titulo ascendiente"
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/cache/dd/a8/530129765655dcde0a70a31a78b6.php:79
|
||||||
|
msgid "by title"
|
||||||
|
msgstr "por titulo"
|
||||||
|
|
||||||
|
#: /var/www/poche-i18n/cache/dd/a8/530129765655dcde0a70a31a78b6.php:85
|
||||||
|
#: /var/www/poche-i18n/cache/dd/a8/530129765655dcde0a70a31a78b6.php:87
|
||||||
|
msgid "by title desc"
|
||||||
|
msgstr "por titulo descendiente"
|
||||||
|
|
||||||
|
#~ msgid "Please choose between Pocket & Readabilty :"
|
||||||
|
#~ msgstr "Merci de choisir entre Pocket & Readability :"
|
||||||
|
|
||||||
|
#~ msgid "Bye bye Pocket, let's go !"
|
||||||
|
#~ msgstr "Bye bye Pocket, en route !"
|
||||||
|
|
||||||
|
#~ msgid "Bye bye Readability, let's go !"
|
||||||
|
#~ msgstr "Bye bye Readability, en route !"
|
||||||
|
|
||||||
|
#~ msgid "Welcome to poche !"
|
||||||
|
#~ msgstr "Bienvenue dans poche !"
|
||||||
|
|
||||||
|
#~ msgid "Error with the import."
|
||||||
|
#~ msgstr "Erreur durant l'import."
|
||||||
|
|
||||||
|
#~ msgid "Wrong token."
|
||||||
|
#~ msgstr "Mauvais jeton."
|
||||||
|
|
||||||
|
#~ msgid "Login failed !"
|
||||||
|
#~ msgstr "Connexion échouée."
|
||||||
|
|
||||||
|
#~ msgid "your password has been updated"
|
||||||
|
#~ msgstr "Votre mot de passe a été mis à jour. "
|
||||||
|
|
||||||
|
#~ msgid "in demo mode, you can't update password"
|
||||||
|
#~ msgstr "En mode démo, le mot de passe ne peut être modifié."
|
||||||
|
|
||||||
|
#~ msgid ""
|
||||||
|
#~ "your password can't be empty and you have to repeat it in the second field"
|
||||||
|
#~ msgstr ""
|
||||||
|
#~ "Votre mot de passe ne peut être vide et vous devez le répéter dans le "
|
||||||
|
#~ "second champ."
|
||||||
|
|
||||||
|
#~ msgid "error during url preparation : the link wasn't added"
|
||||||
|
#~ msgstr "erreur durant l'insertion : le lien n'a pas été ajouté"
|
||||||
|
|
||||||
|
#~ msgid "error during url preparation : the link is not valid"
|
||||||
|
#~ msgstr "erreur durant la préparation de l'URL : le lien n'est pas valide"
|
||||||
|
|
||||||
|
#~ msgid "TEST"
|
||||||
|
#~ msgstr "NICOLAS"
|
2
robots.txt
Normal file
2
robots.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
User-agent: *
|
||||||
|
Disallow: /
|
|
@ -6,6 +6,6 @@
|
||||||
<link rel="stylesheet" href="./tpl/css/style.css" media="all">
|
<link rel="stylesheet" href="./tpl/css/style.css" media="all">
|
||||||
<link rel="stylesheet" href="./tpl/css/style-{{ constant('THEME') }}.css" media="all" title="{{ constant('THEME') }} theme">
|
<link rel="stylesheet" href="./tpl/css/style-{{ constant('THEME') }}.css" media="all" title="{{ constant('THEME') }} theme">
|
||||||
<link rel="stylesheet" href="./tpl/css/messages.css" media="all">
|
<link rel="stylesheet" href="./tpl/css/messages.css" media="all">
|
||||||
<link href='http://fonts.googleapis.com/css?family=Roboto' rel='stylesheet' type='text/css'>
|
<link href='//fonts.googleapis.com/css?family=Roboto' rel='stylesheet' type='text/css'>
|
||||||
<script src="./tpl/js/jquery-2.0.3.min.js"></script>
|
<script src="./tpl/js/jquery-2.0.3.min.js"></script>
|
||||||
<script type="text/javascript">$(document).ready(function(){$("body").prepend('<a href="#top" class="top_link" title="{% trans "back to top" %}"><img src="./tpl/img/{{ constant("THEME") }}/backtotop.png" alt={% trans "back to top" %}"/></a>');$(".top_link").css({position:"fixed",right:"15px",bottom:"15px",display:"none",padding:"20px",background:"#ccc","-moz-border-radius":"40px","-webkit-border-radius":"40px","border-radius":"40px",opacity:"0.9","z-index":"2000"});$(window).scroll(function(){posScroll=$(document).scrollTop();if(posScroll>=400)$(".top_link").fadeIn(600);else $(".top_link").fadeOut(600)})})</script>
|
<script type="text/javascript">$(document).ready(function(){$("body").prepend('<a href="#top" class="top_link" title="{% trans "back to top" %}"><img src="./tpl/img/{{ constant("THEME") }}/backtotop.png" alt={% trans "back to top" %}"/></a>');$(".top_link").css({position:"fixed",right:"15px",bottom:"15px",display:"none",padding:"20px",background:"#ccc","-moz-border-radius":"40px","-webkit-border-radius":"40px","border-radius":"40px",opacity:"0.9","z-index":"2000"});$(window).scroll(function(){posScroll=$(document).scrollTop();if(posScroll>=400)$(".top_link").fadeIn(600);else $(".top_link").fadeOut(600)})})</script>
|
7
tpl/error.twig
Normal file
7
tpl/error.twig
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
{% extends "layout.twig" %}
|
||||||
|
{% block title %}{% trans "error" %}{% endblock %}
|
||||||
|
{% block content %}
|
||||||
|
<h1>error</h1>
|
||||||
|
<p>{{ msg|raw }}</p>
|
||||||
|
<p>Don't forget <a href="http://inthepoche.com/?pages/Documentation">the documentation</a>.</p>
|
||||||
|
{% endblock %}
|
|
@ -7,21 +7,21 @@
|
||||||
<p>
|
<p>
|
||||||
{% trans "poche is still not installed. Please fill the below form to install it. Don't hesitate to <a href='http://inthepoche.com/?pages/Documentation'>read the documentation on poche website</a>." %}
|
{% trans "poche is still not installed. Please fill the below form to install it. Don't hesitate to <a href='http://inthepoche.com/?pages/Documentation'>read the documentation on poche website</a>." %}
|
||||||
</p>
|
</p>
|
||||||
<div class="row">
|
<p class="row">
|
||||||
<label class="col w150p" for="login">{% trans "Login" %}</label>
|
<label class="col w150p" for="login">{% trans "Login" %}</label>
|
||||||
<input class="col" type="text" id="login" name="login" placeholder="Login" tabindex="1" autofocus />
|
<input class="col" type="text" id="login" name="login" placeholder="Login" tabindex="1" autofocus />
|
||||||
</div>
|
</p>
|
||||||
<div class="row">
|
<p class="row">
|
||||||
<label class="col w150p" for="password">{% trans "Password" %}</label>
|
<label class="col w150p" for="password">{% trans "Password" %}</label>
|
||||||
<input class="col" type="password" id="password" name="password" placeholder="Password" tabindex="2">
|
<input class="col" type="password" id="password" name="password" placeholder="Password" tabindex="2">
|
||||||
</div>
|
</p>
|
||||||
<div class="row">
|
<p class="row">
|
||||||
<label class="col w150p" for="password_repeat">{% trans "Repeat your password" %}</label>
|
<label class="col w150p" for="password_repeat">{% trans "Repeat your password" %}</label>
|
||||||
<input class="col" type="password" id="password_repeat" name="password_repeat" placeholder="Password" tabindex="3">
|
<input class="col" type="password" id="password_repeat" name="password_repeat" placeholder="Password" tabindex="3">
|
||||||
</div>
|
</p>
|
||||||
<div class="row mts txtcenter">
|
<p class="row mts txtcenter">
|
||||||
<button class="bouton" type="submit" tabindex="4">{% trans "Install" %}</button>
|
<button class="bouton" type="submit" tabindex="4">{% trans "Install" %}</button>
|
||||||
</div>
|
</p>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<input type="hidden" name="token" value="{{ token }}">
|
<input type="hidden" name="token" value="{{ token }}">
|
||||||
</form>
|
</form>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue