vendor/webbamboo/spinners-common/src/Entity/Citythumbnailname.php line 14

  1. <?php
  2. namespace Webbamboo\SpinnersCommon\Entity;
  3. use Doctrine\ORM\Mapping as ORM;
  4. /**
  5.  * Citythumbnailname
  6.  *
  7.  * @ORM\Table("Citythumbnailname")
  8.  * @ORM\Entity
  9.  */
  10. #[ORM\Entity(repositoryClassCitythumbnailnameRepository::class)]
  11. class Citythumbnailname
  12. {
  13.     /**
  14.      * @var integer
  15.      *
  16.      * @ORM\Column(name="id", type="integer")
  17.      * @ORM\Id
  18.      * @ORM\GeneratedValue(strategy="AUTO")
  19.      */
  20.     private $id;
  21.     /**
  22.      * @var string
  23.      *
  24.      * @ORM\Column(name="name", type="string", length=255)
  25.      */
  26.     private $name;
  27.     /**
  28.      * @ORM\OneToMany(targetEntity="Citythumbnail", mappedBy="name")
  29.      */
  30.     private $thumbnails;
  31.     /**
  32.      * Get id
  33.      *
  34.      * @return integer
  35.      */
  36.     public function getId()
  37.     {
  38.         return $this->id;
  39.     }
  40.     /**
  41.      * Set name
  42.      *
  43.      * @param string $name
  44.      * @return Citythumbnailname
  45.      */
  46.     public function setName($name)
  47.     {
  48.         $this->name $this->generatePermalink($name);
  49.         return $this;
  50.     }
  51.     /**
  52.      * Get name
  53.      *
  54.      * @return string
  55.      */
  56.     public function getName()
  57.     {
  58.         //return $this->name;
  59.         return $this->generatePermalink($this->name'-'true);
  60.     }
  61.     /**
  62.      * Constructor
  63.      */
  64.     public function __construct()
  65.     {
  66.         $this->thumbnails = new \Doctrine\Common\Collections\ArrayCollection();
  67.     }
  68.     /**
  69.      * Add thumbnails
  70.      *
  71.      * @param \Webbamboo\SpinnersCommon\Entity\Citythumbnail $thumbnails
  72.      * @return Citythumbnailname
  73.      */
  74.     public function addThumbnail(\Webbamboo\SpinnersCommon\Entity\Citythumbnail $thumbnails)
  75.     {
  76.         $this->thumbnails[] = $thumbnails;
  77.         return $this;
  78.     }
  79.     /**
  80.      * Remove thumbnails
  81.      *
  82.      * @param \Webbamboo\SpinnersCommon\Entity\Citythumbnail $thumbnails
  83.      */
  84.     public function removeThumbnail(\Webbamboo\SpinnersCommon\Entity\Citythumbnail $thumbnails)
  85.     {
  86.         $this->thumbnails->removeElement($thumbnails);
  87.     }
  88.     /**
  89.      * Get thumbnails
  90.      *
  91.      * @return \Doctrine\Common\Collections\Collection
  92.      */
  93.     public function getThumbnails()
  94.     {
  95.         return $this->thumbnails;
  96.     }
  97.     private function generatePermalink($text$delimiter='-'$reverse=false)
  98.     {
  99.         $url=array(
  100.         "%C3%85","%C3%A5",
  101.         "%C3%84","%C3%A4",
  102.         "%C3%96","%C3%B6",
  103.         "","-",
  104.         ".""",
  105.         "%E9""",
  106.         """"
  107.         );
  108.         $char=array(
  109.          "Å","å",
  110.          "Ä","ä",
  111.          "Ö","ö",
  112.          "&amp;","-",
  113.          ".""'",
  114.          "é"",",
  115.          "("")"
  116.         );
  117.         if (!$reverse) {
  118.             $str str_replace($char$urlstrtolower($text));
  119.         } else {
  120.             $str str_replace($url$char$text);
  121.         }
  122.         //$clean = preg_replace("/[^a-zA-Z0-9\/_|+ -]/", '', $str);
  123.         $clean trim($str'-');
  124.         $clean preg_replace("/[\/_|+ -]+/"$delimiter$clean);
  125.         return $clean;
  126.     }
  127. }