Към съдържанието

  •  

Most Liked Content


IPB SEO

Posted poznai on 05 February 2013 - 16:14 in IP.Board 3.4.x

За да имаме по-голям успех в търсачките, заглавията ни трябва да са сами по себе си уникални, без повторения.
Примерно темите във форума в оригиналния си вид са от типа:

"Име на темата - Име на категорията - Име на форума"

Ако влезнете в Google Webmaster Tools , ще видите забележките на Google, за повтарящото съдържание в заглавията ви.
За да се избегне това, най-добре е заглавията да са от типа:

"Име на темата"

 
  • IP.Board

Заглавия на форумите


Отваряме:
/admin/applications/forums/modules_public/forums/forums.php

Намираме следния ред:
$this->registry->getClass('output')->setTitle( strip_tags($this->forum['name']) . ' - ' . ipsRegistry::$settings['board_name'] );
И го редактираме на:
$this->registry->getClass('output')->setTitle( strip_tags($this->forum['name']));

Заглавия на темите


Отваряме:
/admin/applications/forums/modules_public/forums/topics.php

Намираме следния ред:
$this->registry->output->setTitle( strip_tags( $topicData['title'] ) . '<%pageNumber%> - ' . $forumData['name'] . ' - ' . $this->settings['board_name']);
И го редактираме на:
$this->registry->output->setTitle( strip_tags( $topicData['title'] ));
 
  • IP.Content (Articles, Databases)
Тук нещата са доста интелигентно направени.

В conf_global.php използваме следните редове:

define( 'CCS_PAGE_TITLE_HOME', '' );

define( 'CCS_PAGE_TITLE_CAT', '' );

define( 'CCS_PAGE_TITLE_RECORD', '' );

define( 'CCS_PAGE_TITLE_LIST', '' );
Съответно за Началната страница на Articles, Категорията, Статията, Листването на категориите.

Използват се следните променливи:

// {page_name} = Page name
// {database_name} = Databae name
// {category_name} = Category name (only available for CCS_PAGE_TITLE_CAT and CCS_PAGE_TITLE_RECORD)
// {record_name} = Record name (only available for CCS_PAGE_TITLE_RECORD)
// {website_name} = Website name as configured in ACP
// {board_name} = Board name as configured in ACP
За да може на всички изброени по-горе места заглавията да излизат без повторения, носещи уникалното си заглавия,
аз съм поместил информацията в conf_global.php ето така:

define( 'CCS_PAGE_TITLE_RECORD', '{record_name}' );
define( 'CCS_PAGE_TITLE_HOME', '{page_name}' );
define( 'CCS_PAGE_TITLE_CAT', '{category_name}' );
define( 'CCS_PAGE_TITLE_LIST', '{page_name}' );
В кавичките можете да си ги правите по какъвто начин желаете, с каквато си искате комбинация.

 
  • IP.Gallery

Начална


Отваряме:
/applications_addon/ips/gallery/modules_public/albums/home.php

Намираме:
$this->registry->getClass('output')->setTitle( IPSLIb::getAppTitle('gallery') . ' - ' . $this->settings['board_name'] );
И го редактираме на:
$this->registry->getClass('output')->setTitle( IPSLIb::getAppTitle('gallery'));

Категория


Отваряме:
/applications_addon/ips/gallery/modules_public/albums/category.php

Намираме:
$this->registry->getClass('output')->setTitle( $category['category_name'] . ( $st ? $this->lang->words['page_title_pagination'] : '' ) . ' - ' . IPSLIb::getAppTitle('gallery') . ' - ' . $this->settings['board_name'] )
;

И го редактираме на:
$this->registry->getClass('output')->setTitle( $category['category_name']);

Албум


Отваряме:
/applications_addon/ips/gallery/modules_public/albums/album.php

Намираме:
$this->registry->getClass('output')->setTitle( $album['album_name'] . ( $start ? $this->lang->words['page_title_pagination'] : '' ) . ' - ' . IPSLIb::getAppTitle('gallery') . ' - ' . $this->settings['board_name'] );
И го редактираме на:
$this->registry->getClass('output')->setTitle( $album['album_name']);

Снимка


Отваряме:
/admin/applications_addon/ips/gallery/modules_public/images/viewimage.php

Намираме:
$this->registry->getClass('output')->setTitle( $image['image_caption'] . ' - ' . $title . ' - ' . IPSLIb::getAppTitle('gallery') . ' - ' . $this->settings['board_name'] );
И го редактираме на:
$this->registry->getClass('output')->setTitle( $image['image_caption']);
 
  • IP.Blog

Начална


Отваряме:
/admin/applications_addon/ips/blog/modules_public/display/list.php

Намираме:
$this->registry->output->setTitle( $this->lang->words['blog_list'] . ' - ' . $this->settings['board_name']);
И редактираме на:
$this->registry->output->setTitle( $this->lang->words['blog_list']);

Блог


Отваряме:
/admin/applications_addon/ips/blog/modules_public/display/blog.php

Намираме:
$this->page_title = $this->blog['blog_name'] . ' - ' . $this->settings['board_name'];
И редактираме на:
$this->page_title = $this->blog['blog_name'];

Публикация/Entry


Отваряме:
/admin/applications_addon/ips/blog/modules_public/display/entry.php

Намираме:
$this->page_title = $entry['entry_name'] . ' - ' . $this->settings['board_name'];
И редактираме на:
$this->page_title = $entry['entry_name'];
 
  • Videos System by Devfuse
Отваряме:
/admin/applications_addon/other/videos/modules_public/display/index.php

Намираме:
$this->registry->output->setTitle( $this->page_title.' - '.$this->settings['board_name'] );
И го редактираме на:
$this->registry->output->setTitle( $this->page_title);
 

Демо: http://pcheli.daobg.com/


Svejo и други bookmarks в Share this topic

Posted bsd on 02 January 2011 - 21:10 in IP.Board 3.0 & 3.1

След дълго търсене на това как да добавя svejo бутон попаднах на едно просто javascript-че за индексиране на линка на страницата, на която съм в момента. Светна ми че може да се получи страхотен svejo бутон и го моднах малко и взе че стана, затова ще споделя с вас как да го направите и вие. Преди да започна с краткото обяснение ето един скриин за да видите за коя лента за споделяне писах в описанието на урока:

Публикувано изображение


И така първо трябва да влезете в админ панелът на форумът ви, след това Look&Feel > цъкнете върху скинът си > shareLinks, който се намира в таба Global Templates.

След това в края добавете следния код според това кой сайт за споделяне искате да добавите:


за Svejo:

<script type="text/javascript">

var str = "<img src='http://img402.imageshack.us/img402/3662/svejo.png'>";

document.write(str.link("http://svejo.net/story/submit_by_url?url=" + document.URL));

</script>


за edno23:

<script type="text/javascript">

var str = "<img src='http://img26.imageshack.us/img26/9066/123cm.png'>";

