Как изменить стандартные bbcode

Есть любые вопросы, связанные со стилями/темами для phpBB 3.0.x? Задайте их здесь!
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
alcash
phpBB 1.4.4
Сообщения: 184
Стаж: 14 лет 4 месяца
Откуда: примосковье
Благодарил (а): 83 раза
Поблагодарили: 1 раз
Забанен: Бессрочно

Re: Как изменить стандартные bbcode

Сообщение alcash »

Спасибо, эту тему я читал, мне собственно не это нужно, я уже объяснял в удаленном посте, что нужен счетчик времени от заданной даты, юзер в личных настройках, доп полях профиля задает эту дату, счетчик обрабатывает разницу между сегодняшней и заданной датой и в форуме под аватаркой высвечивается результат - сколько лет, месяцев и дней прошло с этой даты, например не курю уже: 1 год 4 месяца и 5 дней.
В общем не картинка, а в виде текста. Есть 2 форума, где это реализовано, один ноусмокинг (phpBB2), другой нотдринк (IPBoard 2.3.4), я к ним обращался с просьбой поделится секретом, но админы говорят, что писали руками и уже не помнят как писали и кто писал :D
Аватара пользователя
evrus01
Former team member
Сообщения: 1274
Стаж: 15 лет 6 месяцев
Откуда: Москва
Благодарил (а): 107 раз
Поблагодарили: 234 раза

Re: Как изменить стандартные bbcode

Сообщение evrus01 »

alcash, в "кастомном" поле можно указать тип [Дата] — это стандартная функция phpBB.
Т.е. мы уже можем (используя лишь стандартный функционал) в профиле написать: не пью с 01 окт 1995

Осталось придумать, как это отображать, ввиде: не пью 6 лет 2 мес. 3 дн.

Есть такой хак, который меняет дату регистрации на стаж. Посмотрите, как сделано там — может получится применить к "кастомному" полю.
Аватара пользователя
alcash
phpBB 1.4.4
Сообщения: 184
Стаж: 14 лет 4 месяца
Откуда: примосковье
Благодарил (а): 83 раза
Поблагодарили: 1 раз
Забанен: Бессрочно

Re: Как изменить стандартные bbcode

Сообщение alcash »

хак, который меняет дату регистрации на стаж
Это интересно, жаль гугль молчит как партизан, если есть ссылочка на хак, выложите пожалуйста.
Нашел в инете стопицот кодов счетчиков на странице форума типа До Нового Года осталось, думал может там чего переделать, задача однотипная, счетчик показывает обратный отсчет как разницу между заданной и сегодняшней датой, а мне нужно с точностью до наоборот, я такой один счетчик скачал и включил в overal_header, тупо просмотрев мельком и поменяв местами даты, конечную и начальную, но проверить работу не удалось, так как получил белый экран после очистки кэша в админке. :lol: :lol: Пришлось заливать бэкап.
Аватара пользователя
evrus01
Former team member
Сообщения: 1274
Стаж: 15 лет 6 месяцев
Откуда: Москва
Благодарил (а): 107 раз
Поблагодарили: 234 раза

Re: Как изменить стандартные bbcode

Сообщение evrus01 »

alcash писал(а):Это интересно, жаль гугль молчит как партизан

[Стаж] Length of service for phpBB3
Только я не знаю, получится ли применить к дополнительному полю эту модификацию (сделать по аналогии) — я не вдавался в подробности.

А для начала попробуйте сделать, как я вам посоветовал (стандартными средствами) — "кастомное" поле в режиме дата:
Скриншот 1
Скриншот 2
Скриншот 3
Shredder
Former team member
Сообщения: 2266
Стаж: 17 лет 9 месяцев
Благодарил (а): 283 раза
Поблагодарили: 584 раза

Re: Как изменить стандартные bbcode

Сообщение Shredder »

evrus01 писал(а):Только я не знаю, получится ли применить к дополнительному полю эту модификацию (сделать по аналогии) — я не вдавался в подробности.
Доп. поля типа "Время" заносятся в БД в обычном формате ДД-ММ-ГГГГ - как-то так, порядок точный не помню. А дата регистрации пользователя - в формате unix, удобном для операций с ним с помощью стандартных функций и вывода на экран. Так что без дополнительных плясок с бубном там ничего не получится.
Аватара пользователя
evrus01
Former team member
Сообщения: 1274
Стаж: 15 лет 6 месяцев
Откуда: Москва
Благодарил (а): 107 раз
Поблагодарили: 234 раза

Re: Как изменить стандартные bbcode

Сообщение evrus01 »

Тогда самый простой выход из этой ситуации — это Рекрутинг

Добавлено спустя 32 секунды:
А по мне, так можно и без этого стажа обойтись — датой

Добавлено спустя 4 минуты 39 секунд:
Shredder, я думаю, там можно сделать по аналогии с возрастом, наверно.
Аватара пользователя
alcash
phpBB 1.4.4
Сообщения: 184
Стаж: 14 лет 4 месяца
Откуда: примосковье
Благодарил (а): 83 раза
Поблагодарили: 1 раз
Забанен: Бессрочно

Re: Как изменить стандартные bbcode

Сообщение alcash »

evrus01, допполе с датой отказа от алкоголя уже есть. http://forum.alconar.ru/viewtopic.php?f ... 3301#p3287
Только народ, избалованный форумами на движке IBB требует у меня такого-же функционала, в принципе уже близко после установки стопицот модов :lol:
А вот это: [Стаж] Length of service for phpBB3 - то, что нужно! Спасибо огромное!!

Shredder,
Так что без дополнительных плясок с бубном там ничего не получится.
Танцы с бубном это нашефсе, я честно говоря не подозревал, что админить форум это столько работы и бессонных ночей. :lol:

evrus01, рекрутинг не наш метод, будем сами, сами, ручками. ;)
Аватара пользователя
МайскийЖук
phpBB 3.0.7-PL1
Сообщения: 2535
Стаж: 16 лет 11 месяцев
Благодарил (а): 17 раз
Поблагодарили: 366 раз

Как изменить стандартные bbcode

Сообщение МайскийЖук »

А чо вы тогда IPB не поставили?
Любовь и боль, покой и бой я как любой несу с собой…
Аватара пользователя
x00peR
phpBB 2.0.3
Сообщения: 368
Стаж: 15 лет 7 месяцев
Благодарил (а): 75 раз
Поблагодарили: 15 раз

Re: Как изменить стандартные bbcode

Сообщение x00peR »

Было вот так:

Код: Выделить всё

/* Quote block */
.ca-quote {
	background-image: url("{T_THEME_PATH}/images/bb_quote.gif");
}

blockquote cite {
    color: #666;
}
Сделал так:

Код: Выделить всё

/* Quote block */
.ca-quote {
background-color: #DBDBCE; 
color: #000000; 
width: 100%; 
-moz-border-radius: 16px; 
-webkit-border-radius: 16px; 
border: 1px solid #c8c8bd; 
padding: 4px;
font-size: 1em;
}

blockquote cite {
background-color: #f3f2e9; 
color: #000000; 
width: auto; 
-moz-border-radius: 16px; 
-webkit-border-radius: 16px; 
border: 3px double #c8c8bd; 
padding: 4px;
font-size: 1em;
}
Но почему то рамка от старой цитаты осталась. Правил colours.css
Красным показана ненужная рамка.
Зеленым - так нужно сделать.

Добавлено спустя 32 секунды:
Как изменить на то что нужно?

Добавлено спустя 17 минут 53 секунды:
Было вот так в colours.css

Код: Выделить всё

/* BB Code styles
----------------------------------------*/
.ca-bbcode {
    border-color: #dadada;
	background-image: url("{T_THEME_PATH}/images/bb_bg.gif");
	background-color: #fafafa;
}
.ca-bbcode2 {
    border-color: #fff;
}

/* Quote block */
.ca-quote {
	background-image: url("{T_THEME_PATH}/images/bb_quote.gif");
}

blockquote cite {
    color: #666;
}

/* Code block */
И bbcode.html

Код: Выделить всё

<!-- BEGIN quote_username_open --><div class="ca-bbcode"><div class="ca-bbcode2 ca-quote"><blockquote><div><cite>{USERNAME} {L_WROTE}:</cite><!-- END quote_username_open -->
<!-- BEGIN quote_open --><div class="ca-bbcode"><div class="ca-bbcode2 ca-quote"><blockquote class="uncited"><div><!-- END quote_open -->
<!-- BEGIN quote_close --></div></blockquote></div></div><!-- END quote_close -->
В bbcode.html сделал так:

