Barbo Comune

Esemplare di Barbo Comune. Foto di Armando Piccinini

  • Nome scientifico. Barbus plebejus Bonaparte, 1839
  • Allegati delle direttive Uccelli ed Habitat in cui le specie sono presenti. La specie è presente negli allegati II e V della Direttiva Habitat; in quest’ultimo allegato compare come Barbus spp.
  • Cenni di ecologia e biologia. Il barbo è diffuso in tutti i corsi d’acqua pedemontani e di fondovalle della penisola italiana, nelle zone denominate “a ciprinidi reofili”, dove risulta molto spesso la specie più abbondante. È una specie con discreta valenza ecologica in grado di occupare vari tratti di un corso d’acqua, anche quelli di piccole dimensioni, purchè le acque risultino ben ossigenate; predilige però tratti Medio-alto dove la corrente è vivace, l’acqua è limpida e il fondo ghiaioso. Il corpo è fusiforme, con capo allungato e può raggiungere dimensioni considerevoli, anche oltre i 50 cm. La maturità sessuale viene raggiunta a due - tre anni nei maschi, a quattro - cinque nelle femmine; non c’è un evidente dimorfismo sessuale. La stagione riproduttiva è tra metà aprile e luglio. A 16°C la schiusa delle uova ha luogo dopo circa 8 gg.
  • Dimensione della popolazione nell’area di progetto. Nella Regione Emilia Romagna, il barbo comune è presente nei corsi d'acqua montani di fondo valle e planiziali. Storicamente in Prov. di Parma risultava presente (Nonnis Marzano et al, 2003) nell’asta principale del fiume Po e negli affluenti Stirone, Ceno, Taro, Baganza, Parma ed Enza, con popolazioni abbondanti in 11/28 siti di presenza (39%). Nel corso degli ultimi anni le popolazioni hanno subito drastici decrementi. In ambito ufficiale i dati disponibili sono quelli della carta ittica, riferita al periodo 2007-8 (Puzzi et al. 2010) dove la specie è stata censita “vulnerabile” con elevato rischio di estinzione nel medio termine, nonostante la LR IUCN la considerasse a basso rischio. Ulteriori dati attualmente disponibili sono quelli della carta ittica regionale, la quale riporta censimenti per lo più qualitativi effettuati tra 1999-2004.  L’analisi dei monitoraggi mostra un’ampia variabilità nella presenza di barbo comune all’interno dei SIC e nei corsi d’acqua ad essi contigui anche su scala geografica limitata. Ad es. nel  F. Enza la consistenza numerica degli esemplari fluttua tra “raro” e  “presente” con popolazioni scarsamente strutturate. In modo più preciso, le stime di densità riferiscono di popolazioni variabili tra 0,003 e 0,110 ind/mq nelle zone di transizione; nei tratti planiziali la presenza diventa sporadica entrando in forte competizione con i barbi europei.
  • Stato di conservazione nell’area di progetto: Nonostante le notevoli capacità di adattamento e l’ampio spettro trofico che gli consentono un’ampia diffusione, il barbo, ha visto diminuire il suo areale di distribuzione. Le popolazioni si presentano caratterizzate da un numero ridotto di esemplari per lo più nei tratti dell’alto corso. Di rilievo rimane la popolazione dell’alto Taro con  numerosi esemplari di notevoli dimensioni; nella rimanente parte dei corsi d’acqua appenninici e collinari della provinciali Parma residuano popolazioni scarsamente strutturate con esemplari di taglia non superiore ai 30 cm. Nel basso corso dei fiumi e nell’asta principale del Po la competizione con le specie alloctone ha portato alla scomparsa della maggior parte delle popolazioni.  La situazione della provincia di Parma può essere riferita anche alle province di Piacenza e Reggio Emilia dove residuano poche popolazioni in grado di automantenersi nei tratti montani mentre la specie è quasi del tutto scomparsa nella fascia planiziale. Di rilievo è la popolazione di barbo presente nel medio - alto corso del Trebbia in provincia di Piacenza.


class "Gallery" already exists while executing "::itcl::class Gallery { inherit Barbie private variable galleria_d private variable gallery_sect_menu private variabl..." (in namespace eval "::rwdatas" script line 3) invoked from within "namespace eval ::rwdatas { ::itcl::class Gallery { inherit Barbie private variable galleria_d private variable gallery_s..."

OUTPUT BUFFER:

source [file join $rweb_root tcl before.tcl] # # -- gallery.tcl # # datasource per pagina gestione delle # # package require Barbie package require rwbinary namespace eval ::rwdatas { ::itcl::class Gallery { inherit Barbie private variable galleria_d private variable gallery_sect_menu private variable gallery_menu private common thumb_h_size 200 private common gallery_dir private common thumbnails_dir private method page_handled {v p} public method willHandle {arglist keyvar} public method fetchData {key reassigned_key} public method init {args} public method menu_list {page} #public method to_url {lm} { return [Barbie::to_url $lm] } #public method will_provide {keyword reassigned_key} public proc create_thumbnail {photo} public proc gallery {} public proc gallery_latest_entries {dbhandle nentries} public proc thumbnail_fs_path {photo} public proc thumbnail_path {photo} public proc thumbnail_exists {photo} } ::itcl::body Gallery::thumbnail_exists {photo} { return [file exists [thumbnail_fs_path $photo]] } ::itcl::body Gallery::thumbnail_fs_path {photo} { return [file join galleria thumbnails ${photo}] } ::itcl::body Gallery::thumbnail_path {photo} { return [::rivetweb::rewrite_generic_path [join [list galleria thumbnails $photo] "/"]] } ::itcl::body Gallery::create_thumbnail {photo} { set thumbnail [thumbnail_fs_path $photo] set photo_name [file join $gallery_dir $photo] if {[catch {exec gm convert $photo_name -geometry $thumb_h_size $thumbnail} e]} { ::rivet::apache_log_error err "Error creating thumbnail $thumbnail: $e" return -code error -errorcode thumbnail_creation_error $e $e } } # -- page_handled # # ::itcl::body Gallery::page_handled {varsqs page_key} { upvar $page_key p foreach p [list photo gallery] { if {[dict exists $varsqs $p]} { return true } } return false } ::itcl::body Gallery::willHandle {arglist keyvar} { upvar $keyvar key set varsqs [dict create {*}$arglist] if {[dict exists $varsqs photo]} { set photo_filename [dict get $varsqs photo] # # proposed change #set key "view_photo_[regsub -all {[^[:alnum:]]} ${photo_filename}]" # set key "view_photo_[::rivet::escape_string ${photo_filename}]" return -code break -errorcode rw_ok } elseif {[dict exists $varsqs gallery]} { set key "view_gallery" return -code break -errorcode rw_ok } return -code continue -errorcode rw_continue } ::itcl::body Gallery::fetchData {key reassigned_key} { upvar $reassigned_key rkey set rkey $key set key [::rivet::unescape_string $key] switch -regexp -matchvar photo_name -- $key { view_photo_(.+) { $this check_class ::rwpage::Photo set photo_name [lindex $photo_name 1] set p [::rwpage::Photo ::#auto $key $gallery_dir $photo_name] #::rivet::apache_log_error notice "new instance of $p ::rwpage::Photo" } view_gallery { $this check_class ::rwpage::Gallery set p [::rwpage::Gallery ::#auto $key $gallery_dir] #::rivet::apache_log_error notice "new instance of $p ::rwpage::Gallery" } default { set p "" } } #::rivet::apache_log_error notice "new instance of ::rwpage::Photo (binary: [$p binary_content])" return $p } ::itcl::body Gallery::gallery_latest_entries {dbhandle nentries} { set q "select g.*,s.descrizione from galleria g " append q "join sezioni s on s.sectionid=g.sezione " append q "order by g.creazione desc limit $nentries;" set galleria_d [dict create] $dbhandle forall $q photo_a { dict set galleria_d [incr idx] [dict create {*}[array get photo_a]] } return $galleria_d } ::itcl::body Gallery::gallery {} { set q "select g.*,s.descrizione from galleria g " append q "join sezioni s on s.sectionid=g.sezione order by s.descrizione,s.ordine,g.ordine;" set galleria_d [dict create] $::barbie::dbhandle forall $q photo_a { set photo_name $photo_a(filename) set sezione $photo_a(sezione) set descrizione $photo_a(descrizione) unset photo_a(sezione) unset photo_a(filename) unset photo_a(descrizione) dict set galleria_d $sezione photos $photo_name \ [dict create {*}[array get photo_a]] dict set galleria_d $sezione descrizione $descrizione } return $galleria_d } ::itcl::body Gallery::init {args} { Barbie::init $args set gallery_dir [file join $::rivetweb::site_base galleria] if {![file exists $gallery_dir]} { file mkdir $gallery_dir } set thumbnails_dir [file join $gallery_dir thumbnails] if {![file exists $thumbnails_dir]} { file mkdir $thumbnails_dir } set galleria_d [::rwdatas::Gallery::gallery] $this register_class ::rwpage::Photo $this register_class ::rwpage::Gallery } ::itcl::body Gallery::menu_list {page} { set page_class [$page info class] if {($page_class == "::rwpage::Gallery") || \ ($page_class == "::rwpage::Photo")} { set mm $::rivetweb::menumodel set lm $::rivetweb::linkmodel set galleria_d [::rwdatas::Gallery::gallery] if {[dict size $galleria_d] == 0} { return [Datasource::menu_list $page] } catch {$gallery_menu destroy} set gallery_menu [$mm create_menu sezioni_galleria none normal] $gallery_menu assign title "Photo Gallery" en $gallery_menu assign title "Galleria Fotografica" it dict for {sectid section_d} $galleria_d { set gallery_section [$lm create Gallery "" \ [list it [dict get $galleria_d $sectid descrizione]] \ [dict create gallery 1 section $sectid] ""] $gallery_menu add_link $gallery_section } return [list evidenza $gallery_menu] } else { return {} } } } package provide Gallery 1.0 source [file join $rweb_root tcl after.tcl]