Всея ПЫХА epsyl adw0rd Мавр ГО Irinax http://hell.helldude.ru - это пиздец

links2news — модуль для ДЛЕ — как говорится, плююсь, но пишу. короче модуль для ДЛЕ по просьбе неизвестного пользователя серча.

Рубрики: (Полезные штуки) Автор: phpdude 31-10-2008

Теги : , , , , , , ,

привет.

знаете, в догонку к прошлому посту, я сидел и думал, вот написать модуль для дле (покопаться в говне другими словами) мне интереснее, чем доделать интернет магазин, видимо все таки рутина уже заебала в конец. Ладно, смотрим код. за то, как расположил код (сделал подобие модуля) не ругайте, ибо я так и не понял что они называют модулем и как его устанавливать если таковые имеются.

Короче идея — вставлять в запись [id]id1,id2,id3[/id] и тут дле должен воткнуть ссылки на статьи с этим ID. Ссылки + анкор стандартный, для быстрой перелинковки, ну и чтобы не собирать информацию о ссылке (это пиздец предложение одного умника на серче). Автор идеи — SERGIOSAN

файл /engine/modules/links2news.php

01: <?
02: function embed_news($string,$delimiter=«<br/>»)
03: {
04: global $db;
05: preg_match_all(«#\\[id\\]([0-9,\\s]+)\\[/id\\]#ism»,$string,$ids);
06: $ids = $ids[1];
07: $fromdb = join(«,»,$ids);
08: if(!$fromdb)
09: {
10: return $string;
11: }
12: $db->query(«SELECT id, title, date, alt_name, category, flag FROM « . PREFIX . «_post WHERE approve=’1′ AND id IN («.$fromdb.«)»);
13: $links = array();
14: while($row = $db->get_row()){
15: $row['date'] = strtotime($row['date']);
16: $row['category'] = intval($row['category']);
17:
18: if ($config['allow_alt_url'] == «yes») {
19:
20: if ($row['flag'] AND $config['seo_type']) {
21:
22: if ($row['category'] AND $config['seo_type'] == 2) {
23:
24: $full_link = $config['http_home_url'].get_url($row['category']).«/».$row['id'].«-».$row['alt_name'].«.html»;
25:
26: } else {
27:
28: $full_link = $config['http_home_url'].$row['id'].«-».$row['alt_name'].«.html»;
29:
30: }
31:
32: } else {
33:
34: $full_link = $config['http_home_url'].date(‘Y/m/d/’, $row['date']).$row['alt_name'].«.html»;
35: }
36:
37: } else {
38:
39: $full_link = $config['http_home_url'].«index.php?newsid=».$row['id'];
40:
41: }
42:
43: if (strlen($row['title']) > 55)
44: $title = substr ($row['title'], 0, 55).» …»;
45: else
46: $title = $row['title'];
47:
48: $go_page = ($config['ajax']) ? «onclick=\»DlePage(‘newsid=».$row['id'].«‘); return false;\» « : «»;
49: if ($config['allow_comments_wysiwyg'] == «yes») $go_page = »;
50:
51: $links[$row[id]] = «<a {$go_page}href=\»".$full_link.«\»>».stripslashes($title).«</a>»;
52: }
53: $db->free();
54: foreach($ids as $place)
55: {
56: $placeids = array_map(«trim»,explode(«,»,$place));
57: $placeids = array_unique($placeids);
58: $placeids = array_intersect($placeids,array_keys($links));
59: $str = array();
60: foreach($placeids as $id)
61: {
62: $str[] = $links[$id];
63: }
64:
65: $string = preg_replace(«#\\[id\\]$place\\[/id\]#i»,join($delimiter,$str),$string);
66: }
67: return $string;
68: }

Потом в конец файла init.php кладем строку

include_once ENGINE_DIR.’/modules/links2news.php’;

И в файле index.php

echo $tpl->result['main'];

Заменяем на

echo embed_news($tpl->result['main'] );

Или

echo embed_news($tpl->result['main'] , «<br/>»);

Если хотим другой разделитель.

Вроде бы все, теперь в любом месте страницы можем вставлять

[id]id1,id2,id3[/id]

Например

[id]3373,3373,3373[/id]

И у нас будут выведены ссылки на эти статьи.

Два слова покоду:

  1. Длинновато — минус модуля DLE — topnews
  2. Бесконечное количество вставок [id][/id] не приведет в бесконечному росту SQL запросов, да я пожалел вашу БД.
  3. Должно работать :) )

Спасибо тем, кто еще со мной :) После автозамен даже материться не хочется, стремно :( . Надо однозначно переключатель. :) )

PS:// распространяется бесплатно, так как с заказчика я денег не взял. мелочь ибо, а 100$ за это платить он отказался :) ))

PS:// больше не заябываю. :) )

PS:// вечно забываю код без подсветки.

links2news

Комментарии RSS тут:

Всего отзывов: 2 на links2news — модуль для ДЛЕ — как говорится, плююсь, но пишу. короче модуль для ДЛЕ по просьбе неизвестного пользователя серча.

Оставьте свой отзыв

XHTML: Вы можете использовать следующие теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

О САЙТЕ

Крик души может быть будет на этом сайте, а может и будет что-нибудь другое :)



Яндекс.Метрика