document.write(str.link("http://edno23.com/pf:open?loadlink=" + document.URL));

</script>


Могат да се сложат и двата кода един след друг (не трябва да слагате нищо допълнително, в картинките има малко празни пространство за да се позиционират добре сред останалите). Приятно ползване на бутоните !


EDIT:

Ето и кодовете за оригиналните им бутони, които отчитат и дадените гласове:


Публикувано изображение Компактен:

<script type='text/javascript'>

svejo_url=''+ document.URL;

svejo_bgcolor='FFFFFF';

svejo_skin='compact';

svejo_theme='standard';

</script>

<script src='http://svejo.net/javascripts/svejo_button.js' type='text/javascript'></script>

Публикувано изображение Стандартен:
<script type='text/javascript'>
svejo_url=''+ document.URL;
svejo_bgcolor='FFFFFF';
svejo_skin='standard';
svejo_theme='standard';
</script>
<script src='http://svejo.net/javascripts/svejo_button.js' type='text/javascript'></script>



Пп. Надявам се да вида бутончетата и тук, защото смятам че ще помогнат за разрастването на сайта макар и малко ...


Добавяне на допълнителен Sidebar вляво

Posted Beatfan on 06 June 2010 - 08:57 in IP.Board 3.0 & 3.1

Въпреки, че има модификации като Custom Sidebar Blocks, който разширяват възможностите на оригиналния Sidebar в тройката и позволяват да се добави съдържание по ващ избор, понякога е удобно да имате допълнителен Sidebar вляво. По този начин можете да си разпределите съдържанието от двете страни и да превърнете началната страница в портал, без допълнителни модификации.

Отворете Templates -> Board Index -> boardindexTemplate на скина, който искате да модифицирате.

Намерете следния код:

<foreach loop="side_blocks:$side_blocks as $block">
				{$block}
			</foreach>
		</div>
	</if>

Поставете точно под него следното:

<div id="my_sidebar" class='left clearfix'>
<div class='general_box clearfix'>
<h3><img src='{$this->settings['img_url']}/door_in.png' alt='{$this->lang->words['icon']}' /> Бърза навигация</h3>

<-- Съдържанието на първия блок -->
</div>

<div class='general_box clearfix'>
<h3><img src='{$this->settings['img_url']}/eye.png' alt='{$this->lang->words['icon']}' /> Онлайн</h3>

<-- Съдържанието на втория блок -->

</div>
      </div>

Тук съм дал пример с два блока и примерни иконки в заглавната лента на всеки блок. Разбира се вие си ги модифицирате по ваш вкус. Важното е да не забравяте завършващия </div> накрая.

Сега отворете таб CSS ->ipb_styles.css и поставете най-долу следното:

#my_sidebar{
	padding-bottom: 25px;
        margin-right: 10px;
	margin-bottom: 20px;
	margin-top: 1px;
	width: 19%;
}
#my_sidebar .general_box {
	margin-bottom: 10px;
	overflow: hidden;
}

Разстоянията и отстъпите настройвате в зависимост от вашия скин. Важно тук е да спазите процентното съотношение на ширината. Тя трябва да бъде равна на ширината в проценти на #index_stats, който пък е в съотношение с div#categories.

Save


Кръгли аватари в IP.Board 3.4.х

Posted Silence on 10 January 2014 - 18:36 in IP.Board 3.4.x

Кръгли аватари в IP.Board 3.4.х

 

478ypnqn.png

 

 

1. Отидете до:
Admin -> CPLook & Feel -> Manage Skin Sets & Templates -> Manage Templates in -> Вашият скин -> ipb_styles.css
 
2. Добавете най-долу следният код:
/**
* Rounded Avatars
* By Silence
* http://silencebgsoftware.com/
*/

.ipsUserPhoto_large {
border-radius: 50%;
}

.ipsUserPhoto_medium {
border-radius: 50%;
}

.ipsUserPhoto_mini {
border-radius: 50%;
}

 

3. Запазете промените.

 



Премахване на проблема с изобразяването на дати и часове

Posted Toncheva on 04 January 2011 - 14:21 in IP.Board 3.0 & 3.1

Преди: Attached Image: 18.08(до).png Size: 16.05K, Downloads: 12418.08(до).png
След: Attached Image: 18.08(после).png Size: 16.48K, Downloads: 12918.08(после).png

:arrow: Отиваме в Админ панела > Look & Feel > Manage Skin Sets & Templates > Име на проблемния скин > Board Index > boardIndexTemplate.

Търсим два пъти:
{$forum_data['last_post']}
И го заменяме с:
{parse date="$forum_data['last_post']" format="LONG"}

:arrow: Отиваме на Forum view > forumIndexTemplate.

Търсим:
{$forum_data['last_post']}
И го заменяме с:
{parse date="$forum_data['last_post']" format="LONG"}
Търсим:
{$data['last_post']}
И го заменяме с:
{parse date="$data['last_post']" format="SHORT"}

Всичко това може да направите доста по-бързо и лесно от Template tools > Search and Replace

Източник: Cyber-systems.org


Интеграция на сайт с IPB 3

Posted Красимир Иванов on 03 July 2010 - 11:35 in IP.Board 3.0 & 3.1

Здравейте,
в този урок ще ви покажа как може да интегрирате сайт с IPB 3. Първо искам да спомена че скриптовете са правени и тествани на IPB 3.0.5, но се надявам да няма проблем и при по-стари версии (IPB 3, 3.0.1,3.02 и т.н.), както и при по-новите (IPB 3.1.0) . Скрипта не работи при IPB 2.3.*.
Първо какво включват скриптовете:
  • Показване на форма за вход/изход.
  • След вход на мястото на формата ще се извежда аватара на потребителя и линк към профила му във форума.
  • Извеждане на последните теми от форума
Искам да кажа че кодът може и да не е много правилен, но работи, което е най-важното за мен.
И така нека започваме с кодът за влизане, излизане и извеждане на аватара. Там където искате да се показва формата за вход поставяте следният код:
<?php
					session_start();
					include("forum/conf_global.php"); //Трябва инклуднеш този файл намира се в root папката на самото IPB, тоест ако папката е в която се намира форума е "forum" кодът остава така, ако е друга я променяме.
