ElementFactory.php 1.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. <?php
  2. namespace Muzich\CoreBundle\Factory;
  3. use Muzich\CoreBundle\Entity\Element;
  4. use Symfony\Component\DependencyInjection\Container;
  5. use \Exception;
  6. /**
  7. *
  8. * @author bux
  9. */
  10. abstract class ElementFactory
  11. {
  12. /**
  13. *
  14. * @var Element
  15. */
  16. protected $element;
  17. protected $container;
  18. /**
  19. *
  20. * @param Element $element
  21. * @param Container $container
  22. */
  23. public function __construct(Element $element, Container $container)
  24. {
  25. $this->element = $element;
  26. $this->container = $container;
  27. }
  28. /**
  29. * Retourne l'url relative dans le site
  30. *
  31. * @return string
  32. */
  33. protected function getCleanedUrl($decode = false)
  34. {
  35. // Procèdures de nettoyages après constat d'erreurs
  36. $url = $this->element->getUrl();
  37. if ($decode)
  38. {
  39. $url = urldecode($url);
  40. }
  41. $url = str_replace('www.', '', $url);
  42. $url = str_replace('http://'.$this->element->getType(), '', $url);
  43. $url = str_replace('https://'.$this->element->getType(), '', $url);
  44. return $url;
  45. }
  46. public function retrieveDatas()
  47. {
  48. $this->element->setDatas(array());
  49. }
  50. public function proceedEmbedCode()
  51. {
  52. $this->element->setEmbed(null);
  53. }
  54. public function proceedThumbnailUrl()
  55. {
  56. $this->element->setThumbnailUrl(null);
  57. }
  58. }
  59. ?>