Przeglądaj źródła

Fix issue #69 : ajout d'une option pour optimiser la BDD + correction bug script actualisation lorsque connexion paramétrée

Marien Fressinaud 12 lat temu
rodzic
commit
8cf9ee7650

+ 1 - 0
actualize_script.php

@@ -24,4 +24,5 @@ require (APP_PATH . '/App_FrontController.php');
 
 $front_controller = new App_FrontController ();
 $front_controller->init ();
+Session::_param('mail', true); // permet de se passer de la phase de connexion
 $front_controller->run ();

+ 19 - 0
app/controllers/entryController.php

@@ -97,4 +97,23 @@ class entryController extends ActionController {
 			}
 		}
 	}
+
+	public function optimizeAction() {
+		// La table des entrées a tendance à grossir énormément
+		// Cette action permet d'optimiser cette table permettant de grapiller un peu de place
+		// Cette fonctionnalité n'est à appeler qu'occasionnellement
+		$entryDAO = new EntryDAO();
+		$entryDAO->optimizeTable();
+
+		$notif = array (
+			'type' => 'good',
+			'content' => Translate::t ('optimization_complete')
+		);
+		Session::_param ('notification', $notif);
+
+		Request::forward(array(
+			'c' => 'configure',
+			'a' => 'display'
+		), true);
+	}
 }

+ 4 - 0
app/i18n/en.php

@@ -78,6 +78,8 @@ return array (
 	'category_emptied'		=> 'Category has been emptied',
 	'feed_deleted'			=> 'Feed has been deleted',
 
+	'optimization_complete'		=> 'Optimization complete',
+
 	'your_rss_feeds'		=> 'Your RSS feeds',
 	'your_favorites'		=> 'Your favorites',
 	'public'			=> 'Public',
@@ -154,6 +156,8 @@ return array (
 	'share'				=> 'Share',
 	'by_email'			=> 'By mail',
 	'on_shaarli'			=> 'On your Shaarli',
+	'optimize_bdd'			=> 'Optimize database',
+	'optimize_todo_sometimes'	=> 'To do occasionally to reduce size of database',
 
 	'article'			=> 'Article',
 	'title'				=> 'Title',

+ 4 - 0
app/i18n/fr.php

@@ -78,6 +78,8 @@ return array (
 	'category_emptied'		=> 'La catégorie a été vidée',
 	'feed_deleted'			=> 'Le flux a été supprimé',
 
+	'optimization_complete'		=> 'Optimisation terminée',
+
 	'your_rss_feeds'		=> 'Vos flux RSS',
 	'your_favorites'		=> 'Vos favoris',
 	'public'			=> 'Public',
@@ -154,6 +156,8 @@ return array (
 	'share'				=> 'Partager',
 	'by_email'			=> 'Par mail',
 	'on_shaarli'			=> 'Sur votre Shaarli',
+	'optimize_bdd'			=> 'Optimiser la base de données',
+	'optimize_todo_sometimes'	=> 'À faire de temps en temps pour réduire la taille de la BDD',
 
 	'article'			=> 'Article',
 	'title'				=> 'Titre',

+ 6 - 0
app/models/Entry.php

@@ -509,6 +509,12 @@ class EntryDAO extends Model_pdo {
 
 		return $res[0]['count'];
 	}
+
+	public function optimizeTable() {
+		$sql = 'OPTIMIZE TABLE entry';
+		$stm = $this->bd->prepare ($sql);
+		$stm->execute ();
+	}
 }
 
 class HelperEntry {

+ 11 - 0
app/views/configure/display.phtml

@@ -121,6 +121,17 @@
 			</div>
 		</div>
 
+		<legend><?php echo Translate::t ('advanced'); ?></legend>
+		<div class="form-group">
+			<label class="group-name"></label>
+			<div class="group-controls">
+				<a class="btn" href="<?php echo _url('entry', 'optimize'); ?>">
+					<?php echo Translate::t('optimize_bdd'); ?>
+				</a>
+				<i class="icon i_help"></i> <?php echo Translate::t('optimize_todo_sometimes'); ?>
+			</div>
+		</div>
+
 		<div class="form-group form-actions">
 			<div class="group-controls">
 				<button type="submit" class="btn btn-important"><?php echo Translate::t ('save'); ?></button>