PDA

View Full Version : News + Content


BFG
01.07.2011, 16:18
Soniks, поскольку ты один тут всем помогаешь, обращаюсь к тебе...

Можно ли обьединить модули News и Content таким образом, что-бы при написании в Новостях, например, Иван Иванов этот текст автоматически становился ссылкой на определённую статью в Content???

Вроде ясно изьяснил идею...

Soniks
02.07.2011, 12:01
BFG А как вы хотите что бы система определяла на какую именно статью должна вести ссылка. Не легче ли вручную давать? или вы хотите что то на подобии wikiпедии?

BFG
04.07.2011, 03:33
вот в ручную я пока и делаю )))
а так записать бы куда-нить что при сочетании букв, например, "яблоко" ссылка вела на статью с id=1, а "апельсин" id=2
как-то так...

Soniks
04.07.2011, 14:34
Вот пример использования функции: http://danneo.com/article/read/Glossary.html. Достаточно добавить эту функцию в модуль админки новостей и добавить вызов функции перед сохранением текста в БД

BFG
04.07.2011, 21:27
спасибо, ох и наковыряюсь )))
не совсем понял как именно сделать что-бы появлялись конкретные ссылки
беру из образца:

хостинг|хостинг
cms|cms
php|php
файл glossary.txt должен иметь примерно следующее содержание:

хостинг|<a href=www.mysite.ru>хостинг</a>
cms|<a href=www.mysite.ru>cms</a>
php|<a href=www.mysite.ru>php</a>

так что ли???

только не понятно в какой файл и в какое место модуля News вставлять саму функцию???
и где конкретно делать вызов этой самой функции...

ох и люблю я НЮКУ-КОВЫРЯКУ (http://munuke.ru) )))

Soniks
07.07.2011, 15:41
так что ли???
Да правильно.
только не понятно в какой файл и в какое место модуля News вставлять саму функцию???
и где конкретно делать вызов этой самой функции...
Файл: /modules/news/admin/index.php
Добавить можно в функциях postStory() и postAdminStory()
Добавив перед запросом в БД "Insert" $bodytext = GlossaryFilter($bodytext);

BFG
07.07.2011, 23:11
что-то не получается...
добавил функцию в /modules/news/admin/index.php
а в функции postAdminStory()
вставил вот так:
$bodytext = GlossaryFilter($bodytext);
$result = $db->sql_query("insert into ".$prefix."_autonews values (NULL, '$catid', '$aid', '$subject', '$date', '$hometext', '$bodytext', '$topic', '$author', '$notes', '$ihome', '$alanguage', '$acomm', '$associated')");
а в функции postStory() так:
$bodytext = GlossaryFilter($bodytext);
$result = $db->sql_query("insert into ".$prefix."_autonews values (NULL, '$catid', '$aid', '$subject', '$date', '$hometext', '$bodytext', '$topic', '$author', '$notes', '$ihome', '$alanguage', '$acomm', '$associated')");

понимаю что делаю что-то где-то не так... а что именно и где не понимаю. :cry:

Soniks
08.07.2011, 01:28
что-то не получается...
и что в итоге происходит?

BFG
08.07.2011, 10:16
и что в итоге происходит?
остаётся тоже самое, слова из файла не меняются на ссылки, а остаются просто словами...

Soniks
18.07.2011, 14:15
Вы добавили эту возможность для запрограммированных новостей. Ведь вы ставите для запроса в таблицу autonews

BFG
19.07.2011, 18:56
точно, ура, в запрограммированных работает, а куда вставить что-бы и в обычных тоже работало?

и ещё, не работает в начальном тексте статьи, в том который отображается на главной, и когда статью полностью просматриваешь в начальном тексте не фурычит...

Soniks
19.07.2011, 20:05
Все правильно и не будет, мы делали это только для основного текста.
Поищите запрос в БД (INSERT) к таблице _nuws
Если требуется еще и к анонсу, то стоит тоже проделать сданными содержащиеся в функции $hometext

BFG
19.07.2011, 21:02
Спасибо Soniks, всё получилось, пока только для основного текста, дальше доковыряю по необходимости...
правда нужно было искать таблицу _stories, ну с этим то я разобрался )))

Вот только такой ещё вопрос:
вот например такой glossary.txt
Виллаш-Боаш|<a href=/modules.php?name=Content&pa=showpage&pid=60 title="Андре Виллаш-Боаш"><b>Виллаш-Боаш</b></a>
Лэмпард|<a href=/modules.php?name=Content&pa=showpage&pid=9 title="Фрэнк Лэмпард"><b>Лэмпард</b></a>
И если пишу: Лэмпарду - меняет на Лэмпарду (тут всё отлично),
а если Виллаш-Боашу - меняет на Виллаш-Боаш у. (добавляет пробел перед "у")...
с чем это может быть связано?

Soniks
19.07.2011, 22:53
добавляет пробел т.к. происходит замена которая указана в текстовом файле. в конце имеется пробел, он и вставляется. как вариант решения проблемы, либо удалять пробелы в файле в конце строки или изменить функцию чуть-чуть:
$text = str_replace($token[0],trim($token[1]),$text); // заменяем его на ссылку

BFG
19.07.2011, 23:32
Всё, огромное спасибо тебе Soniks разобрался...
пора и самому рнр учить :oooo: