alt, img
vlad555 |
|
---|---|
Добрый день! Вопрос в следующем: есть ли возможность на cotonti сделать вывод в alt="" в ББкоды
<img src="$1" alt="" /> <a rel="thumbnail" href="$1"><img src="$2" alt="" /></a>описания из pfs? И как это реализовать? |
Dayver |
|
||||||
---|---|---|---|---|---|---|---|
в итоге можно использовать ббкод вида [img=datas/users/1-image_472.jpg alt=Создан пульт дистанционного управления мозгом]datas/thumbs/1-image_472.jpg[/img][/] Pavlo Tkachenko aka Dayver
|
Azazello |
|
---|---|
Вопрос этот еще с времен Seditio тянется, почему нельзя сделать так что бы описания к картинкам из PFS подхватывались и выводились в alt. Почему это до сих пор не реализовано в Cotonti ?
|
Sergeich |
|
---|---|
Согласен, нужно уже прописать эту подстановку альта один раз и забыть. Я бы и сам прописал, но блин не понимаю как это сделать - там жабаскрипт плюс в бб-кодах некая сложная конструкция. Из-за этого поисковики хреново мои картинки индексируют.
|
Boss |
|
---|---|
Я сделал так. Описания из PFS подставляются картинкам и галереям. Для этого используются две функции в parser.php. Парсер данный отрабатывается перед стандартным парсингом. В настроках нужно выбрать именно этот режим работы. В коде присутствует некоторая заточка под особенности сайта и плагин slimbox. Но кому надо, тот думаю подправит под себя немного.
function hw_sed_bbcode_pict($mt)
{
if($mt[1] == 'img' || $mt[1] == 'thumb')
{
global $db_pfs, $cfg;
// Если это простая картинка.
if(count($mt) == 4 && $mt[1] == 'img' && $mt[3] == 'img')
{
// [0] => [img]url/картинка.jpg[/img]
// [1] => img
// [2] => url/картинка.jpg
// [3] => img
// Полный путь на картинку. Исполоьзуются средства защиты.
$file_url = sed_cc($mt[2]);
$file_url = str_replace('&#', '', $file_url);
// Если картинка из PFS. $cfg['pfs_dir']="datas/users/"
if(ereg($cfg['pfs_dir'], $file_url))
{
// Имя картинки и скорректирован полный путь.
$file_name = str_replace($cfg['pfs_dir'], '', $file_url);
$file_name = str_replace("/", "", $file_name);
$file_url = $cfg['pfs_dir'].$file_name;
}
}
// Иначе если это сокращенный thumb.
elseif(count($mt) == 4 && $mt[1] == 'thumb' && $mt[3] == 'thumb')
{
// [0] => [thumb]url/картинка.jpg[/thumb]
// [1] => thumb
// [2] => url/картинка.jpg
// [3] => thumb
// Полный путь на картинку. Исполоьзуются средства защиты.
$file_url = sed_cc($mt[2]);
$file_url = str_replace('&#', '', $file_url);
// Имя полной картинки и скорректирован полный путь.
$file_name = str_replace($cfg['pfs_dir'], '', $file_url);
$file_name = str_replace('/', '', $file_name);
$file_url = $cfg['pfs_dir'].$file_name;
// Скорректирован полный путь малой картинки.
$file_url_small = str_replace($cfg['th_dir'], '', $file_name);
$file_url_small = str_replace("/", "", $file_url_small);
$file_url_small = $cfg["th_dir"].$file_url_small;
}
// Иначе если это картинка с миниатюрой.
elseif(count($mt) == 5 && $mt[1] == 'img' && $mt[4] == 'img')
{
// [0] => [img=url/большая.jpg]url/маленькая.jpg[/img]
// [1] => img
// [2] => url/большая.jpg
// [3] => url/маленькая.jpg
// [4] => img
// Полный путь на полную картинку. Исполоьзуются средства защиты.
$file_url = sed_cc($mt[2]);
$file_url = str_replace('&#', '', $file_url);
// Полный путь на малую картинку. Исполоьзуются средства защиты.
$file_url_small = sed_cc($mt[3]);
$file_url_small = str_replace('&#', '', $file_url_small);
// Если картинка из PFS.
if(ereg($cfg['pfs_dir'], $file_url) || ereg($cfg['th_dir'], $file_url_small))
{
$file_name = str_replace($cfg['pfs_dir'], '', $file_url);
$file_name = str_replace('/', '', $file_name);
}
}
// Иначе если это полный thumb.
elseif(count($mt) == 5 && $mt[1] == 'thumb' && $mt[4] == 'thumb')
{
// [0] => [thumb=url/большая.jpg]url/маленькая.jpg[/thumb]
// [1] => thumb
// [2] => url/маленькая.jpg
// [3] => url/большая.jpg
// [4] => thumb
// Пример: [thumb=datas/thumbs/1-behold_x7_scr01.jpg]1-behold_x7_scr01.jpg[/thumb]
// Вначале маленькая картинка!
// Полный путь на малую картинку. Исполоьзуются средства защиты.
$file_url_small = sed_cc($mt[2]);
$file_url_small = str_replace('&#', '', $file_url_small);
// Полный путь на полную картинку. Исполоьзуются средства защиты.
$file_url = sed_cc($mt[3]);
$file_url = str_replace('&#', '', $file_url);
// Скорректирован полный путь малой картинки.
$file_url_small = str_replace($cfg['th_dir'], '', $file_url_small);
$file_url_small = str_replace("/", "", $file_url_small);
$file_url_small = $cfg["th_dir"].$file_url_small;
// Имя полной картинки и скорректирован полный путь.
$file_name = str_replace($cfg['pfs_dir'], '', $file_url);
$file_name = str_replace('/', '', $file_name);
$file_url = $cfg['pfs_dir'].$file_name;
}
// Иначе если это картинка с описанием (старый сайт на seditio).
elseif(count($mt) == 4 && $mt[1] == 'img')
{
// [0] => [img=описание]url/картинка.jpg[/img]
// [1] => img
// [2] => описание
// [3] => url/картинка.jpg
// Полный путь на картинку. Исполоьзуются средства защиты.
$file_url = sed_cc($mt[3]);
$file_url = str_replace('&#', '', $file_url);
// Если картинка из PFS. $cfg['pfs_dir']="datas/users/"
if(ereg($cfg['pfs_dir'], $file_url))
{
// Имя картинки и скорректирован полный путь.
$file_name = str_replace($cfg['pfs_dir'], '', $file_url);
$file_name = str_replace("/", "", $file_name);
$file_url = $cfg['pfs_dir'].$file_name;
}
// Иначе, берем пришедшие описание.
else
{
// Описание. Исполоьзуются средства защиты.
$file_desc = str_replace("'", '', $mt[2]);
$file_desc = sed_cc($file_desc);
$file_desc = str_replace('&#', '', $file_desc);
}
}
// Если имя файла для поиска сформировано - ищем описание из PFS.
if(strlen($file_name))
{
$sql_pfs=sed_sql_query("select pfs_desc from $db_pfs where pfs_file='".$file_name."' limit 1");
if(sed_sql_numrows($sql_pfs) > 0)
{
$out_pfs = sed_sql_fetcharray($sql_pfs);
$file_desc = $out_pfs['pfs_desc'];
}
}
// Если это картинка с миниатюрой.
if(strlen($file_url) && strlen($file_url_small))
{
$return = "<a href='".$file_url."'";
$return .= strlen($file_desc) ? " title='".$file_desc."'" : "";
$return .= " target='_blank'><img src='".$file_url_small."' class='scale'";
$return .= strlen($file_desc) ? " alt='".$file_desc."' title='".$file_desc."'" : "";
$return .= "></a>";
}
// Иначе, если это просто картинка.
elseif(strlen($file_url))
{
$return = "<img src='".$file_url."' class='img'";
$return .= strlen($file_desc) ? " alt='".$file_desc."' title='".$file_desc."'" : "";
$return .= ">";
}
// Иначе - ошибка.
else
{ $return = "error_img"; }
return $return;
}
return '';
}
function sed_custom_parse($text, $parse_bbcodes = TRUE, $parse_smilies = TRUE, $parse_newlines = TRUE)
{
// Коды. Высокоприоритетная обработка!
$text = preg_replace_callback('`\[code\](.+?)\[/code\]`mis', create_function('$input', 'return("<pre class=\"code\">".sed_bbcode_cdata($input[1])."</pre>");'), $text);
$text = preg_replace_callback('`\[highlight=([\w\-]+)\](.*?)\[/highlight\]`mis', create_function('$input', 'return("<div class=\"highlight\"><pre class=\"".$input[1]."\">".sed_bbcode_cdata($input[2])."</pre></div>");'), $text);
// Картинки.
$text = preg_replace_callback('`\[(img|thumb)\]([^\s"\';\?\(\[]+\.(?:jpg|jpeg|gif|png))\[/(img|thumb)\]`', 'hw_sed_bbcode_pict', $text);
$text = preg_replace_callback('`\[(img|thumb)=([^\s"\';\?\(\[]+\.(?:jpg|jpeg|gif|png))\]([^\s"\';\?\(\[]+\.(?:jpg|jpeg|gif|png))\[/(img|thumb)\]`', 'hw_sed_bbcode_pict', $text);
$text = preg_replace_callback('`\[(img)=(.+?)\]([^\s"\';\?\(\[]+\.(?:jpg|jpeg|gif|png))\[/img\]`', 'hw_sed_bbcode_pict', $text);
return $text;
}
|