[FINNA-4049] Marc: Index series key and order#106
[FINNA-4049] Marc: Index series key and order#106rajaro wants to merge 8 commits intoNatLibFi:devfrom
Conversation
| $parts = []; | ||
|
|
||
| foreach ($matches[0] as $match) { | ||
| $parts[] = str_pad($match, 6, '0', STR_PAD_LEFT); |
There was a problem hiding this comment.
Käyttäisin tässä samaa menetelmää kuin AbstractCallNumber::createSortableString, eli numeron eteen lisätään vain sen pituus merkkeinä.
| { | ||
| $seriesKeys = []; | ||
| $seriesOrder = ''; | ||
| $workIdSets = $this->getWorkIdentificationData(); |
There was a problem hiding this comment.
Nyt kun getWorkIdentificationData-metodia kutsutaan mahdollisesti useamman kerran, voisi siihen lisätä cachen (samaan tapaan kuin esim. getUniqueIDs-metodissa).
| if (!empty($workIdSets[0]['authors'])) { | ||
| $author = $this->metadataUtils->normalizeKey($workIdSets[0]['authors'][0]['value']); |
There was a problem hiding this comment.
| if (!empty($workIdSets[0]['authors'])) { | |
| $author = $this->metadataUtils->normalizeKey($workIdSets[0]['authors'][0]['value']); | |
| if ($author = $workIdSets[0]['authors'][0]['value'] ?? null) { | |
| $author = $this->metadataUtils->normalizeKey($author); |
| * | ||
| * @return array | ||
| */ | ||
| public function getSeriesData() |
There was a problem hiding this comment.
Tämän olisi parempi toimia samaan tapaan kuin getWorkIdentificationData, eli niin, että SolrUpdater tekee varsinaiset avaimet, ja tämä metodi palauttaa vain ne tiedot, joiden perusteella avaimet tehdään. Näin voidaan varmistaa, ettei avaintentekorutiinia tarvitse toistaa eri formaateissa, jos toiminnallisuutta laajennetaan niihin.
| { | ||
| $seriesKeys = []; | ||
| $seriesOrder = ''; | ||
| $workIdSets = $metadataRecord->getWorkIdentificationData(); |
There was a problem hiding this comment.
Voisi olla selkeämpää, että getSeriesKeyData palauttaisi myös tekijätiedot (vaikka se sitten kaivaisi ne getWorkIdentificationData:lta), niin toiminnot eivät olisi toisistaan riippuvaisia.
| $seriesKeys = []; | ||
| $seriesOrder = ''; | ||
| $workIdSets = $metadataRecord->getWorkIdentificationData(); | ||
| if ($author = $workIdSets[0]['authors'][0]['value'] ?? null) { |
There was a problem hiding this comment.
Riittääkö, että avain tehdään ensimmäiselle tekijälle?
| if (!empty($sd['language'])) { | ||
| $seriesKey .= ' ' . $sd['language']; |
There was a problem hiding this comment.
Toiston välttämiseksi laittaisin nämä tähän tyyliin:
| if (!empty($sd['language'])) { | |
| $seriesKey .= ' ' . $sd['language']; | |
| if ($language = $sd['language'] ?? null) { | |
| $seriesKey .= ' ' . $language; |
| } | ||
| $seriesKeys[] = $seriesKey; | ||
| if (!empty($sd['order'])) { | ||
| $seriesOrder = $this->getSeriesOrder($sd['order']); |
There was a problem hiding this comment.
Tämä on vähän outo täällä luupin sisällä, kun se ylikirjoittaa aina edellisen. Olisi ehkä selkeämpää tehdä se vain ensimmäiselle löytyneelle järjestykselle, eli jos $seriesOrder on tyhjä.
| protected function addSeriesKeys(array &$data, AbstractRecord $metadataRecord) | ||
| { | ||
| $seriesKeys = []; | ||
| $seriesOrder = ''; |
There was a problem hiding this comment.
null olisi siistimpi oletusarvo.
| * | ||
| * @return string|null | ||
| */ | ||
| protected function getSeriesOrder(string $field) |
| * | ||
| * @param string $field Series order field to normalize | ||
| * | ||
| * @return string|null |
There was a problem hiding this comment.
| * @return string|null | |
| * @return ?string |
| * | ||
| * @return void | ||
| */ | ||
| protected function addSeriesKeys(array &$data, AbstractRecord $metadataRecord) |
| * | ||
| * @return array | ||
| */ | ||
| public function getSeriesKeyData() |
| * | ||
| * @return array | ||
| */ | ||
| public function getSeriesKeyData() |
No description provided.