parent
682330c373
commit
d89857b44c
@ -0,0 +1,176 @@ |
|||||||
|
<?php |
||||||
|
|
||||||
|
/** |
||||||
|
* Base class for plugins |
||||||
|
* |
||||||
|
* @copyright (c) 2012 University of Geneva |
||||||
|
* @license GNU General Public License - http://www.gnu.org/copyleft/gpl.html |
||||||
|
* @author Laurent Opprecht <laurent@opprecht.info> |
||||||
|
*/ |
||||||
|
class Plugin |
||||||
|
{ |
||||||
|
|
||||||
|
protected $version = ''; |
||||||
|
protected $author = ''; |
||||||
|
protected $fields = array(); |
||||||
|
|
||||||
|
protected function __construct($version, $author, $settings = array()) |
||||||
|
{ |
||||||
|
$this->version = $version; |
||||||
|
$this->author = $author; |
||||||
|
$this->fields = $settings; |
||||||
|
|
||||||
|
global $language_files; |
||||||
|
$language_files[] = 'plugin_' . $this->get_name(); |
||||||
|
} |
||||||
|
|
||||||
|
function get_info() |
||||||
|
{ |
||||||
|
$result = array(); |
||||||
|
|
||||||
|
$result['title'] = $this->get_title(); |
||||||
|
$result['comment'] = $this->get_comment(); |
||||||
|
$result['version'] = $this->get_version(); |
||||||
|
$result['author'] = $this->get_author(); |
||||||
|
if ($form = $this->get_settings_form()) |
||||||
|
{ |
||||||
|
$result['settings_form'] = $form; |
||||||
|
foreach ($this->fields as $name => $type) |
||||||
|
{ |
||||||
|
$value = $this->get($name); |
||||||
|
$result[$name] = $value; |
||||||
|
} |
||||||
|
} |
||||||
|
return $result; |
||||||
|
} |
||||||
|
|
||||||
|
function get_name() |
||||||
|
{ |
||||||
|
$result = get_class($this); |
||||||
|
$result = str_replace('Plugin', '', $result); |
||||||
|
$result = strtolower($result); |
||||||
|
return $result; |
||||||
|
} |
||||||
|
|
||||||
|
function get_title() |
||||||
|
{ |
||||||
|
return $this->get_lang('plugin_title'); |
||||||
|
} |
||||||
|
|
||||||
|
function get_comment() |
||||||
|
{ |
||||||
|
return $this->get_lang('plugin_comment'); |
||||||
|
} |
||||||
|
|
||||||
|
function get_version() |
||||||
|
{ |
||||||
|
return $this->version; |
||||||
|
} |
||||||
|
|
||||||
|
function get_author() |
||||||
|
{ |
||||||
|
return $this->author; |
||||||
|
} |
||||||
|
|
||||||
|
function get_css() |
||||||
|
{ |
||||||
|
$name = $this->get_name(); |
||||||
|
$root = api_get_path(SYS_PLUGIN_PATH); |
||||||
|
$path = "$root/$name/resources/$name.css"; |
||||||
|
if (!is_readable($path)) |
||||||
|
{ |
||||||
|
return ''; |
||||||
|
} |
||||||
|
$css = array(); |
||||||
|
$css[] = file_get_contents($path); |
||||||
|
$result = implode($css); |
||||||
|
return $result; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* |
||||||
|
* @return FormValidator |
||||||
|
*/ |
||||||
|
function get_settings_form() |
||||||
|
{ |
||||||
|
$result = new FormValidator($this->get_name()); |
||||||
|
|
||||||
|
$defaults = array(); |
||||||
|
foreach ($this->fields as $name => $type) |
||||||
|
{ |
||||||
|
$value = $this->get($name); |
||||||
|
$defaults[$name] = $value; |
||||||
|
$type = $type ? $type : 'text'; |
||||||
|
if ($type == 'wysiwyg') |
||||||
|
{ |
||||||
|
$result->add_html_editor($name, $this->get_lang($name)); |
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
$result->addElement($type, $name, $this->get_lang($name)); |
||||||
|
} |
||||||
|
} |
||||||
|
$result->setDefaults($defaults); |
||||||
|
|
||||||
|
$result->addElement('style_submit_button', 'submit_button', $this->get_lang('Save')); |
||||||
|
return $result; |
||||||
|
} |
||||||
|
|
||||||
|
function get($name) |
||||||
|
{ |
||||||
|
$content = ''; |
||||||
|
$title = 'Static'; |
||||||
|
$settings = $this->get_settings(); |
||||||
|
foreach ($settings as $setting) |
||||||
|
{ |
||||||
|
if ($setting['variable'] == ($this->get_name() . '_' . $name)) |
||||||
|
{ |
||||||
|
return $setting['selected_value']; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
return false; |
||||||
|
} |
||||||
|
|
||||||
|
private $settings = null; |
||||||
|
|
||||||
|
public function get_settings() |
||||||
|
{ |
||||||
|
if (is_null($this->settings)) |
||||||
|
{ |
||||||
|
$settings = api_get_settings_params(array("subkey = ? AND category = ? AND type = ? " => array($this->get_name(), 'Plugins', 'setting'))); |
||||||
|
$this->settings = $settings; |
||||||
|
} |
||||||
|
return $this->settings; |
||||||
|
} |
||||||
|
|
||||||
|
private $strings = null; |
||||||
|
|
||||||
|
public function get_lang($name) |
||||||
|
{ |
||||||
|
if (is_null($this->strings)) |
||||||
|
{ |
||||||
|
global $language_interface; |
||||||
|
|
||||||
|
$root = api_get_path(SYS_PLUGIN_PATH); |
||||||
|
$name = $this->get_name(); |
||||||
|
$language = $language_interface; |
||||||
|
$path = "$root/$name/lang/$language.php"; |
||||||
|
if (is_readable($path)) |
||||||
|
{ |
||||||
|
include $path; |
||||||
|
$this->strings = $strings; |
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
$this->strings = array(); |
||||||
|
} |
||||||
|
} |
||||||
|
if (isset($this->strings[$name])) |
||||||
|
{ |
||||||
|
return $this->strings[$name]; |
||||||
|
} |
||||||
|
return get_lang($name); |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
@ -1,11 +0,0 @@ |
|||||||
<?php |
|
||||||
/** |
|
||||||
* |
|
||||||
* @copyright (c) 2012 University of Geneva |
|
||||||
* @license GNU General Public License - http://www.gnu.org/copyleft/gpl.html |
|
||||||
* @author Laurent Opprecht <laurent@opprecht.info> |
|
||||||
*/ |
|
||||||
|
|
||||||
|
|
||||||
$title = "Titre"; |
|
||||||
$no_rss = "Veuillez configurer "; |
|
||||||
@ -0,0 +1,16 @@ |
|||||||
|
<?php |
||||||
|
|
||||||
|
/** |
||||||
|
* |
||||||
|
* @copyright (c) 2012 University of Geneva |
||||||
|
* @license GNU General Public License - http://www.gnu.org/copyleft/gpl.html |
||||||
|
* @author Laurent Opprecht <laurent@opprecht.info> |
||||||
|
*/ |
||||||
|
$strings['plugin_title'] = "Rss"; |
||||||
|
$strings['plugin_comment'] = "Display rss content."; |
||||||
|
|
||||||
|
$strings['rss'] = "Rss"; |
||||||
|
$strings['block_title'] = "Block title"; |
||||||
|
|
||||||
|
$strings['title'] = "Title"; |
||||||
|
$strings['no_rss'] = "There is no RSS configured. Please add a RSS"; |
||||||
@ -0,0 +1,38 @@ |
|||||||
|
<?php |
||||||
|
|
||||||
|
/** |
||||||
|
* Description of |
||||||
|
* |
||||||
|
* @copyright (c) 2012 University of Geneva |
||||||
|
* @license GNU General Public License - http://www.gnu.org/copyleft/gpl.html |
||||||
|
* @author Laurent Opprecht <laurent@opprecht.info> |
||||||
|
*/ |
||||||
|
class RssPlugin extends Plugin |
||||||
|
{ |
||||||
|
|
||||||
|
/** |
||||||
|
* |
||||||
|
* @return RssPlugin |
||||||
|
*/ |
||||||
|
static function create() |
||||||
|
{ |
||||||
|
static $result = null; |
||||||
|
return $result ? $result : $result = new self(); |
||||||
|
} |
||||||
|
|
||||||
|
function get_block_title() |
||||||
|
{ |
||||||
|
return $this->get('block_title'); |
||||||
|
} |
||||||
|
|
||||||
|
function get_rss() |
||||||
|
{ |
||||||
|
return $this->get('rss'); |
||||||
|
} |
||||||
|
|
||||||
|
protected function __construct() |
||||||
|
{ |
||||||
|
parent::__construct('1.1', 'Laurent Opprecht', array('block_title' => 'text', 'rss' => 'text')); |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
@ -0,0 +1,4 @@ |
|||||||
|
Display RSS feeds using the Google Dynamic Feed control. |
||||||
|
<p> |
||||||
|
See http://www.google.com/uds/solutions/dynamicfeed/index.html for further information. |
||||||
|
</p> |
||||||
Loading…
Reference in new issue