I even went so far as to redo your install file.... (because from a manual install perspective, it was confusing to edit the ManageNews.php file, then the ManageNews.template.php file, then back to the MangeNews.php file etc. It had me going back and forth between files... I edited the file so I could focus on one file at a time.

I also downloaded ALL the latest 1.1.10 news files and re-installed your mod... still no editor.
Attached is what I did to your mod file - if you're interested.
SIGH.
One thing that may be worthwhile... you do a find - if not found ignore.....
then you do a find for a very similar block of text.... the section that starts with
"// This is here to prevent spam filters from tagging this as spam."
I am assuming that block should be replaced either way. My text editor doesn't find that block either way.
Below is what I replaced......
// This is here to prevent spam filters from tagging this as spam.
if (!empty($_POST['send_html']) && preg_match('~\<html~i', $_POST['message']) == 0)
{
if (preg_match('~\<body~i', $_POST['message']) == 0)
$_POST['message'] = '<html><head><title>' . $_POST['subject'] . '</title></head>' . "\n" . '<body>' . $_POST['message'] . '</body></html>';
else
$_POST['message'] = '<html>' . $_POST['message'] . '</html>';
}
$result = db_query("
SELECT realName, memberName, ID_MEMBER, emailAddress
FROM {$db_prefix}members
WHERE emailAddress IN ('" . implode("', '", addslashes__recursive($send_list)) . "')
AND is_activated = 1", __FILE__, __LINE__);
while ($row = mysql_fetch_assoc($result))
{
unset($send_list[$row['emailAddress']]);
$to_member = array(
$row['emailAddress'],
!empty($_POST['send_html']) ? '<a href="' . $scripturl . '?action=profile;u=' . $row['ID_MEMBER'] . '">' . $row['realName'] . '</a>' : $scripturl . '?action=profile;u=' . $row['ID_MEMBER'],
$row['ID_MEMBER'],
$row['realName']
);
// Send the actual email off, replacing the member dependent variables.
sendmail($row['emailAddress'], str_replace($from_member, $to_member, addslashes($_POST['subject'])), str_replace($from_member, $to_member, addslashes($_POST['message'])), null, null, !empty($_POST['send_html']));
}
mysql_free_result($result);
// Send the emails to people who weren't members....
if (!empty($send_list))
foreach ($send_list as $email)
{
$to_member = array(
$email,
!empty($_POST['send_html']) ? '<a href="mailto:' . $email . '">' . $email . '</a>' : $email,
'??',
$email
);
sendmail($email, str_replace($from_member, $to_member, addslashes($_POST['subject'])), str_replace($from_member, $to_member, addslashes($_POST['message'])), null, null, !empty($_POST['send_html']));
}
with.....
// Modified by Newsletter Pro
// This is here to prevent spam filters from tagging this as spam.
if (!empty($_POST['send_html']) && preg_match('~\<html~i', $_POST['message']) == 0)
{
if (preg_match('~\<body~i', $_POST['message']) == 0)
$_POST['message'] = '<html><head><title>' . $_POST['subject'] . '</title></head>' . "\n" . '<body>' . $_POST['message'] . '<#unsubscribe#><#trackimg#></body></html>';
else
$_POST['message'] = '<html>' . $_POST['message'] . '<#unsubscribe#><#trackimg#></html>';
}
global $boardurl;
// Replace Links
$pattern = "/((@import\s+[\"'`]([\w:?=@&\/#._;-]+)[\"'`];)|";
$pattern .= "(:\s*url\s*\([\s\"'`]*([\w:?=@&\/#._;-]+)";
$pattern .= "([\s\"'`]*\))|<[^>]*\s+(href)\=[\"'`]*";
$pattern .= "([^\"'`]+)[\"'`]*[^>]*>))/is";
preg_match_all($pattern, $_POST['message'], $matches);
foreach($matches[8] as $tmp)
{
if ($tmp != "" && !stristr($tmp, "mailto:") && !preg_match('/^#/', $tmp))
{
$link = CreateMessageLink($tmp,$context['ID_LETTER']);
$_POST['message'] = preg_replace("/href=[\"'`]*?".str_replace("/", "\/",
preg_quote($tmp))."[\"'`]/is", 'href="'. $link.'"', $_POST['message']);
}
}
// Create Unsubscribe link
if (empty($modSettings['newspro_set_nounsubscribe']))
$_POST['message'] = str_replace('<#unsubscribe#>','<a href="' . $boardurl . '/newstracking.php?a=u&c=' . $context['ID_LETTER'] . '&i=#ID_EMAIL#">' . $txt['newspro_unsubscribe'] . '</a>',$_POST['message']);
else
$_POST['message'] = str_replace('<#unsubscribe#>','',$_POST['message']);
// Add tracking pixel
$_POST['message'] = str_replace('<#trackimg#>','<img src="' . $boardurl . '/newstracking.php?a=v&c=' . $context['ID_LETTER'] . '&i=#ID_EMAIL#">',$_POST['message']);
$result = db_query("
SELECT m.realName, m.memberName, m.ID_MEMBER, l.email, u.ID_OPTOUT, l.ID_EMAIL
FROM " . $context['list_tableid'] . " AS l
LEFT JOIN {$db_prefix}members AS m ON (l.email = m.emailAddress)
LEFT JOIN {$db_prefix}newspro_unsubscribe AS u ON (l.email = u.emailAddress)
WHERE l.email IN ('" . implode("', '", addslashes__recursive($send_list)) . "')", __FILE__, __LINE__);
$emailCount = 0;
while ($row = mysql_fetch_assoc($result))
{
// Check if this email is on the unsubscribe list
if (!empty($row['ID_OPTOUT']))
continue;
$tempMSG = $_POST['message'];
// Add the tracking
$tempMSG = str_replace("#ID_EMAIL#",$row['ID_EMAIL'],$tempMSG);
if (!empty($row['realName']))
{
$to_member = array(
$row['email'],
!empty($_POST['send_html']) ? '<a href="' . $scripturl . '?action=profile;u=' . $row['ID_MEMBER'] . '">' . $row['realName'] . '</a>' : $scripturl . '?action=profile;u=' . $row['ID_MEMBER'],
$row['ID_MEMBER'],
$row['realName']
);
// Send the actual email off, replacing the member dependent variables.
sendmail($row['email'], str_replace($from_member, $to_member, addslashes($_POST['subject'])), str_replace($from_member, $to_member, addslashes($tempMSG)), null, null, !empty($_POST['send_html']));
$emailCount++;
}
else
{
// Send the emails to people who weren't members....
$to_member = array(
$row['email'],
!empty($_POST['send_html']) ? '<a href="mailto:' . $row['email'] . '">' .$row['email'] . '</a>' : $row['email'],
'??',
$row['email']
);
sendmail($row['email'], str_replace($from_member, $to_member, addslashes($_POST['subject'])), str_replace($from_member, $to_member, addslashes($tempMSG)), null, null, !empty($_POST['send_html']));
$emailCount++;
}
}
mysql_free_result($result);
// Increase the sent count
$result = db_query("
UPDATE {$db_prefix}newspro_newsletters SET sent = sent + $emailCount
WHERE ID_LETTER = " . $context['ID_LETTER'], __FILE__, __LINE__);
// End modified Code by NewsLetter Pro