kraenzle-ritter/resources
resources
Resource Model and a hasResource trait where resources are basically links to a resources (eg. Wikipedia-Article or GND-Entry). Livewire Components (Bootstrap 5) for searching, selecting and listing the links.
Supported Providers
- GND (Gemeinsame Normdatei)
- Geonames (Geographical database)
- Wikipedia (Multiple languages: DE, EN, FR, IT some others)
- Wikidata (Structured data)
- Idiotikon (Swiss German dictionary)
- Ortsnamen.ch (Swiss place names)
- IdRef (French authority file, ABES)
- Metagrid (Swiss humanities database network)
- Anton API (Archives and collections)
- Manual Input (Custom links)
Installation
Via Composer
$ composer require kraenzle-ritter/resources
Then either run php artisan vendor:publish and publish the migration or copy the file to your migrations directory. Then run php artisan migrate.
Usage
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model
use KraenzleRitter\Resources\hasResources;
class MyModel extends Model
{
use hasResources;
...
}
Then you are ready to go:
$resource = [
'provider' => 'Wikipedia',
'provider_id' => 4013996,
'url' => 'https://fr.wikipedia.org/wiki/Érik_Desmazières'
// optional 'full_json' => [...]
];
$model = MyModel::find(1);
$this->model->updateOrCreateResource($resource);
$model->resources;
...
IdRef record types
IdRef covers persons, corporate bodies, places, families and subject headings in one index. Which of them a search returns is driven by the endpoint the component is mounted with:
'idref' => [
'default_record_types' => ['person', 'corporate'],
'endpoint_record_types' => [
'actors' => ['person', 'corporate', 'family'],
'places' => ['place'],
'keywords' => ['subject'],
],
],
Publish the config to adjust the mapping for your own endpoint names; an
endpoint with no mapping falls back to default_record_types.
Because idref declares wikidata_property: P269 and a target_url,
syncFromProvider() will also create IdRef links automatically whenever a
synced Wikidata item carries a P269 claim. Add idref to your filter list to
suppress that.
Checking provider health
php artisan resources:test-resources # all configured providers
php artisan resources:test-resources --provider=gnd # just one
Diagnostics routes
The package ships a diagnostics UI at /resources-check. It is disabled by
default — it renders provider configuration, so it should not be reachable in
a host application unless you ask for it. Enable it per environment:
RESOURCES_DIAGNOSTICS=true
and optionally restrict it further in config/resources.php:
'diagnostics' => [
'enabled' => env('RESOURCES_DIAGNOSTICS', false),
'middleware' => ['web', 'auth'],
],
You can add more resources to a model which already has a gnd link. You can configure the list of resources in the config file.
License
License. Please see the license file for more information.
Related Packages
Filament package to prevent the update of outdated records.
Simplified TypeScript types generator for Laravel applications with developer-de...
Laravel 4 Service Provider to interact with twitter account, like return a colle...