Код: Выделить всё

<!-- BEGIN quote_username_open --><div class="ca-quote"><blockquote><div><cite>{USERNAME} {L_WROTE}:</cite><!-- END quote_username_open -->
<!-- BEGIN quote_open --><div class="ca-quote"><blockquote class="uncited"><div><!-- END quote_open -->
<!-- BEGIN quote_close --></blockquote></div><!-- END quote_close -->
И все получилось, рамка убралась. Только вот не пойму как сделать так, чтобы ширина не была на всю страницу. Нужно сделать так, как показано на рисунке. (в зеленом овале). Что то не могу сообразить.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Shredder
Former team member
Сообщения: 2266
Стаж: 17 лет 9 месяцев
Благодарил (а): 283 раза
Поблагодарили: 584 раза

Re: Как изменить стандартные bbcode

Сообщение Shredder »

alcash писал(а):А вот это: [Стаж] Length of service for phpBB3 - то, что нужно! Спасибо огромное!!
Попробуйте так:
Создать дополнительное поле с идентификатором date, закачать файлы от мода Length of service в папку форума, затем отредактировать следующие файлы:

viewtopic.php
Найти:

Код: Выделить всё

$sql = $db->sql_build_query('SELECT', array(
	'SELECT'	=> 'u.*, z.friend, z.foe, p.*',

	'FROM'		=> array(
		USERS_TABLE		=> 'u',
		POSTS_TABLE		=> 'p',
	),

	'LEFT_JOIN'	=> array(
		array(
			'FROM'	=> array(ZEBRA_TABLE => 'z'),
			'ON'	=> 'z.user_id = ' . $user->data['user_id'] . ' AND z.zebra_id = p.poster_id'
		)
	),

	'WHERE'		=> $db->sql_in_set('p.post_id', $post_list) . '
		AND u.user_id = p.poster_id'
));

$result = $db->sql_query($sql);
Заменить на:

Код: Выделить всё

$sql = $db->sql_build_query('SELECT', array(
	'SELECT'	=> 'u.*, z.friend, z.foe, p.*, d.pf_date',

	'FROM'		=> array(
		USERS_TABLE		=> 'u',
		POSTS_TABLE		=> 'p',
	),

	'LEFT_JOIN'	=> array(
		array(
			'FROM'	=> array(ZEBRA_TABLE => 'z'),
			'ON'	=> 'z.user_id = ' . $user->data['user_id'] . ' AND z.zebra_id = p.poster_id'
		),
		array(
			'FROM'	=> array(PROFILE_FIELDS_DATA_TABLE => 'd'),
			'ON'	=> 'd.user_id = p.poster_id'
		)
	),

	'WHERE'		=> $db->sql_in_set('p.post_id', $post_list) . '
		AND u.user_id = p.poster_id'
));

$result = $db->sql_query($sql);

$user->add_lang('mods/length_of_service');
include($phpbb_root_path . 'includes/delta_russian.' . $phpEx);
$current_time = time();
$dM = new Date_DeltaRussian("mday");
Найти:

Код: Выделить всё

				'age'				=> '',
Добавить после:

Код: Выделить всё

				'time'				=> '',
Найти:

Код: Выделить всё

				'age'			=> '',
Добавить после:

Код: Выделить всё

				'time'			=> '',
Найти:

Код: Выделить всё

					$user_cache[$poster_id]['age'] = (int) ($now['year'] - $bday_year - $diff);
				}
			}
Добавить после:

Код: Выделить всё

			if (!empty($row['pf_date']))
			{
				list($day, $month, $year) = array_map('intval', explode('-', $row['pf_date']));

				if ($year)
				{
					$unitime = gmmktime(0, 0, 0, $month, $day, $year);
					$user_cache[$poster_id]['time'] = $dM->spellDelta($unitime, $current_time);
				}
			}
Найти:

Код: Выделить всё

		'POSTER_AGE'		=> $user_cache[$poster_id]['age'],
Добавить после:

Код: Выделить всё

		'POSTER_TIME'		=> $user_cache[$poster_id]['time'],