$host="localhost";//хоста
$db_user="username";//дб потребител
$db_password="password"; //дб парола
$database="database name"; //дб име
mysql_connect($host,$db_user,$db_password);
mysql_select_db($database);//свързваме се към бд
$pyt="forum/"; //пътя до форума, тук отново трябва да посочите пътя до форума
if (isset($_COOKIE["member_id"])) { //проверява дали има бисквитки
if ($_COOKIE["member_id"] == 0) { //ако не е логнат даваме формата за вход


echo "<table><form action='".$pyt."index.php?app=core&amp;module=global&amp;section=login&amp;do=process' method='post' name='LOGIN'>
Потребителско име:<br /><input type='text' size='19' maxlength='64' name='username' class='user' id='mstatustext' ><br />
Парола:<br /><input type='password' size='19' name='password'  class='pass' id='mstatustext'><br />
Запомни ме ?<br /><input class='checkbox' type='checkbox' name='CookieDate' value='1' checked='checked'><br />
Анонимно<br /><input class='checkbox' type='checkbox' name='Privacy' value='1'><br />
<input type='submit' value='Влизане' id='loginbtn'>
</form></table>
<a href='".$pyt."index.php?app=core&module=global&section=register'>Регистрация</a><br />";
}
else { //, но ако е логнат показваме инфо
$conn = mysql_connect($INFO['sql_host'], $INFO['sql_user'], $INFO['sql_pass']) or die("MySQL Error!"); 
mysql_select_db($INFO['sql_database']) or die("MySQL Error!"); 
mysql_query("SET CHARACTER SET windows-1251", $conn); 
$member_id = $_COOKIE['member_id']; //Взимаш ID-то на потребителя, с който си се логнал от бискивтката, защото по друг начин не се сетих... 
$query = "SELECT * FROM `{$INFO['sql_tbl_prefix']}members` WHERE `member_id`='$member_id'"; 
$result = mysql_query($query) or die(mysql_error()); 
$info = mysql_fetch_array($result); 
$logout_key = md5($info['email'].'&'.$info['member_login_key'].'&'.$info['joined']); //Хеша, който в случая се явява logout key...
$query = mysql_query("SELECT name FROM ibf_members where member_id='$_COOKIE[member_id]'") or die(mysql_error());
$query1 = mysql_query("SELECT email FROM ibf_members where member_id='$_COOKIE[member_id]'") or die(mysql_error());
$query2 = mysql_query("SELECT avatar_location FROM ibf_profile_portal where pp_member_id='$_COOKIE[member_id]'") or die(mysql_error());
while($n = mysql_fetch_array($query)) //взимаме потребителя от БД
while($e = mysql_fetch_array($query1)) //взимаме емайла от БД
while($a = mysql_fetch_array($query2)) //взимаме аватара от БД
{
$avatar=$a['avatar_location'];
if ($avatar == NULL)
{
$avatar="/noavatar.gif"; //името на снимката която ще се показва ако потребителя няма аватар. Изображението се поставя в папка uploads на форума.
}
else
{
$avatar=$a['avatar_location'];
}


echo"
Здравей , <a href='".$pyt."index.php?showuser=".$_COOKIE[member_id]."'>$n[name]</a><br />
 $e[email] !<br />
<a href='".$pyt."index.php?showuser=".$_COOKIE[member_id]."'><img src='http://site.com/forum/uploads/$avatar' width='128' height='128' alt='Виж профил'></a></a> 
<li>&raquo;<a href='".$pyt."index.php?app=core&module=usercp&tab=members'>Контрол панел</a></li>

<a href=\"$pyt/index.php?app=core&module=global&section=login&do=logout&k={$logout_key}\" title=\"Излизане\"><input value='Излез' id='loginbtn' type='submit'></a>

";

}
}
}
else {//ако няма бисквитки показваме формата за вход

echo "<table><form action='".$pyt."index.php?app=core&amp;module=global&amp;section=login&amp;do=process' method='post' name='LOGIN'>
Потребителско име:<br /><input type='text' size='19' maxlength='64' name='username' class='user' id='mstatustext' ><br />
Парола:<br /><input type='password' size='19' name='password'  class='pass' id='mstatustext'><br />
Запомни ме ?<br /><input class='checkbox' type='checkbox' name='CookieDate' value='1' checked='checked'><br />
Анонимно<br /><input class='checkbox' type='checkbox' name='Privacy' value='1'><br />
<input type='submit' value='Влизане' id='loginbtn'>
</form></table>
<a href='".$pyt."index.php?app=core&module=global&section=register'>Регистрация</a><br />";
}
?>

Така, на този ред:
<img src='http://site.com/forum/uploads/$avatar' width='128' height='128' alt='Виж профил'>
Трябва да въведете пътя до папката uploads на форума, също тук може да зададете с какви размери да се показва аватара чрез width='128' height='128'.

Това е кода за самият вход/изход.
Сега нека дам кода за последни теми от форума, той е следният:
<?php 
$db_host = "localhost"; //Хост, в 98% е localhost, но може и да бъде различно
$db_user = "username"; //Потребител за базата данни
$db_password = "password"; //Парола за базата данни
$db_name = "database"; //Базаданни
$table_preffix = "ibf_"; //Префикс на таблиците
$table_topics = "topics"; //Таблицата
$show_topics = 5; //Колко теми да показва
$forum_path = "forum/"; //Папката където се намира форума

$table_topics = $table_preffix."topics"; 

$connection = @mysql_connect($db_host, $db_user, $db_password) or die ("MySQL Fatal Error"); 
@mysql_select_db($db_name); 

$query = mysql_query("SELECT * FROM $table_topics ORDER BY tid DESC LIMIT 0, $show_topics"); 
while($row = mysql_fetch_array($query)) { 
$title = $row[title]; 
$address = $row[tid]; 
$address = $forum_path."index.php?showtopic=".$address; 

echo '<li><a href="'.$address.' title=\'$title, $description\'">' . substr($title, 0, 55) . '...</a></li> '; 
} 
?>
Тук
' . substr($title, 0, 55) . '
55 показва колко символа от заглавието на темата да се показват, аз съм го направил 55, но Вие може да го промените.

Тъй като при по-новите версии на IPB има проблем с логването с така наречения „auth_key”, Ви предлагам временно решение докато открия как точно се генерира този код.
Ето и решението:
1. Отворете „System Settings”.
2. Цъкнете на „Security and Privacy”.
3. На опция „Member's log in key: Expiration” сложете „Do not expire”, което означава, че този код няма да се променя.
4. Вижте в страницата за вход полето:
<input type='hidden' name='auth_key' value='КОДА' />
и поставете такова поле във формата за интеграция.

Така кода няма да се променя и интеграцията ще работи.

Не знам дали това е единственото решение на проблема и дали е най-доброто.



Това е от мен. Надявам се на някого да съм помогнал, ако имате въпроси питайте тук.


Урок: Default Avatar

Posted Tishu on 04 January 2010 - 02:18 in IP.Board 3.0 & 3.1

Това е темата за дискусия към урока: Default Avatar

В този урок ще обясня как да направите default Avatar на вашия форум.
За тези които незнаят какво е това:
Когато даден потребител се регистрира във форума ви и не качи собствен аватар , автоматично ще получи аватар които сте задали вие :)

Ето и урока:

Влезте с ФТП клиент на сървъра и отидете до /admin/sources/base/core.php

Намерете във файла следното:

