$value) { $icons[$id] = $value->name; } $form['entes_planificadores_toolbar'] = array( '#type' => 'fieldset', '#title' => t('Configurar el Toolbar'), '#collapsible' => FALSE, '#collapsed' => 0, '#tree' => FALSE, '#weight' => 0, ); $form['entes_planificadores_toolbar']['entes_planificadores_toolbar_handler_icons_users'] = array( '#type' => 'select', '#title' => t('Iconos de usuarios'), '#default_value' => variable_get('entes_planificadores_toolbar_handler_icons_users', 'entes_planificadores_normal'), '#options' => $icons, '#description' => t('Seleccione los iconos a utilizar para motrar en el toolbar de usuarios'), ); $form['entes_planificadores_toolbar']['entes_planificadores_toolbar_handler_icons_admin'] = array( '#type' => 'select', '#title' => t('Iconos de Administración'), '#default_value' => variable_get('entes_planificadores_toolbar_handler_icons_admin', 'entes_planificadores_normal'), '#options' => $icons, '#description' => t('Seleccione los iconos a utilizar para motrar en el toolbar de administración'), ); $form['entes_planificadores_toolbar']['entes_planificadores_toolbar_handler_icons_planner'] = array( '#type' => 'select', '#title' => t('Iconos de entes planificadores'), '#default_value' => variable_get('entes_planificadores_toolbar_handler_icons_planner', 'entes_planificadores_normal'), '#options' => $icons, '#description' => t('Seleccione los iconos a utilizar para motrar en el toolbar de entes planificadores'), ); } } /** * Implementation of hook_theme(). */ function entes_planificadores_toolbar_theme() { $entes_planificadores_toolbar_path = drupal_get_path('module', 'entes_planificadores_toolbar') . '/templates'; return array( 'entes_planificadores_toolbar_usuarios' => array( 'arguments' => array( 'links' => array(), ), 'template' => 'entes-planificadores-toolbar-usuarios', 'path' => $entes_planificadores_toolbar_path, ), 'entes_planificadores_toolbar_admin' => array( 'arguments' => array( 'links' => array(), ), 'template' => 'entes-planificadores-toolbar-admin', 'path' => $entes_planificadores_toolbar_path, ), 'entes_planificadores_toolbar_planner' => array( 'arguments' => array( 'links' => array(), ), 'template' => 'entes-planificadores-toolbar-planner', 'path' => $entes_planificadores_toolbar_path, ), 'entes_planificadores_toolbar_myplanner' => array( 'arguments' => array( 'links' => array(), ), 'template' => 'entes-planificadores-toolbar-myplanner', 'path' => $entes_planificadores_toolbar_path, ), ); } /* * Implementation of hook_block() */ function entes_planificadores_toolbar_block($op = 'list', $delta = 0, $edit = array()) { if ($op == 'list') { $blocks[0] = array( 'info' => t('Administrar planificación toolbar'), ); $blocks[1] = array( 'info' => t('Usuarios toolbar'), ); $blocks[2] = array( 'info' => t('Entes planificadores toolbar'), ); $blocks[3] = array( 'info' => t('Mi ente planificador toolbar'), ); return $blocks; } else if ($op == 'view') { switch ($delta) { case 0: if (user_access('admin planificador')) { $links = _entes_planificadores_toolbar_admin_items(); if (is_array($links) && count($links)) { $entes_planificadores_toolbar_path = drupal_get_path('module', 'entes_planificadores_toolbar'); //drupal_add_js($entes_planificadores_toolbar_path . '/js/entes_planificadores_toolbar.js'); $content = theme('entes_planificadores_toolbar_admin', $links); $block = array( 'subject' => t('Administración'), 'content' => $content, ); return $block; } } break; case 1: global $user; if ($user->uid) { $links = _entes_planificadores_toolbar_usuario_items($user->uid); if (is_array($links) && count($links)) { $entes_planificadores_toolbar_path = drupal_get_path('module', 'entes_planificadores_toolbar'); //drupal_add_js($entes_planificadores_toolbar_path . '/js/entes_planificadores_toolbar.js'); $content = theme('entes_planificadores_toolbar_usuarios', $links); $block = array( 'subject' => t('Mi usuario'), 'content' => $content, ); return $block; } } break; case 2: if (user_access('ver planificador')) { if((arg(0) == 'node' && is_numeric(arg(1))) || (arg(0) == 'planificacion' && is_numeric(arg(1)))) { $ente_planificador = node_load(arg(1)); if ($ente_planificador->type == "ente_planificador") { $links = _entes_planificadores_toolbar_planner_items($ente_planificador); if (is_array($links) && count($links)) { $entes_planificadores_toolbar_path = drupal_get_path('module', 'entes_planificadores_toolbar'); //drupal_add_js($entes_planificadores_toolbar_path . '/js/entes_planificadores_toolbar.js'); $content = theme('entes_planificadores_toolbar_planner', $links); $block = array( 'subject' => check_plain($ente_planificador->title), 'content' => $content, ); return $block; } } } } break; case 3: if (user_access('ver planificador')) { global $user; $ente = usuario_tiene_ente($user->uid); if ($ente->nid) { $ente_planificador = node_load($ente->nid); $links = _entes_planificadores_toolbar_planner_items($ente_planificador); if (is_array($links) && count($links)) { $entes_planificadores_toolbar_path = drupal_get_path('module', 'entes_planificadores_toolbar'); //drupal_add_js($entes_planificadores_toolbar_path . '/js/entes_planificadores_toolbar.js'); $content = theme('entes_planificadores_toolbar_myplanner', $links); $block = array( 'subject' => t('Mi ente planificador'), 'content' => $content, ); return $block; } } } break; } } } /* * Implementation of _entes_planificadores_toolbar_usuario_items() * Agrega las opciones al menu del usuario */ function _entes_planificadores_toolbar_usuario_items($uid) { $handler_icon = variable_get('entes_planificadores_toolbar_handler_icons_users', 'entes_planificadores_normal'); $links = module_invoke_all('usuario_items_toolbar', $uid, $handler_icon); drupal_alter('toolbar_usuario', $links); return $links; } /* * Implementation of _entes_planificadores_toolbar_admin_items() * Agrega las opciones al menu admin */ function _entes_planificadores_toolbar_admin_items() { $handler_icon = variable_get('entes_planificadores_toolbar_handler_icons_admin', 'entes_planificadores_normal'); $links = module_invoke_all('admin_items_toolbar', $handler_icon); drupal_alter('toolbar_admin', $links); return $links; } /* * Implementation of _entes_planificadores_toolbar_planner_items() * Agrega las opciones al menu planner y myplanner */ function _entes_planificadores_toolbar_planner_items($ente_planificador) { $handler_icon = variable_get('entes_planificadores_toolbar_handler_icons_planner', 'entes_planificadores_normal'); $links = module_invoke_all('planner_items_toolbar', $ente_planificador, $handler_icon); drupal_alter('toolbar_planner', $links); return $links; } /** * Get all iconsets and their details. * * @param $reset * If TRUE, clear the cache and fetch the information again. * @return * array of iconset objects. */ function entes_planificadores_toolbar_get_iconsets($reset = FALSE) { static $iconsets; if ($reset || !isset($iconsets)) { $iconsets = module_invoke_all('planificacion_iconset_info'); } return $iconsets; } /** * Get an iconsets details. * * @param $iconset * The iconset name. * @return * object with requested iconset. */ function entes_planificadores_toolbar_get_iconset($iconset) { $iconsets = entes_planificadores_toolbar_get_iconsets(); return $iconsets[$iconset]; } /** * Get the path to an icon. * * @param $instance * string instance (users, admin, planner). * @param $iconset * The icon set to use. * @return * If icon exists a string containing the path to the image file, else NULL. */ function entes_planificadores_toolbar_get_icon_path($instance, $icon, $iconset) { $iconset = entes_planificadores_toolbar_get_iconset($iconset); if (!empty($iconset) && !empty($instance) && !empty($icon)) { $icon_path = $iconset->path . '/' . drupal_strtolower($instance) . '/' . drupal_strtolower($icon) . '.' . $iconset->extension; if (file_exists($icon_path)) { return $icon_path; } } return 'default'; } /** * Implementation of hook_iconset_info(). */ function entes_planificadores_toolbar_planificacion_iconset_info() { $iconset = new stdClass(); $iconset->key = 'entes_planificadores_normal'; $iconset->name = t('Defaults icons'); $iconset->description = t('Default ente planificadores icons'); $iconset->width = '48'; $iconset->height = '48'; $iconset->extension = 'png'; $iconset->path = drupal_get_path('module', 'entes_planificadores_toolbar') . '/icons'; $iconset->css_sprite = FALSE; return array($iconset->key => $iconset); } /** * Implementation of hook_usuario_items_toolbar(). */ function entes_planificadores_toolbar_usuario_items_toolbar($uid, $handler_icon) { $link = array(); if (user_access('access user profiles')) { $icon_path = entes_planificadores_toolbar_get_icon_path('users', 'user', $handler_icon); $link[] = array( 'path' => 'user/' . $uid, 'icon_path' => $icon_path, 'icon' => theme('image', $icon_path, t('Ver la información de mi usuario'), t('Ver la información de mi usuario'), array('class' => 'handler-icon-' . $handler_icon)), 'title' => t('Ver'), 'description' => t('Ver la información de mi usuario'), 'category' => 'user', ); } if (user_access('change own username')) { $icon_path = entes_planificadores_toolbar_get_icon_path('users', 'userpassword', $handler_icon); $link[] = array( 'path' => 'user/' . $uid . '/chgpwd', 'icon_path' => $icon_path, 'icon' => theme('image', $icon_path, t('Cambiar mi contraseña'), t('Cambiar mi contraseña'), array('class' => 'handler-icon-' . $handler_icon)), 'title' => t('Contraseña'), 'description' => t('Cambiar mi contraseña'), 'category' => 'user', ); $icon_path = entes_planificadores_toolbar_get_icon_path('users', 'useredit', $handler_icon); $link[] = array( 'path' => 'user/' . $uid . '/edit', 'icon_path' => $icon_path, 'icon' => theme('image', $icon_path, t('Editar la información de mi usuario'), t('Editar la información de mi usuario'), array('class' => 'handler-icon-' . $handler_icon)), 'title' => t('Editar'), 'description' => t('Editar la información de mi usuario'), 'category' => 'user', ); } $ente = usuario_tiene_ente($uid); if ($ente->nid) { $icon_path = entes_planificadores_toolbar_get_icon_path('users', 'userplanner', $handler_icon); $link[] = array( 'path' => 'node/' . $ente->nid, 'icon_path' => $icon_path, 'icon' => theme('image', $icon_path, t('Ver mi ente planificador'), t('Ver mi ente planificador'), array('class' => 'handler-icon-' . $handler_icon)), 'title' => t('Ente planificador'), 'description' => t('Ver mi ente planificador'), 'category' => 'planner', ); } $icon_path = entes_planificadores_toolbar_get_icon_path('users', 'userlogout', $handler_icon); $link[] = array( 'path' => 'logout', 'icon_path' => $icon_path, 'icon' => theme('image', $icon_path, t('Salir del sistema'), t('Salir del sistema'), array('class' => 'handler-icon-' . $handler_icon)), 'title' => t('Salir'), 'description' => t('Salir del sistema'), 'category' => 'user', ); return $link; } /** * Implementation of hook_admin_items_toolbar(). */ function entes_planificadores_toolbar_admin_items_toolbar($handler_icon) { $link = array(); $icon_path = entes_planificadores_toolbar_get_icon_path('admin', 'users', $handler_icon); $link[] = array( 'path' => 'administrar_usuarios', 'icon_path' => $icon_path, 'icon' => theme('image', $icon_path, t('Ver los usuarios de los entes planificadores'), t('Ver los usuarios de los entes planificadores'), array('class' => 'handler-icon-' . $handler_icon)), 'title' => t('Usuarios'), 'description' => t('Ver los usuarios de los entes planificadores'), 'category' => 'admin', ); if (user_access('administer users')) { $icon_path = entes_planificadores_toolbar_get_icon_path('admin', 'usersetting', $handler_icon); $link[] = array( 'path' => 'admin/user/settings', 'icon_path' => $icon_path, 'icon' => theme('image', $icon_path, t('Configurar los usuarios de los entes planificadores'), t('Configurar los usuarios de los entes planificadores'), array('class' => 'handler-icon-' . $handler_icon)), 'title' => t('User settings'), 'description' => t('Configurar los usuarios de los entes planificadores'), 'category' => 'admin', ); } $icon_path = entes_planificadores_toolbar_get_icon_path('admin', 'roles', $handler_icon); $link[] = array( 'path' => 'admin/settings/ente_planificador', 'icon_path' => $icon_path, 'icon' => theme('image', $icon_path, t('Configurar los roles de los usuarios de los entes planificadores'), t('Configurar los roles de los usuarios de los entes planificadores'), array('class' => 'handler-icon-' . $handler_icon)), 'title' => t('Roles planificadores'), 'description' => t('Configurar los roles de los usuarios de los entes planificadores'), 'category' => 'admin', ); if (user_access('administer permissions')) { $icon_path = entes_planificadores_toolbar_get_icon_path('admin', 'rolesperm', $handler_icon); $link[] = array( 'path' => 'admin/user/permissions', 'icon_path' => $icon_path, 'icon' => theme('image', $icon_path, t('Permissions let you control what users can do on your site'), t('Permissions let you control what users can do on your site'), array('class' => 'handler-icon-' . $handler_icon)), 'title' => t('Permissions'), 'description' => t('Permissions let you control what users can do on your site'), 'category' => 'admin', ); } $icon_path = entes_planificadores_toolbar_get_icon_path('admin', 'planners', $handler_icon); $link[] = array( 'path' => 'administrar/entes_planificadores', 'icon_path' => $icon_path, 'icon' => theme('image', $icon_path, t('Consultar lista de actores planificadores'), t('Consultar lista de actores planificadores'), array('class' => 'handler-icon-' . $handler_icon)), 'title' => t('Actores planificadores'), 'description' => t('Consultar lista de actores planificadores'), 'category' => 'planner', ); $icon_path = entes_planificadores_toolbar_get_icon_path('admin', 'plannersearch', $handler_icon); $link[] = array( 'path' => 'datosactoresplanificadores', 'icon_path' => $icon_path, 'icon' => theme('image', $icon_path, t('Consultar datos de los actores planificadores (APM/APMS)'), t('Consultar datos de los actores planificadores (APM/APMS)'), array('class' => 'handler-icon-' . $handler_icon)), 'title' => t('Buscar actores planificadores'), 'description' => t('Consultar datos de los actores planificadores (APM/APMS)'), 'category' => 'planner', ); $icon_path = entes_planificadores_toolbar_get_icon_path('admin', 'planneradd', $handler_icon); $link[] = array( 'path' => 'administrar/entes_planificadores/registrar', 'icon_path' => $icon_path, 'icon' => theme('image', $icon_path, t('Agregar un nuevo actor planificador'), t('Agregar un nuevo actor planificador'), array('class' => 'handler-icon-' . $handler_icon)), 'title' => t('Agregar actor planificador'), 'description' => t('Agregar un nuevo actor planificador'), 'category' => 'planner', ); if (user_access('access administration pages')) { $icon_path = entes_planificadores_toolbar_get_icon_path('admin', 'nodetypes', $handler_icon); $link[] = array( 'path' => 'admin/content', 'icon_path' => $icon_path, 'icon' => theme('image', $icon_path, t('Administrar contenidos'), t('Administrar contenidos'), array('class' => 'handler-icon-' . $handler_icon)), 'title' => t('Administrar contenido'), 'description' => t('Administrar contenidos'), 'category' => 'admin', ); } if (user_access('administer site configuration')) { $icon_path = entes_planificadores_toolbar_get_icon_path('admin', 'modules', $handler_icon); $link[] = array( 'path' => 'admin/build/modules', 'icon_path' => $icon_path, 'icon' => theme('image', $icon_path, t('Administrar modulos'), t('Administrar modulos'), array('class' => 'handler-icon-' . $handler_icon)), 'title' => t('Modulos'), 'description' => t('Administrar modulos'), 'category' => 'admin', ); } $icon_path = entes_planificadores_toolbar_get_icon_path('admin', 'date', $handler_icon); $link[] = array( 'path' => 'fechas_planificacion', 'icon_path' => $icon_path, 'icon' => theme('image', $icon_path, t('Fechas de planificación'), t('Fechas de planificación'), array('class' => 'handler-icon-' . $handler_icon)), 'title' => t('Fechas'), 'description' => t('Fechas de planificación'), 'category' => 'planner', ); $icon_path = entes_planificadores_toolbar_get_icon_path('admin', 'dateedit', $handler_icon); $link[] = array( 'path' => 'fechas_planificacion/todas_edit', 'icon_path' => $icon_path, 'icon' => theme('image', $icon_path, t('Editar las fechas de planificación'), t('Editar las fechas de planificación'), array('class' => 'handler-icon-' . $handler_icon)), 'title' => t('Editar Fechas'), 'description' => t('Editar las fechas de planificación'), 'category' => 'planner', ); $icon_path = entes_planificadores_toolbar_get_icon_path('admin', 'emailsend', $handler_icon); $link[] = array( 'path' => 'fechas_planificacion/envia_email', 'icon_path' => $icon_path, 'icon' => theme('image', $icon_path, t('Enviar correo con las fechas de planificación'), t('Enviar correo con las fechas de planificación'), array('class' => 'handler-icon-' . $handler_icon)), 'title' => t('Enviar correo'), 'description' => t('Enviar correo con las fechas de planificación'), 'category' => 'planner', ); $icon_path = entes_planificadores_toolbar_get_icon_path('admin', 'emailnotify', $handler_icon); $link[] = array( 'path' => 'fechas_planificacion/notificacion', 'icon_path' => $icon_path, 'icon' => theme('image', $icon_path, t('Configurar las fechas de notificación'), t('Configurar las fechas de notificación'), array('class' => 'handler-icon-' . $handler_icon)), 'title' => t('Notificación'), 'description' => t('Configurar las fechas de notificación'), 'category' => 'planner', ); return $link; } /** * Implementation of hook_planner_items_toolbar(). */ function entes_planificadores_toolbar_planner_items_toolbar($ente_planificador, $handler_icon) { global $user; $link = array(); $situacion_actual_preliminar = module_exists('situacion_actual_preliminar'); $situacion_actual = module_exists('situacion_actual'); $causas_criticas = module_exists('causas_criticas'); $situacion_ideal = module_exists('situacion_ideal'); $proyectos_direccionales = module_exists('proyectos_direccionales'); //$node_es_ente_acceso = nodo_es_ente_planificador_acceso($ente_planificador->nid); $node_es_ente = nodo_es_ente_planificador($ente_planificador->nid); $link = array(); $icon_path = entes_planificadores_toolbar_get_icon_path('planner', 'planner', $handler_icon); $link[] = array( 'path' => 'node/' . $ente_planificador->nid, 'icon_path' => $icon_path, 'icon' => theme('image', $icon_path, t('Consultar los datos del actor planificador'), t('Consultar los datos del actor planificador'), array('class' => 'handler-icon-' . $handler_icon)), 'title' => t('Actor planificador'), 'description' => t('Consultar los datos del actor planificador'), 'category' => 'planner', ); if ($node_es_ente) { $icon_path = entes_planificadores_toolbar_get_icon_path('planner', 'plannerdata', $handler_icon); $link[] = array( 'path' => 'node/' . $ente_planificador->nid . '/datos_basicos', 'icon_path' => $icon_path, 'icon' => theme('image', $icon_path, t('Editar los datos del ente planificador'), t('Editar los datos del ente planificador'), array('class' => 'handler-icon-' . $handler_icon)), 'title' => t('Datos del Actor planificador'), 'description' => t('Editar los datos del ente planificador'), 'category' => 'planner', ); $icon_path = entes_planificadores_toolbar_get_icon_path('planner', 'plannerusers', $handler_icon); $link[] = array( 'path' => 'node/' . $ente_planificador->nid . '/usuarios', 'icon_path' => $icon_path, 'icon' => theme('image', $icon_path, t('Muestra los usuarios del ente planificador'), t('Muestra los usuarios del ente planificador'), array('class' => 'handler-icon-' . $handler_icon)), 'title' => t('Usuarios'), 'description' => t('Muestra los usuarios del ente planificador'), 'category' => 'planner', ); } if (user_access('administer users')) { $icon_path = entes_planificadores_toolbar_get_icon_path('planner', 'planneruseradd', $handler_icon); $link[] = array( 'path' => 'admin/user/user/create/' . $ente_planificador->nid, 'icon_path' => $icon_path, 'icon' => theme('image', $icon_path, t('Agregar un usuario al ente planificador'), t('Agregar un usuario al ente planificador'), array('class' => 'handler-icon-' . $handler_icon)), 'title' => t('Agregar usuarios'), 'description' => t('Agregar un usuario al ente planificador'), 'category' => 'planner', ); } $icon_path = entes_planificadores_toolbar_get_icon_path('planner', 'plannerstatus', $handler_icon); $link[] = array( 'path' => 'planificacion/' . $ente_planificador->nid, 'icon_path' => $icon_path, 'icon' => theme('image', $icon_path, t('Muestra los avances en la planificación del ente planificador'), t('Muestra los avances en la planificación del ente planificador'), array('class' => 'handler-icon-' . $handler_icon)), 'title' => t('Avances'), 'description' => t('Muestra los avances en la planificación del ente planificador'), 'category' => 'planning', ); $icon_path = entes_planificadores_toolbar_get_icon_path('planner', 'date', $handler_icon); $link[] = array( 'path' => 'fechas_planificacion', 'icon_path' => $icon_path, 'icon' => theme('image', $icon_path, t('Fechas de planificación'), t('Fechas de planificación'), array('class' => 'handler-icon-' . $handler_icon)), 'title' => t('Fechas'), 'description' => t('Fechas de planificación'), ); $icon_path = entes_planificadores_toolbar_get_icon_path('planner', 'planners', $handler_icon); $link[] = array( 'path' => 'administrar/entes_planificadores', 'icon_path' => $icon_path, 'icon' => theme('image', $icon_path, t('Consultar lista de actores planificadores'), t('Consultar lista de actores planificadores'), array('class' => 'handler-icon-' . $handler_icon)), 'title' => t('Actores planificadores'), 'description' => t('Consultar lista de actores planificadores'), 'category' => 'planner', ); $icon_path = entes_planificadores_toolbar_get_icon_path('planner', 'plannersearch', $handler_icon); $link[] = array( 'path' => 'datosactoresplanificadores', 'icon_path' => $icon_path, 'icon' => theme('image', $icon_path, t('Consultar datos de los actores planificadores (APM/APMS)'), t('Consultar datos de los actores planificadores (APM/APMS)'), array('class' => 'handler-icon-' . $handler_icon)), 'title' => t('Buscar actores planificadores'), 'description' => t('Consultar datos de los actores planificadores (APM/APMS)'), 'category' => 'planner', ); return $link; }