Grima  2018-08
Whispering into Alma's ear
Public Member Functions | Public Attributes | List of all members
Set Class Reference

class Set IN PROGRESS More...

Inheritance diagram for Set:
AlmaObject

Public Member Functions

  addToAlma ()
  adds Set to Alma, updates object with current Alma version More...
 
  loadFromAlma ($set_id)
  populate set with info from Alma More...
 
  createFromImport ($job_id, $population)
  create a new set in Alma based on a job that just ran More...
 
  runOnElements ($function, $args=array(), $filter=null, $filter_args=array())
  run a function on every element in the set More...
 
  getMembers ($limit=-1)
 
  deleteFromAlma ()
  delete set from Alma More...
 
  addMember ($id)
  add member to a local set More...
 
  appendInAlma ($setToAppend)
  add elements to a set More...
 
  removeAllMembersInAlma ()
  remove all members of the set More...
 
- Public Member Functions inherited from AlmaObject
  __construct ()
  create new blank Alma Object More...
 
  offsetExists ($offset)
 
  offsetGet ($offset)
 
  offsetSet ($offset, $value)
 
  offsetUnset ($offset)
 

Public Attributes

  $xml
 
  $members = array()
 
  $el_address
 
- Public Attributes inherited from AlmaObject
  $el_access = array()
 
  $xml
 
  $templateDir = __DIR__ . "/templates"
 

Detailed Description

class Set IN PROGRESS

Definition at line 3374 of file grima-lib.php.

Member Function Documentation

◆ addMember()

Set::addMember (   $id )

add member to a local set

Parameters
string $id ID of element to add

Definition at line 3510 of file grima-lib.php.

3510  {
3511  $frag = "<member><id>$id</id></member>";
3512  $source = new DOMDocument();
3513  $source->loadXML($frag);
3514 
3515  $xpath = new DomXpath($this->xml);
3516  $members = $xpath->query('//members')->item(0);
3517  $members->appendChild($this->xml->importNode($source->documentElement, true));
3518 
3519  }
$members
Definition: grima-lib.php:3376

◆ addToAlma()

Set::addToAlma ( )

adds Set to Alma, updates object with current Alma version

Definition at line 3411 of file grima-lib.php.

References $grima.

3411  {
3412  global $grima;
3413  $this->xml = $grima->postSet($this->xml);
3414  }
$grima
Definition: grima-lib.php:4293

◆ appendInAlma()

Set::appendInAlma (   $setToAppend )

add elements to a set

Parameters
Set $setToAppend - set whose members should be added to main set

Definition at line 3528 of file grima-lib.php.

References $grima.

3528  {
3529  global $grima;
3530  $grima->postSetManageMembers($this['set_id'],null,'add_members',
3531  $setToAppend->xml);
3532  }
$grima
Definition: grima-lib.php:4293

◆ createFromImport()

Set::createFromImport (   $job_id,
  $population 
)

create a new set in Alma based on a job that just ran

Parameters
string $job_id - job ID
string $population - which records from the job # XXX include here

Definition at line 3436 of file grima-lib.php.

References $grima.

3436  {
3437  global $grima;
3438  $this->xml = $grima->createSetFromImport($job_id,$population);
3439  }
$grima
Definition: grima-lib.php:4293

◆ deleteFromAlma()

Set::deleteFromAlma ( )

delete set from Alma

Definition at line 3497 of file grima-lib.php.

References $grima.

3497  {
3498  global $grima;
3499  $grima->deleteSet($this['set_id']);
3500  }
$grima
Definition: grima-lib.php:4293

◆ getMembers()

Set::getMembers (   $limit = -1 )

Definition at line 3470 of file grima-lib.php.

References $grima, and Grima\put().

3470  { # put in $members
3471  # limit -1 means all
3472  global $grima;
3473  if ($limit == -1) { # get them all
3474  $xml = $grima->getSetMembers($this['set_id'],0);
3475  $xpath = new DomXpath($xml);
3476  $this->size = $xpath->query("//members")->item(0)->getAttribute("total_record_count");
3477  $limit = $this->size;
3478  }
3479 
3480  for ($j = 0; $j < ceil($limit/100); $j++) { # how many queries
3481  $xml = $grima->getSetMembers($this['id'],100,$j*100);
3482  $xpath = new DomXpath($xml);
3483  foreach ($xpath->query("//member") as $member) {
3484  $this->members[] = new SetMember(
3485  $member->childNodes[0]->nodeValue,
3486  $member->childNodes[1]->nodeValue
3487  );
3488  }
3489  }
3490  }
$members
Definition: grima-lib.php:3376
$grima
Definition: grima-lib.php:4293
$xml
Definition: grima-lib.php:3375
class SetMember
Definition: grima-lib.php:3558

◆ loadFromAlma()

Set::loadFromAlma (   $set_id )

populate set with info from Alma

Parameters
string $set_id - id of set to pull from Alma

Definition at line 3423 of file grima-lib.php.

References $grima.

3423  {
3424  global $grima;
3425  $this->xml = $grima->getSet($set_id);
3426  }
$grima
Definition: grima-lib.php:4293

◆ removeAllMembersInAlma()

Set::removeAllMembersInAlma ( )

remove all members of the set

Definition at line 3540 of file grima-lib.php.

References $grima.

3540  {
3541  global $grima;
3542  $emptyset = new Set();
3543  $emptyset->addMember('9941266686802636'); /* hack */
3544  $grima->postSetManageMembers($this['set_id'],null,'replace_members',
3545  $emptyset->xml);
3546  $grima->postSetManageMembers($this['set_id'],null,'delete_members',
3547  $emptyset->xml);
3548  }
$grima
Definition: grima-lib.php:4293
class Set IN PROGRESS
Definition: grima-lib.php:3374

◆ runOnElements()

Set::runOnElements (   $function,
  $args = array(),
  $filter = null,
  $filter_args = array() 
)

run a function on every element in the set

Parameters
string $function name of function to run on set elements, accepts element as first argument
array $args list of arguments to pass to function in addition to element
string $filter run function on only elements where filter function returns true

Definition at line 3450 of file grima-lib.php.

References $grima.

3450  {
3451  global $grima;
3452  $xml = $grima->getSetMembers($this['set_id'],0);
3453  $xpath = new DomXpath($xml);
3454  $this->size = $xpath->query("//members")->item(0)->getAttribute("total_record_count");
3455  $limit = $this->size;
3456  for ($j = 0; $j < ceil($limit/100); $j++) { # how many queries
3457  $xml = $grima->getSetMembers($this['id'],100,$j*100);
3458  $xpath = new DomXpath($xml);
3459  foreach ($xpath->query("//member") as $member) {
3460  $id = $member->childNodes[0]->nodeValue;
3461  if (!isset($filter) or ($filter($id,$filter_args))) {
3462  $function($id, $args);
3463  }
3464  }
3465  }
3466 
3467  }
$grima
Definition: grima-lib.php:4293
$xml
Definition: grima-lib.php:3375

Member Data Documentation

◆ $el_address

Set::$el_address
Initial value:
= array(
'set_id' => '//set/id',
'id' => '//set/id',
'name' => '//set/name',
'description' => '//set/description',
'type' => '//set/type',
'content' => '//content',
'private' => '//private',
'status' => '//status',
'status_date' => '//status_date',
'note' => '//note',
'created_by' => '//created_by',
'created_date' => '//created_date',
'query' => '//query',
'number_of_members' => '//number_of_members',
'additional_info' => '//additional_info',
)

Definition at line 3388 of file grima-lib.php.

◆ $members

Set::$members = array()

Definition at line 3376 of file grima-lib.php.

◆ $xml

Set::$xml

Definition at line 3375 of file grima-lib.php.


The documentation for this class was generated from the following file: