Код кнопки для BUEditor

Главные вкладки

Аватар пользователя ka4ok50 ka4ok50 18 июля 2013 в 21:41

Скажите кому под силу написать енопку добавления ссылок на сайт, вот как он работает: при нажатии на кнопку появляется затем заполняем поля

и вот что получается,

я вставлял ссылки с данного сайта, но если использовать ссылки с файлообменника, тогда они будут цветными, еще если пригодится я достал код с сайта где такая кнопка находится, только вот что с ним делать я не знаю, я не силен в JS js:\n\nvar ch = {\n    'rapidshare.com': ['A52A2A', 'Rapidshare.com'],\n    'depositfiles.com': ['FF8c00', 'DepositFiles.com'],\n    'dfiles.ru': ['FF8c00', 'DepositFiles.com'],\n    'letitbit.net': ['008000', 'LetItBit.net'],\n    'uploadbox.com': ['339966', 'UploadBox.com'],\n    'sms4file.com': ['696969', 'SMS4file.com'],\n    'turbobit.net': ['FF00FF', 'TurboBit.net'],\n    'uploading.com': ['33CCCC', 'Uploading.com'],\n    'hotfile.com': ['808000', 'HotFile.com'],\n    'rapidgator.net': ['808000', 'RapidGator.net'],\n    'mediafire.com': ['99CCFF', 'MediaFire.net'],\n    'filesmelt.com': ['3366FF', 'FilesMelt.net'],\n    'vip-file.com': ['696969', 'VIP-file.com'],\n    'extabit.com': ['339999', 'ExtaBit.com'],\n    'ul.to': ['669933', 'UL.to'],\n    'uploaded.to': ['669933', 'Uploaded.to'],\n    'gigapeta.com': ['9933cc', 'GigaPeta.com'],\n    'gigabase.com': ['3366FF', 'GigaBase.com'],\n    'filesonic.com': ['3186CF', 'FileSonic.com'],\n    'share4web.com': ['556B2F', 'Share4Web.com'],\n    'asfile.com': ['D2691E', 'AsFile.com'],\n    'unibytes.com': ['B8860B', 'UniBytes.com'],\n    'filepost.com': ['993366', 'FilePost.com'],\n    'hitfile.net': ['696969', 'HitFile.net'],\n    'shareflare.net': ['EB3A6B', 'ShareFlare.net'],\n    'fileserve.com': ['32CD32', 'FileServe.com'],\n    'wupload.com': ['4B0082', 'WUpload.com'],\n    'upload.com.ua': ['2F4F4F', 'Upload.com.ua']\n}\n\nvar P, E = editor.active, T = E.textArea;\n  if (E.preview) {\n    P = E.preview;\n  }\n  else {\n    P = document.createElement('div');\n    P.className = 'preview';\n    P.style.display = 'none';\n    P.style.overflow = 'auto';\n    T.parentNode.insertBefore(P, T);\n    E.preview = P;\n  }\ncreateLinks = function(form) {\n  if (!form.elements[\"name\"].value) {editor.dialog.close(); return;}\n  var second = '\\n\\n[size=14][color=#ff0000][b]Скачать ';\n  second += form.elements[\"name\"].value;\n  if (form.elements[\"crsize\"].value) {\n    second += ' (' + form.elements[\"crsize\"].value + ' ';\n    second += form.elements[\"size_type\"].value == \"0\" ? 'МБ': 'ГБ';\n    second += ')';\n  }\n  l = form.elements[\"links\"].value.split('\\n');\n  a = '';\n  countp = 0;\n  for (var i = 0; i < l.length; i++) {\n     if (l[i] == '') {continue;}\n     pl = l[i].substring(7,l[i].indexOf('/', 8));\n     if (pl == a) {countp ++;}\n     a = pl;\n  }\n\n  if (countp == 0) {\n    links = 'с ';\n    for (var i = 0; i < l.length; i++) {\n      if (l[i] == '') {continue;}\n      if (links != 'с ') {links += ' | ';}\n      l[i] = l[i].replace(/\\s+$/, '');\n      pl = l[i].toLowerCase().substring(7,l[i].indexOf('/', 8));\n      if (pl.indexOf('www.') == 0) {pl = pl.substring(4);}\n      var find = 0;\n      for (keych in ch) {\n        if (pl.match(keych)) {\n            find = 1;\n            links += '[url=' + l[i] + '][color=#' + ch[keych][0] +'][b]' + ch[keych][1] + '[/b][/color][/url]';\n            break;\n        }\n      }\n      if (find == 0) {\n        links += '[url=' + l[i] + '][b]' + pl +'[/b][/url]';\n      }\n    }\n    second += ': [/b][/color][/size][hide][size=12]' + links + '[/size][/hide]';\n  } \n  else if (countp > 0) {\n    a = '';\n    count = 0;\n    links = '';\n    for (var i = 0; i < l.length; i++) {\n      if (l[i] == '') {continue;}\n      l[i] = l[i].replace(/\\s+$/, '');\n      pl = l[i].toLowerCase().substring(7,l[i].indexOf('/', 8));\n      if (pl.indexOf('www.') == 0) {pl = pl.substring(4);}\n      if (pl == a) {count ++;}\n      else {count = 1}\n      a = pl;\n      if (count == 1) {\n        if (links != '') {links += '\\n\\n';}\n        links += '[size=12]с ';\n        var find = 0;\n        for (keych in ch) {\n          if (pl.match(keych)) {\n              find = 1;\n              links += '[color=#' + ch[keych][0] +'][b]' + ch[keych][1] + ':[/b][/color]';\n              break;\n          }\n        }\n        if (find == 0) {\n          links += '[color=#000000][b]' + pl +':[/b][/color]';\n        }\n        links += '[/size]\\n[url=' + l[i] + ']Часть 1[/url]';\n      }\n      else {links += ' + [url=' + l[i] + ']Часть ' + count + '[/url]';}\n    }\n    second += ': [/b][/color][/size][hide]' + links + '\\n\\n';\n    if(form.elements[\"partsvz\"].checked) {second += 'Части взаимозаменяемы';}\n    else {second += 'Части [b]не[/b] взаимозаменяемы';}\n    second += '[/hide]';\n  }\n  all = '';\n  /*if(form.elements[\"djvu\"].checked) {all += '[b]Формат:[/b] DjVu (<a href=\"/format_djvu\">[color=#FF0000]о формате[/color]</a>)\\n';}\n  if(form.elements[\"png\"].checked) {all += 'Для конвертации PNG в ICO используйте <a href=\"http://www.cwer.ru/ave_iconifier_2\">[color=#0000FF]Ave Iconifier 2[/color]</a>\\n';}*/\n  all += '<p> </p>' + second + '\\n';\n  editor.active.replaceSelection(all);\n  editor.dialog.close();\n}\n\nvar userForm = '<form onsubmit=\"createLinks (this); return false;\"><table>';\nuserForm += '<tr><td>Скачать</td><td> <input type=\"text\" name=\"name\" size=50 /></td></tr>';\nuserForm += '<tr><td>Размер:</td><td><input type=\"text\" name=\"crsize\" size=5 /><select name=\"size_type\"><option value=\"0\">МБ</option><option value=\"1\">ГБ</option></td></tr>';\nuserForm += '<tr><td colspan=2><textarea name=\"links\" rows=6 cols=55></textarea></td>';\nuserForm += '<tr><td colspan=2><input type=\"checkbox\" name=\"partsvz\" value=\"1\" checked>Части взаимозаменяемые</td></tr></table>';\n/*userForm += '<tr><td><input type=\"checkbox\" name=\"djvu\" value=\"1\">DJVU</td><td><input type=\"checkbox\" name=\"png\" value=\"1\">Иконки в PNG</td></tr>';*/\n\nuserForm += '<input type=\"submit\" value=\"Применить\" /></form>';\neditor.dialog.open('Ссылки', userForm);",

Комментарии

Аватар пользователя ka4ok50 ka4ok50 19 июля 2013 в 8:32

alex_shut wrote:
так перепиши)) и как код оформи, ужас ведь такое смотреть, не то что прочитать.

я же написал что не силен в js

Аватар пользователя 6RUN0 6RUN0 19 июля 2013 в 13:54

Идея данной кнопки плохая, если вдруг ты решиш поменять цвет ссылок на рапиду или др. файлобоменник, то уже опубликованные сылки цвет не помеяют, лучше подрубить к теме оформления java script который бы в зависимости от ссылки добалял класс, а в css определить эти класс

Аватар пользователя ka4ok50 ka4ok50 19 июля 2013 в 15:30

6RUN0 wrote:
Идея данной кнопки плохая, если вдруг ты решиш поменять цвет ссылок на рапиду или др. файлобоменник, то уже опубликованные сылки цвет не помеяют, лучше подрубить к теме оформления java script который бы в зависимости от ссылки добалял класс, а в css определить эти класс

Я хочу сделать сайт где ссылки на файлообменники будет возможность вставлять, и менять цвет мене не нужно будт, там ведюь задумка не только в цветах, там если добавить несколько ссылок например с оного файлообменника то при нажатии на кнопку применить получается так что для публикации сериалов например это очень удобно

Аватар пользователя 6RUN0 6RUN0 19 июля 2013 в 18:14

В bueditor есть набор кнопок Lab там есть хорошие примеры, хотя и мало. Java script знать надо, хотябы как-н., иначе в вебе не выжить. Вот сваял кнопку чтоб ты примерно глянул как оно работает. Чтоб доделать кнопку до конца надо знать еще регулярные выражения они будут использоваться для парсинга вводимых данных. И про валидацию формы не забудь, которую я закомментил, функция должна вернуть отличное от нуля значение.

Аватар пользователя alex_shut alex_shut 19 июля 2013 в 23:19

"ka4ok50" wrote:
я же написал что не силен в js

я про оформление сего топика. Ото полотно кода не плохо бы вставить в теги <соdе>