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.     public function getId(): ?int
  41.     {
  42.         return $this->id;
  43.     }
  44.     public function getContent(): ?string
  45.     {
  46.         return $this->content;
  47.     }
  48.     public function setContent(?string $content): self
  49.     {
  50.         $this->content $content;
  51.         return $this;
  52.     }
  53.     public function getCreatedAt(): ?\DateTimeInterface
  54.     {
  55.         return $this->createdAt;
  56.     }
  57.     public function setCreatedAt(?\DateTimeInterface $createdAt): self
  58.     {
  59.         $this->createdAt $createdAt;
  60.         return $this;
  61.     }
  62.     public function getSlug(): ?string
  63.     {
  64.         return $this->slug;
  65.     }
  66.     public function setSlug(string $slug): self
  67.     {
  68.         $this->slug $slug;
  69.         return $this;
  70.     }
  71.     public function getIsEnabled(): ?bool
  72.     {
  73.         return $this->isEnabled;
  74.     }
  75.     public function setIsEnabled(?bool $isEnabled): self
  76.     {
  77.         $this->isEnabled $isEnabled;
  78.         return $this;
  79.     }
  80.      /**
  81.       * Get the value of title
  82.       */ 
  83.      public function getTitle()
  84.      {
  85.           return $this->title;
  86.      }
  87.      /**
  88.       * Set the value of title
  89.       *
  90.       * @return  self
  91.       */ 
  92.      public function setTitle($title)
  93.      {
  94.           $this->title $title;
  95.           return $this;
  96.      }
  97.     /**
  98.      * Get the value of jsonContent
  99.      */ 
  100.     public function getJsonContent()
  101.     {
  102.         if($this->jsonContent==null){
  103.             return [];
  104.         }
  105.         return $this->jsonContent;
  106.     }
  107.     /**
  108.      * Set the value of jsonContent
  109.      *
  110.      * @return  self
  111.      */ 
  112.     public function setJsonContent($jsonContent)
  113.     {
  114.         $this->jsonContent $jsonContent;
  115.         return $this;
  116.     }
  117.     public function jsonContentCSS() {
  118.         $contents $this->jsonSimplifiedContent;
  119.         $css '';
  120.         //dd($this->jsonContent);
  121.         foreach ($contents as $singleContent) {
  122.             $css $css.$singleContent["css"];
  123.         }
  124.         
  125.         return $css;
  126.     }
  127.     public function jsonContentHTML() {
  128.         $contents $this->jsonSimplifiedContent;
  129.         $html '';
  130.         //dd($this->jsonContent);
  131.         foreach ($contents as $singleContent) {
  132.             $html $html.$singleContent["html"];
  133.         }
  134.         
  135.         return $html;
  136.     }
  137.     public function jsonContentToHtml() {
  138.         $obj $this->jsonContent;
  139.         $html '';
  140.         //dd($this->jsonContent);
  141.         foreach ($obj["blocks"] as $block) {
  142.             switch ($block["type"]) {
  143.                 case 'paragraph':
  144.                     $html .= '<p>' $block["data"]["text"] . '</p>';
  145.                     break;
  146.                 
  147.                 case 'header':
  148.                     $html .= '<h'$block["data"]["level"] .'>' $block["data"]["text"] . '</h'$block["data"]["level"] .'>';
  149.                     break;
  150.                 case 'raw':
  151.                     $html .= $block["data"]["html"];
  152.                     break;
  153.                 case 'list':
  154.                     $lsType = ($block["data"]["style"] == 'ordered') ? 'ol' 'ul';
  155.                     $html .= '<' $lsType '>';
  156.                     foreach($block["data"]["items"] as $item) {
  157.                         $html .= '<li>' $item '</li>';
  158.                     }
  159.                     $html .= '</' $lsType '>';
  160.                     break;
  161.                 
  162.                 case 'code':
  163.                     $html .= '<pre><code class="language-'$block["data"]["lang"] .'">'$block["data"]["code"] .'</code></pre>';
  164.                     break;
  165.                 
  166.                 case 'image':
  167.                     $html .= '<div class="img_pnl"><img src="'$block["data"]["file"]["url"]->url .'" /></div>';
  168.                     break;
  169.                 
  170.                 default:
  171.                     break;
  172.             }
  173.         }
  174.         
  175.         return $html;
  176.     }
  177.     /**
  178.      * Get the value of isLiveEditor
  179.      */ 
  180.     public function getIsLiveEditor()
  181.     {
  182.         return $this->isLiveEditor;
  183.     }
  184.     /**
  185.      * Set the value of isLiveEditor
  186.      *
  187.      * @return  self
  188.      */ 
  189.     public function setIsLiveEditor($isLiveEditor)
  190.     {
  191.         $this->isLiveEditor $isLiveEditor;
  192.         return $this;
  193.     }
  194.     /**
  195.      * Get the value of pageEditor
  196.      */ 
  197.     public function getPageEditor()
  198.     {
  199.         return $this->pageEditor;
  200.     }
  201.     /**
  202.      * Set the value of pageEditor
  203.      *
  204.      * @return  self
  205.      */ 
  206.     public function setPageEditor($pageEditor)
  207.     {
  208.         $this->pageEditor $pageEditor;
  209.         return $this;
  210.     }
  211.     /**
  212.      * Get the value of jsonSimplifiedContent
  213.      */ 
  214.     public function getJsonSimplifiedContent()
  215.     {
  216.         return $this->jsonSimplifiedContent;
  217.     }
  218.     /**
  219.      * Set the value of jsonSimplifiedContent
  220.      *
  221.      * @return  self
  222.      */ 
  223.     public function setJsonSimplifiedContent($jsonSimplifiedContent)
  224.     {
  225.         $this->jsonSimplifiedContent $jsonSimplifiedContent;
  226.         return $this;
  227.     }
  228. }