
Recherche avancée
Médias (1)
-
Collections - Formulaire de création rapide
19 février 2013, par
Mis à jour : Février 2013
Langue : français
Type : Image
Autres articles (14)
-
Submit bugs and patches
13 avril 2011Unfortunately a software is never perfect.
If you think you have found a bug, report it using our ticket system. Please to help us to fix it by providing the following information : the browser you are using, including the exact version as precise an explanation as possible of the problem if possible, the steps taken resulting in the problem a link to the site / page in question
If you think you have solved the bug, fill in a ticket and attach to it a corrective patch.
You may also (...) -
Automated installation script of MediaSPIP
25 avril 2011, parTo overcome the difficulties mainly due to the installation of server side software dependencies, an "all-in-one" installation script written in bash was created to facilitate this step on a server with a compatible Linux distribution.
You must have access to your server via SSH and a root account to use it, which will install the dependencies. Contact your provider if you do not have that.
The documentation of the use of this installation script is available here.
The code of this (...) -
Prérequis à l’installation
31 janvier 2010, parPréambule
Cet article n’a pas pour but de détailler les installations de ces logiciels mais plutôt de donner des informations sur leur configuration spécifique.
Avant toute chose SPIPMotion tout comme MediaSPIP est fait pour tourner sur des distributions Linux de type Debian ou dérivées (Ubuntu...). Les documentations de ce site se réfèrent donc à ces distributions. Il est également possible de l’utiliser sur d’autres distributions Linux mais aucune garantie de bon fonctionnement n’est possible.
Il (...)
Sur d’autres sites (5121)
-
How to make your plugin configurable – Introducing the Piwik Platform
18 septembre 2014, par Thomas Steur — DevelopmentThis is the next post of our blog series where we introduce the capabilities of the Piwik platform (our previous post was How to add new pages and menu items to Piwik). This time you will learn how to define settings for your plugin. For this tutorial you will need to have basic knowledge of PHP.
What can I do with settings ?
The Settings API offers you a simple way to make your plugin configurable within the Admin interface of Piwik without having to deal with HTML, JavaScript, CSS or CSRF tokens. There are many things you can do with settings, for instance let users configure :
- connection infos to a third party system such as a WordPress installation.
- select a metric to be displayed in your widget
- select a refresh interval for your widget
- which menu items, reports or widgets should be displayed
- and much more
Getting started
In this series of posts, we assume that you have already set up your development environment. If not, visit the Piwik Developer Zone where you’ll find the tutorial Setting up Piwik.
To summarize the things you have to do to get setup :
- Install Piwik (for instance via git).
- Activate the developer mode :
./console development:enable --full
. - Generate a plugin :
./console generate:plugin --name="MySettingsPlugin"
. There should now be a folderplugins/MySettingsPlugin
. - And activate the created plugin under Settings => Plugins.
Let’s start creating settings
We start by using the Piwik Console to create a settings template :
./console generate:settings
The command will ask you to enter the name of the plugin the settings should belong to. I will simply use the above chosen plugin name “MySettingsPlugin”. There should now be a file
plugins/MySettingsPlugin/Settings.php
which contains already some examples to get you started easily. To see the settings in action go to Settings => Plugin settings in your Piwik installation.Adding one or more settings
Settings are added in the
init()
method of the settings class by calling the methodaddSetting()
and passing an instance of a UserSetting or SystemSetting object. How to create a setting is explained in the next chapter.Customising a setting
To create a setting you have to define a name along some options. For instance which input field should be displayed, what type of value you expect, a validator and more. Depending on the input field we might automatically validate the values for you. For example if you define available values for a select field then we make sure to validate and store only a valid value which provides good security out of the box.
For a list of possible properties have a look at the SystemSetting and UserSetting API reference.
class Settings extends \Piwik\Plugin\Settings
{
public $refreshInterval;
protected function init()
{
$this->setIntroduction('Here you can specify the settings for this plugin.');
$this->createRefreshIntervalSetting();
}
private function createRefreshIntervalSetting()
{
$this->refreshInterval = new UserSetting('refreshInterval', 'Refresh Interval');
$this->refreshInterval->type = static::TYPE_INT;
$this->refreshInterval->uiControlType = static::CONTROL_TEXT;
$this->refreshInterval->uiControlAttributes = array('size' => 3);
$this->refreshInterval->description = 'How often the value should be updated';
$this->refreshInterval->inlineHelp = 'Enter a number which is >= 15';
$this->refreshInterval->defaultValue = '30';
$this->refreshInterval->validate = function ($value, $setting) {
if ($value < 15) {
throw new \Exception('Value is invalid');
}
};
$this->addSetting($this->refreshInterval);
}
}In this example you can see some of those properties. Here we create a setting named “refreshInterval” with the display name “Refresh Interval”. We want the setting value to be an integer and the user should enter this value in a text input field having the size 3. There is a description, an inline help and a default value of 30. The validate function makes sure to accept only integers that are at least 15, otherwise an error in the UI will be shown.
You do not always have to specify a PHP
type
and auiControlType
. For instance if you specify a PHP type boolean we automatically display a checkbox by default. Similarly if you specify to display a checkbox we assume that you want a boolean value.Accessing settings values
You can access the value of a setting in a widget, in a controller, in a report or anywhere you want. To access the value create an instance of your settings class and get the value like this :
$settings = new Settings();
$interval = $settings->refreshInterval->getValue()Type of settings
The Piwik platform differentiates between UserSetting and SystemSetting. User settings can be configured by any logged in user and each user can configure the setting independently. The Piwik platform makes sure that settings are stored per user and that a user cannot see another users configuration.
A system setting applies to all of your users. It can be configured only by a user who has super user access. By default, the value can be read only by a super user as well but often you want to have it readable by anyone or at least by logged in users. If you set a setting readable the value will still be only displayed to super users but you will always be able to access the value in the background.
Imagine you are building a widget that fetches data from a third party system where you need to configure an API URL and token. While no regular user should see the value of both settings, the value should still be readable by any logged in user. Otherwise when logged in users cannot read the setting value then the data cannot be fetched in the background when this user wants to see the content of the widget. Solve this by making the setting readable by the current user :
$setting->readableByCurrentUser = !Piwik::isUserIsAnonymous();
Publishing your Plugin on the Marketplace
In case you want to share your settings or your plugin with other Piwik users you can do this by pushing your plugin to a public GitHub repository and creating a tag. Easy as that. Read more about how to distribute a plugin.
Advanced features
Isn’t it easy to create settings for plugins ? We never even created a file ! The Settings API already offers many possibilities but it might not yet be as flexible as your use case requires. So let us know in case you are missing something and we hope to add this feature at some point in the future.
If you have any feedback regarding our APIs or our guides in the Developer Zone feel free to send it to us. -
How to make your plugin configurable – Introducing the Piwik Platform
18 septembre 2014, par Thomas Steur — DevelopmentThis is the next post of our blog series where we introduce the capabilities of the Piwik platform (our previous post was How to add new pages and menu items to Piwik). This time you will learn how to define settings for your plugin. For this tutorial you will need to have basic knowledge of PHP.
What can I do with settings ?
The Settings API offers you a simple way to make your plugin configurable within the Admin interface of Piwik without having to deal with HTML, JavaScript, CSS or CSRF tokens. There are many things you can do with settings, for instance let users configure :
- connection infos to a third party system such as a WordPress installation.
- select a metric to be displayed in your widget
- select a refresh interval for your widget
- which menu items, reports or widgets should be displayed
- and much more
Getting started
In this series of posts, we assume that you have already set up your development environment. If not, visit the Piwik Developer Zone where you’ll find the tutorial Setting up Piwik.
To summarize the things you have to do to get setup :
- Install Piwik (for instance via git).
- Activate the developer mode :
./console development:enable --full
. - Generate a plugin :
./console generate:plugin --name="MySettingsPlugin"
. There should now be a folderplugins/MySettingsPlugin
. - And activate the created plugin under Settings => Plugins.
Let’s start creating settings
We start by using the Piwik Console to create a settings template :
./console generate:settings
The command will ask you to enter the name of the plugin the settings should belong to. I will simply use the above chosen plugin name “MySettingsPlugin”. There should now be a file
plugins/MySettingsPlugin/Settings.php
which contains already some examples to get you started easily. To see the settings in action go to Settings => Plugin settings in your Piwik installation.Adding one or more settings
Settings are added in the
init()
method of the settings class by calling the methodaddSetting()
and passing an instance of a UserSetting or SystemSetting object. How to create a setting is explained in the next chapter.Customising a setting
To create a setting you have to define a name along some options. For instance which input field should be displayed, what type of value you expect, a validator and more. Depending on the input field we might automatically validate the values for you. For example if you define available values for a select field then we make sure to validate and store only a valid value which provides good security out of the box.
For a list of possible properties have a look at the SystemSetting and UserSetting API reference.
class Settings extends \Piwik\Plugin\Settings
{
public $refreshInterval;
protected function init()
{
$this->setIntroduction('Here you can specify the settings for this plugin.');
$this->createRefreshIntervalSetting();
}
private function createRefreshIntervalSetting()
{
$this->refreshInterval = new UserSetting('refreshInterval', 'Refresh Interval');
$this->refreshInterval->type = static::TYPE_INT;
$this->refreshInterval->uiControlType = static::CONTROL_TEXT;
$this->refreshInterval->uiControlAttributes = array('size' => 3);
$this->refreshInterval->description = 'How often the value should be updated';
$this->refreshInterval->inlineHelp = 'Enter a number which is >= 15';
$this->refreshInterval->defaultValue = '30';
$this->refreshInterval->validate = function ($value, $setting) {
if ($value < 15) {
throw new \Exception('Value is invalid');
}
};
$this->addSetting($this->refreshInterval);
}
}In this example you can see some of those properties. Here we create a setting named “refreshInterval” with the display name “Refresh Interval”. We want the setting value to be an integer and the user should enter this value in a text input field having the size 3. There is a description, an inline help and a default value of 30. The validate function makes sure to accept only integers that are at least 15, otherwise an error in the UI will be shown.
You do not always have to specify a PHP
type
and auiControlType
. For instance if you specify a PHP type boolean we automatically display a checkbox by default. Similarly if you specify to display a checkbox we assume that you want a boolean value.Accessing settings values
You can access the value of a setting in a widget, in a controller, in a report or anywhere you want. To access the value create an instance of your settings class and get the value like this :
$settings = new Settings();
$interval = $settings->refreshInterval->getValue()Type of settings
The Piwik platform differentiates between UserSetting and SystemSetting. User settings can be configured by any logged in user and each user can configure the setting independently. The Piwik platform makes sure that settings are stored per user and that a user cannot see another users configuration.
A system setting applies to all of your users. It can be configured only by a user who has super user access. By default, the value can be read only by a super user as well but often you want to have it readable by anyone or at least by logged in users. If you set a setting readable the value will still be only displayed to super users but you will always be able to access the value in the background.
Imagine you are building a widget that fetches data from a third party system where you need to configure an API URL and token. While no regular user should see the value of both settings, the value should still be readable by any logged in user. Otherwise when logged in users cannot read the setting value then the data cannot be fetched in the background when this user wants to see the content of the widget. Solve this by making the setting readable by the current user :
$setting->readableByCurrentUser = !Piwik::isUserIsAnonymous();
Publishing your Plugin on the Marketplace
In case you want to share your settings or your plugin with other Piwik users you can do this by pushing your plugin to a public GitHub repository and creating a tag. Easy as that. Read more about how to distribute a plugin.
Advanced features
Isn’t it easy to create settings for plugins ? We never even created a file ! The Settings API already offers many possibilities but it might not yet be as flexible as your use case requires. So let us know in case you are missing something and we hope to add this feature at some point in the future.
If you have any feedback regarding our APIs or our guides in the Developer Zone feel free to send it to us. -
Diamond Rio Artifacts
30 août 2012, par Multimedia Mike — Multimedia HistoryRemember the Diamond Rio PMP300 ? It’s credited with being the very first portable MP3 player, released all the way back in 1998 (I say ‘credited’ because I visited an audio museum once which exhibited a Toshiba MP3 player from 1997). I recently rescued a pristine set of Rio artifacts from a recycle pile.
I wondered if I should scan the manual for posterity. However, a Google search indicates that a proper PDF (loaded with pleas to not illegally copy music) isn’t very difficult to come by. Here are the other items that came with the unit :
Click for larger image
Ah, more memories (of dialup internet) : A tie-in with another Diamond product, this time a modem which claims to enable the user to download songs at up to 112 kilobits per second. I wonder if that was really possible. I remember that 56k modems were a stretch and 33.6k was the best that most users could hope for.
There is also a separate piece of paper that advises the buyer that the parallel port adapter might look a bit different than what is seen in the printed copy. Imagine the age of downloading to your MP3 player via parallel port while pulling down new songs via dialup internet.
The artifacts also included not one, but two CD-ROMs :
Click for larger image
One is a driver and software disc, so no big surprise there. The other has a selection of MP3 files for your shiny new MP3 player. I’m wondering if these should be proactively preserved. I was going to process the files’ metadata and publish it here, for the benefit of search engines. However, while metadata is present, the files don’t conform to any metadata format that FFmpeg/Libav recognize. The files mention Brava Software Inc. in their metadata sections. Still, individual filenames at the end of this post.
Leftovers :
A few other miscellaneous multimedia acquisitions :
I still want to study all of these old multimedia creation programs in depth some day. Theatrix Hollywood is a creative writing game, Wikipedia alleges (I’m a bit rigid with my exact definition of what constitutes a game). Here is an example movie output from this software. Meanwhile, the Mad Dog Multimedia CD-ROM apparently came packaged with a 56X CD-ROM drive (roughly the pinnacle of CD-ROM speeds). I found it has some version of Sonic Foundry’s ACID software, thus making good on the “applications” claim on the CD-ROM copy.
Diamond Rio MP3 Sampler
These are the names of the MP3 files found on the Diamond Rio MP3 sampler for the benefit of search engines.13_days.mp3 albert_einstein_dreams.mp3 a_man_of_many_colours.mp3 anything_for_love.mp3 a_secret_place.mp3 bake_sale.mp3 bigger_than_the_both_of_us.mp3 boogie_beat.mp3 bring_it_on.mp3 buskersoundcheck_hippo.mp3 charm.mp3 chemical_disturbance.mp3 coastin.mp3 credit_is_due.mp3 dance_again.mp3 destiny.mp3 dig_a_little_deeper.mp3 diplomat6_bigmouthshut.mp3 dirty_littlemonster.mp3 dirty.mp3 drivin.mp3 Eric_Clapton_Last_Train.mp3 etude_in_c_sharp_minor_op_42_n.mp3 everybody_here.mp3 freedom_4_all.mp3 grandpas_advice.mp3 groove.mp3 heartland.mp3 he_loved_her_so.mp3 highway_to_hell.mp3 hit_the_ground_runnin.mp3 i_feel_fine_today.mp3 im_not_lost_im_exploring.mp3 into_the_void.mp3 its_alright.mp3 i_will_be_there.mp3 i_will_pass_this_way_again.mp3 juiceboxwilly_hepcat.mp3 just_an_illusion.mp3 keepin_time_by_the_river.mp3 king_of_the_brooklyn_delta.mp3 lovermilou_ringingbell.mp3 middle_aged_rock_and_rollers.mp3 midnight_high.mp3 mr_schwinn.mp3 my_brilliant_masterpiece.mp3 my_gallery.mp3 on_the_river_road.mp3 pouring_rain.mp3 prayer.mp3 rats_in_my_bedroom.mp3 razor_serpent_and_the_dub_mix.mp3 ruthbuzzy_pleasestophangin.mp3 secret_love.mp3 ships.mp3 silence_the_thunder.mp3 sleeping_beauty.mp3 slow_burn.mp3 standing_in_my_own_way.mp3 take_no_prisoners.mp3 takin_up_space.mp3 Taylor_Dayne_Unstoppable.mp3 the_laundromat_song.mp3 the_old_dun_cow.mp3 the_people_i_meet.mp3 trip_trigger_avenue.mp3 tru-luv.mp3 unfortunate_man.mp3 vertigo.mp3 when_she_runs.mp3 where_do_we_go_from_here.mp3 words_of_earnest.mp3