Mercurial > hg > digitalobjects
view digitalobjects.collections.inc @ 0:6f6e07baad80 default tip
initial
author | Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de> |
---|---|
date | Tue, 02 Jun 2015 08:57:48 +0200 |
parents | |
children |
line wrap: on
line source
<?php function digitalobjects_user_admin_collection_submit($form,$formstate){ $userid = $formstate['values']['userid']; drupal_goto("user/".$userid.'/collections'); } function digitalobjects_user_admin_collection($key){ ctools_add_js('auto-submit'); $form['digitalobjects_user_admin_form'] = drupal_get_form("digitalobjects_user_admin_form"); #$form = drupal_get_form("digitalobjects_user_admin_form"); $user_full=user_load($key); if (isset($user_full->field_digitalobjects_cid[LANGUAGE_NONE])){ $val = $user_full->field_digitalobjects_cid[LANGUAGE_NONE][0]['objid']; } else { $val=""; } $form['digitalobjects_user_admin_form']['digitalcollection']['#default_value']=""; $form['digitalobjects_user_admin_form']['digitalcollection']['#value']=$val; $form['digitalobjects_user_admin_form']['userid']['#value']=$key; //$form['digitalcollection_chooser'] = drupal_get_form("digitalcollection_chooser"); # $element = $form; $form['chooser']=drupal_get_form("digitalcollection_chooser"); $form['chooser']['pager'] = array('#markup' => theme('pager')); $form['chooser']['userid']['#value']=$key; #$element += $form3; # #$element += $form2; return $form; } function digitalcollection_chooser(array $form){ // Build the sortable table header. $header = array( 'title' => array('data' => t('Title'), 'field' => 'n.title'), 'nid' => array('data' => t('nid'), 'field' => 'n.nid') ); #$result = db_query("SELECT nid FROM node WHERE type = :ntype ", array ('ntype' => 'digitalcollection'))->extend('PagerDefault'); $query = db_select("node","n")->fields('n',array("nid"))->condition('type', 'digitalcollection')->orderby("n.title")->extend('PagerDefault')->limit(20); $result = $query->execute(); #$result = db_query("SELECT n.nid FROM {node} n "); $nids = array(); foreach ($result as $record) { $nids[] = $record->nid; } //Get the node data. //$nids = $query //->fields('n',array('nid')) //->limit(50) //->orderByHeader($header) //->execute() //->fetchCol(); $nodes = node_load_multiple($nids); //Build the rows. $options = array(); $l_options=array(""); $destination = drupal_get_destination(); $languages = language_list(); foreach ($nodes as $node) { $langcode = entity_language('node', $node); $l_options = $langcode != LANGUAGE_NONE && isset($languages[$langcode]) ? array('language' => $languages[$langcode]) : array(); $options[$node->nid] = array( 'title' => array( 'data' => array( '#type' => 'link', '#title' => $node->title, '#href' => 'node/' . $node->nid, '#options' => $l_options, '#suffix' => ' ' , ), ), 'nid' => $node->nid, ); } $destination = drupal_get_destination(); /* $operations = array(); if (node_access('update', $node)) { $operations['edit'] = array( 'title' => t('edit'), 'href' => 'node/' . $node->nid . '/edit', 'query' => $destination, ); } if (node_access('delete', $node)) { $operations['delete'] = array( 'title' => t('delete'), 'href' => 'node/' . $node->nid . '/delete', 'query' => $destination, ); } $options[$node->nid]['operations'] = array(); $options[$node->nid]['operations'] = array( 'data' => array( '#theme' => 'links__node_operations', '#links' => $operations, '#attributes' => array('class' => array('links', 'inline')), ), ); */ $form['digitalcollection_chooser'] = array( '#type' => 'tableselect', '#header' => $header, '#options' => $options, '#empty' => t('No content available.'), '#attributes' => array('class' => array('search-form', 'ctools-auto-submit-full-form')), '#multiple' => False, ); #form['chooser']['change'] = array('#type' => 'actions'); $form+= $form['submit2'] = array('#type' => 'submit', '#value' => t('Choose')); #$form['chooser']['#submit'][] = 'digitalobjects_user_change_form_submit'; $form['submit2']['#submit'][] = 'digitalobjects_user_change_form_submit'; #$form['chooser']['#attributes']= array('class' => array('ctools-use-ajax', 'ctools-auto-submit-click')); $form['userid'] = array( '#type' => 'hidden', ); return $form; } function digitalobjects_user_change_form_submit($form,$formstate){ $input = $formstate['input']['digitalcollection_chooser']; $userid = $formstate['values']['userid']; $user=user_load($userid); $user->field_digitalobjects_cid['und'][0]['objid'] = $input; user_save($user); } #füge objid zur aktuelle sammlung hinzu function digitalobjects_addToCurrentCollection($objid){ global $user; #hole current collection $user_full = user_load($user->uid); $val = $user_full->field_digitalobjects_cid['und'][0]['objid']; #hole sammlung $node = node_load($val); foreach ( $node->field_objid['und'] as $obj){ if ($obj['objid']==$objid){ return drupal_set_message(t("Already in the current collection"),"error"); } } $node->field_objid['und'][]['objid']=$objid; $node = node_submit($node); node_save($node); drupal_goto("node/".$node->nid); } function digitalobjects_digitalcollectionsManage($data = NULL){ $data = ($data==NULL) ? $_GET : $data; global $user; #hole current collection $user_full = user_load($user->uid); $val = $user_full->field_digitalobjects_cid['und'][0]['objid']; #hole sammlung $node = node_load($val); foreach ($data['digitalobjects_items_select'] as $objid){ /*foreach ( $node->field_objid['und'] as $obj){ if ($obj['objid']==$objid){ return drupal_set_message(t("Already in the current collection"),"error"); } } */ $node->field_objid['und'][]['objid']=$objid; } $node = node_submit($node); node_save($node); if (isset($data['redirect'])){ drupal_goto(urldecode($data['redirect'])); } else { drupal_goto("node/".$node->nid); } /* $output['digitalobjects_item']= array( '#theme' => 'digitalobjects_item', '#objid' => ''); return $output; */ } /* suche wo wo eine digitalecollection benutzt wird */ function digitalcollection_used_id($nid){ $results = db_query("SELECT * FROM {field_data_field_collid} n where field_collid_objid ='node/" . $nid . "'"); $nids = array(); foreach($results as $result){ $nids[] = $result->entity_id; } $entities = entity_load("node",$nids); return $entities; }