// The general information at the top of each file/*** @version 5.0.4 Release for Joomla 2.5* @package Joomla* @copyright Copyright (C) 2005 - 2012 Open Source Matters, Inc. All rights reserved.* @license GNU General Public License, see LICENSE.php*/ // No direct access allowed to this filedefined( '_JEXEC' ) or die( 'Restricted access' ); // Import Joomla! Plugin library filejimport('joomla.plugin.plugin');// import WeblinksHelperRouterequire_once JPATH_ROOT.'/components/com_weblinks/helpers/route.php';//The Content plugin AllWeblinksclass plgContentAllWeblinks extends JPlugin{ // plugin parameters // _plgContentAllWeblinksReplace will set the values; protected $days_new; protected $txt_new; protected $days_mod; protected $txt_mod; protected $lengthoftitle; protected $orderby; protected $Corderby; protected $linkcount; protected $displayemptycat; // These params can also be overridden in the commmandline protected $real_url; protected $show_title; protected $show_new; protected $show_mod; protected $show_hits; protected $new_window; protected $moduleclass_sfx; protected $num_ccols; protected $num_cols; protected $layout; protected $display_ctitle; protected $show_cdate; protected $show_ldate; protected $show_author; protected $display_cdescription; protected $display_ldescription; protected $DEBUG = 0; protected $exclude_id = 0; function plgContentAllWeblinks( &$subject, $params ) { parent::__construct( $subject, $params ); } /** * Plugin that loads module positions within content */ // onPrepareContent, meaning the plugin is rendered at the first stage in preparing content for output public function onContentPrepare($context, &$article, &$params, $limitstart) { // simple performance check to determine whether bot should process further if ( JString::strpos( $article->text, 'all_weblinks' ) === false ) { return true; } // Don't repeat the CSS for each instance of this bot in a page! static $included_allweblinks_css; if (!$included_allweblinks_css) { $document = JFactory::getDocument(); $url = 'plugins/content/allweblinks/allweblinks/includes/css/allweblinks.css'; $document->addStyleSheet($url); $document->addCustomTag( '' ); $included_allweblinks_css = 1; } global $mainframe; // A database connection is created $db = JFactory::getDBO(); // expression to search for $regex = "#{all_weblinks\s*(.*?)}(.*?){/all_weblinks}#s"; // Get plugin info // check whether plugin has been unpublished if ( !$this->params->get( 'enabled', 1 ) ) { $article->text = preg_replace( $regex, '', $article->text ); return true; } // find all instances of plugin and put in $matches preg_match_all( $regex, $article->text, $matches ); // Number of plugins $count = count( $matches[0] ); // plugin only processes if there are any instances of the plugin in the text if ( $count ) { $this->_process( $article, $matches, $count, $regex, $params); } // No return value } // The proccessing function protected function _process( &$article, &$matches, $count, $regex, $params ) { // Get the links for every occurence of all_weblinks for ( $i=0; $i < $count; $i++ ) { $load = str_replace( 'all_weblinks', '', $matches[0][$i] ); $load = str_replace( '{', '', $load ); $load = str_replace( '}', '', $load ); $load = trim( $load ); $this->_plgContentAllWeblinksReplace($article, $matches, $i, $count, $regex, $params ) ; } } protected function _plgContentAllWeblinksReplace(&$article, &$matches, $i, $count, $regex, $params) { // Get plugin parameters $param_line = $matches[1][$i]; $catids = trim($matches[2][$i]); $this->days_new = $this->params->def('Ldaysnew'); $this->txt_new = $this->params->def('Ltxtnew'); $this->days_mod = $this->params->def('Ldaysmod'); $this->txt_mod = $this- >params->def('Ltxtmod'); $this->lengthoftitle = $this->params->def('Llengthoftitle', 30); $this->orderby = $this->params->def( 'Lorder', 'created DESC'); $this->Corderby = $this->params->def( 'LCorder', 'a.catid'); $this->linkcount = $this->params->def( 'Lcatlinks', 999); $this->displayemptycat = $this->params->def( 'Ldisplayemptycat', 0); // These params can also be overridden in the commmandline $this->real_url = $this->_params($param_line, 'real_url', $this->params->def('Lrealurl')); $this->show_title = $this->_params($param_line, 'show_title', $this->params->def('Lshowtitle')); $this->show_new = $this->_params($param_line, 'show_new', $this->params->def('Lshownew')); $this->show_mod = $this->_params($param_line, 'show_mod', $this->params->def('Lshowmod')); $this->show_hits = $this->_params($param_line, 'show_hits', $this->params->def('Lshowhits')); $this->new_window = $this->_params($param_line, 'new_window', $this->params->def('Lpopuplinks')); $this->nofollow = $this->_params($param_line, 'nofollow', $this->params->def('Lnofollowlinks')); $this->moduleclass_sfx = $this->_params($param_line, 'moduleclass_sfx', $this->params->def('moduleclass_sfx')); $this->num_cols = $this->_params($param_line, 'num_cols', $this->params->def('Lnumcols')); $this->num_ccols = $this->_params($param_line, 'num_ccols', $this->params->def('Lnumccols')); $this->layout = $this->_params($param_line, 'layout', $this->params->def('Llayout')); $this->enablepaging = $this->_params($param_line, 'enablepaging', $this->params->def('Lenablepaging')); $this->display_ctitle = $this->_params($param_line, 'display_ctitle',$this->params->def('Lshowheader')); $this->show_cdate = $this->_params($param_line, 'show_cdate',$this->params->def('Lshowcdate')); $this->show_ldate = $this->_params($param_line, 'show_ldate',$this->params->def('Lshowldate')); $this->show_author = $this->_params($param_line, 'show_author',$this->params->def('Lshowauthor')); $this->display_cdescription = $this->_params($param_line, 'display_cdescription',$this->params->def('Ldisplaycdescription')); $this->display_ldescription = $this->_params($param_line, 'display_ldescription',$this->params->def('Ldisplayldescription')); // These params can ONLY be set in the commmandline $this->DEBUG = $this->_params($param_line, 'DEBUG', '0'); $this->exclude_id = $this->_params($param_line, 'exclude_id', '0'); //$this->DEBUG=1; switch ($this->layout) { case 0 : $llayout=""; break; case 1 : $llayout=" col"; break; case 2 : $llayout=" blocks"; break; case 3 : $llayout="pages"; break; case 4 : $llayout="sliders"; $this->display_ctitle = 0 ;//disable category titles break; case 5 : $llayout="tabs"; $this->display_ctitle = 0 ;//disable category titles break; default: // if a wrong layout is choosen reset to 0 $llayout=""; $this->layout=0; } $replace =""; // count Categories !isset($GLOBALS['all_weblinks']) ? $GLOBALS['all_weblinks'] = 1 : $GLOBALS['all_weblinks']++; # DEBUG if requested by specifing DEBUG=[1] if ($this->DEBUG) $replace .= "
### DEBUG plugin-parameters:
- days_new=[$this->days_new]
- txt_new=[$this->txt_new]
- show_title=[$this->show_title]
- show_new=[$this->show_new]
- days_mod=[$this->days_mod]
- txt_mod=[$this->txt_mod]
- show_mod=[$this->show_mod]
- displayemptycat=[$this->displayemptycat]
- new_window=[$this->new_window]
- nofollow=[$this->nofollow]
- show_hits=[$this->show_hits]
- display_ctitle=[$this->display_ctitle]
- show_cdate=[$this->show_cdate]
- show_ldate=[$this->show_ldate]
- show_author=[$this->show_author]
- lengthoftitle=[$this->lengthoftitle]
- display_cdescription=[$this->display_cdescription]
- display_ldescription=[$this->display_ldescription]
- number of category columns=[$this->num_ccols]
- number of link columns=[$this->num_cols]
- orderby=[$this->orderby]
- Corderby=[$this->Corderby]
- linkcount=[$this->linkcount]
- exclude_id=[$this->exclude_id]
- catids=[$catids]
- layout=[$this->layout]
- enablepaging=[$this->enablepaging]
### DEBUG END ###
"; # Initialize and clear the content from other modules if ($this->moduleclass_sfx=='' && $this->layout<3) $this->moduleclass_sfx = $llayout; // Start of weblinks output $replace .= "\n
moduleclass_sfx."\">"; //start the box if ($this->layout==3) { // Pages $linktag = "span"; $tag = "div"; } else { $linktag="li"; $tag="ul"; } if ($this->layout>=4) { // Tabs $options = array( 'onActive' => 'function(title, description){ description.setStyle("display", "block"); title.addClass("open").removeClass("closed"); }', 'onBackground' => 'function(title, description){ description.setStyle("display", "none"); title.addClass("closed").removeClass("open"); }', 'startOffset' => 0, // 0 starts on the first tab, 1 starts the second, etc... 'useCookie' => true, // this must not be a string. Don't use quotes. ); if ($this->layout==4)$replace .=JHtmlSliders::start('alw',$options); //start sliders else $replace .=JHtmlTabs::start('alw',$options); //start tabs } if ($this->show_title==0) $this->display_ldescription = 1; // no title, just description # Put the output on screen $colnum=0; // Get the categories $clist = $this->_getCatLinks($catids); // for every category we work foreach ($clist as $dbcategory) { if ($this->DEBUG) { echo "\n\t
CATEGORY:
";print_r( $dbcategory );echo "
";} /* display empty categories? */ if (!$this->displayemptycat && $dbcategory->numlinks==0) continue; $colnum++; if (($colnum > $this->num_ccols)&&($this->layout<=3)) {$colnum=1;$replace .= "
\n";} //close the row // Start paging if ($this->enablepaging) $replace .= "\n
ctitle ."\" />"; // insert pagebreak if ($colnum == 1 && $this->layout<=3 ) $replace .= "\n
moduleclass_sfx\">"; //start row if ($this->layout<=3) $replace .= "\n
moduleclass_sfx." cols". $this->num_ccols." c".$colnum."\">"; //start col/category elseif ($this->layout==4) $replace .=JHtmlSliders::panel($dbcategory->ctitle,$dbcategory->catid); // start slider elseif ($this->layout==5) $replace .=JHtmlTabs::panel($dbcategory->ctitle,$dbcategory->catid); // start tab if ($this->display_ctitle ) $replace .= "
moduleclass_sfx." c".$colnum."\">". $dbcategory->ctitle ."
"; if ($this->display_cdescription) $replace .= "
". ($dbcategory->cdescription) .""; /* place category description */ $replace .= "<$tag class=\"allweblinkslist".$this->moduleclass_sfx."\">"; //open list //Process the links $replace .= $this->_processLinks($this->_getLinks($dbcategory->catid),$linktag); $replace .= "</$tag>"; // close list // end of category if ($dbcategory->numlinks > $this->linkcount) { $CURL = JRoute::_(WeblinksHelperRoute::getCategoryRoute($dbcategory->catid)); $nlinks = $dbcategory->numlinks - $this->linkcount; //$replace.= "
more links[$nlinks]
"; } if ($this->layout<=3) $replace .= "
\n"; //close the col/category } if ($this->layout<=3) $replace .= "
\n"; //close the row $replace .= "
\n"; //close the box if ($this->layout==4) $replace .= JHtmlSliders::end(); // Close Sliders elseif ($this->layout==5) $replace .= JHtmlTabs::end(); // Close Tabs $replace .="
Created by SJL Creations, see more on http://www.sjlcreations.be
"; $article- >text = str_replace($matches[0][$i], $replace, $article->text); } private function _params( $wl_params, $param, $default = false ){ // Regular expression to find the param from string $wl_params $regex = "/". $param ."=(\s*\[.*?\])/s"; // Put params into the variable $options preg_match_all( $regex, $wl_params, $options ); // If there is an option found remove any whitespace and return, if none are found return default value $value = !empty($options[1][0]) ? JString::trim( $options[1][0], '[]' ) : trim($default); // Return the value return $value; } protected function _processLinks ($list, $linktag) { $tarticle = 0; $colnum=0; $replace = ""; // for every article we work foreach ($list as $dbarticle) { if ($this->DEBUG) { echo "
LINK:"; print_r( $dbarticle ); echo "
";} $colnum++; if ($colnum > $this->num_cols) $colnum=1; if ($this->show_title) { // Set the length of the title $dbarticle->title = JHtmlString::truncate(strip_tags($dbarticle->title),$this->lengthoftitle); $tarticle+=1; /* Calcuate new or modified*/ $today = getdate(); $new_date = date("Y-m-d",mktime(0, 0, 0, date("m"), date("d")-$this->days_new, date("Y"))); $mod_date = date("Y-m-d",mktime(0, 0, 0, date("m"), date("d")-$this->days_mod, date("Y"))); $rdate = $dbarticle->cdate; //Creation date $rldate = $dbarticle->ldate; // Modified date if ($rdate > $new_date) { $new = "
moduleclass_sfx."\">$this->txt_new"; } else { $new=""; } if ($rldate > $mod_date) { $mod = "
moduleclass_sfx."\">$this->txt_mod"; } else { $mod=""; } /* end new/modified */ if ("$dbarticle->description"=="") { $title=strip_tags($dbarticle->title); } else { $title=strip_tags($dbarticle->description); } //link building if ($this->real_url) $URL=$dbarticle->siteurl; else $URL=JRoute::_("index.php?option=com_weblinks&task=weblink.go&id=".$dbarticle->id); // $URL = JRoute::_(WeblinksHelperRoute::getWeblinkRoute($dbarticle->catid, $dbarticle->id)); if ($this->new_window) {$target="target='_blank'"; } else {$target="";}; if ($this->nofollow) {$nofollow=" rel=\"nofollow\" "; } else {$nofollow="";}; $link = "
moduleclass_sfx."\" ".$target.$nofollow." title=\"".$title."\" href=\"".$URL."\">".strip_tags($dbarticle->title).""; // end links bulding /** open link **/ if ($this->moduleclass_sfx<>'') { $replace .= "\n<$linktag class=\"links$this->moduleclass_sfx\">".$link; } else { $replace .= "\n<$linktag class=\"cols$this->num_cols c".$colnum."\">".$link; } /* show hits */ if ($this->show_hits) $replace .= "
moduleclass_sfx."\">(".$dbarticle->hits.")"; /* show new */ if ($this->show_new) $replace .= "$new"; if ($this->show_mod) $replace .= "$mod"; if ( $this->show_cdate ) $replace .= "
moduleclass_sfx."\">$dbarticle->cdate"; if ( $this->show_ldate && $dbarticle->ldate <> "0000-00-00" ) $replace .= "
moduleclass_sfx."\">$dbarticle->ldate"; if ( $this->show_author ) { $author = JFactory::getUser($dbarticle->author); $replace .= "
moduleclass_sfx."\">$author->name"; } } /* Display description */ if ($this->display_ldescription) $replace .= "
". $dbarticle->description .""; /** close Link **/ $replace .= "</$linktag>\n"; } return $replace; } protected function _getLinks($catid) { global $mainframe; $db = JFactory::getDBO(); $user = JFactory::getUser(); $userId = (int) $user->get('id'); $aid = $user->get('aid', 0); $groups = implode(',', $user->getAuthorisedViewLevels()); $count=0; $i = 0; $lists = array(); # Set up database query $query = "SELECT a.id, a.catid, a.url, a.title, a.description, DATE_FORMAT(a.created,'%Y-%m-%d') as cdate, DATE_FORMAT(a.modified,'%Y-%m-%d') as ldate, a.hits,". " a. created_by as author, a.created_by_alias as alias" . " FROM #__categories AS c". " LEFT JOIN #__weblinks AS a ". " ON c.id = a.catid". " WHERE c.access IN (".$groups.")". " AND c.published = '1' AND a.state = '1'". " AND c.extension = 'com_weblinks'". " AND a.catid IN ($catid) " . " ORDER BY $this->orderby ". " LIMIT $this->linkcount" ; # Query the database $db->setQuery($query, 0, $count); $articles = $db->loadObjectList(); foreach ( $articles as $article ) { JFilterOutput::objectHTMLSafe( $article->description, ENT_QUOTES, 'description' ); JFilterOutput::objectHTMLSafe( $article->title, ENT_QUOTES, 'title' ); $lists[$i] = new stdClass; $lists[$i]->title= $article->title ; $lists[$i]->description= $article->description ; $lists[$i]->id= ( $article->id); $lists[$i]->catid= ( $article->catid); $lists[$i]->hits= ( $article->hits); $lists[$i]->cdate= ( $article->cdate); $lists[$i]->ldate= ( $article->ldate); $lists[$i]->siteurl= $article->url; $lists[$i]->author= $article->author; $lists[$i]->alias= $article->alias; $i++; } return $lists; } protected function _getCatLinks($catids) { global $mainframe; $db = JFactory::getDBO(); $user = JFactory::getUser(); $userId = (int) $user->get('id'); $aid = $user->get('aid', 0); $groups = implode(',', $user->getAuthorisedViewLevels()); $count=0; $i = 0; $lists = array(); /* Get links per category */ if ("$catids"=="") { $cats = ""; } else { if ($this->exclude_id) { // don't use these cat id's $cats = " AND a.catid NOT IN ($catids)"; } else { $cats = " AND a.catid IN ($catids)"; } } # Set up database query $query = "SELECT c.id AS catid, c.description as cdescription, c.title as ctitle,". " CASE WHEN ISNULL(a.id) THEN 0 ELSE count(*) END as numlinks". " FROM #__categories AS c". " LEFT JOIN #__weblinks AS a". " ON c.id = a.catid". " WHERE c.access IN (".$groups.")". " AND c.published = '1'". " AND c.extension = 'com_weblinks'". " $cats " . " GROUP BY c.id" . " ORDER BY $this->Corderby"; ; # Query the database $db->setQuery($query, 0, $count); $categories = $db->loadObjectList(); foreach ( $categories as $category ) { JFilterOutput::objectHTMLSafe( $category->ctitle, ENT_QUOTES, 'ctitle' ); JFilterOutput::objectHTMLSafe( $category->description, ENT_QUOTES, 'description' ); $lists[$i] = new stdClass; $lists[$i]->ctitle= $category->ctitle ; $lists[$i]->cdescription= $category->cdescription ; $lists[$i]->catid= $category->catid; $lists[$i]->numlinks= $category->numlinks; $i++; } return $lists; }}
-
Catégorie : Pharmaco clinique, PV, Thérapeutique |
- Mis à jour le dimanche 12 octobre 2014 16:51
- Écrit par Communication SFPT
Cher(e) ami(e)s, cher(e)s collègues,
A l'occasion du prochain congrès de la SFPT qui se déroulera à Caen du 21 au 23 avril 2015, les Pr Jean Doucet et Philippe Lechat organiseront une réunion regroupant les Thérapeutes et les Pharmacologues impliqués dans les activités des COMEDIMS de nos CHU respectifs.
L'objectif de cette première réunion est de faire le recensement des activités des Thérapeutes et des Pharmacologues au sein des COMEDIMS des différents CHU en France et de débattre des actions que nous pourrions entreprendre pour valoriser l’apport des thérapeutes et des pharmacologues au sein des COMEDIMS.
Nous vous remercions donc de répondre au questionnaire ci-dessous et de le ré-adresser par mail (instructions dans le document joint)
Questionnaire
-
Catégorie : Pharmaco clinique, PV, Thérapeutique |
- Mis à jour le vendredi 18 octobre 2013 20:06
- Écrit par Communication SFPT
La Fondation pour la Recherche Médicale lance un appel d’offres afin d’encourager des recherches sur la iatrogénie liée à l’utilisation de médicaments exploitant des données existantes issues de cohortes ou de bases de données constituées. L’objectif de la recherche peut être de nature diverse : validation d’une hypothèse grâce à des données cliniques, développement ou validation d’une méthodologie innovante, d’un marqueur clinique ou biologique… (Budget de 650 000 €)
DEPOT DU DOSSIER : 31 octobre 2013
CONTACT : Christèle Vidalie e-mail : Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.
">Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.
– Tél 01 44 39 75 71
Infos http://www.frm.org/upload/pdf/aides_scientif/ao_iatrogenie_med.pdf
-
Catégorie : Pharmaco clinique, PV, Thérapeutique |
- Mis à jour le lundi 2 septembre 2013 08:15
- Écrit par Communication SFPT
La 2ème édition Séminaire sur Maladies rares et médicaments orphelins (Orphan drugs and rare disease seminar) sera organisé à Marseille- -17 & 18 octobre 2013. Voir l'annonce
-
Catégorie : Pharmaco clinique, PV, Thérapeutique |
- Mis à jour le vendredi 21 décembre 2012 12:34
- Écrit par Pierre BOUTOUYRIE
Les objectifs de ce groupe de travail sont de promouvoir les activités de pharmacologie clinique, et de valoriser l’expertise de ses représentants.
Ceci concerne les méthodes d’investigation, la méthodologie des essais cliniques, les méthodes statistiques, la confrontation physiopathologie, pharmacodynamie des effets des médicaments.
Ce groupe de travail se destine à être une véritable plateforme d’échange, ouverte à tous les pharmacologues cliniciens par essence, mais aussi à tous les pharmacologues préoccupés par les questions méthodologiques, ainsi qu’aux pharmacovigilants et thérapeutes.
L’objectif est aussi de promouvoir la réalisation d’études multicentriques et d’améliorer la notoriété des équipes de pharmacologie, notamment vis à vis des industriels.
Une des mission du GTPC est de s’ouvrir aux collaborations internationales. A cet effet, le représentant de la SFPT auprès des groupes internationaux tels que l’EACPT (European Association for Clinical Pharmacology and Therapeutics) seront par essence membres de ce groupe de travail.
Le groupe de travail organise une session intitulée « pharmacologie clinique » lors du congrès annuel de la SFPT. Il peut aussi participer à des congrès de spécialité et organiser des sessions mixtes avec les autres sociétés savantes.
Les personnes suivantes sont pressenties pour animer ce groupe de travail.
Pierre BOUTOUYRIE, PARIS, responsable
Sylvi LAPORTE, Saint Etienne
Tabassome SIMON, Paris, correspondante à l’EACPT
Atul PATHAK, Toulous