После этого в шаблоне viewtopic_body.html можно будет использовать переменную {postrow.POSTER_TIME}. Например, найти:

Код: Выделить всё

					<!-- END custom_fields -->
Добавить после:

Код: Выделить всё

					<!-- IF postrow.POSTER_TIME --><br />{postrow.POSTER_TIME}<!-- ENDIF -->
Разукрасить в синий цвет или применить какой-то другой стиль уже не составит труда.

Примечание: если идентификатор созданного вами доп. поля будет отличаться, то найти 3 вхождения pf_date в коде для viewtopic.php и заменить часть date на собственное название.
Аватара пользователя
Пчелкин
phpBB 3.3.0
Сообщения: 11361
Стаж: 16 лет 8 месяцев
Благодарил (а): 1832 раза
Поблагодарили: 1358 раз

Re: Как изменить стандартные bbcode

Сообщение Пчелкин »

Shredder гений...
Shredder писал(а):идентификатор созданного вами доп. поля будет отличаться
У меня не отличается..все заработало как надо...
NIKON-D90, AF-S 18-105, AF-S 14-24, AF-S 24-70
Аватара пользователя
alcash
phpBB 1.4.4
Сообщения: 184
Стаж: 14 лет 4 месяца
Откуда: примосковье
Благодарил (а): 83 раза
Поблагодарили: 1 раз
Забанен: Бессрочно

Re: Как изменить стандартные bbcode

Сообщение alcash »

Попробуйте так...
Shredder, ну что вам сказать... Вы ГЕНИЙ !!! :D

http://forum.alconar.ru/viewtopic.php?f=2&p=3054#p73
Аватара пользователя
alcash
phpBB 1.4.4
Сообщения: 184
Стаж: 14 лет 4 месяца
Откуда: примосковье
Благодарил (а): 83 раза
Поблагодарили: 1 раз
Забанен: Бессрочно

Re: Как изменить стандартные bbcode

Сообщение alcash »

Не сочтите за наглость, товарищи, можно вопросик, хочу добавить bb-коды следующего содержания:

Код: Выделить всё

<input class="colortext button-blue" type='text'  value="{INTTEXT}" size ="{INTTEXT}" />
, но элемент для ввода никак не хочет быть шириною в заданный текст {INTTEXT}, если знаков немного, остается свободное поле, если много - часть текста скрывается. Если задать ширину фиксированной,

Код: Выделить всё

<input class="colortext button-blue" type='text'  value="{INTTEXT}" size ="100px" />
, то даже если количество знаков {INTTEXT} известно, в зависимости от размеров шрифта опять либо свободное место, либо скрытие.
Кто подскажет как эту задачу решить?
Например с кнопкой все просто и понятно, там ширина кнопки точно равна заданному тексту:

Код: Выделить всё

<input class="button button-blue" type="button" value="{INTTEXT}"  />
Аватара пользователя
evrus01
Former team member
Сообщения: 1274
Стаж: 15 лет 6 месяцев
Откуда: Москва
Благодарил (а): 107 раз
Поблагодарили: 234 раза

Re: Как изменить стандартные bbcode

Сообщение evrus01 »

alcash, все-таки наверно не там вопрос задаете.
На ГУРУ принято: одна тема — один вопрос (http://www.phpbbguru.net/community/rules/#rule2.3)
Если конечно же данная тема не обсуждалась.

Правильнее, было бы написать вопрос в этой теме — [FAQ] Пользовательские BBCode

Не сочтите за нравоучение, но есть правила и их необходимо соблюдать.

Добавлено спустя 2 минуты 11 секунд:
http://stepbystep.htmlbook.ru/?id=25
Аватара пользователя
alcash
phpBB 1.4.4
Сообщения: 184
Стаж: 14 лет 4 месяца
Откуда: примосковье
Благодарил (а): 83 раза
Поблагодарили: 1 раз
Забанен: Бессрочно

Re: Как изменить стандартные bbcode

Сообщение alcash »

Да, извиняюсь, :oops: можно перенести пост в соответствующий раздел.

evrus01, так и не получается ширина поля ввода по ширине контента. Пробовал играться и size и width :cry:
Просто данное свойство отсутствует в стиле текст и динамически не изменяется как у кнопки.

Вернуться в «Стили для phpBB 3.0.x»