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

This object lets grima store data in a catalog record. More...

Inheritance diagram for GrimaDataStore:

Public Member Functions

  __construct ()
  make sure it exists More...
 
  offsetExists ($offset)
 
  offsetGet ($offset)
 
  offsetSet ($offset, $value)
 
  offsetUnset ($offset)
 
  setup ()
  create the record structure in Alma More...
 
  destroy ()
  remove the grima data store from Alma More...
 

Static Public Member Functions

static  exists ()
  checks whether a grima data store has been set up in Alma More...
 

Public Attributes

  $marc
 
  $bib
 
  $holding
 
  $item
 

Detailed Description

This object lets grima store data in a catalog record.

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

Constructor & Destructor Documentation

◆ __construct()

GrimaDataStore::__construct ( )

make sure it exists

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

References $ds_barcode.

1637  {
1638  global $ds_barcode;
1639  $this->item = new Item();
1640  try {
1641  $this->item->loadFromAlmaBarcode($ds_barcode);
1642  } catch (Exception $e) {
1643  $this->setup();
1644  }
1645  $this->bib = new Bib();
1646  $this->bib->loadFromAlma($this->item['mms_id']);
1647  $this->bib->useNormac();
1648  }
Definition: grima-lib.php:2159
class Item
Definition: grima-lib.php:2869
bib records returned from alma
$ds_barcode
Definition: grima-lib.php:1620
setup()
create the record structure in Alma
Definition: grima-lib.php:1715

Member Function Documentation

◆ destroy()

GrimaDataStore::destroy ( )

remove the grima data store from Alma

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

References $ds_barcode.

1766  {
1767  global $ds_barcode;
1768  $item = new Item();
1769  $item->loadFromAlmaBarcode($ds_barcode);
1770  $bib = new Bib();
1771  $bib->loadFromAlma($item['mms_id']);
1772  $bib->deleteTreeFromAlma();
1773  }
Definition: grima-lib.php:2159
class Item
Definition: grima-lib.php:2869
$ds_barcode
Definition: grima-lib.php:1620

◆ exists()

static GrimaDataStore::exists ( )
static

checks whether a grima data store has been set up in Alma

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

References $ds_barcode.

1748  {
1749  global $ds_barcode;
1750  $item = new Item();
1751  try {
1752  $item->loadFromAlmaBarcode($ds_barcode);
1753  return true;
1754  } catch (Exception $e) {
1755  return false;
1756  }
1757  }
class Item
Definition: grima-lib.php:2869
$ds_barcode
Definition: grima-lib.php:1620

◆ offsetExists()

GrimaDataStore::offsetExists (   $offset )

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

1652  {
1653  $fields = $this->bib->marc->getFields('ZEM');
1654  foreach($fields as $field) {
1655  $keys = $field->getSubfields('k');
1656  if ($keys[0]->data == $offset) {
1657  return true;
1658  }
1659  }
1660  return false;
1661  }
bib records returned from alma

◆ offsetGet()

GrimaDataStore::offsetGet (   $offset )

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

1663  {
1664  $fields = $this->bib->marc->getFields('ZEM');
1665  foreach($fields as $field) {
1666  $keys = $field->getSubfields('k');
1667  if ($keys[0]->data == $offset) {
1668  $values = $field->getSubfields('v');
1669  return $values[0]->data;
1670  }
1671  }
1672  return false;
1673  }
bib records returned from alma

◆ offsetSet()

GrimaDataStore::offsetSet (   $offset,
  $value 
)

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

1675  {
1676  $fields = $this->bib->marc->getFields('ZEM');
1677  foreach($fields as $field) {
1678  $keys = $field->getSubfields('k');
1679  if ($keys[0]->data == $offset) {
1680  $values = $field->getSubfields('v');
1681  $values[0]->data = $value;
1682  $this->bib->updateAlma();
1683  return true;
1684  }
1685  }
1686  $subarray = array(
1687  new ISO2709Subfield('k',$offset),
1688  new ISO2709Subfield('v',$value),
1689  );
1690  $field = new ISO2709Field('ZEM',null," ",$subarray);
1691  $this->bib->marc->appendField($field);
1692  $this->bib->updateAlma();
1693  return false;
1694  }
bib records returned from alma

◆ offsetUnset()

GrimaDataStore::offsetUnset (   $offset )

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

1696  {
1697  $fields = $this->bib->marc->getFields('ZEM');
1698  foreach($fields as $field) {
1699  $keys = $field->getSubfields('k');
1700  if ($keys[0]->data == $offset) {
1701  $field->delete();
1702  $this->bib->updateAlma();
1703  return true;
1704  }
1705  }
1706  return false;
1707  }
bib records returned from alma

◆ setup()

GrimaDataStore::setup ( )

create the record structure in Alma

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

References $ds_barcode, and Library\getOneLibrary().

1715  {
1716  global $ds_barcode;
1717  $bib = new Bib();
1718  $bib['title'] = "GRIMA'S DATA STORE"; # XXX indicators 00?
1719  $bib['suppress_from_publishing'] = "true";
1720  $bib->addToAlma();
1721  $this->bib = $bib;
1722  $this->bib->useNormac();
1723 
1724  $library = Library::getOneLibrary();
1725  $location = $library->getOneLocation();
1726 
1727  $holding = new Holding();
1728  $holding['library_code'] = $library['code'];
1729  $holding['location_code'] = $location['code'];
1730  $holding->addToAlmaBib($bib['mms_id']);
1731  $this->holding = $holding;
1732 
1733  $item = new Item();
1734  $item['barcode'] = $ds_barcode;
1735  $item->addToAlmaHolding($bib['mms_id'],$holding['holding_id']);
1736  $this->item = $item;
1737 
1738  preg_match('/\d{5}$/',$bib['mms_id'],$m);
1739  $this['alma institution code'] = $m[0];
1740  }
Definition: grima-lib.php:2159
class Holding
Definition: grima-lib.php:2579
static getOneLibrary($otherthan=array())
get one library configured by the institution
Definition: grima-lib.php:3620
class Item
Definition: grima-lib.php:2869
bib records returned from alma
$ds_barcode
Definition: grima-lib.php:1620

Member Data Documentation

◆ $bib

GrimaDataStore::$bib

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

◆ $holding

GrimaDataStore::$holding

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

◆ $item

GrimaDataStore::$item

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

◆ $marc

GrimaDataStore::$marc

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


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