Подсветка програмного кода на форумах ucoz - Игростроение и развлечение

Форма входа

Приветствую Вас Гость!

Логин:
Пароль:

Наш опрос

Зачем людям деньги?
Всего ответов: 84


    Случайное фото

    Статистика


Поддержите наш проект

WebMoney:
R309699065243
U292079291240
Z373355457648

Счётчики


Rambler's Top100
Рейтинг@Mail.ru

Подсветка програмного кода на форумах ucoz - Игростроение и развлечение

[ Новые сообщения · Участники · Правила форума · RSS ]

WWW Site Forum
Страница 1 из 11
Игростроение и развлечение » О форуме » Новости сайта и форума + вопросы и ответы для новичков » Подсветка програмного кода на форумах ucoz
Подсветка програмного кода на форумах ucoz
KostiaДата: Четверг, 26.02.2009, 09:05 | Сообщение # 1
Программист
Группа: Проверенные
Сообщений: 80
Репутация: 2
Статус: Offline
Первым делом нужно скачать архив со скриптами и таблицами стилей.
http://depositfiles.com/files/kbcc3oxuq(290 кбайт)
Далее в менеджере файлов создать папку "highlight" и загрузить содержимое архива в эту директорию.
Затем переходим в управление дизайном выбираем общий вид страниц форума и между тегов <head></head> пишим:
Code
<title>Highlited code export</title>
<link rel="stylesheet" href="highlight/styles/magula.css">
<meta charset="utf-8">
<style type="text/css">
#t1, #t2 { width: 100%;}
tr { vertical-align: top; }
address { margin-top: 4em; }
</style>
<script src="highlight/highlight.js"></script>
<script src="highlight/languages/cs.js"></script>
<script src="highlight/languages/python.js"></script>
<script src="Highlight/languages/mel.js"></script>
<script src="highlight/languages/perl.js"></script>
<script src="highlight/languages/axapta.js"></script>
<script src="highlight/languages/cpp.js"></script>
<script src="highlight/languages/sql.js"></script>
<script src="highlight/languages/smalltalk.js"></script>
<script src="highlight/languages/profile.js"></script>
<script src="highlight/languages/bash.js"></script>
<script src="highlight/languages/html-xml.js"></script>
<script src="highlight/languages/renderman.js"></script>
<script src="highlight/languages/1c.js"></script>
<script src="highlight/languages/delphi.js"></script>
<script src="highlight/languages/dos.js"></script>
<script src="highlight/languages/django.js"></script>
<script src="highlight/languages/vbscript.js"></script>
<script src="highlight/languages/ini.js"></script>
<script src="highlight/languages/ruby.js"></script>
<script src="highlight/languages/css.js"></script>
<script src="highlight/languages/lisp.js"></script>
<script src="highlight/languages/java.js"></script>
<script src="highlight/languages/javascript.js"></script>
<script src="highlight/languages/php.js"></script>
<script src="highlight/languages/diff.js"></script>
<script src="highlight/languages/avrasm.js"></script>
<script>hljs.initHighlightingOnLoad();</script>

строка <link rel="stylesheet" href="highlight/styles/magula.css"> определяет стиль оформления кода magula.css, его можно изменить на любой другой.(полный список в папке styles)
Далее идет перечисления языков. Не нужные можно убрать.

Далее сразу после $BODY$ нужно написать:

Code
<?if($PAGE_ID$="threadpage")?>
<script src="/highlight/shForUcoZ.js"></script>
<?endif?>

Теперь осталось добавить кнопку с bbcode. Заходим в "Форма добавления сообщений" и между блоков $BBCODES$ и $_MESSAGE$ пишем:

Code
</div></div><div class="gDivBottomLeft"></div><div class="gDivBottomCenter">
</div><div class="gDivBottomRight"></div> <input type="button" value="syntax"      
onclick="simpletag('syntax','','','message',''); return false;"      
class="codeButtons" title="Код (Подсветка синтаксиса)" name="red" />

Еще не помешает изменить цвет фона bbcode [code]. Для этого нужно зайти в таблицу css и найти .codemessage и изменить цвет заднего фона background.
Например:
.codeMessage {background:#000000;font-size:9px;}

Прикрепления: highlight.zip(291Kb)
 
quadrathellДата: Четверг, 26.02.2009, 12:21 | Сообщение # 2
Admin
Группа: Администраторы
Сообщений: 1018
Репутация: 23
Статус: Offline
Kostia, если у тебя есть этот архив, прикрепи его к функциям форума - добавить файл ....
не могу я скачать с той ссылки ... У меня постоянно ИП уже занят )
==================
Всё же удалось скачать архив ....
Но не получается записать файл wp_highlight.js.php на сайт ...
Уже и тоталом пробовал и через опции сайта... пишет недопустимый файл ...
Видимо PHP тут не приветствуют или ограничения для бесплатной версии..


 
KostiaДата: Четверг, 26.02.2009, 16:15 | Сообщение # 3
Программист
Группа: Проверенные
Сообщений: 80
Репутация: 2
Статус: Offline
Забыл сказать, его заливать не нужно. Я лично не представляю зачем он там нужен и почему он не закачивается.
И код нужно без вставлять. Эти bbcode коды потом исчезнут, а вместо них будет подсветка.
Черт, еще имя забыл поменять
<script src="/highlight/shForUcoZ.js"></script>

