Список форумов * PWR FACTORY *  -  Ваши предложения, новые улучшения сайта  -  Добавлена подсветка кода

Автор Сообщение
bibika
Добавлено: Пн Сен 01, 2014 13:41
Оффлайн
* Главный главнюк *
* Главный главнюк *
Информация
На форуме с: 25.10.2009 Возраст: 37 Сообщения: 7834 Откуда: Питер
Добавлена подсветка кода

Целый вечер вчера парился, чтобы внедрить в наш древний форум подсветку различных кодов. Т.к. модов для него лет 8 не делают пришлось пробывать различные библиотеки, штук 10 перепробовал, остановился на гуглувской.

Стандартный тег кода я не трогал, он как был без подсветки, так и остался. Для использования подсветки кода нужно использовать новый тег (в скором времени для всех новых тегов сделаю кнопки)

Код:
[highlight] Ваш код [/highlight]


Например:

В тегах обычного кода выглядеть это будет так:

Код:
/* Plugin generated by AMXX-Studio */
#include <amxmodx>

#define PLUGIN "Auto Restart vl"
#define VERSION "1.4"
#define AUTHOR "vato loco [GE-S]"

#define TIMER_TASK        123456
#define RESTART_TASK      789123

new g_counter 

new g_autorestart
new g_autoenabled
new g_autocds
new g_autocount_color
new g_autostart_color
new g_auto_xypos

new g_SyncGameStart
new g_SyncRestartTimer

new bool:g_bRoundStart

public plugin_init()
{
   register_plugin(PLUGIN, VERSION, AUTHOR)
   
   register_logevent("RoundStart", 2, "1=Round_Start")
   register_event("TextMsg","RestartTask","a","2&#Game_C")   
   
   register_dictionary("auto_restart_vl.txt")
   
   g_autoenabled = register_cvar("amx_autorr_enable","1")
   g_autocds = register_cvar("amx_autorr_cds","1")
   g_autorestart = register_cvar("amx_autorr_time","40")
   g_autocount_color = register_cvar("amx_autorr_count_color","0 255 0")
   g_autostart_color = register_cvar("amx_autorr_start_color","0 255 255")
   g_auto_xypos = register_cvar("amx_autorr_xypos","-1.0 0.25")
   
   g_SyncGameStart = CreateHudSyncObj()
   g_SyncRestartTimer = CreateHudSyncObj()
}

public RoundStart()
{
   if(!get_pcvar_num(g_autoenabled))
      return PLUGIN_HANDLED
   
   if(g_bRoundStart)
   {
      static r, g, b, Float:x, Float:y
      HudMsgPos(x,y)
      HudMsgColor(g_autostart_color, r, g, b)
      
      set_hudmessage( r, g, b, x, y, 1, 5.0, 8.0, 0.0, 0.0, -1)
      ShowSyncHudMsg( 0, g_SyncGameStart, "%L",LANG_PLAYER, "GAME_STARTED")
   }
   g_bRoundStart = false
   
   return PLUGIN_CONTINUE
}

public RestartTask()
{
   if(!get_pcvar_num(g_autoenabled))
      return PLUGIN_HANDLED
   
   set_task(1.0,"TimeCounter",TIMER_TASK,_,_,"a",get_pcvar_num(g_autorestart))
   set_task(get_pcvar_float(g_autorestart),"RestartRound",RESTART_TASK)
   
   return PLUGIN_CONTINUE
}

public TimeCounter()
{
   g_counter++
   
   new Float:iRestartTime = get_pcvar_float(g_autorestart) - g_counter
   new Float:fSec
   fSec = iRestartTime
   
   static r, g, b, Float:x, Float:y
   HudMsgPos(x,y)
   HudMsgColor(g_autocount_color, r, g, b)
   
   set_hudmessage( r, g, b, x, y, 0, 0.0, 1.0, 0.0, 0.0, -1)
   ShowSyncHudMsg( 0, g_SyncRestartTimer, "%L",LANG_PLAYER, "AUTO_RESTART", floatround(fSec))
   
   if(get_pcvar_num(g_autocds) && get_pcvar_num(g_autorestart) - g_counter < 11 && get_pcvar_num(g_autorestart) - g_counter !=0)
   {
      static szNum[32]
      num_to_word(get_pcvar_num(g_autorestart) - g_counter, szNum, 31)
      client_cmd(0,"speak ^"vox/%s^"", szNum)
   }
   if(g_counter == get_pcvar_num(g_autorestart))
   {
      g_bRoundStart = true
      g_counter = 0
   }
}

public RestartRound()
{
   server_cmd("sv_restartround 1")
}

public HudMsgColor(cvar, &r, &g, &b)
{
   static color[16], piece[5]
   get_pcvar_string(cvar, color, 15)
   
   strbreak( color, piece, 4, color, 15)
   r = str_to_num(piece)
   
   strbreak( color, piece, 4, color, 15)
   g = str_to_num(piece)
   b = str_to_num(color)
}

