Иконка ресурса

Персоны кино 2.0.2

Нет прав для скачивания
Совместимость
проверялся на совместимость
Изменения в БД
требуются
Дополнительные требования
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', '');
2-е. Открыть (library/includes/init_bb.php).
Найти:
PHP:
define('BB_ADS', 'bb_ads');
Ниже вставить:
PHP:
define('BB_PERSON', 'bb_person');
3-е. Открыть (library\includes\page_header.php).
Найти:
PHP:
   'U_TRACKER'  => "tracker.php",
Ниже вставить:
PHP:
   'U_PERSON'         => "person.php",
4-е. Вставить код в конец (library\language\[ru, en, uk]\main.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 персоны!';
5-е. Открыть (styles\templates\default\page_header.tpl).
Найти:
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');
  }
8-е. Открыть (library/includes/functions.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;
  }
  }
  }
}
9-е. Открыть (library/includes/bbcode.php) и найти.
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);
  }
  }
10-е. Открыть (library/includes/functions_post.php) найти:
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);
  }
  }
11-е. Скапировать все файлы в кореть сайта и дать права (777) папке {data/person}:

Минимальня версия PHP не ниже 5.4

Вроде все. Спасибо за внимание! Ошибки, предложения, идеи. Пишите тут будем реализовывать по мере возможностей.
  • Image 1.png
    Image 1.png
    20.3 KB · Просмотры: 355
  • Image 2.png
    Image 2.png
    341.9 KB · Просмотры: 355
  • Image 3.png
    Image 3.png
    247.9 KB · Просмотры: 348
  • Image 4.png
    Image 4.png
    30.9 KB · Просмотры: 346
  • Мне нравится
Реакции: boko
Автор
ВаленокPC
Скачивания
60
Просмотры
60
Первый выпуск
Обновление
Оценка
5.00 звёзд 5 оценок

Другие ресурсы пользователя ВаленокPC

  • Блэкджек
    Блэкджек
    Карточная игра блэкджек (англ. blackjack).
  • Настроение
    Настроение
    Добавляет возможность указать настроение пользователя.

Последние обновления

  1. Мелки исправления

    Исправил мелкие баги, найденные в ходе проверки! Спасибо всем за тестирование мода!
  2. Мод переделан

    Все выше пожелания, исправления были учтены. Добавлен парсер! Переписан языковой файл на person...
  3. Новая версия (1.0)

    Исправлены ранние найденные ошибки. Перенесено добавление актеров, редактирование и обновление...
  4. Новая версия (0.3)

    Исправлены найденные ошибки. Добавлен кеш. Добавлен раздачи актера. Сайт выдавал ошибку при...
Сверху