src/Flexy/FrontBundle/Entity/Section.php line 13

  1. <?php
  2. namespace App\Flexy\FrontBundle\Entity;
  3. use ApiPlatform\Core\Annotation\ApiResource;
  4. use App\Flexy\FrontBundle\Repository\SectionRepository;
  5. use Gedmo\Mapping\Annotation as Gedmo;
  6. use Doctrine\DBAL\Types\Types;
  7. use Doctrine\ORM\Mapping as ORM;
  8. #[ApiResource]
  9. #[ORM\Entity(repositoryClassSectionRepository::class)]
  10. class Section
  11. {
  12.     #[ORM\Id]
  13.     #[ORM\GeneratedValue]
  14.     #[ORM\Column(type'integer')]
  15.     private $id;
  16.     #[ORM\Column(type'string'length255)]
  17.      private $title;
  18.      
  19.     #[ORM\Column(type'text'nullabletrue)]
  20.     private ?string $content null;
  21.         #[ORM\Column(type'json'nullabletrue)]
  22.     private $jsonContent=[];
  23.     #[ORM\Column(type'json'nullabletrue)]
  24.     private $jsonSimplifiedContent;
  25.     #[ORM\Column(type'datetime'nullabletrue)]
  26.     private ?\DateTimeInterface $createdAt null;
  27.     /**
  28.      * @Gedmo\Slug(fields={"title"})
  29.      */
  30.     #[Gedmo\Slug(fields: ['title'])]
  31.     #[ORM\Column(type'string'length255nullabletrue)]
  32.     private ?string $slug null;
  33.     
  34.     #[ORM\Column(type'boolean'nullabletrue)]
  35.     private ?bool $isEnabled null;
  36.     #[ORM\Column(type'boolean'nullabletrue)]
  37.     private $isLiveEditor;
  38.         #[ORM\Column(type'string'length255nullabletrue)]
  39.     private $pageEditor="summernote";
  40.         #[ORM\Column(typeTypes::TEXTnullabletrue)]
  41.         private ?string $htmlContent null;
  42.     public function getId(): ?int
  43.     {
  44.         return $this->id;
  45.     }
  46.     public function getContent(): ?string
  47.     {
  48.         return $this->content;
  49.     }
  50.     public function setContent(?string $content): self
  51.     {
  52.         $this->content $content;
  53.         return $this;
  54.     }
  55.     public function getCreatedAt(): ?\DateTimeInterface
  56.     {
  57.         return $this->createdAt;
  58.     }
  59.     public function setCreatedAt(?\DateTimeInterface $createdAt): self
  60.     {
  61.         $this->createdAt $createdAt;
  62.         return $this;
  63.     }
  64.     public function getSlug(): ?string
  65.     {
  66.         return $this->slug;
  67.     }
  68.     public function setSlug(string $slug): self
  69.     {
  70.         $this->slug $slug;
  71.         return $this;
  72.     }
  73.     public function getIsEnabled(): ?bool
  74.     {
  75.         return $this->isEnabled;
  76.     }
  77.     public function setIsEnabled(?bool $isEnabled): self
  78.     {
  79.         $this->isEnabled $isEnabled;
  80.         return $this;
  81.     }
  82.      /**
  83.       * Get the value of title
  84.       */ 
  85.      public function getTitle()
  86.      {
  87.           return $this->title;
  88.      }
  89.      /**
  90.       * Set the value of title
  91.       *
  92.       * @return  self
  93.       */ 
  94.      public function setTitle($title)
  95.      {
  96.           $this->title $title;
  97.           return $this;
  98.      }
  99.     /**
  100.      * Get the value of jsonContent
  101.      */ 
  102.     public function getJsonContent()
  103.     {
  104.         if($this->jsonContent==null){
  105.             return [];
  106.         }
  107.         return $this->jsonContent;
  108.     }
  109.     /**
  110.      * Set the value of jsonContent
  111.      *
  112.      * @return  self
  113.      */ 
  114.     public function setJsonContent($jsonContent)
  115.     {
  116.         $this->jsonContent $jsonContent;
  117.         return $this;
  118.     }
  119.     public function jsonContentCSS() {
  120.         $contents $this->jsonSimplifiedContent;
  121.         $css '';
  122.         //dd($this->jsonContent);
  123.         foreach ($contents as $singleContent) {
  124.             $css $css.$singleContent["css"];
  125.         }
  126.         
  127.         return $css;
  128.     }
  129.     public function jsonContentHTML() {
  130.         $contents $this->jsonSimplifiedContent;
  131.         $html '';
  132.         //dd($this->jsonContent);
  133.         foreach ($contents as $singleContent) {
  134.             $html $html.$singleContent["html"];
  135.         }
  136.         
  137.         return $html;
  138.     }
  139.     public function jsonContentToHtml() {
  140.         $obj $this->jsonContent;
  141.         $html '';
  142.         //dd($this->jsonContent);
  143.         foreach ($obj["blocks"] as $block) {
  144.             switch ($block["type"]) {
  145.                 case 'paragraph':
  146.                     $html .= '<p>' $block["data"]["text"] . '</p>';
  147.                     break;
  148.                 
  149.                 case 'header':
  150.                     $html .= '<h'$block["data"]["level"] .'>' $block["data"]["text"] . '</h'$block["data"]["level"] .'>';
  151.                     break;
  152.                 case 'raw':
  153.                     $html .= $block["data"]["html"];
  154.                     break;
  155.                 case 'list':
  156.                     $lsType = ($block["data"]["style"] == 'ordered') ? 'ol' 'ul';
  157.                     $html .= '<' $lsType '>';
  158.                     foreach($block["data"]["items"] as $item) {
  159.                         $html .= '<li>' $item '</li>';
  160.                     }
  161.                     $html .= '</' $lsType '>';
  162.                     break;
  163.                 
  164.                 case 'code':
  165.                     $html .= '<pre><code class="language-'$block["data"]["lang"] .'">'$block["data"]["code"] .'</code></pre>';
  166.                     break;
  167.                 
  168.                 case 'image':
  169.                     $html .= '<div class="img_pnl"><img src="'$block["data"]["file"]["url"]->url .'" /></div>';
  170.                     break;
  171.                 
  172.                 default:
  173.                     break;
  174.             }
  175.         }
  176.         
  177.         return $html;
  178.     }
  179.     /**
  180.      * Get the value of isLiveEditor
  181.      */ 
  182.     public function getIsLiveEditor()
  183.     {
  184.         return $this->isLiveEditor;
  185.     }
  186.     /**
  187.      * Set the value of isLiveEditor
  188.      *
  189.      * @return  self
  190.      */ 
  191.     public function setIsLiveEditor($isLiveEditor)
  192.     {
  193.         $this->isLiveEditor $isLiveEditor;
  194.         return $this;
  195.     }
  196.     /**
  197.      * Get the value of pageEditor
  198.      */ 
  199.     public function getPageEditor()
  200.     {
  201.         return $this->pageEditor;
  202.     }
  203.     /**
  204.      * Set the value of pageEditor
  205.      *
  206.      * @return  self
  207.      */ 
  208.     public function setPageEditor($pageEditor)
  209.     {
  210.         $this->pageEditor $pageEditor;
  211.         return $this;
  212.     }
  213.     /**
  214.      * Get the value of jsonSimplifiedContent
  215.      */ 
  216.     public function getJsonSimplifiedContent()
  217.     {
  218.         return $this->jsonSimplifiedContent;
  219.     }
  220.     /**
  221.      * Set the value of jsonSimplifiedContent
  222.      *
  223.      * @return  self
  224.      */ 
  225.     public function setJsonSimplifiedContent($jsonSimplifiedContent)
  226.     {
  227.         $this->jsonSimplifiedContent $jsonSimplifiedContent;
  228.         return $this;
  229.     }
  230.     public function getHtmlContent(): ?string
  231.     {
  232.         return $this->htmlContent;
  233.     }
  234.     public function setHtmlContent(?string $htmlContent): static
  235.     {
  236.         $this->htmlContent $htmlContent;
  237.         return $this;
  238.     }
  239. }