Russian TYPO3 community

Russian TYPO3 community (http://forum.typo3.ru/index.php)
-   Общие вопросы (http://forum.typo3.ru/forumdisplay.php?f=12)
-   -   Как бы вы реализовали каталог Google? (http://forum.typo3.ru/showthread.php?t=933)

Олег 16.01.2006 14:13

Как бы вы реализовали каталог Google?
 
Какие модули вы бы использовали для создания каталога типа Google или Яндекс.
Главные вопросы:
1. Как сделать навигацию типа каталога Google, т. е. ссылки на следующий уровень категорий и на некоторые (особо выделенные) подуровни?
2. А если ту же информацию из иерархического каталога я хочу получить одним списком?
Использовать спец. модуль или можно отшаблонить обычное меню?

Хочется услышать любые замечания по этому поводу. Спасибо

Valery Romanchev 16.01.2006 21:15

re: Как бы вы реализовали каталог Google?
 
Я сейчас как раз делаю такой проект - поисковая машина (nutch) + каталог.
Для каталога - варианта есть 2:

ab_linklist (Modern Linklist) - вообще нормальный и навороченный, но ссылки только в одной категории

sk_linklist - неск. категорий, но нет подсчета кликов (и вообще простоватый)


Остальные:
cmw_linklist 1 categ, clicks counter (not so good as ab_linklist)
av_otherresources (Link database) 1 categ, clicks counter
dd_links (DD Link-Catalog) - many categories, no clicks counter
tt_link 1 category




Олег 17.01.2006 15:21

re: Как бы вы реализовали каталог Google?
 
Спасибо!
Видимо, буду править ab_linklist под свои запросы.
Если есть интерес можно скооперироваться

Valery Romanchev 17.01.2006 17:53

re: re: Как бы вы реализовали каталог Google?
 
да, можно скооперироваться.
romanchev(на)typo3lab.ru
ICQ 120-145-408

Vaspa 22.01.2006 14:34

re: Как бы вы реализовали каталог Google?
 
Сделал возможность назначать много категорий на одну ссылку в BackEnd (с деревом, как в tt_news).
Сейчас работаю над исправлением фронт-энда (4-5 запросов надо переделать).
Потом еще форму добавление ссылки переделать.

Если кто заинтеревован в тестировании - с удовольствием предоставлю этот патч.
Автор экстеншена ответил - он заинтересован.
То есть патч будет интегрирован в следующую версию, что сделает ab_linklist лучшим по всем параметрам :D и может быть таким же популярным как tt_news :roll:

vedomir 23.01.2006 13:42

re: re: Как бы вы реализовали каталог Google?
 
C удовольствыием приму участие в тестировании.

Valery Romanchev 23.01.2006 16:39

re: re: re: Как бы вы реализовали каталог Google?
 

Цитата:

http://www.typo3lab.com/fileadmin/ext/
Пока не сделано добавление ссылок в FE

Есть одна проблема:
куча запросов к базе. По хорошему - это надо переписывать.

Олег 23.01.2006 18:34

re: Как бы вы реализовали каталог Google?
 
Модифицировал ab_linklist, чтобы был тип представления CATALOGUE, похожий на первую страницу каталогов Яндекс и Google. Сделал опцию, чтобы задавать отличающийся тип представления для верхнего уровния иерархии и остальных. Русский перевод для FE.
Подключаю rf_content_comment для комментирования посетителями линков.

2Валерий Романчев: по аське ответа не получил

>куча запросов к базе
не понял - о чем речь. поясни, плиз

Valery Romanchev 24.01.2006 01:50

re: Как бы вы реализовали каталог Google?
 
Цитата:

2Валерий Романчев: по аське ответа не получил
Я не получал сообщений - какой у тебя номер?

Цитата:

>куча запросов к базе
не понял - о чем речь. поясни, плиз
Когда считается количество ссылок в категории, то делается рекурсивно вызывается функция. При каждом вызове - один или два запроса к базе.
Возможно лучше сделать класс categories, один раз его инициализировать (с двумя запросами - и потом уже работать с массивами)

Олег 24.01.2006 11:53

re: Как бы вы реализовали каталог Google?
 
Аська у меня 255-308-799, видимо ты не авторизовал, хотя у меня в списке есть

Про запросы - все надо делать немного иначе. Надо использовать т. н. MM-отношения, для них в typo есть даже спец определения (проще говоря это SQL JOIN). Иначе говоря, заменить такие строки:

$linksInCurrentCategoryResults = $GLOBALS['TYPO3_DB']->exec_SELECTquery( '*', $databaseTable, $theField . '=' . $GLOBALS['TYPO3_DB']->quoteStr( $theValue, $databaseTable ) . ' ' . $whereClause, $groupBy, $orderBy, $limit );

на такие

$linksCurrentCategoryResults = $GLOBALS['TYPO3_DB']->exec_SELECT_mm_query( $databaseTable . '.*',
$databaseTable,
$this->tablePrefix . 'link_cat_mm',
'',
'AND ' . $this->tablePrefix . 'link_cat_mm.uid_foreign =' . $GLOBALS['TYPO3_DB']->quoteStr( $theValue, $databaseTable ) . ' ' . $whereClause, $groupBy, $orderBy, $limit
);

Запросов остается столько же - все объединение решает MySQL. Кроме запросов ничего в коде не меняется.
Ну и, естественно, в TCA.php в 'category' добавляется что-то типа:

'MM' => 'tx_ablinklist_link_cat_mm',
'autoSizeMax' => 25,
'size' => 3,
'minitems' => 0,
'maxitems' => 500


Часовой пояс GMT +4, время: 14:53.

Работает на vBulletin® версия 3.8.1.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot