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 4097 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 4239 of file grima-lib.php.

4240 {
4241 $frag = "<member><id>$id</id></member>";
4242 $source = new DOMDocument();
4243 $source->loadXML($frag);
4244
4245 $xpath = new DomXpath($this->xml);
4246 $members = $xpath->query('//members')->item(0);
4247 $members->appendChild($this->xml->importNode($source->documentElement, true));
4248
4249 }
$members
Definition: grima-lib.php:4100

References $members.

◆ addToAlma()

Set::addToAlma ( )

adds Set to Alma, updates object with current Alma version

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

4136 {
4137 global $grima;
4138 $this->xml = $grima->postSet($this->xml);
4139 }
$grima
Definition: grima-lib.php:5143

References $grima.

◆ appendInAlma()

Set::appendInAlma (   $setToAppend )

add elements to a set

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

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

4259 {
4260 global $grima;
4261 $grima->postSetManageMembers(
4262 $this['set_id'], null, 'add_members',
4263 $setToAppend->xml
4264 );
4265 }

References $grima.

◆ 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 4162 of file grima-lib.php.

4163 {
4164 global $grima;
4165 $this->xml = $grima->createSetFromImport($job_id, $population);
4166 }

References $grima.

◆ deleteFromAlma()

Set::deleteFromAlma ( )

delete set from Alma

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

4227 {
4228 global $grima;
4229 $grima->deleteSet($this['set_id']);
4230 }

References $grima.

◆ getMembers()

Set::getMembers (   $limit = -1 )

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

4199 {
4200 // put in $members
4201 // limit -1 means all
4202 global $grima;
4203 if ($limit == -1) { // get them all
4204 $xml = $grima->getSetMembers($this['set_id'], 0);
4205 $xpath = new DomXpath($xml);
4206 $this->size = $xpath->query("//members")->item(0)->getAttribute("total_record_count");
4207 $limit = $this->size;
4208 }
4209
4210 for ($j = 0; $j < ceil($limit/100); $j++) { // how many queries
4211 $xml = $grima->getSetMembers($this['id'], 100, $j*100);
4212 $xpath = new DomXpath($xml);
4213 foreach ($xpath->query("//member") as $member) {
4214 $this->members[] = new SetMember(
4215 $member->childNodes[0]->nodeValue,
4216 $member->childNodes[1]->nodeValue
4217 );
4218 }
4219 }
4220 }
class SetMember
Definition: grima-lib.php:4298
$xml
Definition: grima-lib.php:4099

References $grima, and $xml.

◆ 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 4148 of file grima-lib.php.

4149 {
4150 global $grima;
4151 $this->xml = $grima->getSet($set_id);
4152 }

References $grima.

◆ removeAllMembersInAlma()

Set::removeAllMembersInAlma ( )

remove all members of the set

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

4273 {
4274 global $grima;
4275 $emptyset = new Set();
4276 $emptyset->addMember('9941266686802636'); /* hack */
4277 $grima->postSetManageMembers(
4278 $this['set_id'], null, 'replace_members',
4279 $emptyset->xml
4280 );
4281 $grima->postSetManageMembers(
4282 $this['set_id'], null, 'delete_members',
4283 $emptyset->xml
4284 );
4285 }
class Set IN PROGRESS
Definition: grima-lib.php:4098

References $grima.

◆ 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 4177 of file grima-lib.php.

4178 {
4179 global $grima;
4180 $xml = $grima->getSetMembers($this['set_id'], 0);
4181 $xpath = new DomXpath($xml);
4182 $this->size = $xpath->query("//members")->item(0)->getAttribute("total_record_count");
4183 $limit = $this->size;
4184 for ($j = 0; $j < ceil($limit/100); $j++) { // how many queries
4185 $xml = $grima->getSetMembers($this['id'], 100, $j*100);
4186 $xpath = new DomXpath($xml);
4187 foreach ($xpath->query("//member") as $member) {
4188 $id = $member->childNodes[0]->nodeValue;
4189 if (!isset($filter) or ($filter($id, $filter_args))) {
4190 $function($id, $args);
4191 }
4192 }
4193 }
4194
4195 }

References $grima, and $xml.

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 4112 of file grima-lib.php.

◆ $members

Set::$members = array()

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

Referenced by addMember().

◆ $xml

Set::$xml

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

Referenced by getMembers(), and runOnElements().


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