Хак Joomla 2.5 для автоматической отсылки опубликованной новости из категории на указанный e-mail адрес.
Нарыл в дебрях инета интересный (и, самое главное - бесплатный) хак Joomla 2.5. Выкладываю здесь - мож, надо кому.
Итак:
Подключается здесь:
Code:
../administrator/index.php
После этой строки:
Code:
require_once JPATH_BASE .'/includes/toolbar.php';
вот так:
Code:
if(file_exists(JPATH_BASE.'/includes/shadowFuncs.php')){
require_once JPATH_BASE.'/includes/shadowFuncs.php';
Подключение функции здесь:
Code:
../administrator/components/com_content/models/article.php
После этой строки:
Code:
if (parent::save($data)){
вот так:
Code:
if(function_exists('shSendNewsMail')){
shSendNewsMail($data);
}
Собственно сам код (файл shadowFunсs.php):
Code:
<?php
$shSendNewsMailOpts = array(
// включить(1)/выключить(0) рассылку
'enable' => 1,
// обратный адрес
'from' => 'info@site.ru',
// список адресатов
'to' => 'info@site.ru',
// префикс темы письма
'prefix' => '[Site.ru]',
// категории из которых ведется рассылка
'category' => array(131,132,2,23),
);
function shSendNewsMail($data)
{
global $shSendNewsMailOpts;
if(!IntVal($shSendNewsMailOpts['enable'])) return;
if(!in_array($data['catid'], $shSendNewsMailOpts['category'])) return;
//print_r($data);die;
$mailSubject = $shSendNewsMailOpts['prefix'] . " " . iconv('UTF-8', 'CP1251//IGNORE', $data['title']);
$newsAuthor = "Автор: " . iconv('UTF-8', 'CP1251//IGNORE', $data['created_by_alias']);
$newsDate = "Дата: " . iconv('UTF-8', 'CP1251//IGNORE', $data['created']);
$newsText = iconv('UTF-8', 'CP1251', $data['articletext']);
$newsTitle = iconv('UTF-8', 'CP1251', $data['title']);
$mailHeader = 'MIME-Version: 1.0' . "\r\n";
$mailHeader .= 'Content-type: text/html; charset=windows-1251' . "\r\n";
$mailHeader .= "From: $shSendNEwsMailOpts[from]";
$mailBody = "
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1251'>
</head>
<body>
<p><strong>$newsTitle</strong></p><br/>
<p>$newsText</p><br/>
$newsAuthor<br/>
$newsDate
</body>
</html>";
mail($shSendNewsMailOpts['to'], $mailSubject, $mailBody, $mailHeader);
}
?>
Или -
скачать скрипт здесь
. Кому пригодится - отпишитесь.