Помощь - Поиск - Пользователи - Календарь
Полная версия: Robonews.info
Nucleus CMS RuSupport > Пользователям Nucleus > Покажи всем свой Nucleus сайт
Brony
Всем привет!

Под девизом "Robonews.info - мир живой технологии" стартовал новостной блог посвященный "живым" машинам. rolleyes.gif
Буду признателен за Вашу оценку и рекомендации по улучшению.

Отдельное спасибо Suvoroff'у за оперативную помощь.



Suvoroff
отлично сделано
пожалуй лучший сайт что я встречал на движке nucleus.
Suvoroff
Хотелось бы у вас поинтересоваться, как вы реализовали в полной версии новости ссылки на другие новости вместе с небольшой картинкой?
Brony
Спасибо за приятные слова. rolleyes.gif

ЦИТАТА
Хотелось бы у вас поинтересоваться, как вы реализовали в полной версии новости ссылки на другие новости вместе с небольшой картинкой?


Если я вас правильно понял, то вас интересует программная реализация "Читайте также".
Для это пришлось модифицировать код плагина NP_Keywords:

function doTemplateVar(&$item, $limit = 5, $anyblog = "")
{
if ($anyblog == "anyblog") {
$onlyblog = "";
} else {
$onlyblog = "AND i.iblog = " . $this->_getBlogid();
}
$keys=array(0=>"$item->itemid");
$sql = sprintf('SELECT keyword_id FROM %s WHERE key_id=%d',
sql_table('plug_keywords_relationship'),
intval($item->itemid));
$res = sql_query($sql);
while ($keywords = mysql_fetch_row($res)) {
$andkeywords .= 'kr.keyword_id = '. $keywords[0] .' OR ';
}
$andkeywords = substr($andkeywords, 0, strlen($andkeywords)-4);
mysql_free_result($res);
$sql2 = sprintf('SELECT i.inumber,
i.ititle,
i.imore,
i.itime,
i.icat,
i.iauthor,
k.keyword,
c.cname
FROM %s as kr,
%s as i,
%s as k,
%s as c
WHERE (%s)
AND kr.key_id = i.inumber
AND kr.key_id != %d
AND i.idraft = 0
AND i.itime<=%s
AND k.keyword_id = kr.keyword_id
AND c.catid = i.icat
%s
GROUP BY i.inumber
ORDER BY i.itime DESC
LIMIT %d',
sql_table('plug_keywords_relationship'),
sql_table('item'),
sql_table('plug_keywords_keyword'),
sql_table('category'),
$andkeywords,
intval($item->itemid),
mysqldate(time() + 3600 * $manager->settings['btimeoffset']),
$onlyblog,
intval($limit)
);
$res = sql_query($sql2);
// get keyword IDs for this article, now need to get list of articles that have same keyword
while ($o = mysql_fetch_array($res)) {
// uniques only
if ( ! in_array($o[0],$keys) ) {
if ($go != 1) {
echo "<br/><br/>\n\r<h2>Читайте также</h2>\n\r<br/>\n\r";
echo "<table>\n\r";
$go=1;
}
$o[2]=strstr($o[2], '<%image(');
$o[2]=strrev($o[2]);
$o[2]=strstr($o[2], '>%');
$o[2]=strrev($o[2]);
$o[2]=strstr($o[2], '-');
$o[2]=strrev($o[2]);
$o[2]=strstr($o[2], '.10-');
$o[2]=strrev($o[2]);
$o[2]=str_replace("-01.","",$o[2]);
$o[2]=str_replace("-","",$o[2]);
$timestamp = strtotime($o[3]);
$timestamp = date('j.m.Y', $timestamp);
$opendir = "./media/".$o[5];
$ok=0;
if (is_dir($opendir))
{
if ($handle = opendir($opendir)) {
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != ".." && eregi("[0-9]+-".$o[2]."-ra.((gif)|(jpe?g))",$file)) {
$ok=1;
$file=trim($file);
echo '<tr><td valign="top" id="readalso-img"><a href="'.createItemLink($o[0]).'"><img align="abstop" src="'.str_replace(".","",$opendir).'/'.$file.'" width="50" height="30" alt="'.$title[0].'"></a></td>';
break;
}
}
closedir($handle);
} if ($ok == 0)
{
echo '<tr><td valign="top" id="readalso-img"><a href="'. createItemLink($o[0]) .'"><img align="abstop" src='.'"/media/defaultra.jpeg" alt="'.$title[0].'" width="50" height="30"></a></td>';
}
echo "<td align=\"left\" valign=\"top\" id=\"readalso-link\"><em>".$timestamp." / ".$o[7]."</em><br>"; if ($o[1]) echo "<a href=\"". createItemLink($o[0]) ."\">".$o[1]."</a>";
else
echo "<a href=\"". createItemLink($o[0]) ."\">"."Без названия"."</a>";
echo "</td></tr>";
}
}
}
mysql_free_result($res);
if ($go == 1) {
echo "\n\r</table>\n\r";
}
}


Ситуацию с картинками пришлось обыграть своеобразно.
Картинка в smartbody считается основной, например 20070729-Air-01.jpg, здесь главное имя Air.
После чего используя полученное имя можно обратится к картинке 20070729-Air-RA.
Согласился бы с тем, что картинки можно обрабатывать скриптом автоматически. Возможно, в будущем можно будет реализовать.

Кстати, случаи "Это интересно" и 3 новости под шапкой работают аналогично на плагинах NP_MostPopular и плагине собственного
производства (выводит новости с высокими рейтингами за указанный отрезок времени).

Если возникнут еще вопросы или предложения, рассмотрим обязательно.

p.s. Прошу извинить за ужасное оформление кода, не было времени сделать все красиво. unsure.gif
Это "текстовая" версия, возможен просмотр только основного контента. Для просмотра полной версии этой страницы, пожалуйста нажмите сюда.
Invision Power Board © 2001-2019 Invision Power Services, Inc.