public HudMsgPos(&Float:x, &Float:y)
{
   static coords[16], piece[10]
   get_pcvar_string(g_auto_xypos , coords, 15)
   
   strbreak(coords, piece, 9, coords, 15)
   x = str_to_float(piece)
   y = str_to_float(coords)
}


А в тегах с подсветкой так:

/* Plugin generated by AMXX-Studio */
#include <amxmodx>

#define PLUGIN "Auto Restart vl"
#define VERSION "1.4"
#define AUTHOR "vato loco [GE-S]"

#define TIMER_TASK 123456
#define RESTART_TASK 789123

new g_counter

new g_autorestart
new g_autoenabled
new g_autocds
new g_autocount_color
new g_autostart_color
new g_auto_xypos

new g_SyncGameStart
new g_SyncRestartTimer

new bool:g_bRoundStart

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)

register_logevent("RoundStart", 2, "1=Round_Start")
register_event("TextMsg","RestartTask","a","2&#Game_C")

register_dictionary("auto_restart_vl.txt")

g_autoenabled = register_cvar("amx_autorr_enable","1")
g_autocds = register_cvar("amx_autorr_cds","1")
g_autorestart = register_cvar("amx_autorr_time","40")
g_autocount_color = register_cvar("amx_autorr_count_color","0 255 0")
g_autostart_color = register_cvar("amx_autorr_start_color","0 255 255")
g_auto_xypos = register_cvar("amx_autorr_xypos","-1.0 0.25")

g_SyncGameStart = CreateHudSyncObj()
g_SyncRestartTimer = CreateHudSyncObj()
}

public RoundStart()
{
if(!get_pcvar_num(g_autoenabled))
return PLUGIN_HANDLED

if(g_bRoundStart)
{
static r, g, b, Float:x, Float:y
HudMsgPos(x,y)
HudMsgColor(g_autostart_color, r, g, b)

set_hudmessage( r, g, b, x, y, 1, 5.0, 8.0, 0.0, 0.0, -1)
ShowSyncHudMsg( 0, g_SyncGameStart, "%L",LANG_PLAYER, "GAME_STARTED")
}
g_bRoundStart = false

return PLUGIN_CONTINUE
}

public RestartTask()
{
if(!get_pcvar_num(g_autoenabled))
return PLUGIN_HANDLED

set_task(1.0,"TimeCounter",TIMER_TASK,_,_,"a",get_pcvar_num(g_autorestart))
set_task(get_pcvar_float(g_autorestart),"RestartRound",RESTART_TASK)

return PLUGIN_CONTINUE
}

public TimeCounter()
{
g_counter++

new Float:iRestartTime = get_pcvar_float(g_autorestart) - g_counter
new Float:fSec
fSec = iRestartTime

static r, g, b, Float:x, Float:y
HudMsgPos(x,y)
HudMsgColor(g_autocount_color, r, g, b)

set_hudmessage( r, g, b, x, y, 0, 0.0, 1.0, 0.0, 0.0, -1)
ShowSyncHudMsg( 0, g_SyncRestartTimer, "%L",LANG_PLAYER, "AUTO_RESTART", floatround(fSec))

if(get_pcvar_num(g_autocds) && get_pcvar_num(g_autorestart) - g_counter < 11 && get_pcvar_num(g_autorestart) - g_counter !=0)
{
static szNum[32]
num_to_word(get_pcvar_num(g_autorestart) - g_counter, szNum, 31)
client_cmd(0,"speak ^"vox/%s^"", szNum)
}
if(g_counter == get_pcvar_num(g_autorestart))
{
g_bRoundStart = true
g_counter = 0
}
}

public RestartRound()
{
server_cmd("sv_restartround 1")
}

public HudMsgColor(cvar, &r, &g, &b)
{
static color[16], piece[5]
get_pcvar_string(cvar, color, 15)

strbreak( color, piece, 4, color, 15)
r = str_to_num(piece)

strbreak( color, piece, 4, color, 15)
g = str_to_num(piece)
b = str_to_num(color)
}

public HudMsgPos(&Float:x, &Float:y)
{
static coords[16], piece[10]
get_pcvar_string(g_auto_xypos , coords, 15)

strbreak(coords, piece, 9, coords, 15)
x = str_to_float(piece)
y = str_to_float(coords)
}


Сделал чтобы библиотека подгружалась только на тех страницах, где активирован данный тег, на остальных она подгружаться не будет. Также, чтобы не задерживать загрузку страницы скрипт начинает раскрашивать теги только после полной загрузки страницы.



