- Совместимость
- проверялся на совместимость
- Изменения в БД
- требуются
- Дополнительные требования
- curl, php-5.4
- Автор
- ВаленокPC
- Общественное достояние
- да
Вывод персон
- Инструкция по установке
-
1-е. Сделать запрос в базу.
Код:CREATE TABLE IF NOT EXISTS `bb_person` ( `pers_id` smallint(5) unsigned NOT NULL AUTO_INCREMENT, `pers_runame` varchar(150) NOT NULL DEFAULT '', `pers_enname` varchar(150) NOT NULL DEFAULT '', `pers_gender` tinyint(1) NOT NULL DEFAULT '0', `pers_biography` text NOT NULL, `pers_career` varchar(150) NOT NULL DEFAULT '', `pers_foto` varchar(200) NOT NULL DEFAULT '', `pers_birthdate` date NOT NULL DEFAULT '0000-00-00', `pers_birthplace` varchar(255) NOT NULL, `kp_id` mediumint(8) NOT NULL, PRIMARY KEY (`pers_id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; INSERT INTO `bb_config` VALUES ('pers_enable', '1'); INSERT INTO `bb_config` VALUES ('pers_repl_text', '<a href="person.php?id={id}">{name}</a>'); INSERT INTO `bb_config` VALUES ('pers_per_page', '40'); INSERT INTO `bb_config` VALUES ('pers_photo_dir', 'data/person'); INSERT INTO `bb_config` VALUES ('pers_idkp_list', '');
Найти:
PHP:define('BB_ADS', 'bb_ads');
PHP:define('BB_PERSON', 'bb_person');
Найти:
PHP:'U_TRACKER' => "tracker.php",
PHP:'U_PERSON' => "person.php",
PHP://Person $lang['PERS_PERSONS'] = 'Персоны'; $lang['PERS_RU_NAME'] = 'Имя на Русском'; $lang['PERS_EN_NAME'] = 'Имя на Английском'; $lang['PERS_NAME'] = 'Имя персоны'; $lang['PERS_ID'] = 'ID персоны'; $lang['PERS_BIRTHDATE'] = 'Дата рождения'; $lang['PERS_BIRTHPLACE'] = 'Место рождения'; $lang['PERS_FOTO'] = 'Фотография'; $lang['PERS_CAREER'] = 'Карьера'; $lang['PERS_BIOGRAPHY'] = 'Биография'; $lang['KP_ID'] = 'ID страницы на Кинопоиске'; $lang['KP_STR'] = 'Страница на Кинопоиске'; $lang['PERS_INFO'] = 'Информация о персоне'; $lang['PERS_LIST'] = 'Список персон'; $lang['PERS_EDIT'] = 'Редактирование персоны'; $lang['PERS_LIST_TORR'] = 'Раздачи с персоной'; $lang['PERS_EDIT_TETLE'] = 'Редактирование персоны'; $lang['PERS_NEW_ADD_TETLE'] = 'Добавление персоны'; $lang['NO_PERS_NAME'] = 'Вы должны указать имя персоны.'; $lang['PERS_NO_LIST'] = 'Список пуст'; $lang['PERS_NO'] = 'Такого актера не существует.'; $lang['PERS_ADD'] = 'Персона была успешно добавлена!'; $lang['PERS_EDITED'] = 'Персона была успешно изменена!'; $lang['PERS_DELETED'] = 'Персона была успешно удалена!'; $lang['PERS_U_RETURN'] = 'Перейти к просмотру персоны'; $lang['PERS_CONFIRM_DELETE'] = 'Вы уверены, что хотите удалить эту персону?'; $lang['PERS_NO_BIRTHDAY'] = 'Вы не указали дату рождения!'; $lang['PERS_WORK_IMAGES_FORMAT'] = 'Не верный формат изображения! Доступны только (gif, png, jpg)'; $lang['PERS_NO_TORR_LIST'] = 'Нет раздач с этой персоной.'; $lang['KP_ID_NO_FORMAT'] = 'Вы должны указать только число.'; $lang['PERS_THERE'] = 'Эта персона уже есть!'; $lang['ZODIAC_SIGN'] = array( 'AQUARIUS' => 'Водолей', 'ARIES' => 'Овен', 'CANCER' => 'Рак', 'CAPRICORN' => 'Козерог', 'GEMINI' => 'Близнецы', 'LEO' => 'Лев', 'LIBRA' => 'Весы', 'PISCES' => 'Рыбы', 'SAGITTARIUS' => 'Стрелец', 'SCORPIO' => 'Скорпион', 'TAURUS' => 'Телец', 'VIRGO' => 'Дева', ); //Person Admin $lang['AD_PERS_PANEL'] = 'Управление персонами'; $lang['AD_PERS_PANEL_EXPLAIN'] = 'Здесь вы можете добавлять, редактировать, просматривать и удалять персон. Вы также можете обновить базу.'; $lang['AD_PERS_ADD_NEW'] = 'Добавить персону'; $lang['AD_PERS_SYC'] = 'Обновить посты'; $lang['AD_PERS_ENABLE'] = 'Включить показ персон'; $lang['AD_PERS_ENABLE_EXPLAIN'] = 'Выделять персон в торрен раздачах'; $lang['AD_PERS_PER_PAGE'] = 'Персон на страницу'; $lang['AD_PERS_REPLACE_TEXT'] = 'Как будет выглядеть ссылка в топиках'; $lang['AD_PERS_CONFIG'] = 'Настройки'; $lang['AD_PERS_CONFIG_EXPLAIN'] = 'Эта форма позволит вам изменить настройки мода персоны.'; $lang['AD_PERS_CONFIG_UPDATED'] = 'Настройки персон успешно изменены'; $lang['AD_CLICK_RETURN_PERS_LIST'] = '%sПерейти к списку персон%s'; $lang['AD_CLICK_RETURN_PERS_CONFIG'] = '%sВернуться к настройкам%s'; $lang['AD_PERS_IDKP_LIST'] = 'Список ID персон с КиноПоиска'; $lang['AD_PERS_IDKP_LIST_EXPLAIN'] = 'Каждый <b>ID</b> должен отделятся запятой!'; $lang['AD_PERS_PHOTO_DIR'] = 'Путь к фотографиям'; $lang['AD_PERS_PHOTO_DIR_EXPLAIN'] = 'Куда будут скачиватся фотографии персон (Путь указывать относительно корня сайта).'; //Person Parser Admin $lang['AD_PERS_PARSER'] = 'Парсер'; $lang['AD_PERS_PARSER_RUN'] = 'Запустить парсер'; $lang['AD_PERS_AUTO_PARSER'] = 'Автоматический парсер персон'; $lang['AD_PERS_PARSER_THERE'] = 'Эта персона уже есть! - <b>[NAME:<a target="_parent" href="/person.php?id=%s">%s</a>]</b>'; $lang['AD_PERS_PARSER_NOT_FOUND'] = 'Ничего не найдено! - <b>[ID:%s]</b>'; $lang['AD_PERS_PARSER_ADD_NEWS'] = 'Добавлена новая персона! - (<b><a target="_parent" href="/person.php?id=%s">%s</a></b>)'; $lang['AD_PERS_PARSER_ERROR_NOT_NAME'] = '<b>Персона не добавлена (Имя персоны пусто)! - <i>[ID:%s]</i><b> '; $lang['AD_PERS_PARSER_ERROR'] = '<b>ОШИБКА</b>, неверные настройки парсера!'; $lang['AD_PERS_PARSER_LIST_EMPTY'] = '<b>ОШИБКА</b>, Список ID персон пуст! Укажите в настройках.'; $lang['AD_PERS_PARSER_INVALID_ID'] = 'Персоны с таким ID нет!'; $lang['AD_PERS_PARSER_NOT_ID'] = 'Вы не указали ID персоны!';
Найти:
PHP:<a href="{U_TRACKER}"><b>{L_TRACKER}</b></a><span style="color:#CDCDCD;">|</span>
PHP:<a href="{U_PERSON}"><b>{L_PERS_PERSONS}</b></a><span style="color:#CDCDCD;">|</span>
6-е. Вставить код в конец (styles\templates\default\css\main.css).
Код:.listPersons{letter-spacing:-5px;clear:both;display:inline-block;font-family:Tahoma,Geneva,sans-serif;width:100%}.listPersons li{box-shadow:1px 1px 0 rgba(0,0,0,.1) inset,-1px -1px 0 rgba(0,0,0,.1) inset;margin:0 .4% 1%;width:11%;padding:.3%;border-radius:2px;display:inline-block;zoom:1;vertical-align:top;letter-spacing:normal;font-size:80%;color:#666;position:relative}.listPersons li a.thumb{margin:0;background-size:auto 101%;background-position:center;background-repeat:no-repeat;display:block;position:relative;border-radius:2px;overflow:hidden}.listPersons li a.thumb img,.listPersons li span.sthumbs a img{width:100%;height:auto;display:inline-block;zoom:1;border:none}.listPersons li span.base{position:absolute;bottom:0;left:0;width:95%;padding:.3% 2.5%;background:rgba(0,0,0,.75)}.listPersons li span.nameru{font-size:160%;font-weight:700;margin:0;color:#fff;line-height:160%;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;font-family:'Helvetica Neue',Helvetica,Arial;display:block;text-decoration:none}.listPersons li p.nameen{font-size:90%;display:block;margin:0 0 6px;color:#ccc}
7-е. Открыть (ajax.php) и найти:
PHP:case 'sitemap'; require(CLASS_DIR .'sitemap.php'); break;
PHP:case 'person'; require_once (CLASS_DIR .'person.class.php'); break; }
Найти:
PHP:'post_mod_comment' => array('mod'),
PHP:'person' => array('mod'),
найти:
PHP:function sitemap() { require(AJAX_DIR .'sitemap.php'); }
PHP:function person() { require(AJAX_DIR .'mod_person.php'); }
PHP:function get_zodiac($birthday, $mode = 'full') { global $lang; if (!empty($birthday)) { list($bmonth, $bday) = array_map('intval', explode('-', substr($birthday, 5))); $zodiac_array = array( 'aries' => array(3, 21, 4, 20), 'taurus' => array(4, 21, 5, 20), 'gemini' => array(5, 21, 6, 21), 'cancer' => array(6, 22, 7, 22), 'leo' => array(7, 23, 8, 23), 'virgo' => array(8, 24, 9, 23), 'libra' => array(9, 24, 10, 23), 'scorpio' => array(10, 24, 11, 22), 'sagittarius' => array(11, 23, 12, 21), 'capricorn' => array(12, 22, 1, 20), 'aquarius' => array(1, 21, 2, 20), 'pisces' => array(2, 21, 3, 20), ); foreach ($zodiac_array as $sign => $date) { if (($bmonth == $date[0] && $bday > $date[1]) || ($bmonth == $date[2] && $bday < $date[3])) { $image = BB_ROOT .'styles/images/zodiac/' . $sign . '.gif'; $title = $lang['ZODIAC_SIGN'][(strtoupper($sign))]; switch ($mode){ case 'name': $data = $title; break; case 'images': $data = "<img src='$image' alt='$title' title='$title' style='vertical-align:middle;' />"; break; case 'full': $data = "($title) <img src='$image' alt='$title' title='$title' style='vertical-align:middle;' />";; break; } return $data; } } } }
PHP:$message = bbcode2html($postrow['post_text']);
PHP:if($bb_cfg['pers_enable']){ $actrow = DB()->fetch_rowset("SELECT pers_id, pers_runame, pers_enname FROM " . BB_PERSON . ' ORDER BY pers_id ASC'); if ($actrow){ foreach ($actrow as $key => $row) { $runame = explode(',', $row['pers_runame']); $enname = explode(',', $row['pers_enname']); $array_name = array_diff(array_merge($runame, $enname), array('')); foreach ($array_name as $word) { $name[] = $word; $replace[] = str_replace(array('{id}', '{name}'), array($row['pers_id'], $word), $bb_cfg['pers_repl_text']); } } $message = str_replace($name, $replace, $message); } }
PHP:update_post_html(array( 'post_id' => $post_id, 'post_text' => $post_message, ));
PHP:if($bb_cfg['pers_enable']){ $actrow = DB()->fetch_rowset("SELECT pers_id, pers_runame, pers_enname FROM " . BB_PERSON . ' ORDER BY pers_id ASC'); if ($actrow){ foreach ($actrow as $key => $row) { $runame = explode(',', $row['pers_runame']); $enname = explode(',', $row['pers_enname']); $array_name = array_diff(array_merge($runame, $enname), array('')); foreach ($array_name as $word) { $name[] = $word; $replace[] = str_replace(array('{id}', '{name}'), array($row['pers_id'], $word), $bb_cfg['pers_repl_text']); } } $message = str_replace($name, $replace, $message); } }
Минимальня версия PHP не ниже 5.4
Вроде все. Спасибо за внимание! Ошибки, предложения, идеи. Пишите тут будем реализовывать по мере возможностей.