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;

}