else if( ipsRegistry::$settings['allow_gravatars'] )
		{
			/* Try a gravatar, if all else fails */
			$av_hash  = md5( $member['email'] );
			$s		= $lowestSize ? "&s={$lowestSize}" : '';
			$blank_av = urlencode(ipsRegistry::$settings['avatars_url'] . '/blank_avatar.gif' );

			return "<img src='http://www.gravatar.com/avatar/{$av_hash}?d={$blank_av}{$s}' alt='' />";
		}

и поставете след него :

return "<img src='" . ipsRegistry::$settings['avatars_url'] . '/blank_avatar.gif' . "' alt='' />";


След това отидете до public/style_avatars/ и заменете картинката blank_avatar.gif с каквата вие желаете :)

П.С. Не сменяйте името или формата на картинката.


Как да преместя форума си към друг сървър?

Posted D-rA on 24 November 2013 - 23:44 in IP.Board 3.4.x

Процедурата е следната:

1. Бекъп на база данни /най- лесно се оперира с този инструмент/

2. Сваляне на файловете от root на стария хост и ъплоудване в root на новия./редакция линка $INFO['board_url']       
в config_global.php/

3. Създаване на нова празна база данни със същото име на новия хост

4. Инсталиране в новата база данни на всичко което инсталатора на ipb открие във файловете /чекваш на съответната страница при инсталирането/

5. След проверка на инсталацията /т.е. имаш работещ, но празен от потребители и категории форум, и с основния скин на ipb/ - сваляш си нов бекъп на новата инсталация /за всеки случай - срещу грешка от последващи действия/

6. Ъп на стария бекъп върху новата база данни - със предварително уеднаквяване имената на базата данни.

7. Ако всичко работи - редактираш ъплоуд линковете на всички апликации.

8. Заявяваш на хоста преадресация на домейна към новия хост.

9. Сипваш си 100 грама питие и си готов.




Премахване на "License Key Missing" в Админ Панела

Posted Silence on 27 July 2013 - 17:32 in IP.Board 3.4.x

Отидете до admin -> skin_cp -> cp_skin_global.php и намерете следният код:


