Hi,
1.
Yes. On the line before:
$resume = $function(strip_tags(preg_replace('#<hr *id="system-readmore" */>.*#is','',$this->element->product_description)),0,300);it's the function "strip_tags" which remove the HTML tags.
You could have instead:
$resume = $function(preg_replace('#<hr *id="system-readmore" */>.*#is','',$this->element->product_description),0,300);and it wouldn't remove the HTML tags.
The problem however, is that the 300 characters cut can happen in the middle of a HTML tag in that case, which would break the HTML of the page.
So, if you do that change, I would recommend that you add a read more tag to tell the code where the cut should happen.
You might even want to remove the 300 characters cut because the HTML tags will be counted in the 300 limit. So maybe something like this would be better in that case:
$resume = preg_replace('#<hr *id="system-readmore" */>.*#is','',$this->element->product_description);
2.
Yes. The description at the bottom is displayed with:
$description = trim(JHTML::_('content.prepare',preg_replace('#<hr *id="system-readmore" */>#i','',$this->element->product_description)));If you want to remove the text before the read more tag, change it to:
$description = trim(JHTML::_('content.prepare',preg_replace('#.*<hr *id="system-readmore" */>#is','',$this->element->product_description)));