* multi users (very soon!)
* update notification in configuration screen
* many storage modes (sqlite, mysql, postgresql)
-* many templates: [have a look here](https://github.com/inthepoche/poche-themes).
+* many templates: [have a look here](https://github.com/inthepoche/poche/tree/master/themes).
* ...
To test poche, a demo website is online : [demo.inthepoche.com](http://demo.inthepoche.com) (login poche, password poche).
Copyright © 2010-2013 Nicolas Lœuillet <nicolas.loeuillet@gmail.com>
This work is free. You can redistribute it and/or modify it under the
terms of the Do What The Fuck You Want To Public License, Version 2,
-as published by Sam Hocevar. See the COPYING file for more details.
\ No newline at end of file
+as published by Sam Hocevar. See the COPYING file for more details.
case 'utf7':
return 'UTF-7';
+ case 'utf8lias':
case 'utf8':
return 'UTF-8';
--- /dev/null
+title: //div[contains(@class, 'SB_Title')]//a
+body: //div[contains(@class, 'STR_Content')]
+
+test_url: http://dilbert.com/strips/comic/2013-10-22
\ No newline at end of file
$query = $this->executeQuery($sql, $params);
$entry = $query->fetchAll();
- return $entry[0];
+ return isset($entry[0]) ? $entry[0] : null;
}
public function getEntriesByView($view, $user_id, $limit = '') {
/**
* Call action (mark as fav, archive, delete, etc.)
*/
- public function action($action, Url $url, $id = 0, $import = FALSE)
+ public function action($action, Url $url, $id = 0, $import = FALSE, $autoclose = FALSE)
{
switch ($action)
{
}
if (!$import) {
- Tools::redirect('?view=home');
+ if ($autoclose == TRUE) {
+ Tools::redirect('?view=home');
+ } else {
+ Tools::redirect('?view=home&closewin=true');
+ }
}
break;
case 'delete':
$msg = 'error : can\'t delete link #' . $id;
}
Tools::logm($msg);
- Tools::redirect();
+ Tools::redirect('?');
break;
case 'toggle_fav' :
$this->store->favoriteById($id, $this->user->getId());
$scriptname = str_replace('/index.php', '/', $_SERVER["SCRIPT_NAME"]);
- if (!isset($_SERVER["SERVER_NAME"])) {
+ if (!isset($_SERVER["HTTP_HOST"])) {
return $scriptname;
}
return 'http' . ($https ? 's' : '') . '://'
- . $_SERVER["SERVER_NAME"] . $serverport . $scriptname;
+ . $_SERVER["HTTP_HOST"] . $serverport . $scriptname;
}
public static function redirect($url = '')
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_TIMEOUT, $timeout);
- curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
+ if (!ini_get('open_basedir') && !ini_get('safe_mode')) {
+ curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
+ }
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HEADER, false);
* @license http://www.wtfpl.net/ see COPYING file
*/
-define ('POCHE', '1.1.0');
+define ('POCHE', '1.2.0');
require_once 'inc/poche/global.inc.php';
session_start();
`name` varchar(255) NOT NULL,
`value` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `entries` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`content` blob NOT NULL,
`user_id` int(11) NOT NULL,
PRIMARY KEY (`id`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` int(255) NOT NULL,
`email` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `users_config` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`value` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
\ No newline at end of file
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
\ No newline at end of file
--- /dev/null
+#
+# Translators:
+# Damtux <sun_lion@live.com>, 2013
+msgid ""
+msgstr ""
+"Project-Id-Version: poche\n"
+"POT-Creation-Date: \n"
+"PO-Revision-Date: 2013-11-25 09:47+0100\n"
+"Last-Translator: Nicolas Lœuillet <nicolas.loeuillet@gmail.com>\n"
+"Language-Team: Italian (http://www.transifex.com/projects/p/poche/language/"
+"it/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: it\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Poedit 1.5.4\n"
+
+msgid "config"
+msgstr "configurazione"
+
+msgid "Poching a link"
+msgstr "Pochare un link"
+
+msgid "read the documentation"
+msgstr "leggi la documentazione"
+
+msgid "by filling this field"
+msgstr "compilando questo campo"
+
+msgid "poche it!"
+msgstr "pochalo!"
+
+msgid "Updating poche"
+msgstr "Aggiornamento poche"
+
+msgid "your version"
+msgstr "la tua versione"
+
+msgid "latest stable version"
+msgstr "ultima versione stabile"
+
+msgid "a more recent stable version is available."
+msgstr "è disponibile una versione stabile più recente."
+
+msgid "you are up to date."
+msgstr "sei aggiornato."
+
+msgid "latest dev version"
+msgstr "ultima versione di sviluppo"
+
+msgid "a more recent development version is available."
+msgstr "è disponibile una versione di sviluppo più recente."
+
+msgid "Change your password"
+msgstr "Cambia la tua password"
+
+msgid "New password:"
+msgstr "Nuova password:"
+
+msgid "Password"
+msgstr "Password"
+
+msgid "Repeat your new password:"
+msgstr "Ripeti la nuova password:"
+
+msgid "Update"
+msgstr "Aggiorna"
+
+msgid "Import"
+msgstr "Importa"
+
+msgid "Please execute the import script locally, it can take a very long time."
+msgstr ""
+"Si prega di eseguire lo script di importazione a livello locale, può "
+"richiedere un tempo molto lungo."
+
+msgid "More infos in the official doc:"
+msgstr "Maggiori info nella documentazione ufficiale"
+
+msgid "import from Pocket"
+msgstr "Importa da Pocket"
+
+msgid "import from Readability"
+msgstr "Importa da Readability"
+
+msgid "import from Instapaper"
+msgstr "Importa da Instapaper"
+
+msgid "Export your poche datas"
+msgstr "Esporta i tuoi dati di poche"
+
+msgid "Click here"
+msgstr "Fai clic qui"
+
+msgid "to export your poche datas."
+msgstr "per esportare i tuoi dati di poche."
+
+msgid "back to home"
+msgstr "torna alla home"
+
+msgid "installation"
+msgstr "installazione"
+
+msgid "install your poche"
+msgstr "installa il tuo poche"
+
+msgid ""
+"poche is still not installed. Please fill the below form to install it. "
+"Don't hesitate to <a href='http://inthepoche.com/doc'>read the documentation "
+"on poche website</a>."
+msgstr ""
+"poche non è ancora installato. Si prega di riempire il modulo sottostante "
+"per completare l'installazione. <a href='http://inthepoche.com/doc'>Leggere "
+"la documentazione sul sito di poche</a>."
+
+msgid "Login"
+msgstr "Nome utente"
+
+msgid "Repeat your password"
+msgstr "Ripeti la tua password"
+
+msgid "Install"
+msgstr "Installa"
+
+msgid "back to top"
+msgstr "torna a inizio pagina"
+
+msgid "favoris"
+msgstr "preferiti"
+
+msgid "archive"
+msgstr "archivio"
+
+msgid "unread"
+msgstr "non letti"
+
+msgid "by date asc"
+msgstr "per data cresc"
+
+msgid "by date"
+msgstr "per data"
+
+msgid "by date desc"
+msgstr "per data decr"
+
+msgid "by title asc"
+msgstr "per titolo cresc"
+
+msgid "by title"
+msgstr "per titolo"
+
+msgid "by title desc"
+msgstr "per titolo decr"
+
+msgid "No link available here!"
+msgstr "Nessun link disponibile!"
+
+msgid "toggle mark as read"
+msgstr "segna come letto / non letto"
+
+msgid "toggle favorite"
+msgstr "segna come preferito"
+
+msgid "delete"
+msgstr "elimina"
+
+msgid "original"
+msgstr "originale"
+
+msgid "results"
+msgstr "risultati"
+
+msgid "tweet"
+msgstr "twitta"
+
+msgid "email"
+msgstr "email"
+
+msgid "shaarli"
+msgstr "shaarli"
+
+msgid "flattr"
+msgstr "flattr"
+
+msgid "this article appears wrong?"
+msgstr "articolo non visualizzato correttamente?"
+
+msgid "create an issue"
+msgstr "crea una segnalazione"
+
+msgid "or"
+msgstr "oppure"
+
+msgid "contact us by mail"
+msgstr "contattaci via email"
+
+msgid "plop"
+msgstr "plop"
+
+msgid "home"
+msgstr "home"
+
+msgid "favorites"
+msgstr "preferiti"
+
+msgid "logout"
+msgstr "esci"
+
+msgid "powered by"
+msgstr "realizzato con"
+
+msgid "debug mode is on so cache is off."
+msgstr "modalità di debug attiva, cache disattivata."
+
+msgid "your poche version:"
+msgstr "la tua versione di poche:"
+
+msgid "storage:"
+msgstr "memoria:"
+
+msgid "login to your poche"
+msgstr "accedi al tuo poche"
+
+msgid "you are in demo mode, some features may be disabled."
+msgstr ""
+"sei in modalità dimostrazione, alcune funzionalità potrebbero essere "
+"disattivate."
+
+msgid "Stay signed in"
+msgstr "Resta connesso"
+
+msgid "(Do not check on public computers)"
+msgstr "(non selezionare su computer pubblici)"
+
+msgid "Sign in"
+msgstr "Accedi"
--- /dev/null
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"POT-Creation-Date: \n"
+"PO-Revision-Date: \n"
+"Last-Translator: Nicolas Lœuillet <nicolas.loeuillet@gmail.com>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 1.5.4\n"
+
+msgid "config"
+msgstr "настройки"
+
+msgid "Poching a link"
+msgstr "Сохраняю ссылку"
+
+msgid "read the documentation"
+msgstr "читать инструкцию"
+
+msgid "by filling this field"
+msgstr "заполнением этого поля"
+
+msgid "poche it!"
+msgstr "Прикарманить!"
+
+msgid "Updating poche"
+msgstr "Обновляю poche"
+
+msgid "your version"
+msgstr "Ваша версия"
+
+msgid "latest stable version"
+msgstr "крайняя стабильная версия"
+
+msgid "a more recent stable version is available."
+msgstr "есть более новая стабильная версия."
+
+msgid "you are up to date."
+msgstr "у Вас всё самое новое."
+
+msgid "latest dev version"
+msgstr "крайняя версия разработчиков"
+
+msgid "a more recent development version is available."
+msgstr "есть более свежая версия разработчиков."
+
+msgid "Change your password"
+msgstr "Смени пароль"
+
+msgid "New password:"
+msgstr "Новый пароль:"
+
+msgid "Password"
+msgstr "Пароль"
+
+msgid "Repeat your new password:"
+msgstr "Ещё раз новый пароль:"
+
+msgid "Update"
+msgstr "Обновить"
+
+msgid "Import"
+msgstr "Импортировать"
+
+msgid "Please execute the import script locally, it can take a very long time."
+msgstr ""
+"Выполните сценарий импорта локально - он может занять слишком много времени."
+
+msgid "More infos in the official doc:"
+msgstr "Больше сведений в официальной документации:"
+
+msgid "import from Pocket"
+msgstr "импортировать из Pocket"
+
+msgid "import from Readability"
+msgstr "импортировать из Readability"
+
+msgid "import from Instapaper"
+msgstr "импортировать из Instapaper"
+
+msgid "Export your poche datas"
+msgstr "Экспортировать данные poche"
+
+msgid "Click here"
+msgstr "Кликни сюда"
+
+msgid "to export your poche datas."
+msgstr "чтобы экспортировать твои записи из poche."
+
+msgid "back to home"
+msgstr "домой"
+
+msgid "installation"
+msgstr "установка"
+
+msgid "install your poche"
+msgstr "установить твой poche"
+
+msgid ""
+"poche is still not installed. Please fill the below form to install it. "
+"Don't hesitate to <a href='http://inthepoche.com/doc'>read the documentation "
+"on poche website</a>."
+msgstr ""
+"poche всё ещё не установлен. Надо заполнить форму ниже, чтобы установить "
+"его. Неплохо также <a href='http://inthepoche.com/doc'>прочесть документацию "
+"на сайте poche</a>."
+
+msgid "Login"
+msgstr "Регистрационное имя"
+
+msgid "Repeat your password"
+msgstr "Повтори пароль"
+
+msgid "Install"
+msgstr "Установить"
+
+msgid "back to top"
+msgstr "наверх"
+
+msgid "favoris"
+msgstr "избранное"
+
+msgid "archive"
+msgstr "архив"
+
+msgid "unread"
+msgstr "нечитанное"
+
+msgid "by date asc"
+msgstr "по дате, сперва старые"
+
+msgid "by date"
+msgstr "по дате"
+
+msgid "by date desc"
+msgstr "по дате, сперва новые"
+
+msgid "by title asc"
+msgstr "по заголовку (прямой)"
+
+msgid "by title"
+msgstr "по заголовку"
+
+msgid "by title desc"
+msgstr "по заголовку (обратный)"
+
+msgid "No link available here!"
+msgstr "Здесь нет линка!"
+
+msgid "toggle mark as read"
+msgstr "изменить отметку 'прочитано'"
+
+msgid "toggle favorite"
+msgstr "изменить избранность"
+
+msgid "delete"
+msgstr "удалить"
+
+msgid "original"
+msgstr "исходный"
+
+msgid "results"
+msgstr "найдено"
+
+msgid "tweet"
+msgstr "твитнуть"
+
+msgid "email"
+msgstr "отправить по почте"
+
+msgid "shaarli"
+msgstr "Шаарли"
+
+msgid "flattr"
+msgstr "проспонсировать"
+
+msgid "this article appears wrong?"
+msgstr "статья выглядит криво?"
+
+msgid "create an issue"
+msgstr "оповестить об ошибке"
+
+msgid "or"
+msgstr "или"
+
+msgid "contact us by mail"
+msgstr "связаться по почте"
+
+msgid "plop"
+msgstr "plop"
+
+msgid "home"
+msgstr "домой"
+
+msgid "favorites"
+msgstr "избранное"
+
+msgid "logout"
+msgstr "выйти"
+
+msgid "powered by"
+msgstr "на основе"
+
+msgid "debug mode is on so cache is off."
+msgstr "включён режим отладки - кеш выключен."
+
+msgid "your poche version:"
+msgstr "Ваша версия poche:"
+
+msgid "storage:"
+msgstr "хранилище:"
+
+msgid "login to your poche"
+msgstr "войти в свой poche"
+
+msgid "you are in demo mode, some features may be disabled."
+msgstr "демонстрационный режим - работают не все возможности."
+
+msgid "Stay signed in"
+msgstr "Оставаться зарегистрированным"
+
+msgid "(Do not check on public computers)"
+msgstr "(Не отмечай на чужих компьютерах)"
+
+msgid "Sign in"
+msgstr "Зарегистрироваться"
<?php
$app_name = 'poche 1.0';
-$php_ok = (function_exists('version_compare') && version_compare(phpversion(), '5.2.0', '>='));
+$php_ok = (function_exists('version_compare') && version_compare(phpversion(), '5.3.3', '>='));
$pcre_ok = extension_loaded('pcre');
$zlib_ok = extension_loaded('zlib');
$mbstring_ok = extension_loaded('mbstring');
<link rel="stylesheet" href="{{ poche_url }}/themes/{{ constant('DEFAULT_THEME') }}/css/messages.css" media="all">
<link rel="stylesheet" href="{{ poche_url }}/themes/{{ constant('DEFAULT_THEME') }}/css/print.css" media="print">
<script src="{{ poche_url }}/themes/{{ constant('DEFAULT_THEME') }}/js/jquery-2.0.3.min.js"></script>
+ <script src="{{ poche_url }}/themes/{{ constant('DEFAULT_THEME') }}/js/autoClose.js"></script>
\ No newline at end of file
<h2>{% trans "Poching a link" %}</h2>
<p>{% trans "You can poche a link by several methods:" %} (<a href="http://inthepoche.com/doc" title="{% trans "read the documentation" %}">?</a>)</p>
<ul>
- <li>firefox: <a href="https://bitbucket.org/jogaulupeau/poche/downloads/poche.xpi" title="download the firefox extension">{% trans "download the extension" %}</a></li>
- <li>chrome: <a href="https://bitbucket.org/jogaulupeau/poche/downloads/poche.crx" title="download the chrome extension">{% trans "download the extension" %}</a></li>
- <li>android: <a href="https://bitbucket.org/jogaulupeau/poche/downloads/Poche.apk" title="download the application">{% trans "download the application" %}</a></li>
+ <li>firefox: <a href="https://addons.mozilla.org/fr/firefox/addon/poche/" title="download the firefox extension">{% trans "download the extension" %}</a></li>
+ <li>chrome: <a href="http://doc.inthepoche.com/doku.php?id=users:chrome_extension" title="download the chrome extension">{% trans "download the extension" %}</a></li>
+ <li>android: <a href="https://f-droid.org/repository/browse/?fdid=fr.gaulupeau.apps.Poche" title="download the application">{% trans "via f-droid" %}</a>{% trans "or" %}<a href="https://play.google.com/store/apps/details?id=fr.gaulupeau.apps.Poche" title="download the application">{% trans "via google play" %}</a></li>
+ <li>windows phone: <a href="http://www.windowsphone.com/en-us/store/app/poche/334de2f0-51b5-4826-8549-a3d805a37e83" title="download the window phone application">{% trans "download the application" %}</a></li>
<li>
<form method="get" action="index.php">
<label class="addurl" for="plainurl">{% trans "by filling this field" %}:</label>
div.tools,
header div,
.messages,
-.entrie + .results {
+.entrie + .results,
+#article_toolbar {
display: none !important;
}
--- /dev/null
+$(document).ready(function() {
+ current_url = window.location.href
+ if (current_url.match("&closewin=true")) {
+ window.close();
+ }
+});