if( !$this->settings['ipb_reg_number'] )
{
			 $this->lang->words['license_missing_info']	 = sprintf( $this->lang->words['license_missing_info'], $this->settings['base_url'] . 'app=core&module=tools&section=licensekey' );
			 $extra_class = 'force_license';
			 $license_html = <<<HTML
							 <div id='license_notice_force'>
											 <h4>{$this->lang->words['license_missing_header']}</h4>
											 <p>{$this->lang->words['license_missing_info']}</p>
							 </div>
HTML;
}
else
{
			 $licenseData = $this->cache->getCache( 'licenseData' );
			 if( ( !$licenseData OR !$licenseData['key']['_expires'] OR $licenseData['key']['_expires'] < IPS_UNIX_TIME_NOW and $licenseData['key']['_expires'] != -1 ) AND !IPSCookie::get( 'ignore-license-notice' ) )
			 {
							 $extra_class = 'expired_license';
							 $license_html = <<<HTML
											 <div id='license_notice_expired'>
															 <div class='right'><a id='license-close' href='#'>Close</a></div>
															 <h4>{$this->lang->words['license_expired_header']}</h4>
															 <p>{$this->lang->words['license_expired_info']}</p>
											 </div>
HTML;
			 }
}[/font][/color]
[color=#5A5A5A][font=tahoma, helvetica, arial, sans-serif]


Заместете го с този:

/*
if( !$this->settings['ipb_reg_number'] )
{
			 $this->lang->words['license_missing_info']	 = sprintf( $this->lang->words['license_missing_info'], $this->settings['base_url'] . 'app=core&module=tools&section=licensekey' );
			 $extra_class = 'force_license';
			 $license_html = <<<HTML
							 <div id='license_notice_force'>
											 <h4>{$this->lang->words['license_missing_header']}</h4>
											 <p>{$this->lang->words['license_missing_info']}</p>
							 </div>
HTML;
}
else
{
			 $licenseData = $this->cache->getCache( 'licenseData' );
			 if( ( !$licenseData OR !$licenseData['key']['_expires'] OR $licenseData['key']['_expires'] < IPS_UNIX_TIME_NOW and $licenseData['key']['_expires'] != -1 ) AND !IPSCookie::get( 'ignore-license-notice' ) )
			 {
							 $extra_class = 'expired_license';
							 $license_html = <<<HTML
											 <div id='license_notice_expired'>
															 <div class='right'><a id='license-close' href='#'>Close</a></div>
															 <h4>{$this->lang->words['license_expired_header']}</h4>
															 <p>{$this->lang->words['license_expired_info']}</p>
											 </div>
HTML;
			 }
}
*/


Запазете направените промени и отидете до admin -> applications -> core -> extensions -> dashboardNotifications.php и намерете:

if( ! $this->settings['ipb_reg_number'] )
{
$entries[] = array( $this->lang->words['lc_title_nokey'], sprintf( $this->lang->words['lc_msg_nokey'], "{$this->settings['base_url']}module=tools&amp;section=licensekey" ) );
}
else
{
/* Is the Spam Service Working?
if ( $this->settings['spam_service_enabled'] )
{
	 $GOT_SPAM_ERROR = false;
	 /* Are we entitled to it?
	 $licenseData = $this->cache->getCache( 'licenseData' );
	 if ( is_array( $licenseData['ipbMain'] ) && count( $licenseData['ipbMain'] ) )
	 {
		 foreach ( $licenseData['ipbMain'] as $data )
		 {
		 if ( $data['name'] == 'Spam Monitoring Service' && $data['status'] != 'Ok' )
		 {
		 $disableLink = $this->settings['base_url'] . "app=core&amp;module=settings&amp;section=settings&amp;do=findsetting&amp;key=spamservice";
		 if ( is_numeric( $data['_expires'] ) && time() > $data['_expires'] )
		 {
			 $entries[] = array( $this->lang->words['spam_service_error'], sprintf( $this->lang->words['spam_service_expired'], $disableLink ) );
		 }
		 else
		 {
			 $entries[] = array( $this->lang->words['spam_service_error'], sprintf( $this->lang->words['spam_service_unavailable'], $disableLink ) );
		 }
		 $GOT_SPAM_ERROR = true;
		 break;
		 }
		 }
	 }
	 if ( ! $GOT_SPAM_ERROR )
	 {
		 /* Get last 5 logs, and if all 5 are errors, show message
		 $_errors = 0;
		 $_entries = 0;
		 $_lastError = '';
		 $this->DB->build( array( 'select' => 'log_code, log_msg', 'from' => 'spam_service_log', 'order' => 'id DESC', 'limit' => 5 ) );
		 $this->DB->execute();
		 while( $_r = $this->DB->fetch() )
		 {
		 $_entries++;
		 if( $_r['log_code'] === '0' )
		 {
		 $_errors++;
		 if( !$_lastError )
		 {
			 $_lastError = $_r['log_msg'];
		 }
		 }
		 }
		 if( $_entries > 0 && $_errors == $_entries )
		 {
		 $entries[] = array( $this->lang->words['spam_service_error'], sprintf( $this->lang->words['spam_service_error_msg'], $_lastError ) );
		 }
	 }
}
/* If it's disabled, are we entitiled to it?
else
{
	 $licenseData = $this->cache->getCache( 'licenseData' );
	 if ( is_array( $licenseData['ipbMain'] ) && count( $licenseData['ipbMain'] ) )
	 {
		 foreach ( $licenseData['ipbMain'] as $data )
		 {
		 if ( $data['name'] == 'Spam Monitoring Service' && $data['status'] == 'Ok' )
		 {
		 $entries[] = array( $this->lang->words['spam_service_disabled'], $this->lang->words['spam_service_disabled_msg'] );
		 break;
		 }
		 }
	 }
}
}

Заменете го с този код:

/* if( ! $this->settings['ipb_reg_number'] )
{
$entries[] = array( $this->lang->words['lc_title_nokey'], sprintf( $this->lang->words['lc_msg_nokey'], "{$this->settings['base_url']}module=tools&amp;section=licensekey" ) );
}
else
{
/* Is the Spam Service Working?
if ( $this->settings['spam_service_enabled'] )
{
	 $GOT_SPAM_ERROR = false;
	 /* Are we entitled to it?
	 $licenseData = $this->cache->getCache( 'licenseData' );
	 if ( is_array( $licenseData['ipbMain'] ) && count( $licenseData['ipbMain'] ) )
	 {
		 foreach ( $licenseData['ipbMain'] as $data )
		 {
		 if ( $data['name'] == 'Spam Monitoring Service' && $data['status'] != 'Ok' )
		 {
		 $disableLink = $this->settings['base_url'] . "app=core&amp;module=settings&amp;section=settings&amp;do=findsetting&amp;key=spamservice";
		 if ( is_numeric( $data['_expires'] ) && time() > $data['_expires'] )
		 {
			 $entries[] = array( $this->lang->words['spam_service_error'], sprintf( $this->lang->words['spam_service_expired'], $disableLink ) );
		 }
		 else
		 {
			 $entries[] = array( $this->lang->words['spam_service_error'], sprintf( $this->lang->words['spam_service_unavailable'], $disableLink ) );
		 }
		 $GOT_SPAM_ERROR = true;
		 break;
		 }
		 }
	 }
	 if ( ! $GOT_SPAM_ERROR )
	 {
		 /* Get last 5 logs, and if all 5 are errors, show message
		 $_errors = 0;
		 $_entries = 0;
		 $_lastError = '';
		 $this->DB->build( array( 'select' => 'log_code, log_msg', 'from' => 'spam_service_log', 'order' => 'id DESC', 'limit' => 5 ) );
		 $this->DB->execute();
		 while( $_r = $this->DB->fetch() )
		 {
		 $_entries++;
		 if( $_r['log_code'] === '0' )
		 {
		 $_errors++;
		 if( !$_lastError )
		 {
			 $_lastError = $_r['log_msg'];
		 }
		 }
		 }
		 if( $_entries > 0 && $_errors == $_entries )
		 {
		 $entries[] = array( $this->lang->words['spam_service_error'], sprintf( $this->lang->words['spam_service_error_msg'], $_lastError ) );
		 }
	 }
}
/* If it's disabled, are we entitiled to it?
else
{
	 $licenseData = $this->cache->getCache( 'licenseData' );
	 if ( is_array( $licenseData['ipbMain'] ) && count( $licenseData['ipbMain'] ) )
	 {
		 foreach ( $licenseData['ipbMain'] as $data )
		 {
		 if ( $data['name'] == 'Spam Monitoring Service' && $data['status'] == 'Ok' )
		 {
		 $entries[] = array( $this->lang->words['spam_service_disabled'], $this->lang->words['spam_service_disabled_msg'] );
		 break;
		 }
		 }
	 }
}
}
*/

Запазете промените.
Това е всичко.
Работи за версии 3.2.х ; 3.3.х ; 3.4.х .


Онлайн потребители в Sidebar-a

Posted Beatfan on 11 April 2013 - 19:44 in IP.Board 3.3.x

Един много прост трик с който можете да извадите статистиката за онлайн посетителите във форума и да я поставите на по-видимо място - в страничната лента (Sidebar).
Отворете за редактиране шаблона Board Index -> boardIndexTemplate
Намерете към края следния код:

<foreach loop="side_blocks:$side_blocks as $block">
{$block}
</foreach>

Поставете точно НАД него следния код:

<div class='ipsSideBlock clearfix'>
<h3> Онлайн </h3>
<div class='_sbcollapsable'>
{$stats['TOTAL']} {$this->lang->words['active_users_text']} <br/>
<div class='thin'>
<if test="activeNames:|:count($stats['NAMES'])">
<p>
<span class='name'>{parse
expression="implode( ",</span> <span class='name'>", $stats['NAMES'] )"}</span>
</p>
</if></div>
<br/><a href='{parse url="app=members&amp;module=online&amp;sort_order=desc" base="public"}'>{$this->lang->words['online_link']}</a></div></div>

С оглед на по-красиво отделяне на статистиката е добавен и един CSS клас. Той е по-желание, ако искате можете да го махнете от кода и е следния:

.thin {
border-color:#E4EBF2;
border-style:solid none;
border-width:1px 0;
line-height:120%;
margin:6px 0px -5px 0px;
padding:5px 0;
}

Можете да си го добавите най-долу в ipb_styles

Save
Публикувано изображение


[Fix] Проблеми след инсталация на модул или Hook

Posted Beatfan on 10 March 2013 - 17:16 in IP.Board 3.3.x

Типичeн проблем или бъг за версии 3.3.x e че често някои шаблони не се инсталират правилно или скиновете не се опресняват след инсталацията. Това е много често срещан проблем след инсталация на модул или модификация (Hook). В резултат можете да получите всякакви съобщения за грешки, да не зареди форума или да ви върне сървърна грешка или при връзката с базата данни.

Решението се състои в две стъпки:

1. Rebuild Master Skin Data (можете да изберете само новите инсталации, не всичко)

2. Recache Skin Sets

Attached Image: 2013-03-05_195912.jpg Size: 227.21K, Downloads: 972013-03-05_195912.jpg


Модифициране на списъка с популярни тагове (Popular tags)

Posted poznai on 05 March 2013 - 19:31 in IP.Board 3.4.x

В оригиналния си вид, малките нива на таговете са с прекалено голяма прозрачност и трудно се четат.
Освен това размера на всички тагове е прекалено малък. Някак си се губи идеята от тях. Седят просто, като някакъв си текстови списък, от който за да избереш нещо, трябва да се кьориш яко.
Освен това, някои тагове са от повече от една буква, и без никакъв префикс или суфикс, става трудно разграничаването.

След няколко css корекции, това се променя.

Влезте в ipb_styles.css на скина си.

Намерете:
/* TAG CLOUD */

Заменете всичко до:
/************************************************************************/
/* NEW FILTER BAR */

С това:
.ipsTagWeight_1 { opacity: 0.9; }
.ipsTagWeight_2 { opacity: 0.8; }
.ipsTagWeight_3 { opacity: 0.8; }
.ipsTagWeight_4 { opacity: 0.7; }
.ipsTagWeight_5 { opacity: 0.7; }
.ipsTagWeight_6 { opacity: 0.6; }
.ipsTagWeight_7 { opacity: 0.6; }
.ipsTagWeight_8 { opacity: 0.5; }

.ipsTagWeight_1:after, .ipsTagWeight_2:after, .ipsTagWeight_3:after, .ipsTagWeight_4:after, .ipsTagWeight_5:after, .ipsTagWeight_6:after, .ipsTagWeight_7:after, .ipsTagWeight_8:after  {
   content: ",";
}

li span.ipsTagWeight_8 {
   font-size: 105%;
  }
li span.ipsTagWeight_7 {
   font-size: 110%;
  }
li span.ipsTagWeight_6 {
   font-size: 115%;
  }
li span.ipsTagWeight_5 {
   font-size: 120%;
  }
li span.ipsTagWeight_4 {
   font-size: 130%;
  }
li span.ipsTagWeight_3 {
   font-size: 135%;
  }
li span.ipsTagWeight_2 {
   font-size: 140%;
  }
li span.ipsTagWeight_1 {
   font-size: 145%;
  }

Разбира се, сами може да си смените стойностите за отделните нива на таговете. Както и сифукса на таговете от запетайка, да е нещо друго.
Ако искате вместо суфикс, да има префикс, просто там където пише after, го направете на before.

Демо: http://pcheli.bg (вдясно, където пише Етикети)


Ротация на банери (рекламен слайдер)

Posted Beatfan on 10 May 2012 - 16:56 in IP.Board 3.3.x

Един много ефектен и удобен слайдер за ротация на рекламни банери.

1. Отваряте скина в който искате да се показва - таб CSS и натискате Add CSS File за да създадете нов css. Поставяте следното съдържание там:

#slider_wrap {
background: #747474 url({style_images_url}/slider_wrap.png) repeat-x;
height: 200px;
width: 100%;
margin: 0 auto;
margin-top: -10px;
margin-bottom: 20px;
position: absolute;
left: 0;
right: 0;
		-webkit-box-shadow: 0px 1px 5px 0px #4a4a4a !important;
		-moz-box-shadow: 0px 1px 5px 0px #4a4a4a !important;
		box-shadow: 0px 1px 5px 0px #4a4a4a !important;
}
.nivoSlider {
		position:relative;
		width:1000px; /* Change this to your images width */
		height:200px; /* Change this to your images height */
margin: 0 auto;
background: url({style_images_url}/slider_load.gif) no-repeat 50% 50%;
}
.nivoSlider img {
		position:absolute;
		top:0px;
		left:0px;
		display:none;
}
.nivoSlider a {
		border:0;
		display:block;
}

/* The Nivo Slider styles */
.nivoSlider {
position:relative;
}
.nivoSlider img {
position:absolute;
top:0px;
left:0px;
}
/* If an image is wrapped in a link */
.nivoSlider a.nivo-imageLink {
position:absolute;
top:0px;
left:0px;
width:100%;
height:100%;
border:0;
padding:0;
margin:0;
				z-index: 2;
display:none;
}
/* The slices and boxes in the Slider */
.nivo-slice {
display:block;
position:absolute;
z-index:1;
height:100%;
}
.nivo-box {
display:block;
position:absolute;
z-index:1;
}
/* Caption styles */
.nivo-caption {
position:absolute;
left:0px;
bottom:0px;
background:#000;
color:#fff;
opacity:0.5; /* Overridden by captionOpacity setting */
width:100%;
z-index:2;
}
.nivo-caption p {
padding:5px;
margin:0;
}
.nivo-caption a {
display:inline !important;
}
.nivo-html-caption {
		display:none;
}
/* Direction nav styles (e.g. Next & Prev) */
.nivo-directionNav a {
display:block;
width:30px;
height:30px;
background:url({style_images_url}/arrows2.png) no-repeat;
text-indent:-9999px;
border:0;
}
a.nivo-nextNav {
background-position:-30px 0;
right:15px;
}
a.nivo-prevNav {
left:15px;
}
.nivo-directionNav a {
position:absolute;
top:45%;
z-index:5;
cursor:pointer;
}
.nivo-prevNav {
left:0px;
}
.nivo-nextNav {
right:0px;
}
/* Control nav styles (e.g. 1,2,3...) */
.nivo-controlNav a {
position:relative;
z-index:5;
cursor:pointer;
}
.nivo-controlNav a.active {
font-weight:bold;
}

Save

2. Отваряте globalTemplate и намирате:
{parse template="includeVars" group="global" params="$header_items"}

Под него поставяте следното:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type="text/javascript"></script>
<script src="{$this->settings['img_url']}/jquery.nivo.slider.pack.js" type="text/javascript"></script>
<script type="text/javascript">$.noConflict();</script>
<script type="text/javascript">
jQuery(window).load(function() {
		jQuery('#slider').nivoSlider({
				effect: 'boxRainGrow,fold,sliceDown,slideInRight', // Specify sets like: 'fold,fade,sliceDown'
				pauseTime: 8000, // How long each slide will show
				pauseOnHover: true, // Stop animation while hovering
				directionNav: true, // Next & Prev navigation
				directionNavHide: true, // Only show on hover
				animSpeed: 500, // Slide transition speed
				directionNav: true, // Next & Prev navigation
				directionNavHide: true, // Only show on hover
				controlNav: false, // 1,2,3... navigation
				controlNavThumbs: false, // Use thumbnails for Control Nav
				controlNavThumbsFromRel: false, // Use image rel for thumbs
				captionOpacity: 0.5, // Universal caption opacity
		});
});
</script>

3. Отваряте boardIndexTemplate и намирате:
<if test="boardIndexTop:|:true"></if>

Под него поставяте следното:
<div id="slider_wrap">
<div id="slider" class="nivoSlider">
		<a href="http://invisionbg.com"><img src="{style_images_url}/slide1.jpg" alt="" title="Име на сайта!"></a>
		<a href="http://invisionbg.com"><img src="{style_images_url}/slide2.jpg" alt="" title="Име на сайта"></a>
		<a href="http://invisionbg.com"><img src="{style_images_url}/slide3.jpg" alt="" title="Име на сайта"></a>
		<a href="http://invisionbg.com"><img src="{style_images_url}/slide4.jpg" alt="" title="Име на сайта!"></a>
</div>
</div>

Това ви е кода за ротатора с линковете и пътя до банерите.

4. Отваряте ipb_styles.css и намирате:
#board_index { position: relative; }

Замествате го с това:
#board_index { position: relative; margin-top: 200px;}

5. Качвате всички файлове от приложения архив в папката на скина. Там се поставят и самите банери.

Attached File  InvisionBG Slider.zip   116.73K   30 Number of downloads


vbox7 BBcode

Posted beBoss™ on 02 March 2011 - 04:04 in BBCODES

Отивате в: ACP --> Look & Feel --> Manage Media BBcode.

Такам тук са медиа таговете. За да добавите нов цъкате бутона Add media Tag.

Media Replacement Title: vbox7


Media Replacement Match:
http://vbox7.com/play:{1}

Media Replacement HTML:
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" 
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" 
width="450" height="403"><param name="movie" value="http://i48.vbox7.com/player/ext.swf?vid=$1">
<param name="quality" value="high"><embed src="http://i48.vbox7.com/player/ext.swf?vid=$1" 
quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" 
width="450" height="403"></embed></object>

Варянтите за слагане на клипа при този код са няколко (мисля, че първият е предостатъчен):

* Първият и най-бързия е просто да поставите (пейстнете) линка, без кодове, тагове и т.н.

* Втория е да цъкнете на медиа бутона и да поставите (пейстнете) линк-а на клипа.

* Третият варянт е ръчно да си напишете медиа тага с клипа. Пример:
[media]http://vbox7.com/play:2d0ce886[/media]



IPB Fake Admin Panel

Posted DoubleWay™ on 23 February 2011 - 12:16 in IP.Board 3.0 & 3.1

Това е скрипт за IPB, но действа и на всички останали CMS и авторски системи. Сега ще ви покажа конкретно за IPB.




1. Преименувате админ панела с друго име по следният начин:




1. Отваряте FTP(може и от файл мениджър, ако имате такъв).



- Свързвате се към Вашият FTP акаунт.




2. Преименувате папката от admin на security(примерно)



3. Отворете initdata.php и намерете следния ред:



define( 'CP_DIRECTORY', 'admin' );



4. На мястото на admin слагате security( примерно; Тук слагате името на преименуваната папка )







2. Създавате фалшивият админ панел с име admin




3. Правите Index.php в /admin, в индекса слагате следният код:



<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<?
$lfh = "../.htaccess";
$log = fopen ( $lfh,"a+" );
fputs ($log, "deny from $_SERVER[REMOTE_ADDR]");
fclose($log);
echo "Вие бяхте баннат, поради опит за влизане в администраторският панел!.";
?>





Забележка: Трябва да имате .htaccess(може и да е празен, но да го има, защото там добавя ред с баннатото ип.) в главната директория, за да банва ип-тата.




Резултат: Който влезе в /admin, ще бъде баннат по IP. За да махнете бана, влезте в .htaccess и просто изтриите целият ред с IP-то на баннатия човек. Всеки, който бъде баннат няма да може да влезе повече във форума Ви, освен ако не си смени IP-то или не му махнете бана.




Източник: Web-security.us - Моят форум!


Highslide BBCode за IPB 3.x

Posted Beatfan on 12 April 2010 - 18:30 in BBCODES

1. Изпълнявате първа и втора точка от този урок:
2. В админ панела, таб Look&Feel -> Post Content -> BBCode Management, натискате ADD BBCode

Custom BBCode : Highslide
Custom BBCode Tag: hs
Prevent other codes parsing? YES
Custom BBCode Replacement:
<a class="highslide" onclick="return hs.expand(this)" href="{content}" ><img border="0"  src="{content}" style="max-width:250px; max-height: 250px;" title="Щракнете за оригинален размер"/></a>
Which groups can use this BBCode? All current and future groups
Where can the BBCode be used? Available in all sections
BBCode Application: System
BBCode Image (опция): picture.png (или ваша картинка поставена в public/style_images/(skin_directory)/rte_icons/ )

Вече имате работещ Highslide BBCode.
Във Tools & Settings > System Settings > System > CPU Saving & Optimization трябва да имате Enable Content Caching? YES


Not cookies free domain

Posted D-rA on 15 February 2014 - 03:11 in IP.Board 3.4.x

Ако сте правили тестови анализи на форума си, сте се сблъсквали с резултата - "еди колко си" /обикновено над 50/ ресурса нямат cookies free domain.

Всеки ресурс обменян между веригата броузер - сървър - домейн - сайт - се описва с кукита - които товарят излишно трафика.

Доста изчетох, доста експериментрах - лудост отвсякъде, а то било тъпо та тъпо и сравнително лесно /поне за мен/ за реализация:

1. Създавате си поддомейн в cPanel от от вида : някакво име. домейна ви. разширение /каквото сте/

2. При създаването му, сървъра ви предлага да го адресира в подпапка на домейна ви - откажете го /т.е. изтрийте от предложението подпапката/ - или новия поддомейн следва да бъде насочен към home директорията ви само. /някои сървъри изискват CNAME  - при мен, с apache, не се наложи/

3. Ефектът - ако в команден ред на броузера напишете името.домейн.разширение то той броузера ви безотказно ще зареди форума ви - и то без никакви редирекшъни.

Дотук с лесното.

1. Следва разходка по темплейта - навсякъде се коригират заявките - за js, css, img с редакция на линка с новосъздадения поддомейн - не е лесно, защото всички тези заявки са в параметричен вид - а следва да се въведат в явен.

2. Има доста ресурси, които се зареждат в изходния html от php файлове - т.е. редакцията с добавка на новия поддомейн се прави в тези няколко php.

Резултат:

Всички ресурси се зареждат от този поддомейн - без обмяна на кукита. YSlow на форума ви нараства с около 3%. Поне при мен от 89 скочи на 92/100

Ако скоростта на работа на сайта ви, ви занимава - коментирайте в темата - което съм "разузнал" ще споделя.

 

 




Добавяне на Slider тип акордеон

Posted Silence on 07 January 2014 - 20:37 in IP.Board 3.4.x

Добавяне на Slider тип акордеон

 

 

Отидете до :

Admin CP -> Look & Feel -> Select Template ->Global Templates->globalTemplate

 

Намерете:

<!-- ::: MAIN CONTENT AREA ::: -->
<div id='content' class='clearfix'>  

Веднага под него поставете този код:

(линковете за снимките и текста си ги редактирате по ваш избор)

<div class="accordian">
<ul>
<li>
<div class="image_title">
<a href="#">just some text</a>
</div>
<a href="#">
<img src="http://farm3.staticflickr.com/2812/10121061143_e05f1619d7.jpg">
</a>
</li>
<li>
<div class="image_title">
<a href="#">Wedding 2</a>
</div>
<a href="#">
<img src="http://farm8.staticflickr.com/7435/10067483716_2b6a593ca8.jpg">
</a>
</li>
<li>
<div class="image_title">
<a href="#">Wedding 3</a>
</div>
<a href="#">
<img src="http://farm8.staticflickr.com/7310/10065811936_8debcccb71.jpg">
</a>
</li>
<li>
<div class="image_title">
<a href="#">Wedding 4</a>
</div>
<a href="#">
<img src="http://farm4.staticflickr.com/3715/10065692306_705364fa01.jpg">
</a>
</li>
<li>
<div class="image_title">
<a href="#">Wedding 5</a>
</div>
<a href="#">
<img src="http://farm4.staticflickr.com/3667/9759830873_7474bd9fc2.jpg">
</a>
</li>
</ul>
</div>  

Запазете.

 

Отидете до :

Admin -> CPLook & Feel -> Manage Skin Sets & Templates -> Manage Templates in -> Вашият скин -> ipb_styles.css

 

Добавете най-долу този css:

.accordian{
width: 905px;
height: 333px;
overflow:hidden;

margin: auto;
-webkit-box-shadow: 0 8px 6px -6px black;
-moz-box-shadow: 0 8px 6px -6px black;
box-shadow: 0px 8px 6px -6px black;
}
.accordian ul{

}
.accordian li{
position: relative;
display:block;
width:140px;
float: left;

border-left: 1px solid #888;
-webkit-box-shadow: 0 0 25px 10px rgba(0,0,0,0.5);
-moz-box-shadow: 0 0 25px 10px rgba(0,0,0,0.5);

transition: all 0.5s;
-webkit-transition: all 0.5s;
-moz-transition: all 0.5s;
}


.accordian ul:hover li{
width: 50px;
}

.accordian ul li:hover{
width:500px;
}

.accordian li img{
display: block;
}

.image_title{
background: rgba(0,0,0,0.5);
position:absolute;
left:0;
bottom:0;
width:500px;
}

.image_title a{
display: block;
color: #fff;
text-decoration: none;
padding:20px;
font-size:16px;
}

Запазете.

 

Това е ....ето проба от мен:

 

dmvwy2oy.png




Поставяне на фон на потребителските групи

Posted Silence on 07 October 2013 - 20:40 in IP.Board 3.4.x

В този урок ще ви покажа как да поставим фон на потребителските грули...
Да изглежда примерно така:

cfbabcbfb9fd4ccdf318ff8ce32b173d.png или 2pe88jh6.png


Отидете до Admin CP -> Look & Feel -> Select Template ->CSS -> ipb_styles и добавете следният код най-долу:


.userManagement, .userCustomer, .userMember, .userValidating, .userGuest, .userStaff 
{color: white;
background: #881418;
padding: 3px 8px;
font-size: 11px;
-moz-border-radius: 3px;
-webkit-border-radius: 3px;
border-radius: 3px;
text-shadow: rgba(0, 0, 0, 0.2) 0px -1px 0px;display: inline-block;}

Обърнете внимание на:

color: white;

този ред прави цвета на текста да е бял(променете го по ваш вкус)

и

background: #881418;

този ред задава цвета на фона зад текста , можете да си добавите и картинка по желание..
примерно , като промените горният ред с този :

background: url({style_images_url}/името на картинката.png);

като трябва да качите предварителни картинката си в папка public/style_images/името на скина във FTP ...

Ето и един примерен готов код:

.userMember {
color: white;
background: #31B404;
padding: 3px 8px;
font-size: 11px;
-moz-border-radius: 3px;
-webkit-border-radius: 3px;
border-radius: 3px;
text-shadow: rgba(0, 0, 0, 0.2) 0px -1px 0px;
display: inline-block;
}

.userValidating, .userGuest {
color: white;
background: #EFEFEF;
padding: 3px 8px;
font-size: 11px;
-moz-border-radius: 3px;
-webkit-border-radius: 3px;
border-radius: 3px;
text-shadow: rgba(0, 0, 0, 0.2) 0px -1px 0px;
display: inline-block;
}


.userStaff {
color: white;
background: #D59944;
padding: 3px 8px;
font-size: 11px;
-moz-border-radius: 3px;
-webkit-border-radius: 3px;
border-radius: 3px;
text-shadow: rgba(0, 0, 0, 0.2) 0px -1px 0px;
display: inline-block;
}

.userCustomer {
color: white;
background: #8904B1;
padding: 3px 8px;
font-size: 11px;
-moz-border-radius: 3px;
-webkit-border-radius: 3px;
border-radius: 3px;
text-shadow: rgba(0, 0, 0, 0.2) 0px -1px 0px;
display: inline-block;
}

За да завършите на пълно урока отидете до:
Отидете до Admin CP -> Members -> Member Groups -> Manage Member Groups
и в Group Formatting Prefix добавете това:

<span class="userMember">

а в Group Formatting Suffix поставете това:

</span>

Запазете и сте готови ....

По молба на Wikko0
добавям тази картина vahpxfw4.gif




Активиране на dynamic images?

Posted D-rA on 05 September 2013 - 11:25 in IP.Board 3.4.x

Вероятно IPS са имали основание да въведат при ъпдейти sql команда за изтриване на тази опция - защото създава предпоставки за нерегламентиран достъп, т.е. ако потребителите имат достъп да я използват могат да публикуват скриптове със съдържание, което да предизвика пробиви в сигурността.
Така че ако някой реши да ползва този урок, да внимава къде и защо я активира!!!

Повод за урока:
IP Downloads създава възможност при ъплоуд на файлове да се създава тема във форума, като е допустимо в тази тема освен описанието и линк за изтегляне на файла, да бъде публикуван и скрийншот /когато е активирано качване на такъв/.
Неприятният момент е че в темата, която се публикува автоматично и по-точно в BB кода [img] се въвежда динамичният адрес на качената с файла картинка, което при наличните ресурси на инсталацията - я прави невидима, т.е. неизпълнима.

Решение:
1. В System Settings>Forums>Topics,Posts and Polls>Valid postable image extensions - добавяте след запетайка php
2. В System Settings>System>Security and Privacy>Security [General-High]

добавяте нов сетинг със:
Setting title? Allow dynamic images?
Setting Description? /по желание/- If 'yes' users can post scripted image generators that are PHP/CGI scripts designed to 'look' like an image. This is used for random signature images, etc but can allow users to write malicious scripts which can interfere with the board.
Setting Group? - Security and Privacy
Setting Type? - Yes/No Radio Buttons
Setting Key? - allow_dynamic_img
Setting Default Value? 0
Add this option into the settings cache? Yes

Пак ще се повторя - внимавайте в кой форум я активирате и какви права на потребителите на форума ще зададете - препоръчително е въпросният форум да е само информативен, само за четене, без право за публикуване на теми и отговори - рискът от активация на тази функция си е ваш!!!