public function BrokenLink::merge in Broken Link 8.3
Same name and namespace in other branches
- 8 src/Entity/BrokenLink.php \Drupal\broken_link\Entity\BrokenLink::merge()
- 8.2 src/Entity/BrokenLink.php \Drupal\broken_link\Entity\BrokenLink::merge()
Method to create or update broken link and its hits.
Parameters
string $request_path: Broken link.
string $request_args: Query string parameters.
File
- src/
Entity/ BrokenLink.php, line 128
Class
- BrokenLink
- Defines the broken link entity class.
Namespace
Drupal\broken_link\EntityCode
public function merge($request_path, $request_args = NULL) {
$broken_link = $this
->loadByLink($request_path);
if ($broken_link === NULL) {
$broken_link = $this
->create();
$broken_link->link = $request_path;
$broken_link->hits = 1;
$broken_link->created = time();
}
else {
$hits = (int) $broken_link
->get('hits')
->get(0)
->getValue()['value'];
$broken_link->hits = ++$hits;
$broken_link->updated = time();
}
$recorded_query_string = explode(', ', $broken_link
->get('query_string')
->getString());
if (!empty($request_args) && !in_array($request_args, $recorded_query_string)) {
$broken_link->query_string[] = $request_args;
}
$referer = \Drupal::request()->server
->get('HTTP_REFERER');
$recorded_referers = explode(', ', $broken_link
->get('referers')
->getString());
if (!empty($referer) && !in_array($referer, $recorded_referers)) {
$broken_link->referers[] = $referer;
}
$broken_link
->save();
}