Вернуться к началу
Steam Profile
h1t^^
Добавлено: Пн Сен 01, 2014 14:02
Оффлайн
* Админ AIM + HS *
* Админ AIM + HS *
Награды: 2
Меня бьют, а я стою (Количество: 1) Почётный ветеран (Количество: 1)
Информация
На форуме с: 14.10.2012 Возраст: 26 Сообщения: 1734 Откуда: Vologda,Russia
Нехватает подсветки названий CSS

element.style {
border-right: 1px solid #131313;
width: 180px;
}
table.viewtopic td.three {
padding: 4px 7px;
vertical-align: top;
width: 180px;
}
td.row1 {
background: rgba(0,0,0,0.3);
border: 1px solid #131313;
}
td, th, input, select, textarea, .message {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-style: normal;
font-weight: normal;
text-transform: none;
text-decoration: none;
color: #f5f5f5;
font-size: 11px;
line-height: 13px;
}
user agent stylesheettd, th {
display: table-cell;
vertical-align: inherit;
}
Inherited from table.viewtopic
user agent stylesheettable {
display: table;
border-collapse: separate;
border-spacing: 2px;
border-color: gray;
}
Inherited from td#bodyline
#bodyline {
width: 1138px;
padding: 0px;
vertical-align: top;
text-align: left;
}
td, th, input, select, textarea, .message {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-style: normal;
font-weight: normal;
text-transform: none;
text-decoration: none;
color: #f5f5f5;
font-size: 11px;
line-height: 13px;
}
Inherited from table#forum
user agent stylesheettable {
display: table;
border-collapse: separate;
border-spacing: 2px;
border-color: gray;
}
Inherited from body
Style Attribute {
zoom: 1;
}
body, html {
margin: 0px;
padding: 0px;
height: 100%;
background: #16181a;
font-size: 11px;
font-family: Arial,Tahoma, sans-serif;
color: #cecece;
text-shadow: 1px 1px 1px #000;
}
Inherited from html
body, html {
margin: 0px;
padding: 0px;
height: 100%;
background: #16181a;
font-size: 11px;
font-family: Arial,Tahoma, sans-serif;
color: #cecece;
text-shadow: 1px 1px 1px #000;
}

border1
1padding4
7182 × 40297
41
1

ConsoleSearchEmulationRendering



Uncaught SyntaxError: Invalid regular expression: missing / pwrfactory.ru/forum/templates/AdInfinitum/js/AdInfinitum.js:31
Uncaught TypeError: undefined is not a function pwrfactory.ru/forum/steam_sig/ajax/steamprofile.js:352
Uncaught ReferenceError: helpline is not defined pwrfactory.ru/forum/viewtopic.php?p=40741#40741:941
Uncaught ReferenceError: helpline is not defined pwrfactory.ru/forum/viewtopic.php?p=40741#40741:940
2
Uncaught ReferenceError: helpline is not defined pwrfactory.ru/forum/viewtopic.php?p=40741#40741:943




Вернуться к началу
Steam Profile
bibika
Добавлено: Пн Сен 01, 2014 14:08
Оффлайн
* Главный главнюк *
* Главный главнюк *
Информация
На форуме с: 25.10.2009 Возраст: 37 Сообщения: 7834 Откуда: Питер
Приоритетом при выборе библиотеки было, адекватная подсветка кода PAWN



Вернуться к началу
Steam Profile
bibika
Добавлено: Вт Фев 09, 2016 18:24
Оффлайн
* Главный главнюк *
* Главный главнюк *
Информация
На форуме с: 25.10.2009 Возраст: 37 Сообщения: 7834 Откуда: Питер
Починил подсветку кода, пока добавлял тег - Выделенный абзац

function language_select($default, $select_name = "language", $dirname="language")
{
global $phpEx, $phpbb_root_path;

$dir = opendir($phpbb_root_path . $dirname);

$lang = array();
while ( $file = readdir($dir) )
{
if (preg_match('#^lang_#i', $file) && !is_file(@phpbb_realpath($phpbb_root_path . $dirname . '/' . $file)) && !is_link(@phpbb_realpath($phpbb_root_path . $dirname . '/' . $file)))
{
$filename = trim(str_replace("lang_", "", $file));
$displayname = preg_replace("/^(.*?)_(.*)$/", "\\1 [ \\2 ]", $filename);
$displayname = preg_replace("/\[(.*?)_(.*)\]/", "[ \\1 - \\2 ]", $displayname);
$lang[$displayname] = $filename;
}
}

closedir($dir);

@asort($lang);
@reset($lang);

$lang_select = '<select>';
while ( list($displayname, $filename) = @each($lang) )
{
$selected = ( strtolower($default) == strtolower($filename) ) ? ' selected="selected"' : '';
$lang_select .= '<option>' . ucwords($displayname) . '</option>';
}
$lang_select .= '</select>';

return $lang_select;
}

//



Вернуться к началу
Steam Profile

Показать сообщения:  

   Страница 1 из 1

Перейти:  

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы можете вкладывать файлы
Вы можете скачивать файлы