core-bundle/src/Resources/contao/dca/tl_files.php
public function editSource($row, $href, $label, $title, $icon, $attributes)
	{
		if (!$this->User->hasAccess('f5', 'fop'))
		{
			return '';
		}

		$strDecoded = rawurldecode($row['id']);
		$rootDir = Contao\System::getContainer()->getParameter('kernel.project_dir');

		if (is_dir($rootDir . '/' . $strDecoded))
		{
			return '';
		}

		$objFile = new Contao\File($strDecoded);

		if (!\in_array($objFile->extension, Contao\StringUtil::trimsplit(',', strtolower(Contao\Config::get('editableFiles')))))
		{
			return Contao\Image::getHtml(preg_replace('/\.svg$/i', '_.svg', $icon)).' ';
		}

		return '<a href="'.$this->addToUrl($href.'&amp;id='.$row['id']).'" title="'.Contao\StringUtil::specialchars($title).'"'.$attributes.'>'.Contao\Image::getHtml($icon, $label).'</a> ';
	}
public function editSource($row, $href, $label, $title, $icon, $attributes)
	{
		if (!$this->User->hasAccess('f5', 'fop'))
		{
			return '';
		}

		$strDecoded = rawurldecode($row['id']);
		$rootDir = Contao\System::getContainer()->getParameter('kernel.project_dir');

		if (is_dir($rootDir . '/' . $strDecoded))
		{
			return '';
		}

		$objFile = new Contao\File($strDecoded);

		if (!\in_array($objFile->extension, Contao\StringUtil::trimsplit(',', strtolower(Contao\Config::get('editableFiles')))))
		{
			return Contao\Image::getHtml(preg_replace('/\.svg$/i', '_.svg', $icon)).' ';
		}

		return '<a href="'.$this->addToUrl($href.'&amp;id='.$row['id']).'" title="'.Contao\StringUtil::specialchars($title).'"'.$attributes.'>'.Contao\Image::getHtml($icon, $label).'</a> ';
	}
Return the edit file source button

@param array  $row
@param string $href
@param string $label
@param string $title
@param string $icon
@param string $attributes

@return string