. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /** * @file * Code for the Mica Projects feature. */ include_once('mica_projects.features.inc'); /** * Creates default content after Features successfully installed * Implements hook_features_rebuild_completed() */ function mica_projects_features_rebuild_completed() { if (!variable_get('mica_projects_features_rebuild_completed', FALSE)) { _mica_projects_create_default_content(); variable_set('mica_projects_features_rebuild_completed', TRUE); } } function _mica_projects_create_default_content() { $research_menu = mica_core_find_menu_for_alias('research'); $project_menu = mica_core_create_menu(st('Projects'), 'projects', 'projects', FALSE, FALSE, 2, $research_menu->link_path); mica_core_set_menu_option('projects', $project_menu['mlid']); } /** * Implements hook_form(). */ function mica_projects_form($node, &$form_state) { return node_content_form($node, $form_state); } /** * Implements hook_menu_local_tasks_alter(). */ function mica_projects_menu_local_tasks_alter(&$data, $router_item, $root_path) { $links = array(); if ($root_path == 'projects') { if (node_access('create', 'project')) { $node_type = node_type_load('project'); $links['add-project'] = array( '#theme' => 'menu_local_action', '#link' => array( 'title' => t('Add a !name', array('!name' => $node_type->name)), 'href' => 'node/add/project', ), ); } } /*elseif ($root_path == 'node/%') { if (node_access('create', 'teleconference')) { $node = node_load($router_item['page_arguments'][0]->nid); if ($node != NULL && $node->type == 'project') { $node_type = node_type_load('teleconference'); $href = url('node/add/teleconference', array('query' => array('field_project' => $node->nid))); $links['add-teleconference'] = array( '#theme' => 'menu_local_action', '#link' => array( 'title' => t('Add a !name', array('!name' => $node_type->name, '@url' => $href)), 'localized_options' => array('html' => TRUE), ), ); } } }*/ $data['actions']['output'] = array_merge($data['actions']['output'], $links); } /** * Implements hook_insert() */ function mica_projects_node_insert($node) { if ($node->type === 'project') { mica_core_create_node_default_menu($node, TRUE); $node->field_teleconferences[LANGUAGE_NONE] = array( 0 => array( 'view_id' => 'teleconferences:page', 'arguments' => $node->nid, ) ); } return; } /** * Implements hook_field_attach_form() */ function mica_projects_field_attach_form($entity_type, $entity, &$form, &$form_state, $langcode) { if ($entity_type == 'node' && $entity->type == 'project') { $form['field_teleconferences']['#attributes']['style'] = array('display:none;'); } elseif ($entity_type == 'node' && $entity->type == 'teleconference') { // preselect project when specified in the url if (isset($_GET['field_project'])) { $project_id = $_GET['field_project']; if (isset($form['field_project'][LANGUAGE_NONE]['#options'][$project_id])) { $form['field_project'][LANGUAGE_NONE]['#value'] = $project_id; } } } }