My.Boomarks
My.Bookmarks est une application PHP5 permettant la sauvegarde de vos sites favoris sur internet.
Si comme moi vous :
- Utilisez plusieurs postes différents dans une journée.
- Jonglez avec plusieurs navigateurs.
- Perdez vos favoris suite à un formatage de disque dur (hahah le naze).
- Souhaitez partager vos dernières découvertes avec vos amis.
- Voulez rester maitre de vos données.
My.Bookmarks est fait pour vous. Grâce à un simple widget ( un composant d'interface graphique), déposé dans votre barre de favoris (CTRL+B dans firefox pour l'afficher), vous pouvez enregistrer la page que vous êtes en train de visualiser directement sur <u>votre</u> espace web.
Il est vrai qu'il existe déjà des services comparables : xmark, firefox sync... Services gratuits le plus souvent, mais si une de ces sociétés ou association ferme, que vont devenir vos données ? Le plus sage serait l'autonomie !
Démonstration
-
http://bookmarks.inwebo.net/
Environnement développement
- PHP 5.2
- jQuery 1.6.4
- jQuery-ui 1.8.16
- MySQL
- HTML5 / CSS3
- Boilerplate
- 960 grid system
- GitHub
- Approche MVC
Compatibilité
Firefox 6+, Opera 11.52+, Chromium 14+
Source / Exemple :
<?php
if( !is_file('config/config.ini') ) {
include('views/setup.php');
exit();
}
ini_set('display_errors', 0);
?>
<?php include('autoload.php'); ?>
<?php include( dirname( __FILE__ ) . DIRECTORY_SEPARATOR .'helpers/const.define.php'); ?>
<?php
// Controleur Init
try {
// Session
$sessions = new MySessions();
$sessions->addParams('type', 'guest');
$multiViews = new MyMultiviews( 'index.php' );
//var_dump($multiViews);
}
catch( Exception $e ) {
// Display Error ?
if( $conf['debug'] == 1 ) {
echo $e->getMessage();
}
else {
// Try to log in exceptions.log
try {
$myLog = new MyLog( $conf['logs'] . 'exceptions.log' );
$myLog->line( $e->getMessage() );
$myLog->save();
}
// Display it
catch(Exception $e) {
if( $conf['debug'] == 1 ) {
echo $e->getMessage();
}
}
}
}
if( isset($_POST['login']) && isset($_POST['password']) ) {
$userExists = $sql->query('SELECT * from `users` WHERE login=":?" AND password=":?"', array( $_POST['login'], md5($_POST['password']) ));
if( is_resource( $userExists ) && ( @mysql_result( $userExists, 0 ) ) !== FALSE ) {
$sessions->setParams('type','admin');
//echo "<meta http-equiv='refresh' content='0';URL=". $conf['root'] ."'>";
}
}
if( isset($_GET['q'] ) && $_SESSION['type'] == 'admin') {
$sessions->destroy();
$sessions->setParams('type','guest');
echo "<meta http-equiv='refresh' content='0';URL=". $conf['root'] ."'>";
}
?>
<!doctype html>
<!-- paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/ -->
<!--[if lt IE 7]> <html class="no-js ie6 oldie" lang="en"> <![endif]-->
<!--[if IE 7]> <html class="no-js ie7 oldie" lang="en"> <![endif]-->
<!--[if IE 8]> <html class="no-js ie8 oldie" lang="en"> <![endif]-->
<!-- Consider adding an manifest.appcache: h5bp.com/d/Offline -->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en"> <!--<![endif]-->
<head>
<meta charset="utf-8">
<!-- Use the .htaccess and remove these lines to avoid edge case issues.
More info: h5bp.com/b/378 -->
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title><?php echo $conf['name']; ?></title>
<meta name="description" content="Self hosted bookmarklet service.">
<meta name="author" content="inwebo">
<!-- Mobile viewport optimized: j.mp/bplateviewport -->
<meta name="viewport" content="width=device-width,initial-scale=1">
<!-- Place favicon.ico and apple-touch-icon.png in the root directory: mathiasbynens.be/notes/touch-icons -->
<!-- CSS: implied media=all -->
<!-- CSS concatenated and minified via ant build script-->
<link rel="stylesheet" href="<?php echo ROOT_CSS; ?>my-style.css">
<!-- end CSS-->
<!-- More ideas for your <head> here: h5bp.com/d/head-Tips -->
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.min.js"></script>
<script type="text/javascript" src="<?php echo ROOT_JS; ?>libs/modernizr-2.0.6.min.js"></script>
</head>
<body>
<a name="top"></a>
<div id="container" >
<?php include('views/header.php'); ?>
<div id="main" role="main">
<!-- Container -->
<div class="container_12">
<!-- Breadcrumbs -->
<div id="breadCrumbs" class="grid_12">
<?php
include('views/breadcrumbs.php');
BreadCrumbs::display();
?>
</div>
<!-- /Breadcrumbs -->
<!-- Include -->
<div class="clear"></div>
<div class="">
<?php
if( $multiViews->args == NULL ) {
include('views/home.php');
}
elseif( $multiViews->args[1] == "categorie" ) {
include('views/categorie.php');
}
elseif( $multiViews->args[1] == "tags" ) {
if( isset( $multiViews->args[2] ) ) {
include('views/list-tags.php');
}
else {
include('views/tags.php');
}
}
elseif( $multiViews->args[1] == "about" ) {
include( 'views/about.php' );
}
?>
</div>
<!-- Breadcrumbs -->
<div class="clear"></div>
</div>
</div>
<!-- /Container -->
<!-- Footer -->
<?php include('views/footer.php'); ?>
<!-- /Footer -->
</div>
<!--! end of #container -->
<!-- Display debug -->
<div id="debugOutPut">
<ul id="displayMssg">
</ul>
<div>
<!-- /Display debug -->
<!-- Custom JS -->
<script type="text/javascript" src="<?php echo ROOT_JS; ?>login.js"></script>
<script type="text/javascript" src="<?php echo ROOT_JS; ?>tags-filter.js"></script>
<?php if( $_SESSION['type'] == "admin") {?>
<script type="text/javascript" src="<?php echo ROOT_JS; ?>init.php"></script>
<script type="text/javascript" src="<?php echo ROOT_JS; ?>computeitem.js"></script>
<script type="text/javascript" src="<?php echo ROOT_JS; ?>handler-gui-message.js"></script>
<script type="text/javascript" src="<?php echo ROOT_JS; ?>gestion-categorie.js"></script>
<!--<script type="text/javascript" src="<?php //echo ROOT_JS; ?>cat-del.js"></script>-->
<script type="text/javascript" src="<?php echo ROOT_JS; ?>administration.js"></script>
<script type="text/javascript" src="<?php echo ROOT_JS; ?>handler-help.js"></script>
<?php } ?>
<script type="text/javascript" src="<?php echo GOOGLE; ?>?id=<?php echo $conf ['id']; ?>"></script>
<!-- /Custom JS -->
<!-- Prompt IE 6 users to install Chrome Frame. Remove this if you want to support IE 6.
chromium.org/developers/how-tos/chrome-frame-getting-started -->
<!--[if lt IE 7 ]>
<script src="//ajax.googleapis.com/ajax/libs/chrome-frame/1.0.3/CFInstall.min.js"></script>
<script>window.attachEvent('onload',function(){CFInstall.check({mode:'overlay'})})</script>
<![endif]-->
</body>
</html>
Conclusion :
Fork me i'm famous :
https://github.com/inwebo/My.Bookmarks
6 déc. 2011 à 22:05
7 déc. 2011 à 09:04
je viens de découvrir google bookmark. Je ne doute pas de la qualité de ce service "gratuit". Ce qui soulève la problématique des limites de la gratuité chez des professionnels. Avec cette application nous ne courons pas le risque de suspension de compte à l'emporte pièce, et personne ne fait de business avec.
7 déc. 2011 à 20:43
Par contre je suis tout à fait d'accord sur ce que vous dites pour les professionnels. J'i travaillé avec un autre système de bookmarke en ligne il y a qq années (je ne me rappelle plus du nom et le service etait devenu payant ou avait disparu je ne sais plus) et ca marchait tout aussi bien. Mais c'est vrai que si j'avais eu cette source il y a 12 ans, j'aurais fais un acrnage au boulot...
12 déc. 2011 à 15:16
'console' is undefined
et la validation du formulaire ne se fait pas.
Avec Chrome c'est passé.
13 déc. 2011 à 09:06
merci pour ce retour j'effectue les corrections dés que possible.
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.