content = $data['content']; $this->indexes = $data['indexes']; } public function getData() { $html = $this->convertToHTML(); $indexes = $this->updateIndexes(); return [ 'content' => $html, 'indexes' => $indexes ]; } protected function convertToHTML() { $html = ''; $url = url('/') . '/contracts-images'; foreach($this->content as $key => $element) { $diff = 0; if($element->tag !== 'img') { $html .= "<$element->tag style=\"$element->style\">$element->contenttag>"; } else { $src = $url . '/' . str_replace(' ', '%20', $element->src); $html .= "style src=\"$src\" alt=\"$element->details\">"; } if($key !== array_key_last($this->content)) { $html .= '
'; $diff = 4; } if(isset($element->paragraph)) { $this->additions[$element->paragraph][] = strlen(utf8_decode($html)) - strlen(utf8_decode($element->content)) - strlen("tag>") - $diff; } } return $html; } protected function updateIndexes() { $indexes = $this->indexes; foreach($this->additions as $akey => $addition) { foreach($addition as $ckey => $change) { $indexes[$akey][$ckey]['start'] += $change; $indexes[$akey][$ckey]['end'] += $change; $indexes[$akey][$ckey]['original_start'] += $change; $indexes[$akey][$ckey]['original_end'] += $change; } } return $indexes; } }