Как добавить блок «Новые закладки»

На сей раз речь пойдет о небольшом дополнении к модулю bookmarks(bookmarks2).
Этот модуль позволяет пользователям сохранять в закладки ссылки на выбранные страницы. В блоке, выводимом модулем отображаются уже сохраненные пользователем закладки, а также «Добавить» и «Изменить».

 

Также модуль bookmarks2 обладает дополнительным функционалом, вроде сортировки закладок по папкам и инструментом для сохранения паролей, который нас пока не касается.
По сути, модуль должен сделать из нашего сайта на Drupal аналог сервиса социальных закладок, ориентированный на тематику сайта (хотя необязательно). Но есть в нем один на мой взгляд недостаток. Открыв практически любой сайт закладок, мы на главной странице обязательно увидим закладки, добавленные последними, а также самые популярные закладки. Ясно, что такой вариант нас не устраивает, т.к. скрывать тематику сайта, его содержимое за всей этой мишурой из чужих закладок мы не хотим. Но вот добавить небольшой блок, выводящий скажем 3 закладки, добавленные последними, нам вполне по силам. Такой блок станет дополнением к сайту и не превратит его в подобие социальной сети.

Первым делом нам необходимо удалить таблицу bookmarks(bookmarks2), которая создалась в базе данных при установке модуля. Для этого выполним такой SQL-запрос

DROP TABLE bookmarks2;

Теперь создадим эту таблицу снова, добавив в нее поле bid (id закладки)

CREATE TABLE IF NOT EXISTS `bookmarks2` (
 `bid` int(10) unsigned NOT NULL auto_increment,
 `uid` int(10) unsigned NOT NULL,
 `url` varchar(128) NOT NULL,
 `title` varchar(128) NOT NULL,
 `description` text,  `fid` mediumint(9) unsigned NOT NULL,
 `uname` varchar(80) default NULL,
 `pword` varbinary(255) default NULL,
 `options` tinyint(3) unsigned NOT NULL default '0',
  PRIMARY KEY  (`bid`),
  KEY `uid` (`uid`),
  KEY `fid` (`fid`)) ENGINE=MyISAM DEFAULT CHARSET=cp1251;

Предварительная подготовка на этом закончена, создаем блок следующего содержания:

<?php
 
$info = db_query("SELECT * FROM {bookmarks2} ORDER BY bookmarks2.bid DESC LIMIT 0, 3");
while ( $data = db_fetch_object($info) )
{
$tmp=db_query("SELECT name FROM {users} WHERE uid=$data->uid");
$user = db_fetch_object($tmp);
print '<ul><li>' . l($data->title, $data->url) . '. Сохранил – ' . l($user->name,'users/' . $user->name ) . '</ul></li>';
} // while
 
?>

Ниже несколько примеров использования этого блока

 

 

 

 

Комментарии

Добавить комментарий

Адрес показан не будет
CAPTCHA
Антибот
Как оформить комментарий?