From c5109fccb82a3e4736b632556fff55060d9a13df Mon Sep 17 00:00:00 2001 From: mdtrooper Date: Wed, 7 Oct 2009 18:43:08 +0000 Subject: [PATCH] 2009-10-07 Miguel de Dios * pandoradb.sql, extras/pandoradb_migrate_v2.x_to_v3.0.sql: change the field "name" in the table "tagente" to binary varchar. * include/functions_events.php, operation/events/events.php: add new columns, the severity colummn and the validate colummn. * images/tag_red.png, images/tick.png, images/status_sets/default/severity_informational.png, images/status_sets/default/severity_maintenance.png, images/status_sets/default/severity_critical.png, images/status_sets/default/severity_warning.png, images/status_sets/default/severity_normal.png: add the new files to use in the events list new colummns. * include/help/en/help_eventview.php: change the content in this help for show help info of new colummns. Comments: I hate the massive and mixed commits...but I have not choice, and in this commit there are two parts, the changes in the sql table and the changes in the event list colummn. git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@2011 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f --- pandora_console/ChangeLog | 19 ++ .../extras/pandoradb_migrate_v2.x_to_v3.0.sql | 5 + .../status_sets/default/severity_critical.png | Bin 0 -> 321 bytes .../default/severity_informational.png | Bin 0 -> 360 bytes .../default/severity_maintenance.png | Bin 0 -> 354 bytes .../status_sets/default/severity_normal.png | Bin 0 -> 360 bytes .../status_sets/default/severity_warning.png | Bin 0 -> 349 bytes pandora_console/images/tag_red.png | Bin 0 -> 592 bytes pandora_console/images/tick.png | Bin 0 -> 537 bytes pandora_console/include/functions_events.php | 98 ++++++---- .../include/help/en/help_eventview.php | 24 ++- pandora_console/operation/events/events.php | 168 +++++++++++------- pandora_console/pandoradb.sql | 2 +- 13 files changed, 217 insertions(+), 99 deletions(-) create mode 100755 pandora_console/images/status_sets/default/severity_critical.png create mode 100755 pandora_console/images/status_sets/default/severity_informational.png create mode 100755 pandora_console/images/status_sets/default/severity_maintenance.png create mode 100755 pandora_console/images/status_sets/default/severity_normal.png create mode 100755 pandora_console/images/status_sets/default/severity_warning.png create mode 100644 pandora_console/images/tag_red.png create mode 100644 pandora_console/images/tick.png diff --git a/pandora_console/ChangeLog b/pandora_console/ChangeLog index 8e39048519..4fe236c98e 100644 --- a/pandora_console/ChangeLog +++ b/pandora_console/ChangeLog @@ -1,3 +1,22 @@ +2009-10-07 Miguel de Dios + + * pandoradb.sql, extras/pandoradb_migrate_v2.x_to_v3.0.sql: change the field + "name" in the table "tagente" to binary varchar. + * include/functions_events.php, operation/events/events.php: add new + columns, the severity colummn and the validate colummn. + * images/tag_red.png, images/tick.png, + images/status_sets/default/severity_informational.png, + images/status_sets/default/severity_maintenance.png, + images/status_sets/default/severity_critical.png, + images/status_sets/default/severity_warning.png, + images/status_sets/default/severity_normal.png: add the new files to use in + the events list new colummns. + * include/help/en/help_eventview.php: change the content in this help for + show help info of new colummns. + Comments: I hate the massive and mixed commits...but I have not choice, and + in this commit there are two parts, the changes in the sql table and the + changes in the event list colummn. + 2009-10-06 Miguel de Dios * godmode/reporting/reporting_builder.php: fix in part the bug #2870769, diff --git a/pandora_console/extras/pandoradb_migrate_v2.x_to_v3.0.sql b/pandora_console/extras/pandoradb_migrate_v2.x_to_v3.0.sql index 389d376a4f..9e91725d23 100644 --- a/pandora_console/extras/pandoradb_migrate_v2.x_to_v3.0.sql +++ b/pandora_console/extras/pandoradb_migrate_v2.x_to_v3.0.sql @@ -297,3 +297,8 @@ ALTER TABLE tgraph ADD `id_group` mediumint(8) unsigned NULL default 0; ALTER TABLE talert_templates ADD `id_group` mediumint(8) unsigned NULL default 0; ALTER TABLE talert_actions ADD `id_group` mediumint(8) unsigned NULL default 0; ALTER TABLE tplanned_downtime ADD `id_group` mediumint(8) unsigned NULL default 0; + +-- Oct 2009 + +ALTER TABLE `pandora`.`tagente` MODIFY COLUMN `nombre` VARCHAR(100) BINARY CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT ''; + diff --git a/pandora_console/images/status_sets/default/severity_critical.png b/pandora_console/images/status_sets/default/severity_critical.png new file mode 100755 index 0000000000000000000000000000000000000000..3a23a87013b05896e530f9a17dfe94862f01076d GIT binary patch literal 321 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=$1|-8uW1a&k#^NA%Cx&(BWL^R}Y)RhkE)4%c zaKYZ?lYt_f1s;*bK<(E-n9)gNb_Gz7y~NYkmHj3sGq(lD=fIC2fIiW;(|kp3k`P z@b1)~tUHT#H`!hLt(&46&$VmShSUekj;{Nm?$!Iw>cKUh$hqfOmtVapAKQ3csK+$D z^7)k48w^zBmnI%llvw5SL@M&g_x{<*PSu;G9Osv>Zrqrc+PQ$p(~=xS}!5|-CN}yrxaJHvC5zBO!1a{ zX}){2@$dAjJn6TL7D}EwzwLg5=>)^a9673QZyU{g^{<8D)xR%HH4Hmdaz3*wZ+N-t z%c2#3R5kluyoDN`H!-O6I(!tlej-=6GAbpXjj`x~DZ}ff=W1Py?=eqsExnt3-y*fK zUg^k-b@TeaO)TL#P*zx{u;+_i^OD*#lDGHIv3Xp@eY^d_w3943D!txo3O{_?fBNCF yfbZ(NwDvNzzMZ;6_Ji#GbKkf$fP9m~Gv#miR%KbRt=|XqGlQqApUXO@geCw-DUyc( literal 0 HcmV?d00001 diff --git a/pandora_console/images/status_sets/default/severity_maintenance.png b/pandora_console/images/status_sets/default/severity_maintenance.png new file mode 100755 index 0000000000000000000000000000000000000000..f0b9b3c123107fc84a5ec83c4f0a1d517e02dc53 GIT binary patch literal 354 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=$1|-8uW1a&k#^NA%Cx&(BWL^R}Y)RhkE)4%c zaKYZ?lYt_f1s;*bK<(E-n9)gNb_Gz7y~NYkmHj3sGqXplJ?u_H_YyBP$ZGhdx-Rgh+NUii-?1@jDR3UhT>V+%V$XL5nMJ$gHkSLfAFvlpDk(po z{@Y_0>w`^}_Ja4S<~v@JC_eU0Uw!?K`-i@XY+4f0uz5*Zw<+Jd|GQ=LIRD<5wEQX0 sm2Lf#)*UFX3BT>W;N0aRxn+IwKboqtcqcV;1AWWj>FVdQ&MBb@00cXTLI3~& literal 0 HcmV?d00001 diff --git a/pandora_console/images/status_sets/default/severity_normal.png b/pandora_console/images/status_sets/default/severity_normal.png new file mode 100755 index 0000000000000000000000000000000000000000..d5d63511fc6df4bf7f4bc27ee505d145dbbb88bd GIT binary patch literal 360 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=$1|-8uW1a&k#^NA%Cx&(BWL^R}Y)RhkE)4%c zaKYZ?lYt_f1s;*bK<(E-n9)gNb_Gz7y~NYkmHj3sGqjoH5PL<*RXLHbxAz(6ED!(eo3;0#j<6U=R*C(EIB6* zzVe>=ZQD(KXbg;JN&Z?8YVcVb2XtKTHO)Jr|b>zWz*{-*KnVcw~d^O@argZ-LY zet|!OgXB7=sWAAnGJ33Pe5AQ<;%&80Ca3k-7>gdLGVI=YuGYo)9@7NZ(!0s}b2c5Y z7fdQKKkxqAV;9>46Ki{cdDZfcmsFqiyp8vpSFpSF?fL+=%t!{u!SZ+A4ru~b3RawdrXTJdb%;4$j=d#Wzp$P!9yo(zE literal 0 HcmV?d00001 diff --git a/pandora_console/images/status_sets/default/severity_warning.png b/pandora_console/images/status_sets/default/severity_warning.png new file mode 100755 index 0000000000000000000000000000000000000000..63bfee13a58feba3850a563e2339ba684318e90b GIT binary patch literal 349 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=$1|-8uW1a&k#^NA%Cx&(BWL^R}Y)RhkE)4%c zaKYZ?lYt_f1s;*bK<(E-n9)gNb_Gz7y~NYkmHj3sGq;7Ak-?j2pwL}U7sn8d^HV2n z%xwt}aJgU87{jzgujNFaW6QJx(eU=wA3XU4k67$-n&ZUzV!|;-`6H3LCfhvxcXQ_7 z&8t&ad2H%ST{SOfKND}jhDS_uRCztGoxQ%%h2i?f8aBIzD4}gXo5d`aR{meS;*aXe zJ{NDHhU-lXDq9ak3mspPD_nUig};}<^n*}C+UjEYi#^{NL;_>K-(X*^^ufPH;_kbj z8FHS}8RnQjXFqiNcKQU9BXc&^K7JzlTQ8@+UFCJ!1C^C`lX`oP|Ih25T`KE+Y0rIs o=b+@@&rBK=&;G8Qsa3~l^{}dX!&LcIK#wwby85}Sb4q9e0CVY#&Hw-a literal 0 HcmV?d00001 diff --git a/pandora_console/images/tag_red.png b/pandora_console/images/tag_red.png new file mode 100644 index 0000000000000000000000000000000000000000..6ebb37d25f58c68246d8ad6a015295dfa5367870 GIT binary patch literal 592 zcmV-W0k7R5;6p zlgVxxK@f)LC45c9TOf_{d{!)DV#gQ9u^lTnR)N?B4hRsNK&)mFLI{BXaU6RP-Hd*B zb;Jb3l0#jp`v2;$?rNpgYN6R|qF%3~R;!^}t)fz?pj!?Xf$9L#$Jra zV+qOU^Cuw+btb`RG?JZ%!=VYGoN$3mCUX>`kYzed-6&Bk7R#EZfpaeN1kB}fNG6j9 zAqsWf92DY}usm8Wm*DdmSn7|g4F&_G(`h6Ui9Luyoi~=(>orKcUM#@A*}%S@gC$>N zt>5pH3q+&Q9f%@k)E7cPhZtkvGtt>@1HZome|iABzA_=bUXNTL7z~;arBEn*5i{!Z z`TQ^BwFP!@4*qZt{`(pH*W(VP+wGDI_d4WAzVcfivW|vfP^h0000Hs{AQG2a)rMyf zFQK~pm1x3+7!nu%-M`k}``c>^00{o_1pjWJUTfl8mg=3qGEl8H@}^@w`VUx0_$uy4 z2FhRqKX}xI*?Tv1DJd8z#F#0c%*~rM30HE1@2o5m~}ZyoWhqv>ql{V z1ZGE0lgcoK^lx+eqc*rAX1Ky;Xx3U%u#zG!m-;eD1Qsn@kf3|F9qz~|95=&g3(7!X zB}JAT>RU;a%vaNOGnJ%e1=K6eAh43c(QN8RQ6~GP%O}Jju$~Ld*%`mO1pdata = array (); $table->align = array (); - $table->head[0] = __('St'); - $table->align[0] = "center"; + $table->head[0] = "" . __('V.') . ""; + $table->align[0] = 'center'; - $table->head[1] = __('Type'); - $table->headclass[1] = "datos3 f9"; - $table->align[1] = "center"; + $table->head[1] = "" . __('S.') . ""; + $table->align[1] = 'center'; - $table->head[2] = __('Event name'); + $table->head[2] = __('Type'); + $table->headclass[2] = "datos3 f9"; + $table->align[2] = "center"; - $table->head[3] = __('Agent name'); + $table->head[3] = __('Event name'); - $table->head[4] = __('User ID'); - $table->headclass[4] = "datos3 f9"; - $table->align[4] = "center"; + $table->head[4] = __('Agent name'); - $table->head[5] = __('Timestamp'); + $table->head[5] = __('User ID'); $table->headclass[5] = "datos3 f9"; - $table->align[5] = "right"; + $table->align[5] = "center"; + + $table->head[6] = __('Timestamp'); + $table->headclass[6] = "datos3 f9"; + $table->align[6] = "right"; foreach ($result as $event) { if (! give_acl ($config["id_user"], $event["id_grupo"], "AR")) { @@ -303,42 +306,75 @@ function print_events_table ($filter = "", $limit = 10, $width = 440, $return = } $data = array (); - /* Colored box */ - if ($event["estado"] == 1) { - $img = 'images/pixel_red.png'; - } else { - $img = 'images/pixel_green.png'; + // Colored box + if ($event["estado"] == 0) { + $img = "images/cross.png"; + $title = __('Event validate'); } - $data[0] = print_image ($img, true, array ("width" => 20, - "height" => 20, - "title" => get_priority_name ($event["criticity"]))); + else { + $img = "images/tick.png"; + $title = __('Event not validate'); + } + $data[0] = print_image ($img, true, + array ("class" => "image_status", + "width" => 16, + "height" => 16, + "title" => $title)); + + switch ($event["criticity"]) { + default: + case 0: + $img = "images/status_sets/default/severity_maintenance.png"; + break; + case 1: + $img = "images/status_sets/default/severity_informational.png"; + break; + case 2: + $img = "images/status_sets/default/severity_normal.png"; + break; + case 3: + $img = "images/status_sets/default/severity_warning.png"; + break; + case 4: + $img = "images/status_sets/default/severity_critical.png"; + break; + } + + $data[1] = print_image ($img, true, + array ("class" => "image_status", + "width" => 12, + "height" => 12, + "title" => get_priority_name ($event["criticity"]))); /* Event type */ - $data[1] = print_event_type_img ($event["event_type"], true); + $data[2] = print_event_type_img ($event["event_type"], true); // Event description wrap around by default at 44 or ~3 lines (10 seems to be a good ratio to wrap around for most sizes. Smaller number gets longer strings) $wrap = floor ($width / 10); - $data[2] = ''.safe_input ($event["evento"]).''; + $data[3] = ''.safe_input ($event["evento"]).''; if ($event["id_agente"] > 0) { // Agent name - $data[3] = print_agent_name ($event["id_agente"], true); + $data[4] = print_agent_name ($event["id_agente"], true); // for System or SNMP generated alerts - } elseif ($event["event_type"] == "system") { - $data[3] = __('System'); - } else { - $data[3] = __('Alert')."SNMP"; + } + elseif ($event["event_type"] == "system") { + $data[4] = __('System'); + } + else { + $data[4] = __('Alert')."SNMP"; } // User who validated event if ($event["estado"] != 0) { - $data[4] = print_username ($event["id_usuario"], true); - } else { - $data[4] = ''; + $data[5] = print_username ($event["id_usuario"], true); + } + else { + $data[5] = ''; } // Timestamp - $data[5] = print_timestamp ($event["timestamp"], true); + $data[6] = print_timestamp ($event["timestamp"], true); array_push ($table->rowclass, get_priority_class ($event["criticity"])); array_push ($table->data, $data); diff --git a/pandora_console/include/help/en/help_eventview.php b/pandora_console/include/help/en/help_eventview.php index a29419d316..0cde1992a2 100644 --- a/pandora_console/include/help/en/help_eventview.php +++ b/pandora_console/include/help/en/help_eventview.php @@ -5,10 +5,30 @@ ?>

Event viewer

-

+
+
-

Status

Validated event - Validated event
Event not validated - Event not validated

Actions

Validate event - Validate event
Delete event - Delete event
Create incident from event - Create incident from event
 
+

Validate

+ Validated event - Validated event
+ Event not validated - Event not validated + +
+

Severity

+ Maintenance event - Maintenance event
+ Informational event - Informational event
+ Normal event - Normal event
+ Warning event - Warning event
+ Critical event - Critical event
+
+
+

Actions

+ Validate event - Validate event
+ Delete event - Delete event
+ Create incident from event - Create incident from event +
+
 
+ diff --git a/pandora_console/operation/events/events.php b/pandora_console/operation/events/events.php index 48f00c326d..b21079e174 100644 --- a/pandora_console/operation/events/events.php +++ b/pandora_console/operation/events/events.php @@ -352,7 +352,7 @@ if (empty ($result)) { $result = array (); } -$table->width = '99%'; +$table->width = '100%'; $table->id = "eventtable"; $table->cellpadding = 4; $table->cellspacing = 4; @@ -360,39 +360,43 @@ $table->class = "databox"; $table->head = array (); $table->data = array (); -$table->head[0] = ''; +$table->head[0] = "" . __('V.') . ""; $table->align[0] = 'center'; -$table->head[1] = __('Type'); -$table->headclass[1] = 'f9'; +$table->head[1] = "" . __('S.') . ""; $table->align[1] = 'center'; -$table->head[2] = __('Event name'); +$table->head[2] ="" . __('T.') . ""; +$table->headclass[2] = 'f9'; +$table->align[2] = 'center'; -$table->head[3] = __('Agent name'); -$table->align[3] = 'center'; +$table->head[3] = __('Event name'); -$table->head[4] = __('Source'); +$table->head[4] = __('Agent name'); $table->align[4] = 'center'; -$table->head[5] = __('Group'); +$table->head[5] = __('S.'); $table->align[5] = 'center'; -if ($group_rep == 0) { - $table->head[6] = __('User ID'); -} else { - $table->head[6] = __('Count'); -} +$table->head[6] = __('G.'); $table->align[6] = 'center'; -$table->head[7] = __('Timestamp'); +if ($group_rep == 0) { + $table->head[7] = __('User ID'); +} else { + $table->head[7] = __('Count'); +} $table->align[7] = 'center'; -$table->head[8] = __('Action'); +$table->head[8] = __('Timestamp'); $table->align[8] = 'center'; -$table->head[9] = print_checkbox ("allbox", "1", false, true); -$table->align[9] = 'center'; +$table->head[9] = __('Action'); +$table->align[9] = 'right'; +$table->size[9] = '50px'; + +$table->head[10] = print_checkbox ("allbox", "1", false, true); +$table->align[10] = 'center'; //Arrange data. We already did ACL's in the query foreach ($result as $event) { @@ -402,102 +406,136 @@ foreach ($result as $event) { $table->rowclass[] = get_priority_class ($event["criticity"]); // Colored box - if ($event["estado"] == 0) { - $img = "images/pixel_red.png"; - } else { - $img = "images/pixel_green.png"; + $img = "images/cross.png"; + $title = __('Event validate'); + } + else { + $img = "images/tick.png"; + $title = __('Event not validate'); } $data[0] = print_image ($img, true, array ("class" => "image_status", - "width" => 20, - "height" => 20, + "width" => 16, + "height" => 16, + "title" => $title)); + + switch ($event["criticity"]) { + default: + case 0: + $img = "images/status_sets/default/severity_maintenance.png"; + break; + case 1: + $img = "images/status_sets/default/severity_informational.png"; + break; + case 2: + $img = "images/status_sets/default/severity_normal.png"; + break; + case 3: + $img = "images/status_sets/default/severity_warning.png"; + break; + case 4: + $img = "images/status_sets/default/severity_critical.png"; + break; + } + + $data[1] = print_image ($img, true, + array ("class" => "image_status", + "width" => 12, + "height" => 12, "title" => get_priority_name ($event["criticity"]))); - $data[1] = print_event_type_img ($event["event_type"], true); + $data[2] = print_event_type_img ($event["event_type"], true); // Event description - $data[2] = ''; - $data[2] .= ''; + $data[3] = ''; + $data[3] .= ''; if (strlen ($event["evento"]) > 50) { - $data[2] .= mb_substr ($event["evento"], 0, 50)."..."; - } else { - $data[2] .= $event["evento"]; + $data[3] .= mb_substr ($event["evento"], 0, 50)."..."; } - $data[2] .= ''; + else { + $data[3] .= $event["evento"]; + } + $data[3] .= ''; if ($event["event_type"] == "system") { - $data[3] = __('System'); - } elseif ($event["id_agente"] > 0) { + $data[4] = __('System'); + } + elseif ($event["id_agente"] > 0) { // Agent name - $data[3] = print_agent_name ($event["id_agente"], true); - } else { - $data[3] = __('Alert').__('SNMP'); + $data[4] = print_agent_name ($event["id_agente"], true); + } + else { + $data[4] = __('Alert').__('SNMP'); } - $data[4] = ''; + $data[5] = ''; if ($event["id_agentmodule"] != 0) { - $data[4] .= ''; - $data[4] .= print_image ("images/bricks.png", true, + $data[5] .= ''; + $data[5] .= print_image ("images/bricks.png", true, array ("title" => __('Go to data overview'))); - $data[4] .= ' '; + $data[5] .= ' '; } if ($event["id_alert_am"] != 0) { - $data[4] .= ''; - $data[4] .= print_image ("images/bell.png", true, + $data[5] .= ''; + $data[5] .= print_image ("images/bell.png", true, array ("title" => __('Go to alert overview'))); - $data[4] .= ''; + $data[5] .= ''; } - $data[5] = print_group_icon ($event["id_grupo"], true); + $data[6] = print_group_icon ($event["id_grupo"], true); if ($group_rep == 1) { - $data[6] = $event["event_rep"]; - } else { + $data[7] = $event["event_rep"]; + } + else { if (!empty ($event["estado"])) { if ($event["id_usuario"] != '0' && $event["id_usuario"] != ''){ - $data[6] = ''.mb_substr ($event["id_usuario"],0,8).''; - } else { - $data[6] = __('System'); + $data[7] = ''.mb_substr ($event["id_usuario"],0,8).''; } - } else { - $data[6] = ''; + else { + $data[7] = __('System'); + } + } + else { + $data[7] = ''; } } //Time if ($group_rep == 1) { - $data[7] = print_timestamp ($event['timestamp_rep'], true); - } else { - $data[7] = print_timestamp ($event["timestamp"], true); + $data[8] = print_timestamp ($event['timestamp_rep'], true); + } + else { + $data[8] = print_timestamp ($event["timestamp"], true); } //Actions - $data[8] = ''; + $data[9] = ''; // Validate event if (($event["estado"] == 0) and (give_acl ($config["id_user"], $event["id_grupo"], "IW") == 1)) { - $data[8] .= ''; - $data[8] .= print_image ("images/ok.png", true, + $data[9] .= ''; + $data[9] .= print_image ("images/ok.png", true, array ("title" => __('Validate event'))); - $data[8] .= ''; + $data[9] .= ''; } // Delete event if (give_acl ($config["id_user"], $event["id_grupo"], "IM") == 1) { - $data[8] .= ''; - $data[8] .= print_image ("images/cross.png", true, + $data[9] .= ''; + $data[9] .= print_image ("images/cross.png", true, array ("title" => __('Delete event'))); - $data[8] .= ''; + $data[9] .= ''; } // Create incident from this event if (give_acl ($config["id_user"], $event["id_grupo"], "IW") == 1) { - $data[8] .= ''; - $data[8] .= print_image ("images/page_lightning.png", true, + $data[9] .= ''; + $data[9] .= print_image ("images/page_lightning.png", true, array ("title" => __('Create incident from event'))); - $data[8] .= ''; + $data[9] .= ''; } //Checkbox - $data[9] = print_checkbox_extended ("eventid[]", $event["id_evento"], false, false, false, 'class="chk"', true); + $data[10] = print_checkbox_extended ("eventid[]", $event["id_evento"], false, false, false, 'class="chk"', true); array_push ($table->data, $data); } diff --git a/pandora_console/pandoradb.sql b/pandora_console/pandoradb.sql index c33f2d2d31..e6f354ac4b 100644 --- a/pandora_console/pandoradb.sql +++ b/pandora_console/pandoradb.sql @@ -40,7 +40,7 @@ CREATE TABLE IF NOT EXISTS `taddress_agent` ( CREATE TABLE IF NOT EXISTS `tagente` ( `id_agente` int(10) unsigned NOT NULL auto_increment, - `nombre` varchar(100) NOT NULL default '', + `nombre` varchar(100) BINARY NOT NULL default '', `direccion` varchar(100) default NULL, `comentarios` varchar(255) default '', `id_grupo` int(10) unsigned NOT NULL default '0',