2018-08-05 07:09:59 -04:00
|
|
|
<?php
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @file src/Model/ItemURI.php
|
|
|
|
*/
|
|
|
|
|
|
|
|
namespace Friendica\Model;
|
|
|
|
|
|
|
|
use Friendica\BaseObject;
|
|
|
|
use Friendica\Database\DBA;
|
|
|
|
|
|
|
|
class ItemURI extends BaseObject
|
|
|
|
{
|
|
|
|
/**
|
|
|
|
* @brief Insert an item-uri record and return its id
|
|
|
|
*
|
|
|
|
* @param array $fields Item-uri fields
|
|
|
|
*
|
|
|
|
* @return integer item-uri id
|
2019-01-06 16:06:53 -05:00
|
|
|
* @throws \Exception
|
2018-08-05 07:09:59 -04:00
|
|
|
*/
|
|
|
|
public static function insert($fields)
|
|
|
|
{
|
2018-12-02 09:49:28 -05:00
|
|
|
// If the URI gets too long we only take the first parts and hope for best
|
|
|
|
$uri = substr($fields['uri'], 0, 255);
|
|
|
|
|
|
|
|
if (!DBA::exists('item-uri', ['uri' => $uri])) {
|
2018-08-05 07:09:59 -04:00
|
|
|
DBA::insert('item-uri', $fields, true);
|
|
|
|
}
|
|
|
|
|
2018-12-02 09:49:28 -05:00
|
|
|
$itemuri = DBA::selectFirst('item-uri', ['id'], ['uri' => $uri]);
|
2018-08-05 07:09:59 -04:00
|
|
|
|
|
|
|
if (!DBA::isResult($itemuri)) {
|
|
|
|
// This shouldn't happen
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
|
|
|
|
return $itemuri['id'];
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @brief Searched for an id of a given uri. Adds it, if not existing yet.
|
|
|
|
*
|
|
|
|
* @param string $uri
|
|
|
|
*
|
|
|
|
* @return integer item-uri id
|
2019-01-06 16:06:53 -05:00
|
|
|
* @throws \Exception
|
2018-08-05 07:09:59 -04:00
|
|
|
*/
|
|
|
|
public static function getIdByURI($uri)
|
|
|
|
{
|
2018-12-02 09:49:28 -05:00
|
|
|
// If the URI gets too long we only take the first parts and hope for best
|
|
|
|
$uri = substr($uri, 0, 255);
|
|
|
|
|
2018-08-05 07:09:59 -04:00
|
|
|
$itemuri = DBA::selectFirst('item-uri', ['id'], ['uri' => $uri]);
|
|
|
|
|
|
|
|
if (!DBA::isResult($itemuri)) {
|
|
|
|
return self::insert(['uri' => $uri]);
|
|
|
|
}
|
|
|
|
|
|
|
|
return $itemuri['id'];
|
|
|
|
}
|
|
|
|
}
|