Подсветку нужно использовать с двумя тегами.
code и syntax

 
KostiaДата: Четверг, 26.02.2009, 18:13 | Сообщение # 4
Программист
Группа: Проверенные
Сообщений: 80
Репутация: 2
Статус: Offline
Code
unit Unit1;    

    interface    

    uses    
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,    
      Dialogs, Menus, ExtDlgs, JPEG, ExtCtrls;    

    type    
      TForm1 = class(TForm)    
        MainMenu1: TMainMenu;    
        N1: TMenuItem;    
        N2: TMenuItem;    
        N3: TMenuItem;    
        OpenDialog1: TOpenDialog;    
        N4: TMenuItem;    
        N3x31: TMenuItem;    
        N5x51: TMenuItem;    
        N9x91: TMenuItem;    
        N15x151: TMenuItem;    
        procedure N3Click(Sender: TObject);    
        procedure FormCreate(Sender: TObject);    
        procedure N2Click(Sender: TObject);    
        procedure N3x31Click(Sender: TObject);    
        procedure N5x51Click(Sender: TObject);    
        procedure N9x91Click(Sender: TObject);    
        procedure N15x151Click(Sender: TObject);    
      private    
        { Private declarations }    
      public    
        { Public declarations }    
        procedure OnClick(Sender: TObject);    
        procedure NewGame;    
      end;    

    const    
      FThumbSize = 150;    

    var    
      Form1: TForm1;    
      pic: TBitmap;    
      Pole: array of TImage;    
      gPole: array of byte;    
      steps: integer;    
      n,ww: integer;    

    implementation    

    {$R *.dfm}    

    procedure MakeThumbNail(src, dest: tBitmap);    
     type    
       PRGB24 = ^TRGB24;    
       TRGB24 = packed record    
         B: Byte;    
         G: Byte;    
         R: Byte;    
       end;    
     var    
       x, y, ix, iy: integer;    
       x1, x2, x3: integer;    

       xscale, yscale: single;    
       iRed, iGrn, iBlu, iRatio: Longword;    
       p, c1, c2, c3, c4, c5: tRGB24;    
       pt, pt1: pRGB24;    
       iSrc, iDst, s1: integer;    
       i, j, r, g, b, tmpY: integer;    

       RowDest, RowSource, RowSourceStart: integer;    
       w, h: integer;    
       dxmin, dymin: integer;    
       ny1, ny2, ny3: integer;    
       dx, dy: integer;    
       lutX, lutY: array of integer;    

     begin    
       if src.PixelFormat <> pf24bit then src.PixelFormat := pf24bit;    
       if dest.PixelFormat <> pf24bit then dest.PixelFormat := pf24bit;    
       w := Dest.Width;    
       h := Dest.Height;    

       if (src.Width <= FThumbSize) and (src.Height <= FThumbSize) then    
       begin    
         dest.Assign(src);    
         exit;    
       end;    

       iDst := (w * 24 + 31) and not 31;    
       iDst := iDst div 8; //BytesPerScanline     
      iSrc := (Src.Width * 24 + 31) and not 31;    
       iSrc := iSrc div 8;    

       xscale := 1 / (w / src.Width);    
       yscale := 1 / (h / src.Height);    

       // X lookup table     
      SetLength(lutX, w);    
       x1 := 0;    
       x2 := trunc(xscale);    
       for x := 0 to w - 1 do    
       begin    
         lutX[x] := x2 - x1;    
         x1 := x2;    
         x2 := trunc((x + 2) * xscale);    
       end;    

       // Y lookup table     
      SetLength(lutY, h);    
       x1 := 0;    
       x2 := trunc(yscale);    
       for x := 0 to h - 1 do    
       begin    
         lutY[x] := x2 - x1;    
         x1 := x2;    
         x2 := trunc((x + 2) * yscale);    
       end;    

       dec(w);    
       dec(h);    
       RowDest := integer(Dest.Scanline[0]);    
       RowSourceStart := integer(Src.Scanline[0]);    
       RowSource := RowSourceStart;    
       for y := 0 to h do    
       begin    
         dy := lutY[y];    
         x1 := 0;    
         x3 := 0;    
         for x := 0 to w do    
         begin    
           dx:= lutX[x];    
           iRed:= 0;    
           iGrn:= 0;    
           iBlu:= 0;    
           RowSource := RowSourceStart;    
           for iy := 1 to dy do    
           begin    
             pt := PRGB24(RowSource + x1);    
             for ix := 1 to dx do    
             begin    
               iRed := iRed + pt.R;    
               iGrn := iGrn + pt.G;    
               iBlu := iBlu + pt.B;    
               inc(pt);    
             end;    
             RowSource := RowSource - iSrc;    
           end;    
           iRatio := 65535 div (dx * dy);    
           pt1 := PRGB24(RowDest + x3);    
           pt1.R := (iRed * iRatio) shr 16;    
           pt1.G := (iGrn * iRatio) shr 16;    
           pt1.B := (iBlu * iRatio) shr 16;    
           x1 := x1 + 3 * dx;    
           inc(x3,3);    
         end;    
         RowDest := RowDest - iDst;    
         RowSourceStart := RowSource;    
       end;    

       if dest.Height < 3 then exit;    

       // Sharpening...     
      s1 := integer(dest.ScanLine[0]);    
       iDst := integer(dest.ScanLine[1]) - s1;    
       ny1 := Integer(s1);    
       ny2 := ny1 + iDst;    
       ny3 := ny2 + iDst;    
       for y := 1 to dest.Height - 2 do    
       begin    
         for x := 0 to dest.Width - 3 do    
         begin    
           x1 := x * 3;    
           x2 := x1 + 3;    
           x3 := x1 + 6;    

           c1 := pRGB24(ny1 + x1)^;    
           c2 := pRGB24(ny1 + x3)^;    
           c3 := pRGB24(ny2 + x2)^;    
           c4 := pRGB24(ny3 + x1)^;    
           c5 := pRGB24(ny3 + x3)^;    

           r := (c1.R + c2.R + (c3.R * -12) + c4.R + c5.R) div -8;    
           g := (c1.G + c2.G + (c3.G * -12) + c4.G + c5.G) div -8;    
           b := (c1.B + c2.B + (c3.B * -12) + c4.B + c5.B) div -8;    

           if r < 0 then r := 0 else if r > 255 then r := 255;    
           if g < 0 then g := 0 else if g > 255 then g := 255;    
           if b < 0 then b := 0 else if b > 255 then b := 255;    

           pt1 := pRGB24(ny2 + x2);    
           pt1.R := r;    
           pt1.G := g;    
           pt1.B := b;    
         end;    
         inc(ny1, iDst);    
         inc(ny2, iDst);    
         inc(ny3, iDst);    
       end;    
     end;    

    procedure TForm1.OnClick(Sender: TObject);    
    var    
      i: integer;    
      pos1: integer;    
      pos2: integer;    
      win: boolean;    
    begin    
      for i:=0 to n*n-1 do    
      begin    
        if gpole[i]=n*n-1 then pos1:=i;    
        if gpole[i]=TImage(Sender).Tag then pos2:=i;    
      end;    
      if (abs((pos1 mod n)-(pos2 mod n))=1)xor(abs((pos1 div n)-(pos2 div n))=1) then    
      begin    
        gpole[pos1]:=TImage(Sender).Tag;    
        gpole[pos2]:=n*n-1;    
        pos1:=TImage(Sender).Top;    
        TImage(Sender).Top:=pole[n*n-1].Top;    
        pole[n*n-1].Top:=pos1;    
        pos1:=TImage(Sender).Left;    
        TImage(Sender).Left:=pole[n*n-1].Left;    
        pole[n*n-1].Left:=pos1;    
        steps:=steps+1;    
        win:=true;    
        for i:=0 to n*n-1 do    
          if gpole[i]<>i then begin win:=false; break; end;    
        if win then ShowMessage(inttostr(steps));    
      end;    
    end;    

    procedure TForm1.NewGame;    
    var    
      i: integer;    
      bmp: TBitmap;    
      img: TImage;    
    procedure Mix;    
    var    
      i,k,j: integer;    
      pos: integer;    
    begin    
      pos:=n*n-1;    

      for i:=1 to n*n*n do    
      begin    
        j:=random(4);    

        if j=0 then if pos mod n-1>=0 then //ëåâî    
        begin    
          k:=gpole[pos-1];    
          gpole[pos-1]:=n*n-1;    
          gpole[pos]:=k;    
          k:=pole[gpole[pos-1]].Left;    
          pole[gpole[pos-1]].Left:=pole[gpole[pos]].Left;    
          pole[gpole[pos]].Left:=k;    
          pos:=pos-1;    
        end;    

        if j=1 then if pos mod n+1<n then //ïðàâî    
        begin    
          k:=gpole[pos+1];    
          gpole[pos+1]:=n*n-1;    
          gpole[pos]:=k;    
          k:=pole[gpole[pos+1]].Left;    
          pole[gpole[pos+1]].Left:=pole[gpole[pos]].Left;    
          pole[gpole[pos]].Left:=k;    
          pos:=pos+1;    
        end;    

        if j=2 then if pos div n+1<n then //âíèç    
        begin    
          k:=gpole[pos+n];    
          gpole[pos+n]:=n*n-1;    
          gpole[pos]:=k;    
          k:=pole[gpole[pos+n]].Top;    
          pole[gpole[pos+n]].Top:=pole[gpole[pos]].Top;    
          pole[gpole[pos]].Top:=k;    
          pos:=pos+n;    
        end;    

        if j=3 then if pos div n-1>=0 then //ââåðõ    
        begin    
          k:=gpole[pos-n];    
          gpole[pos-n]:=n*n-1;    
          gpole[pos]:=k;    
          k:=pole[gpole[pos-n]].Top;    
          pole[gpole[pos-n]].Top:=pole[gpole[pos]].Top;    
          pole[gpole[pos]].Top:=k;    
          pos:=pos-n;    
        end;    
      end;    
    end;    

    begin    
      randomize;    

      if length(pole)>0 then    
      for i:=0 to length(pole)-1 do    
        pole[i].Destroy;    

      ww:=500 div n;      
      SetLength(pole,n*n);    
      SetLength(gpole,n*n);    

      for i:=0 to n*n-1 do    
      begin    
        img:=TImage.Create(Self);    
        img.Parent:=Form1;    
        img.OnClick:=Form1.OnClick;    
        img.Left:=(i mod n)*ww;    
        img.Top:=(i div n)*ww;    
        img.Width:=ww;    
        img.Height:=ww;    
        img.Tag:=i;    
        gPole[i]:=i;    
        Pole[i]:=img;    
        img:=nil;    
      end;    

      bmp:=TBitmap.Create;    
      bmp.Width:=500;    
      bmp.Height:=500;    
      MakeThumbNail(pic,bmp);    
      steps:=0;    
      for i:=0 to n*n-2 do    
      begin    
        Pole[i].Canvas.CopyRect(Rect(0,0,Pole[i].Width,Pole[i].Height),bmp.Canvas,    
                       Rect((i mod n)*ww,(i div n)*ww,(i mod n)*ww+ww,(i div n)*ww+ww));    
        Pole[i].Canvas.Brush.Style:=bsClear;    
        Pole[i].Canvas.Rectangle(-1,-1,Pole[i].Width,Pole[i].Height);    
      end;    
      bmp.Free;    
      Mix;    
    end;    

    procedure TForm1.FormCreate(Sender: TObject);    
    begin    
      n:=3;    
      pic:=TBitmap.Create;    
    end;    

    procedure TForm1.N3Click(Sender: TObject);    
    begin    
      Form1.Close;    
    end;    

    procedure TForm1.N2Click(Sender: TObject);    
    var    
      jpg: TJPEGImage;    
      loaded: boolean;    
    begin    
      loaded:=true;    
      if OpenDialog1.Execute then    
      begin    
        try    
          jpg:=TJPEGImage.Create;    
          jpg.LoadFromFile(OpenDialog1.FileName);    
          pic.Assign(jpg);    
          jpg.Free;    
        except    
          try    
            pic.LoadFromFile(OpenDialog1.FileName);    
          except    
            loaded:=false;    
            ShowMessage('Íåâîçìîæíî çàãðóçèòü êàðòèíêó');    
          end;    
        end;    
      end;    
      if loaded then    
        NewGame;    
    end;    

    procedure TForm1.N3x31Click(Sender: TObject);    
    begin    
      n:=3;    
      NewGame;    
    end;    

    procedure TForm1.N5x51Click(Sender: TObject);    
    begin    
      n:=5;    
      NewGame;    
    end;    

    procedure TForm1.N9x91Click(Sender: TObject);    
    begin    
      n:=6;    
      NewGame;    
    end;    

    procedure TForm1.N15x151Click(Sender: TObject);    
    begin    
      n:=15;    
      NewGame;    
    end;    

    end.

Quote
Теперь буду думать, как все манипуляции перевести на одну кнопку code.

Теперь буду думать, как все манипуляции перевести на одну кнопку code.
 
Игростроение и развлечение » О форуме » Новости сайта и форума + вопросы и ответы для новичков » Подсветка програмного кода на форумах ucoz
Страница 1 из 11
Поиск: