Skip to content

Commit

Permalink
Fix installation-dependent element ids to their names in lookup API
Browse files Browse the repository at this point in the history
  • Loading branch information
Thom Mc committed Jul 17, 2015
1 parent c8ab392 commit 9c777e6
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 14 deletions.
41 changes: 29 additions & 12 deletions controllers/ItemAutocompleteController.php
Original file line number Diff line number Diff line change
Expand Up @@ -38,31 +38,48 @@ public function getAction()

$params = $request->getParams();

if (empty($params['term']))
if (empty($params['term']) || empty($params['elementid']))
{
die('argh! need a term');
header("HTTP/1.0 400 Bad Request");
die('Argh! Need a search term and an element id');
}

$db = $this->_helper->db->getTable("element_texts");
/*
SELECT DISTINCT et1.record_id, et1.text FROM omeka_element_texts et1 INNER JOIN omeka_element_texts et2 ON et1.record_id = et2.record_id WHERE et1.element_id=50 and et1.record_type="Item" and et2.record_type="Item" AND (et2.element_id = 50 or et2.element_id = 52) AND et2.text LIKE '%mullet%';
*/

/*
$bootstrap = Zend_Registry::get('bootstrap');
$currentUser = $bootstrap->getResource('CurrentUser');
$acl = $bootstrap->getResource('Acl');
*/


$fullname_element_texts = $db->getTableName('element_texts');
$fullname_elements = $db->getTablePrefix(). 'elements';
$fullname_item_types_elements = $db->getTablePrefix(). 'item_types_elements';
$fullname_item_types = $db->getTablePrefix(). 'item_types';

// $select = $db->getSelect();

// work out which DC element_ids to look up ppl instead of things
$sql = "
SELECT id FROM omeka_elements WHERE name IN ('contributor', 'creator', 'publisher') and element_set_id = 1;
";
$people_element_ids = $db->getTable('Element')->fetchAll($sql);

// determine element_id for DC Title
$sql = "
SELECT id FROM omeka_elements WHERE name='Title' and element_set_id = 1;
";
$title_id = $db->getTable('Element')->fetchOne($sql);

// determine element_id for DC Alt Title
$sql = "
SELECT id FROM omeka_elements WHERE name='Alternative Title' and element_set_id = 1;
";
$alt_title_id = $db->getTable('Element')->fetchOne($sql);


// if DC field is a person, limit results to people...
if (!empty($params['elementid']) && in_array($params['elementid'], array(22, 24, 35))) // contributor, creator, publisher
if (!empty($params['elementid']) && in_array($params['elementid'], $people_element_ids[0])) // contributor, creator, publisher
{
$sql = "
SELECT DISTINCT et1.record_id, et1.text
Expand All @@ -73,12 +90,12 @@ public function getAction()
ON et2.record_id = i.id
INNER JOIN omeka_item_types it
on i.item_type_id = it.id
WHERE et1.element_id=50
WHERE et1.element_id={$title_id}
AND et1.record_type='Item'
AND et2.record_type='Item'
AND (et2.element_id = 50 or et2.element_id = 52)
AND (et2.element_id IN ($title_id, $alt_title_id))
AND et2.text LIKE ?
AND it.id = 12"; // 12 = Person
AND it.name = 'Person'";

$data = $db->getTable('Element')->fetchObjects($sql, array('%'. $params['term'] . '%'));
}
Expand All @@ -89,10 +106,10 @@ public function getAction()
FROM {$fullname_element_texts} et1
INNER JOIN {$fullname_element_texts} et2
ON et1.record_id = et2.record_id
WHERE et1.element_id=50
WHERE et1.element_id={$title_id}
AND et1.record_type='Item'
AND et2.record_type='Item'
AND (et2.element_id = 50 or et2.element_id = 52)
AND (et2.element_id IN ($title_id, $alt_title_id))
AND et2.text LIKE ?";

$data = $db->getTable('Element')->fetchObjects($sql, array('%'. $params['term'] . '%'));
Expand Down
2 changes: 1 addition & 1 deletion models/Api/ItemRelationsRelation.php
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ public function setPostData(Omeka_Record_AbstractRecord $record, $data)
//echo "data";
//echo var_dump($data);
//echo $data -> subject_item_id;
// Set properties directly to a new record.a
// Set properties directly to a new record.

$record->subject_item_id = $data->subject_item_id;
$record->object_item_id = $data->object_item_id;
Expand Down
2 changes: 1 addition & 1 deletion plugin.ini
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,5 @@ support_link="http://omeka.org/forums/forum/plugins"
license="GPLv3"
omeka_minimum_version="2.0"
omeka_target_version="2.3"
version="2.0.11"
version="2.0.12"
tags="item,relation,rdf"

0 comments on commit 9c777e6

Please sign in to comment.