diff --git a/.htaccess b/.htaccess index 050e71f1..801b5382 100644 --- a/.htaccess +++ b/.htaccess @@ -127,7 +127,7 @@ AddType text/x-vcard vcf # # FilterDeclare COMPRESS # There are two way to configure the filters, according to the Apache version. -# Apache >= 2.4 +# Apache >= 2.4 # FilterProvider COMPRESS DEFLATE resp=Content-Type $text/html # FilterProvider COMPRESS DEFLATE resp=Content-Type $text/css # FilterProvider COMPRESS DEFLATE resp=Content-Type $text/plain diff --git a/Configuration.class.php b/Configuration.class.php index 8b4cf832..1d2bc25e 100644 --- a/Configuration.class.php +++ b/Configuration.class.php @@ -12,7 +12,7 @@ class Configuration extends MysqlEntity{ protected $id,$key,$value,$confTab; protected $TABLE_NAME = 'configuration'; protected $CLASS_NAME = 'Configuration'; - protected $object_fields = + protected $object_fields = array( 'id'=>'key', 'key'=>'longstring', @@ -26,7 +26,7 @@ function __construct(){ public function getAll(){ if(!isset($_SESSION['configuration'])){ - + $configurationManager = new Configuration(); $configs = $configurationManager->populate(); $confTab = array(); @@ -36,7 +36,7 @@ public function getAll(){ } $_SESSION['configuration'] = serialize($this->confTab); - + }else{ $this->confTab = unserialize($_SESSION['configuration']); } @@ -52,7 +52,7 @@ public function put($key,$value){ if (isset($this->confTab[$key])){ $configurationManager->change(array('value'=>$value),array('key'=>$key)); } else { - $configurationManager->add($key,$value); + $configurationManager->add($key,$value); } $this->confTab[$key] = $value; unset($_SESSION['configuration']); @@ -66,7 +66,7 @@ public function add($key,$value){ $this->confTab[$key] = $value; unset($_SESSION['configuration']); } - + function getId(){ return $this->id; } diff --git a/Event.class.php b/Event.class.php index 23e707b1..153aa990 100644 --- a/Event.class.php +++ b/Event.class.php @@ -11,7 +11,7 @@ class Event extends MysqlEntity{ protected $id,$title,$guid,$content,$description,$pudate,$link,$feed,$category,$creator,$unread,$favorite; protected $TABLE_NAME = 'event'; protected $CLASS_NAME = 'Event'; - protected $object_fields = + protected $object_fields = array( 'id'=>'key', 'guid'=>'longstring', @@ -28,7 +28,7 @@ class Event extends MysqlEntity{ 'syncId'=>'integer', ); - protected $object_fields_index = + protected $object_fields_index = array( 'feed'=>'index', 'unread'=>'index', @@ -36,7 +36,7 @@ class Event extends MysqlEntity{ ); function __construct($guid=null,$title=null,$description=null,$content=null,$pubdate=null,$link=null,$category=null,$creator=null){ - + $this->guid = $guid; $this->title = $title; $this->creator = $creator; @@ -55,7 +55,7 @@ function getEventCountPerFolder(){ while($item = mysql_fetch_array($results)){ $events[$item[1]] = $item[0]; } - + return $events; } @@ -155,7 +155,7 @@ function getSyncId(){ function setSyncId($syncId){ $this->syncId = $syncId; } - + function getUnread(){ return $this->unread; } diff --git a/Feed.class.php b/Feed.class.php index a60e88da..2c2e31d3 100644 --- a/Feed.class.php +++ b/Feed.class.php @@ -11,7 +11,7 @@ class Feed extends MysqlEntity{ protected $id,$name,$url,$events=array(),$description,$website,$folder,$lastupdate; protected $TABLE_NAME = 'feed'; protected $CLASS_NAME = 'Feed'; - protected $object_fields = + protected $object_fields = array( 'id'=>'key', 'name'=>'string', @@ -21,14 +21,14 @@ class Feed extends MysqlEntity{ 'lastupdate'=>'string', 'folder'=>'integer' ); - - protected $object_fields_index = + + protected $object_fields_index = array( 'folder'=>'index' ); protected $error = ''; - + function __construct($name=null,$url=null){ $this->name = $name; $this->url = $url; @@ -49,7 +49,7 @@ function getInfos(){ } function getError() { return $this->error; } - + /*@TODO: fournir un extrait quand il 'y a pas de description. De même pour les médias. @TODO: SimplePie remplace "é" par "é", il ne devrait pas le faire. J'ai testé set_stupidly_fast(true) sans succès. @@ -92,7 +92,7 @@ function parse($syncId,&$nbEvents =0, $enableCache=true, $forceFeed=false){ $items = $feed->get_items(); $eventManager = new Event(); - + $events = array(); $iEvents = 0; foreach($items as $item){ @@ -165,7 +165,7 @@ function parse($syncId,&$nbEvents =0, $enableCache=true, $forceFeed=false){ } $query='UPDATE `'.MYSQL_PREFIX.'event` SET syncId='.$syncId.' WHERE id in (0'.$listid.');'; $myQuery = $this->customQuery($query); - + $this->lastupdate = $_SERVER['REQUEST_TIME']; $this->save(); return true; @@ -189,7 +189,7 @@ function removeOldEvents($maxEvent, $currentSyncId){ ///@TODO: escape the variables inside mysql $this->customExecute($query); } - + function setId($id){ $this->id = $id; } @@ -256,12 +256,12 @@ function getFeedsPerFolder(){ while($item = mysql_fetch_array($results)){ $name = $item['name']; $feedsIdMap[$item['id']]['name'] = $name; - + $feedsFolderMap[$item['folder']][$item['id']]['id'] = $item['id']; $feedsFolderMap[$item['folder']][$item['id']]['name'] = $name; $feedsFolderMap[$item['folder']][$item['id']]['url'] = $item['url']; - + } } $feeds['folderMap'] = $feedsFolderMap; diff --git a/Folder.class.php b/Folder.class.php index ad0e7862..c4b74df0 100644 --- a/Folder.class.php +++ b/Folder.class.php @@ -11,7 +11,7 @@ class Folder extends MysqlEntity{ protected $id,$name,$parent,$isopen; protected $TABLE_NAME = 'folder'; protected $CLASS_NAME = 'Folder'; - protected $object_fields = + protected $object_fields = array( 'id'=>'key', 'name'=>'string', @@ -41,7 +41,7 @@ function getEvents($start=0,$limit=10000,$order,$columns='*'){ unset($object); } } - + return $objects; } diff --git a/Functions.class.php b/Functions.class.php index 37b35f31..1897adad 100644 --- a/Functions.class.php +++ b/Functions.class.php @@ -282,7 +282,7 @@ public static function hexaValue($str){ $code = substr($code, 0, 6); return $code; } - + public static function scanRecursiveDir($dir){ $files = scandir($dir); $allFiles = array(); @@ -326,7 +326,7 @@ public static function relativePath($from, $to, $ps = '/') { } return str_pad("", count($arFrom) * 3, '..'.$ps).implode($ps, $arTo); } - + // Nettoyage de l'url avant la mise en base public static function clean_url( $url ) { @@ -354,6 +354,6 @@ public static function testDb($server, $login, $pass, $db=null) { mysql_close($link); return true; } - + } ?> diff --git a/MysqlConnector.class.php b/MysqlConnector.class.php index 11443646..07eed5bb 100644 --- a/MysqlConnector.class.php +++ b/MysqlConnector.class.php @@ -1,9 +1,9 @@ connect(); } - + /** * Methode de recuperation unique de l'instance @@ -32,23 +32,23 @@ private function __construct(){ * @param * @return $instance */ - + public static function getInstance(){ - + if (MysqlConnector::$instance === null) { - MysqlConnector::$instance = new self(); + MysqlConnector::$instance = new self(); } return MysqlConnector::$instance; } - + public function connect(){ $this->connection = mysql_connect(MYSQL_HOST,MYSQL_LOGIN,MYSQL_MDP); mysql_query('SET NAMES utf8'); mysql_select_db(MYSQL_BDD,$this->connection); } - + public function __toString(){ diff --git a/MysqlEntity.class.php b/MysqlEntity.class.php index f8ad5244..3ecfe82d 100644 --- a/MysqlEntity.class.php +++ b/MysqlEntity.class.php @@ -6,18 +6,18 @@ @auteur: Valentin CARRUESCO (valentincarruesco@yahoo.fr) @date de création: 16/04/2012 02:34:15 @description: Classe parent de tous les modèles (classe entitées) liées a la base de donnée, - cette classe est configuré pour agir avec une base MySQL, mais il est possible de redefinir ses codes SQL pour l'adapter à un autre SGBD sans affecter + cette classe est configuré pour agir avec une base MySQL, mais il est possible de redefinir ses codes SQL pour l'adapter à un autre SGBD sans affecter le reste du code du projet. */ class MysqlEntity { - + private $debug = false; private $debugAllQuery = false; - + function sgbdType($type){ $return = false; switch($type){ @@ -44,17 +44,17 @@ function sgbdType($type){ } return $return ; } - + /** * Protège une variable pour MySQL */ protected function secure($value, $field){ $type = false; - + // ce champ n'existe pas : on le considère comme une chaîne de caractères if (isset($this->object_fields[$field])) $type = $this->object_fields[$field]; - + $return = false; switch($type){ case 'key': @@ -72,13 +72,13 @@ protected function secure($value, $field){ } return $return ; } - + public function __construct(){ MysqlConnector::getInstance(); } public function __destruct(){ - + } // GESTION SQL @@ -138,7 +138,7 @@ public function create($debug=false){ if($this->debug)echo '
'.$this->CLASS_NAME.' ('.__METHOD__ .') : Requete --> '.$query.'
'.mysql_error(); $myQuery = $this->customQuery($query); } - + public function massiveInsert($events){ if (empty($events)) return; $query = 'INSERT INTO `'.MYSQL_PREFIX.$this->TABLE_NAME.'`('; @@ -153,9 +153,9 @@ public function massiveInsert($events){ $u = false; foreach($events as $event){ - + if($u){$query .=' union select ';}else{$u=true;} - + $i=false; foreach($event->object_fields as $field=>$type){ if($type!='key'){ @@ -163,13 +163,13 @@ public function massiveInsert($events){ $query .='"'.$this->secure($event->$field, $field).'"'; } } - - + + } $query .=';'; if($this->debug)echo '
'.$this->CLASS_NAME.' ('.__METHOD__ .') : Requete --> '.$query.'
'.mysql_error(); - + $this->customQuery($query); } @@ -231,7 +231,7 @@ public function change($columns,$columns2,$operation='=',$debug=false){ if($i){$query .=',';}else{$i=true;} $query .= '`'.$column.'`="'.$this->secure($value, $column).'" '; } - $query .=' WHERE '; + $query .=' WHERE '; $i = false; foreach ($columns2 as $column=>$value){ @@ -271,7 +271,7 @@ public function populate($order=null,$limit=null,$debug=false){ public function loadAll($columns,$order=null,$limit=null,$operation="=",$debug=false,$selColumn='*'){ $objects = array(); $whereClause = ''; - + if($columns!=null && sizeof($columns)!=0){ $whereClause .= ' WHERE '; $i = false; @@ -359,8 +359,8 @@ public function rowCount($columns=null) $myQuery = $this->customQuery($query); $number = mysql_fetch_array($myQuery); return $number[0]; - } - + } + /** * Méthode de suppression d'éléments de l'entité * @author Valentin CARRUESCO @@ -382,7 +382,7 @@ public function delete($columns,$operation='=',$debug=false){ $query = 'DELETE FROM `'.MYSQL_PREFIX.$this->TABLE_NAME.'` WHERE '.$whereClause.' ;'; if($this->debug)echo '
'.$this->CLASS_NAME.' ('.__METHOD__ .') : Requete --> '.$query.'
'.mysql_error(); $this->customQuery($query); - + } ///@TODO: pourquoi deux méthodes différentes qui font la même chose ? @@ -402,7 +402,7 @@ public function customQuery($request){ } return $result; } - + // ACCESSEURS /** @@ -412,16 +412,16 @@ public function customQuery($request){ * @param Aucun * @return debug */ - + public function getDebug(){ return $this->debug; } - + /** * Méthode de définition de l'attribut debug de l'entité * @author Valentin CARRUESCO * @category Accesseur - * @param $debug + * @param $debug */ public function setDebug($debug){ diff --git a/Opml.class.php b/Opml.class.php index 3d4b86ca..21543ca3 100644 --- a/Opml.class.php +++ b/Opml.class.php @@ -7,7 +7,7 @@ */ require_once("common.php"); - + class Opml { // liens déjà connus, déjà abonnés, au moment de l'importation @@ -39,7 +39,7 @@ protected function escapeXml($string) { * Accessoirement, on remplace les espaces non signifiants par une seule espace. C'est le cas des retours chariots physiques, non interprétables. - */ + */ // Retire toutes les entités, & é etc. $string = html_entity_decode($string, ENT_COMPAT, 'UTF-8' ); // Remet les entités HTML comme & mais ne touche pas aux accents. @@ -142,7 +142,7 @@ protected function importRec($folder, $folderId=1){ } } } - + /** * Importe les flux. */ diff --git a/Plugin.class.php b/Plugin.class.php index 36eae3ec..173e6164 100644 --- a/Plugin.class.php +++ b/Plugin.class.php @@ -15,20 +15,20 @@ function __construct(){ public static function includeAll(){ $pluginFiles = Plugin::getFiles(true); - if(is_array($pluginFiles)) { - foreach($pluginFiles as $pluginFile) { + if(is_array($pluginFiles)) { + foreach($pluginFiles as $pluginFile) { //Inclusion du coeur de plugin - include $pluginFile; + include $pluginFile; //Gestion des css du plugin en fonction du thème actif $cssTheme = glob(dirname($pluginFile).'/*/'.DEFAULT_THEME.'.css'); $cssDefault = glob(dirname($pluginFile).'/*/default.css'); if(isset($cssTheme[0])){ - $GLOBALS['hooks']['css_files'][] = Functions::relativePath(str_replace('\\','/',dirname(__FILE__)),str_replace('\\','/',$cssTheme[0])); + $GLOBALS['hooks']['css_files'][] = Functions::relativePath(str_replace('\\','/',dirname(__FILE__)),str_replace('\\','/',$cssTheme[0])); }else if(isset($cssDefault[0])){ - $GLOBALS['hooks']['css_files'][] = Functions::relativePath(str_replace('\\','/',dirname(__FILE__)),str_replace('\\','/',$cssDefault[0])); + $GLOBALS['hooks']['css_files'][] = Functions::relativePath(str_replace('\\','/',dirname(__FILE__)),str_replace('\\','/',$cssDefault[0])); } } - } + } } private static function getStates(){ @@ -40,7 +40,7 @@ private static function setStates($states){ $stateFile = dirname(__FILE__).Plugin::FOLDER.'/plugins.states.json'; file_put_contents($stateFile,json_encode($states)); } - + private static function getObject($pluginFile){ $plugin = new Plugin(); @@ -48,28 +48,28 @@ private static function getObject($pluginFile){ if(preg_match("#@author\s(.+)\s\<#", $fileLines, $match)) $plugin->setAuthor(trim($match[1])); - + if(preg_match("#@author\s(.+)\s\<([a-z\@\.A-Z\s\-]+)\>#", $fileLines, $match)) $plugin->setMail(strtolower($match[2])); - + if(preg_match("#@name\s(.+)[\r\n]#", $fileLines, $match)) $plugin->setName($match[1]); - + if(preg_match("#@licence\s(.+)[\r\n]#", $fileLines, $match)) $plugin->setLicence($match[1]); - + if(preg_match("#@version\s(.+)[\r\n]#", $fileLines, $match)) $plugin->setVersion($match[1]); - + if(preg_match("#@link\s(.+)[\r\n]#", $fileLines, $match)) $plugin->setLink(trim($match[1])); if(preg_match("#@type\s(.+)[\r\n]#", $fileLines, $match)) $plugin->setType(trim($match[1])); - + if(preg_match("#@description\s(.+)[\r\n]#", $fileLines, $match)) $plugin->setDescription(trim($match[1])); - + if(Plugin::loadState($pluginFile) || $plugin->getType()=='component'){ $plugin->setState(1); }else{ @@ -80,51 +80,51 @@ private static function getObject($pluginFile){ } public static function getAll(){ - $pluginFiles = Plugin::getFiles(); + $pluginFiles = Plugin::getFiles(); $plugins = array(); - if(is_array($pluginFiles)) { - foreach($pluginFiles as $pluginFile) { + if(is_array($pluginFiles)) { + foreach($pluginFiles as $pluginFile) { $plugin = Plugin::getObject($pluginFile); $plugins[]=$plugin; - } + } } usort($plugins, "Plugin::sortPlugin"); return $plugins; } - - public static function addHook($hookName, $functionName) { - $GLOBALS['hooks'][$hookName][] = $functionName; - } - public static function addCss($css) { + public static function addHook($hookName, $functionName) { + $GLOBALS['hooks'][$hookName][] = $functionName; + } + + public static function addCss($css) { $bt = debug_backtrace(); - + $path = Functions::relativePath(str_replace('\\','/',dirname(__FILE__)),str_replace('\\','/',dirname($bt[0]['file']).$css)); - $GLOBALS['hooks']['css_files'][] = $path; + $GLOBALS['hooks']['css_files'][] = $path; } public static function callCss(){ $return=''; - if(isset($GLOBALS['hooks']['css_files'])) { - foreach($GLOBALS['hooks']['css_files'] as $css_file) { + if(isset($GLOBALS['hooks']['css_files'])) { + foreach($GLOBALS['hooks']['css_files'] as $css_file) { $return .=''."\n"; - } - } + } + } return $return; } - - public static function addLink($rel, $link) { + + public static function addLink($rel, $link) { $GLOBALS['hooks']['head_link'][] = array("rel"=>$rel, "link"=>$link); } public static function callLink(){ $return=''; - if(isset($GLOBALS['hooks']['head_link'])) { - foreach($GLOBALS['hooks']['head_link'] as $head_link) { + if(isset($GLOBALS['hooks']['head_link'])) { + foreach($GLOBALS['hooks']['head_link'] as $head_link) { $return .=''."\n"; } } @@ -133,39 +133,39 @@ public static function callLink(){ public static function path(){ $bt = debug_backtrace(); - return Functions::relativePath(str_replace('\\','/',dirname(__FILE__)),str_replace('\\','/',dirname($bt[0]['file']))).'/'; + return Functions::relativePath(str_replace('\\','/',dirname(__FILE__)),str_replace('\\','/',dirname($bt[0]['file']))).'/'; } - public static function addJs($js) { + public static function addJs($js) { $bt = debug_backtrace(); $path = Functions::relativePath(str_replace('\\','/',dirname(__FILE__)),str_replace('\\','/',dirname($bt[0]['file']).$js)); - $GLOBALS['hooks']['js_files'][] = $path; + $GLOBALS['hooks']['js_files'][] = $path; } public static function callJs(){ $return=''; - if(isset($GLOBALS['hooks']['js_files'])) { - foreach($GLOBALS['hooks']['js_files'] as $js_file) { + if(isset($GLOBALS['hooks']['js_files'])) { + foreach($GLOBALS['hooks']['js_files'] as $js_file) { $return .=''."\n"; - } - } + } + } return $return; } - public static function callHook($hookName, $hookArguments) { + public static function callHook($hookName, $hookArguments) { //echo '
'.$hookName.'
'; - if(isset($GLOBALS['hooks'][$hookName])) { - foreach($GLOBALS['hooks'][$hookName] as $functionName) { - call_user_func_array($functionName, $hookArguments); - } - } - } + if(isset($GLOBALS['hooks'][$hookName])) { + foreach($GLOBALS['hooks'][$hookName] as $functionName) { + call_user_func_array($functionName, $hookArguments); + } + } + } public static function getFiles($onlyActivated=false){ $enabled = $disabled = array(); $files = glob(dirname(__FILE__). Plugin::FOLDER .'/*/*.plugin.*.php') or array(); - + foreach($files as $file){ $plugin = Plugin::getObject($file); if($plugin->getState()){ @@ -178,7 +178,7 @@ public static function getFiles($onlyActivated=false){ return $enabled; } - + public static function loadState($plugin){ $states = Plugin::getStates(); return (isset($states[$plugin])?$states[$plugin]:false); @@ -212,11 +212,11 @@ public static function disabled($pluginUid){ if(file_exists($uninstall))require_once($uninstall); } } - + } function getUid(){ - $pathInfo = explode('/',$this->getPath()); + $pathInfo = explode('/',$this->getPath()); $count = count($pathInfo); $name = $pathInfo[$count-1]; return $pathInfo[$count -2].'-'.substr($name,0,strpos($name,'.')); @@ -224,7 +224,7 @@ function getUid(){ static function sortPlugin($a, $b){ - if ($a->getName() == $b->getName()) + if ($a->getName() == $b->getName()) return 0; return ($a->getName() < $b->getName()) ? -1 : 1; } diff --git a/RainTPL.php b/RainTPL.php index fbdce665..a66a65a7 100644 --- a/RainTPL.php +++ b/RainTPL.php @@ -81,10 +81,10 @@ class RainTPL{ * */ static $check_template_update = true; - + /** - * PHP tags + * PHP tags * True: php tags are enabled into the template * False: php tags are disabled into the template and rendered as html * @@ -92,7 +92,7 @@ class RainTPL{ */ static $php_enabled = false; - + /** * Debug mode flag. * True: debug mode is used, syntax errors are displayed directly in template. Execution of script is not terminated. @@ -265,7 +265,7 @@ protected function check_template( $tpl_name ){ $this->tpl['compiled_filename'] = $temp_compiled_filename . '.rtpl.php'; // cache filename $this->tpl['cache_filename'] = $temp_compiled_filename . '.s_' . $this->cache_id . '.rtpl.php'; // static cache filename $this->tpl['checked'] = true; - + // if the template doesn't exist and is not an external source throw an error if( self::$check_template_update && !file_exists( $this->tpl['tpl_filename'] ) && !preg_match('/http/', $tpl_name) ){ $e = new RainTpl_NotFoundException( 'Template '. $tpl_basename .' not found!' ); @@ -282,7 +282,7 @@ protected function check_template( $tpl_name ){ $this->compileFile( $tpl_basename, $tpl_basedir, $this->tpl['tpl_filename'], self::$cache_dir, $this->tpl['compiled_filename'] ); return true; } - + } } @@ -293,7 +293,7 @@ protected function check_template( $tpl_name ){ */ protected function xml_reSubstitution($capture) { return "'; ?>"; - } + } /** * Compile and write the compiled template file @@ -312,11 +312,11 @@ protected function compileFile( $tpl_basename, $tpl_basedir, $tpl_filename, $cac $template_code = str_replace( array(""), array("<?","?>"), $template_code ); //xml re-substitution - $template_code = preg_replace_callback ( "/##XML(.*?)XML##/s", array($this, 'xml_reSubstitution'), $template_code ); + $template_code = preg_replace_callback ( "/##XML(.*?)XML##/s", array($this, 'xml_reSubstitution'), $template_code ); //compile template $template_compiled = "" . $this->compileTemplate( $template_code, $tpl_basedir ); - + // fix the php-eating-newline-after-closing-tag-problem $template_compiled = str_replace( "?>\n", "?>\n\n", $template_compiled ); @@ -380,7 +380,7 @@ protected function compileTemplate( $template_code, $tpl_basedir ){ * @access protected */ protected function compileCode( $parsed_code ){ - + // if parsed code is empty return null string if( !$parsed_code ) return ""; @@ -389,7 +389,7 @@ protected function compileCode( $parsed_code ){ $compiled_code = $open_if = $comment_is_open = $ignore_is_open = null; $loop_level = 0; - + //read all parsed code foreach( $parsed_code as $html ){ @@ -571,7 +571,7 @@ protected function compileCode( $parsed_code ){ else // parse the function $parsed_function = $function . $this->var_replace( $code[ 2 ], $tag_left_delimiter = null, $tag_right_delimiter = null, $php_left_delimiter = null, $php_right_delimiter = null, $loop_level ); - + //if code $compiled_code .= ""; } @@ -605,8 +605,8 @@ protected function compileCode( $parsed_code ){ } return $compiled_code; } - - + + /** * Reduce a path, eg. www/library/../filepath//file => www/filepath/file * @param type $path @@ -617,7 +617,7 @@ protected function reduce_path( $path ){ $path = preg_replace( "#(/+)#", "/", $path ); $path = preg_replace( "#(/\./+)#", "/", $path ); $path = str_replace( "@not_replace@", "://", $path ); - + while( preg_match( '#\.\./#', $path ) ){ $path = preg_replace('#\w+/\.\./#', '', $path ); } @@ -640,7 +640,7 @@ protected function path_replace( $html, $tpl_basedir ){ if( self::$path_replace ){ $tpl_dir = self::$base_url . self::$tpl_dir . $tpl_basedir; - + // reduce the path $path = $this->reduce_path($tpl_dir); @@ -711,7 +711,7 @@ function func_replace( $html, $tag_left_delimiter, $tag_right_delimiter, $php_le $this->function_check( $tag ); $extra_var = $this->var_replace( $extra_var, null, null, null, null, $loop_level ); - + // check if there's an operator = in the variable tags, if there's this is an initialization so it will not output any value $is_init_variable = preg_match( "/^(\s*?)\=[^=](.*?)$/", $extra_var ); @@ -740,7 +740,7 @@ function func_replace( $html, $tag_left_delimiter, $tag_right_delimiter, $php_le //if there's a function if( $function_var ){ - + // check if there's a function or a static method and separate, function by parameters $function_var = str_replace("::", "@double_dot@", $function_var ); @@ -814,7 +814,7 @@ function var_replace( $html, $tag_left_delimiter, $tag_right_delimiter, $php_lef // check if there's an operator = in the variable tags, if there's this is an initialization so it will not output any value $is_init_variable = preg_match( "/^[a-z_A-Z\.\[\](\-\>)]*=[^=]*$/", $extra_var ); - + //function associate to variable $function_var = ( $extra_var and $extra_var[0] == '|') ? substr( $extra_var, 1 ) : null; @@ -833,16 +833,16 @@ function var_replace( $html, $tag_left_delimiter, $tag_right_delimiter, $php_lef //transform .$variable in ["$variable"] and .variable in ["variable"] $variable_path = preg_replace('/\.(\${0,1}\w+)/', '["\\1"]', $variable_path ); - + // if is an assignment also assign the variable to $this->var['value'] if( $is_init_variable ) $extra_var = "=\$this->var['{$var_name}']{$variable_path}" . $extra_var; - + //if there's a function if( $function_var ){ - + // check if there's a function or a static method and separate, function by parameters $function_var = str_replace("::", "@double_dot@", $function_var ); @@ -883,13 +883,13 @@ function var_replace( $html, $tag_left_delimiter, $tag_right_delimiter, $php_lef $php_var = '$' . $var_name . $variable_path; }else $php_var = '$' . $var_name . $variable_path; - + // compile the variable for php if( isset( $function ) ) $php_var = $php_left_delimiter . ( !$is_init_variable && $echo ? 'echo ' : null ) . ( $params ? "( $function( $php_var, $params ) )" : "$function( $php_var )" ) . $php_right_delimiter; else $php_var = $php_left_delimiter . ( !$is_init_variable && $echo ? 'echo ' : null ) . $php_var . $extra_var . $php_right_delimiter; - + $html = str_replace( $tag, $php_var, $html ); diff --git a/User.class.php b/User.class.php index 4973d907..329d6736 100644 --- a/User.class.php +++ b/User.class.php @@ -11,7 +11,7 @@ class User extends MysqlEntity{ protected $id,$login,$password; protected $TABLE_NAME = 'user'; protected $CLASS_NAME = 'User'; - protected $object_fields = + protected $object_fields = array( 'id'=>'key', 'login'=>'string', @@ -52,11 +52,11 @@ function setStayConnected() { ///@TODO: set the current web directory, here and on del setcookie('leedStaySignedIn', $this->getToken(), time()+31536000); } - + static function delStayConnected() { setcookie('leedStaySignedIn', '', -1); } - + function getId(){ return $this->id; } diff --git a/about.php b/about.php index 5443222e..d166e197 100644 --- a/about.php +++ b/about.php @@ -1,17 +1,17 @@ -assign('VERSION_NUMBER',VERSION_NUMBER); $tpl->assign('VERSION_NAME',VERSION_NAME); $view = 'about'; -require_once('footer.php'); +require_once('footer.php'); ?> diff --git a/action.php b/action.php index 0c6a7fd6..3ffb41ee 100644 --- a/action.php +++ b/action.php @@ -56,7 +56,7 @@ $syncTypeStr = _t('SYNCHRONISATION_TYPE').' : '._t('FULL_SYNCHRONISATION'); } - + $currentDate = date('d/m/Y H:i:s'); if (!$commandLine) { echo "

{$syncTypeStr} {$currentDate}

\n"; @@ -72,7 +72,7 @@ $syncId = time(); $enableCache = ($configurationManager->get('synchronisationEnableCache')=='')?0:$configurationManager->get('synchronisationEnableCache'); $forceFeed = ($configurationManager->get('synchronisationForceFeed')=='')?0:$configurationManager->get('synchronisationForceFeed'); - + foreach ($feeds as $feed) { $nbEvents = 0; $nbTotal++; @@ -101,7 +101,7 @@ if (!$parseOk) echo '
'; echo "
{$parseTimeStr}s | {$feedName}
\n"; - + } foreach($errors as $error) { if ($commandLine) @@ -159,7 +159,7 @@ if($myUser==false) exit(_t('YOU_MUST_BE_CONNECTED_ACTION')); $feeds = $feedManager->loadAllOnlyColumn('id',array('folder'=>$_['folder'])); - + foreach($feeds as $feed){ $eventManager->change(array('unread'=>'0'),array('feed'=>$feed->getId())); } @@ -181,7 +181,7 @@ $configurationManager->put('articlePerPages',$_['articlePerPages']); $configurationManager->put('articleDisplayLink',$_['articleDisplayLink']); $configurationManager->put('articleDisplayDate',$_['articleDisplayDate']); - $configurationManager->put('articleDisplayAuthor',$_['articleDisplayAuthor']); + $configurationManager->put('articleDisplayAuthor',$_['articleDisplayAuthor']); $configurationManager->put('articleDisplayHomeSort',$_['articleDisplayHomeSort']); $configurationManager->put('articleDisplayFolderSort',$_['articleDisplayFolderSort']); $configurationManager->put('synchronisationType',$_['synchronisationType']); @@ -205,7 +205,7 @@ $configurationManager->add('cryptographicSalt', $salt); else $configurationManager->change(array('value'=>$salt), array('key'=>'cryptographicSalt')); - + } header('location: ./settings.php#preferenceBloc'); @@ -250,7 +250,7 @@ echo $xmlStream; } break; - + case 'importForm': if($myUser==false) exit(_t('YOU_MUST_BE_CONNECTED_ACTION')); @@ -262,16 +262,16 @@ - + '; break; case 'synchronizeForm': - if(isset($myUser) && $myUser!=false){ + if(isset($myUser) && $myUser!=false){ echo ' '._t('SYNCHRONIZE_NOW').'

'._t('SYNCHRONIZE_COFFEE_TIME').'

- + '; }else{ echo _t('YOU_MUST_BE_CONNECTED_ACTION'); @@ -346,7 +346,7 @@ echo "

\n"; break; - + case 'addFeed': if($myUser==false) exit(_t('YOU_MUST_BE_CONNECTED_ACTION')); require_once("SimplePie.class.php"); @@ -422,11 +422,11 @@ break; case 'readContent': - if($myUser==false) { + if($myUser==false) { $response_array['status'] = 'noconnect'; $response_array['texte'] = _t('YOU_MUST_BE_CONNECTED_ACTION'); header('Content-type: application/json'); - echo json_encode($response_array); + echo json_encode($response_array); exit(); } if(isset($_['id'])){ @@ -436,11 +436,11 @@ break; case 'unreadContent': - if($myUser==false) { + if($myUser==false) { $response_array['status'] = 'noconnect'; $response_array['texte'] = _t('YOU_MUST_BE_CONNECTED_ACTION'); header('Content-type: application/json'); - echo json_encode($response_array); + echo json_encode($response_array); exit(); } if(isset($_['id'])){ @@ -450,29 +450,29 @@ break; case 'addFavorite': - if($myUser==false) { + if($myUser==false) { $response_array['status'] = 'noconnect'; $response_array['texte'] = _t('YOU_MUST_BE_CONNECTED_ACTION'); header('Content-type: application/json'); - echo json_encode($response_array); + echo json_encode($response_array); exit(); } $eventManager->change(array('favorite'=>'1'),array('id'=>$_['id'])); break; case 'removeFavorite': - if($myUser==false) { + if($myUser==false) { $response_array['status'] = 'noconnect'; $response_array['texte'] = _t('YOU_MUST_BE_CONNECTED_ACTION'); header('Content-type: application/json'); - echo json_encode($response_array); + echo json_encode($response_array); exit(); } $eventManager->change(array('favorite'=>'0'),array('id'=>$_['id'])); break; - + case 'login': - + if(isset($_['usr'])){ $user = $userManager->existAuthToken($_['usr']); if($user==false){ @@ -491,16 +491,16 @@ $_SESSION['currentUser'] = serialize($user); if (isset($_['rememberMe'])) $user->setStayConnected(); } - header('location: ./index.php'); + header('location: ./index.php'); } - - + + break; case 'changePluginState': if($myUser==false) exit(_t('YOU_MUST_BE_CONNECTED_ACTION')); - + if($_['state']=='0'){ Plugin::enabled($_['plugin']); @@ -509,9 +509,9 @@ } header('location: ./settings.php#pluginBloc'); break; - - + + case 'logout': User::delStayConnected(); $_SESSION = array(); @@ -519,7 +519,7 @@ session_destroy(); header('location: ./index.php'); break; - + default: require_once("SimplePie.class.php"); Plugin::callHook("action_post_case", array(&$_,$myUser)); diff --git a/article.php b/article.php index cbd62a54..2f9fbc25 100644 --- a/article.php +++ b/article.php @@ -1,4 +1,4 @@ -assign('articleDisplayAuthor',$articleDisplayAuthor); $tpl->assign('articleDisplayContent',$articleDisplayContent); - + $hightlighted = $_['hightlighted']; $tpl->assign('hightlighted',$hightlighted); - + $tpl->assign('time',$_SERVER['REQUEST_TIME']); $target = MYSQL_PREFIX.'event.title,'.MYSQL_PREFIX.'event.unread,'.MYSQL_PREFIX.'event.favorite,'.MYSQL_PREFIX.'event.feed,'; @@ -41,10 +41,10 @@ if($articleDisplayDate) $target .= MYSQL_PREFIX.'event.pubdate,'; if($articleDisplayAuthor) $target .= MYSQL_PREFIX.'event.creator,'; $target .= MYSQL_PREFIX.'event.id'; - + $startArticle = $_['scroll']*$articlePerPages-$_['nblus']; $action = $_['action']; - + switch($action){ /* AFFICHAGE DES EVENEMENTS D'UN FLUX EN PARTICULIER */ case 'selectedFeed': diff --git a/common.php b/common.php index 7b2b5406..6d2f08dd 100644 --- a/common.php +++ b/common.php @@ -1,4 +1,4 @@ -assign('_',$_); $tpl->assign('action',''); -//Inclusion des plugins +//Inclusion des plugins Plugin::includeAll(); ?> diff --git a/footer.php b/footer.php index 33380c17..6f752eb4 100644 --- a/footer.php +++ b/footer.php @@ -1,4 +1,4 @@ -assign('executionTime',number_format(microtime(true)-$start,3)); $html = $tpl->draw($view); diff --git a/header.php b/header.php index eae0f69f..3369f51f 100644 --- a/header.php +++ b/header.php @@ -1,5 +1,5 @@ - \ No newline at end of file diff --git a/i18n.php b/i18n.php index d947b996..1341e7f3 100644 --- a/i18n.php +++ b/i18n.php @@ -13,7 +13,7 @@ function i18n_init(){ $i18n_js = file_get_contents(dirname(__FILE__).'/locale/'.LANGUAGE.'.json'); $i18n = json_decode($i18n_js,true); } - } + } function _t($key,$args=array(),$debug=false){ global $i18n; diff --git a/index.php b/index.php index ac6a6469..e707b7b6 100644 --- a/index.php +++ b/index.php @@ -1,4 +1,4 @@ -assign('feeds',''); $tpl->assign('order',''); $tpl->assign('unreadEventsForFolder',''); -$pagesArray = array(); +$pagesArray = array(); switch($action){ /* AFFICHAGE DES EVENEMENTS D'UN FLUX EN PARTICULIER */ @@ -68,7 +68,7 @@ $allowedOrder = array('date'=>'pubdate DESC','older'=>'pubdate','unread'=>'unread DESC,pubdate DESC'); $order = (isset($_['order'])?$allowedOrder[$_['order']]:$allowedOrder['date']); $page = (isset($_['page'])?$_['page']:1); - $pages = ceil($numberOfItem/$articlePerPages); + $pages = ceil($numberOfItem/$articlePerPages); $startArticle = ($page-1)*$articlePerPages; $events = $currentFeed->getEvents($startArticle,$articlePerPages,$order,$target); @@ -81,7 +81,7 @@ $tpl->assign('currentFolder',$currentFolder); $numberOfItem = $currentFolder->unreadCount(); $page = (isset($_['page'])?$_['page']:1); - $pages = ceil($numberOfItem/$articlePerPages); + $pages = ceil($numberOfItem/$articlePerPages); $startArticle = ($page-1)*$articlePerPages; if($articleDisplayFolderSort) {$order = MYSQL_PREFIX.'event.pubdate desc';} else {$order = MYSQL_PREFIX.'event.pubdate asc';} $events = $currentFolder->getEvents($startArticle,$articlePerPages,$order,$target); @@ -92,7 +92,7 @@ case 'favorites': $numberOfItem = $eventManager->rowCount(array('favorite'=>1)); $page = (isset($_['page'])?$_['page']:1); - $pages = ceil($numberOfItem/$articlePerPages); + $pages = ceil($numberOfItem/$articlePerPages); $startArticle = ($page-1)*$articlePerPages; $events = $eventManager->loadAllOnlyColumn($target,array('favorite'=>1),'pubDate DESC',$startArticle.','.$articlePerPages); $tpl->assign('numberOfItem',$numberOfItem); @@ -103,7 +103,7 @@ default: $numberOfItem = $eventManager->rowCount(array('unread'=>1)); $page = (isset($_['page'])?$_['page']:1); - $pages = ($articlePerPages>0?ceil($numberOfItem/$articlePerPages):1); + $pages = ($articlePerPages>0?ceil($numberOfItem/$articlePerPages):1); $startArticle = ($page-1)*$articlePerPages; if($articleDisplayHomeSort) {$order = 'pubdate desc';} else {$order = 'pubdate asc';} $events = $eventManager->loadAllOnlyColumn($target,array('unread'=>1),$order,$startArticle.','.$articlePerPages); @@ -129,5 +129,5 @@ $tpl->assign('scroll',false); $view = 'index'; -require_once('footer.php'); +require_once('footer.php'); ?> diff --git a/install.php b/install.php index 05349480..03f8571a 100644 --- a/install.php +++ b/install.php @@ -1,4 +1,4 @@ -create(); $eventManager->create(); @@ -171,7 +171,7 @@ $configurationManager->add('articleDisplayFolderSort',$_['articleDisplayFolderSort']); $configurationManager->add('synchronisationType',$_['synchronisationType']); $configurationManager->add('feedMaxEvents',$_['feedMaxEvents']); - + $configurationManager->add('synchronisationCode',$synchronisationCode); $configurationManager->add('synchronisationEnableCache',$_['synchronisationEnableCache']); $configurationManager->add('synchronisationForceFeed',$_['synchronisationForceFeed']); @@ -216,13 +216,13 @@ ?>

- +

Installation de Leed

Merci de prendre quelques instants pour vérifier les infos ci-dessous :

- +
- +

Général

Racine du projet :

@@ -294,7 +294,7 @@

Préfixe des tables :

- +

Administrateur

Identifiant de l'administrateur :

@@ -338,18 +338,18 @@

Catégorie par défaut :

Conserver les derniers événements d'un flux.

NB : Plus il y aura d'événements à conserver, plus votre base de données sera importante. Nous vous conseillons de garder les 50 derniers événements au maximum pour conserver une performance correcte.
Notez que vos événements marqués comme favoris ne seront jamais supprimés.

- +
- +
-
+

Il vous manque des prérequis pour continuer l'installation, référez vous au panneau de droite.

- +
diff --git a/locale/manager.php b/locale/manager.php index bd6da66f..c0050332 100644 --- a/locale/manager.php +++ b/locale/manager.php @@ -1,11 +1,11 @@ - - +

Fichier langue de Leed

- +
- +

Clée présentes

$value){ ?> - + @@ -211,7 +211,7 @@ function scanTags($dir){

Différences entre les traductions du fichier langue et les traductions trouvées dans les fichiers de Leed

Nb: Ce différentiel est la à titre informatif, il peut se tromper, merci de vérifier la véracité des différences. - +
100){ @@ -198,7 +198,7 @@ function scanTags($dir){ ?>
@@ -224,7 +224,7 @@ function scanTags($dir){ echo ''; } } - + foreach ($missingTags as $key => $value) { if(!isset($currentLangage[$value])){ echo ''; @@ -232,11 +232,11 @@ function scanTags($dir){ } ?> - - + + - - + + @@ -257,7 +257,7 @@ function scanTags($dir){ -assign('synchronisationEnableCache',$configurationManager->get('synchronisationEnableCache')); $tpl->assign('synchronisationForceFeed',$configurationManager->get('synchronisationForceFeed')); $tpl->assign('articleDisplayAnonymous', $configurationManager->get('articleDisplayAnonymous')); -$tpl->assign('articleDisplayLink', $configurationManager->get('articleDisplayLink')); -$tpl->assign('articleDisplayDate', $configurationManager->get('articleDisplayDate')); +$tpl->assign('articleDisplayLink', $configurationManager->get('articleDisplayLink')); +$tpl->assign('articleDisplayDate', $configurationManager->get('articleDisplayDate')); $tpl->assign('articleDisplayAuthor', $configurationManager->get('articleDisplayAuthor')); $tpl->assign('articleDisplayHomeSort', $configurationManager->get('articleDisplayHomeSort')); $tpl->assign('articleDisplayFolderSort', $configurationManager->get('articleDisplayFolderSort')); -$tpl->assign('articleDisplayContent', $configurationManager->get('articleDisplayContent')); +$tpl->assign('articleDisplayContent', $configurationManager->get('articleDisplayContent')); $tpl->assign('articleView', $configurationManager->get('articleView')); -//Récuperation des plugins +//Récuperation des plugins $tpl->assign('plugins',Plugin::getAll()); $view = "settings"; diff --git a/templates/marigolds/about.html b/templates/marigolds/about.html index 937f33f2..0d565580 100644 --- a/templates/marigolds/about.html +++ b/templates/marigolds/about.html @@ -13,13 +13,13 @@

{function="_t('AUTHOR')"}

- +

{function="_t('ABOUT')"}

{function="_t('ABOUT_LEED')"}

- +

{function="_t('GENERALITY')"} :

@@ -37,20 +37,20 @@

{function="_t('PRESENTATION')"}

{function="_t('INSTALLATION')"}

{function="_t('INSTALLATION_PARAGRAPH')"} - +

{function="_t('QUESTIONS_SUGGESTIONS')"}

{function="_t('QUESTIONS_SUGGESTIONS_PARAGRAPH')"} - +

{function="_t('LIBRARIES')"}

{function="_t('LIBRARIES_PARAGRAPHE')"} - +
- +
- - + + diff --git a/templates/marigolds/article.html b/templates/marigolds/article.html index 635cb95c..fe8cfa4e 100644 --- a/templates/marigolds/article.html +++ b/templates/marigolds/article.html @@ -1,15 +1,15 @@ {loop="$events"} {$plainDescription=strip_tags($value->getDescription())} - + - - + +
getUnread()"}eventRead{/if} {$hightlighted%2==0?'eventHightLighted':''}{$scroll?' scroll':''}" {$scroll?'style="display: none;"':''}> ˆ

{function="Plugin::callHook("event_pre_title", array(&$value))"} - {$value->getTitle()} + {$value->getTitle()} {function="Plugin::callHook("event_post_title", array(&$value))"}

@@ -24,14 +24,14 @@

{/if} {/if} - {if="$articleDisplayDate"} - {$value->getPubdateWithInstant($time)} + {if="$articleDisplayDate"} + {$value->getPubdateWithInstant($time)} {/if} - {if="$value->getFavorite()!=1"} - {function="_t('FAVORIZE')"} + {if="$value->getFavorite()!=1"} - {function="_t('FAVORIZE')"} {else} - {function="_t('UNFAVORIZE')"} + {function="_t('UNFAVORIZE')"} {/if} - + ({function="_t('READ')"}/{function="_t('UNREAD')"}) {function="Plugin::callHook("event_post_top_options", array(&$value))"}

@@ -48,13 +48,13 @@

{$value->getContent()} {function="Plugin::callHook("event_post_content", array(&$value))"} {/if} - - + + {if="$articleView!='partial'"}

{function="Plugin::callHook("event_pre_bottom_options", array(&$value))"} - + (lu/non lu) {if="$value->getFavorite()!=1"}{function="_t('FAVORIZE')"} {else} diff --git a/templates/marigolds/css/style.css b/templates/marigolds/css/style.css index 648ddbc1..cf6bac4e 100644 --- a/templates/marigolds/css/style.css +++ b/templates/marigolds/css/style.css @@ -196,12 +196,12 @@ header a,header a:hover,header a:visited{ -moz-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; - + line-height:20px; } #main aside a.unreadForFolder,#main aside a.readFolder{ - + background-color:#F16529; border:0px; color:#ffffff; @@ -253,7 +253,7 @@ header a,header a:hover,header a:visited{ } #main article div.articleContent{ - + margin:10px 0px 0px 0px; text-align: justify; clear:both; @@ -304,7 +304,7 @@ header a,header a:hover,header a:visited{ font-size: 12px; } #main article div.articleContent .enclosure a{ - + color:#F16529; font-size: 10px; } @@ -414,7 +414,7 @@ header a,header a:hover,header a:visited{ } #main article section { - + } #main article section.eventRead .readUnreadButton { @@ -586,7 +586,7 @@ footer a,#main aside a{ INTERMEDIATE: Menu ==================== */ - + nav a{ float:left; @@ -600,19 +600,19 @@ footer a,#main aside a{ nav a:hover{ border-bottom: 5px solid #F7BC79; } - + nav li:first-child a{ margin-left:0; } nav li:last-child a{ margin-right:0; } - + /* ======================== INTERMEDIATE: IE Fixes ======================== */ nav ul li{ display:inline; - } + } .oldie nav a{ - margin:0 0.7%; + margin:0 0.7%; } } @@ -626,7 +626,7 @@ footer a,#main aside a{ #main{ padding:30px 0; } - + /* ==================== WIDE: CSS3 Effects ==================== */ @@ -641,7 +641,7 @@ footer a,#main aside a{ /* ============ WIDE: Menu ============ */ - + #title{ float:left; } @@ -659,7 +659,7 @@ footer a,#main aside a{ float:left; width:67%; } - + #main #menuBar{ float:right; width:32%; @@ -703,7 +703,7 @@ footer a,#main aside a{ /* ============================================================================= Print Styles ========================================================================== */ - + @media print { * { background: transparent !important; color: black !important; box-shadow:none !important; text-shadow: none !important; filter:none !important; -ms-filter: none !important; } /* Black prints faster: h5bp.com/s */ a, a:visited { text-decoration: underline; } diff --git a/templates/marigolds/header.html b/templates/marigolds/header.html index 2c9724e4..17a8943b 100644 --- a/templates/marigolds/header.html +++ b/templates/marigolds/header.html @@ -40,7 +40,7 @@

Leed

{/if}
- +

{function="_t('ADD_FOLDER')"}

- +
{function="_t('NEW_FOLDER')"} - +
    {$feedsForFolder=""} - {loop="$folders"} - + {loop="$folders"} + {$feedsForFolder=$value->getFeeds()} - +
  • {if="$value->getId()==1"}{/if}

    {$value->getName()} ({function="count($feedsForFolder)"}) @@ -71,7 +71,7 @@

    {$value->getName()} ({function="count($fee {if="$value->getId()!='1'"} {/if} - +

    @@ -117,7 +117,7 @@

    {function="_t('USER')"}

    {function="_t('LET_EMPTY_IF_NO_PASS_CHANGE')"}

    - +
    @@ -198,10 +198,10 @@

    {function="_t('SHOW_PARTIAL_CONTENT_DESC')"}

    {function="_t('KEEP_LAST_X_EVENTS_FEED',array(''))"}

    {function="_t('KEEP_LAST_X_EVENTS_FEED_DESC')"}

    - +
    - + @@ -218,14 +218,14 @@

    {function="_t('IMPORT_FEED_OPML_FORMAT')"}

    - +

    {function="_t('EXPORT_FEED_OPML_FORMAT')"}

    {function="_t('OPML_FILE')"} :

    - +

    {function="_t('USE_BOOKMARK')"} :

    {if="$myUser!=false"} @@ -235,9 +235,9 @@

    {function="_t('USE_BOOKMARK')"} :

    {function="_t('YOU_MUST_BE_CONNECTED_BOOKMARK')"}

    {/if}
    - - + +

    {function="_t('PLUGINS')"} :

    {function="_t('CAN_DOWNLOAD_PLUGINS')"} : Leed Market.

    @@ -246,7 +246,7 @@

    {function="_t('PLUGINS')"} :

      {if="count($plugins)==0"} {function="_t('NO_INSTALLED_PLUGINS')"} - + {else} {loop="$plugins"}
    • @@ -269,13 +269,13 @@

      {function="_t('PLUGINS')"} :

      {/if}
    - - + + {function="Plugin::callHook("setting_post_section", array(&$myUser))"} - - + + {else} diff --git a/update-1.5.sql b/update-1.5.sql index 218cc1e3..08e9f72e 100644 --- a/update-1.5.sql +++ b/update-1.5.sql @@ -1,7 +1,7 @@ /* ############# ### MISE À JOUR Base de données de Leed pour fonctionnement en v1.5 -Conseils : +Conseils : - Avant d'effectuer la mise à jour, sauvegardez votre BDD et exportez vos flux en OPML. - Attention : "leed_" est à remplacer par votre préfix de table. - Ce fichier est à supprimer après installation.
Fichier Langue ( Tags)
'.$key.'-
'.$value.'-