dzzb - Добро пожаловать! Снова.
$$$
До Н.Г.

Показаны записи с тегом: HTML.

http2cli 15.10.17

Опубликовано: 17-10-2015 23:38 Автор: MBTY Теги: Мои разработки, HTML
Обновление!
Добавлено несколько вариантов переформатирования текста.
В ходе решения очередной задачи потребовался инструмент, который выводил бы в консоль html-код страницы по URL.
Задача была следующей: создать скрипт, который бы находил в сети самый свежий релиз Media Player Classic Home Cinema.
Самые свежие "nightly" билды лежат тут: https://nightly.mpc-hc.org, нужно скачать MPC-HC.*.*.*.*.x86.exe (на момент написания статьи MPC-HC.1.7.9.181.x86.exe)
Так как wget не умеет нормально качать файлы со страницы по маске (через адовые костыли), то нужно предварительно прочесть html-код, чтобы "выловить" ссылку на наш файл
Недавно я выкладывал 2 консольных костыля, одним из которых был OPI - узкоспециализированный парсер страниц. Теперь он получил дополнительный функционал, несколько настроек, стал более универсальным, а так как от исходного кода OPI осталась только пара строк, то название тоже сменилось: http2cli
Как он работает:
Вводим в консоли http2cli https://nightly.mpc-hc.org|find "x86.exe" и получаем...такую дичь:
CMD: dzzb.ru <!--[if gt IE 9]><!--><html class="no-js browser" lang="en"><!--<![endif]--><head><meta charset="utf-8"><title>MPC-HC Nightly Builds</title><meta name="description" content="MPC-HC Nightly Builds"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="shortcut icon" href="/_h5ai/client/images/favicon/favicon-16-32.ico"><link rel="apple-touch-icon-precomposed" type="image/png" href="/_h5ai/client/images/favicon/favicon-152.png"><link rel="stylesheet" href="/_h5ai/client/css/styles.css"><script src="/_h5ai/client/js/scripts.js" data-module="main"></script></head><body><div id="fallback-hints"><span class="noJsMsg">Works best with JavaScript enabled!</span><span class="noBrowserMsg">Works best in <a href="http://browsehappy.com">modern browsers</a>!</span><span class="backlink"><a href="http://larsjung.de/h5ai/" target="_blank" title="h5ai 0.27.0 В· a modern HTTP web server index">powered by h5ai</a></span></div><div id="fallback"><table><tr><th class='fb-i'></th><th class='fb-n'><span>Name</span></th><th class='fb-d'><span>Last modified</span></th><th class='fb-s'><span>Size</span></th></tr><tr><td class='fb-i'><img src='/_h5ai/client/images/fallback/folder.png' alt='folder'/></td><td class='fb-n'><a href='/mpc-hc_apps/'>mpc-hc_apps</a></td><td class='fb-d'>2011-05-07 12:12</td><td class='fb-s'></td></tr><tr><td class='fb-i'><img src='/_h5ai/client/images/fallback/folder.png' alt='folder'/></td><td class='fb-n'><a href='/old/'>old</a></td><td class='fb-d'>2015-10-04 22:14</td><td class='fb-s'></td></tr><tr><td class='fb-i'><img src='/_h5ai/client/images/fallback/file.png' alt='file'/></td><td class='fb-n'><a href='/Info.md'>Info.md</a></td><td class='fb-d'>2015-04-09 23:18</td><td class='fb-s'>0 KB</td></tr><tr><td class='fb-i'><img src='/_h5ai/client/images/fallback/file.png' alt='file'/></td><td class='fb-n'><a href='/log.1.7.9.181.log'>log.1.7.9.181.log</a></td><td class='fb-d'>2015-10-04 22:31</td><td class='fb-s'>293 KB</td></tr><tr><td class='fb-i'><img src='/_h5ai/client/images/fallback/file.png' alt='file'/></td><td class='fb-n'><a href='/MPC-HC.1.7.9.181.x64.7z'>MPC-HC.1.7.9.181.x64.7z</a></td><td class='fb-d'>2015-10-04 22:16</td><td class='fb-s'>12453 KB</td></tr><tr><td class='fb-i'><img src='/_h5ai/client/images/fallback/file.png' alt='file'/></td><td class='fb-n'><a href='/MPC-HC.1.7.9.181.x64.exe'>MPC-HC.1.7.9.181.x64.exe</a></td><td class='fb-d'>2015-10-04 22:19</td><td class='fb-s'>13401 KB</td></tr><tr><td class='fb-i'><img src='/_h5ai/client/images/fallback/file.png' alt='file'/></td><td class='fb-n'><a href='/MPC-HC.1.7.9.181.x64.pdb.7z'>MPC-HC.1.7.9.181.x64.pdb.7z</a></td><td class='fb-d'>2015-10-04 22:22</td><td class='fb-s'>17732 KB</td></tr><tr><td class='fb-i'><img src='/_h5ai/client/images/fallback/file.png' alt='file'/></td><td class='fb-n'><a href='/MPC-HC.1.7.9.181.x86.7z'>MPC-HC.1.7.9.181.x86.7z</a></td><td class='fb-d'>2015-10-04 22:25</td><td class='fb-s'>11584 KB</td></tr><tr><td class='fb-i'><img src='/_h5ai/client/images/fallback/file.png' alt='file'/></td><td class='fb-n'><a href='/MPC-HC.1.7.9.181.x86.exe'>MPC-HC.1.7.9.181.x86.exe</a></td><td class='fb-d'>2015-10-04 22:27</td><td class='fb-s'>12530 KB</td></tr><tr><td class='fb-i'><img src='/_h5ai/client/images/fallback/file.png' alt='file'/></td><td class='fb-n'><a href='/MPC-HC.1.7.9.181.x86.pdb.7z'>MPC-HC.1.7.9.181.x86.pdb.7z</a></td><td class='fb-d'>2015-10-04 22:30</td><td class='fb-s'>17006 KB</td></tr><tr><td class='fb-i'><img src='/_h5ai/client/images/fallback/file.png' alt='file'/></td><td class='fb-n'><a href='/MPC-HC_standalone_filters.1.7.9.181.x64.7z'>MPC-HC_standalone_filters.1.7.9.181.x64.7z</a></td><td class='fb-d'>2015-10-04 22:23</td><td class='fb-s'>1616 KB</td></tr><tr><td class='fb-i'><img src='/_h5ai/client/images/fallback/file.png' alt='file'/></td><td class='fb-n'><a href='/MPC-HC_standalone_filters.1.7.9.181.x86.7z'>MPC-HC_standalone_filters.1.7.9.181.x86.7z</a></td><td class='fb-d'>2015-10-04 22:31</td><td class='fb-s'>1454 KB</td></tr></table></div></body></html>
Дело в том, что именно на этом сайте исходный код страницы записан в одну строку (для экономии нескольких байт). А find находит строку, в которой было совпадение. Получается, что весь наш сайт будет отображен, потому что во всём нём есть совпадение. Хорошо бы, если между html тегами был разрыв строки.
Это есть первая, помимо основной, функция нашего приложения. Если ввести http2cli https://nightly.mpc-hc.org 1, то между html-тегами будет создаваться разрыв. Если ввести 0 или ничего не вводить, то код никак не будет переоформляться: был изначально код с разрывами - получим их и так, не было - не получим.
Теперь страница будет выглядеть не одной строкой, а вот так:
cmd: dzzb.ru <!DOCTYPE html> <!--[if lt IE 10]> <html class="no-js no-browser" lang="en"> <![endif]--> <!--[if gt IE 9]> <!--> <html class="no-js browser" lang="en"> <!--<![endif]--> <head> <meta charset="utf-8"> <title>MPC-HC Nightly Builds</title> <meta name="description" content="MPC-HC Nightly Builds"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="shortcut icon" href="/_h5ai/client/images/favicon/favicon-16-32.ico"> <link rel="apple-touch-icon-precomposed" type="image/png" href="/_h5ai/client/images/favicon/favicon-152.png"> <link rel="stylesheet" href="/_h5ai/client/css/styles.css"> <script src="/_h5ai/client/js/scripts.js" data-module="main"> </script> </head> <body> <div id="fallback-hints"> <span class="noJsMsg">Works best with JavaScript enabled!</span> <span class="noBrowserMsg">Works best in <a href="http://browsehappy.com">modern browsers</a>!</span> <span class="backlink"> <a href="http://larsjung.de/h5ai/" target="_blank" title="h5ai 0.27.0 В· a modern HTTP web server index">powered by h5ai</a> </span> </div> <div id="fallback"> <table> <tr> <th class='fb-i'> </th> <th class='fb-n'> <span>Name</span> </th> <th class='fb-d'> <span>Last modified</span> </th> <th class='fb-s'> <span>Size</span> </th> </tr> <tr> <td class='fb-i'> <img src='/_h5ai/client/images/fallback/folder.png' alt='folder'/> </td> <td class='fb-n'> <a href='/mpc-hc_apps/'>mpc-hc_apps</a> </td> <td class='fb-d'>2011-05-07 12:12</td> <td class='fb-s'> </td> </tr> <tr> <td class='fb-i'> <img src='/_h5ai/client/images/fallback/folder.png' alt='folder'/> </td> <td class='fb-n'> <a href='/old/'>old</a> </td> <td class='fb-d'>2015-10-04 22:14</td> <td class='fb-s'> </td> </tr> <tr> <td class='fb-i'> <img src='/_h5ai/client/images/fallback/file.png' alt='file'/> </td> <td class='fb-n'> <a href='/Info.md'>Info.md</a> </td> <td class='fb-d'>2015-04-09 23:18</td> <td class='fb-s'>0 KB</td> </tr> <tr> <td class='fb-i'> <img src='/_h5ai/client/images/fallback/file.png' alt='file'/> </td> <td class='fb-n'> <a href='/log.1.7.9.181.log'>log.1.7.9.181.log</a> </td> <td class='fb-d'>2015-10-04 22:31</td> <td class='fb-s'>293 KB</td> </tr> <tr> <td class='fb-i'> <img src='/_h5ai/client/images/fallback/file.png' alt='file'/> </td> <td class='fb-n'> <a href='/MPC-HC.1.7.9.181.x64.7z'>MPC-HC.1.7.9.181.x64.7z</a> </td> <td class='fb-d'>2015-10-04 22:16</td> <td class='fb-s'>12453 KB</td> </tr> <tr> <td class='fb-i'> <img src='/_h5ai/client/images/fallback/file.png' alt='file'/> </td> <td class='fb-n'> <a href='/MPC-HC.1.7.9.181.x64.exe'>MPC-HC.1.7.9.181.x64.exe</a> </td> <td class='fb-d'>2015-10-04 22:19</td> <td class='fb-s'>13401 KB</td> </tr> <tr> <td class='fb-i'> <img src='/_h5ai/client/images/fallback/file.png' alt='file'/> </td> <td class='fb-n'> <a href='/MPC-HC.1.7.9.181.x64.pdb.7z'>MPC-HC.1.7.9.181.x64.pdb.7z</a> </td> <td class='fb-d'>2015-10-04 22:22</td> <td class='fb-s'>17732 KB</td> </tr> <tr> <td class='fb-i'> <img src='/_h5ai/client/images/fallback/file.png' alt='file'/> </td> <td class='fb-n'> <a href='/MPC-HC.1.7.9.181.x86.7z'>MPC-HC.1.7.9.181.x86.7z</a> </td> <td class='fb-d'>2015-10-04 22:25</td> <td class='fb-s'>11584 KB</td> </tr> <tr> <td class='fb-i'> <img src='/_h5ai/client/images/fallback/file.png' alt='file'/> </td> <td class='fb-n'> <a href='/MPC-HC.1.7.9.181.x86.exe'>MPC-HC.1.7.9.181.x86.exe</a> </td> <td class='fb-d'>2015-10-04 22:27</td> <td class='fb-s'>12530 KB</td> </tr> <tr> <td class='fb-i'> <img src='/_h5ai/client/images/fallback/file.png' alt='file'/> </td> <td class='fb-n'> <a href='/MPC-HC.1.7.9.181.x86.pdb.7z'>MPC-HC.1.7.9.181.x86.pdb.7z</a> </td> <td class='fb-d'>2015-10-04 22:30</td> <td class='fb-s'>17006 KB</td> </tr> <tr> <td class='fb-i'> <img src='/_h5ai/client/images/fallback/file.png' alt='file'/> </td> <td class='fb-n'> <a href='/MPC-HC_standalone_filters.1.7.9.181.x64.7z'>MPC-HC_standalone_filters.1.7.9.181.x64.7z</a> </td> <td class='fb-d'>2015-10-04 22:23</td> <td class='fb-s'>1616 KB</td> </tr> <tr> <td class='fb-i'> <img src='/_h5ai/client/images/fallback/file.png' alt='file'/> </td> <td class='fb-n'> <a href='/MPC-HC_standalone_filters.1.7.9.181.x86.7z'>MPC-HC_standalone_filters.1.7.9.181.x86.7z</a> </td> <td class='fb-d'>2015-10-04 22:31</td> <td class='fb-s'>1454 KB</td> </tr> </table> </div> </body> </html>
Вводим http2cli https://nightly.mpc-hc.org 1|find "x86.exe" и получаем: CMD: dzzb.ru <a href='/MPC-HC.1.7.9.181.x86.exe'>MPC-HC.1.7.9.181.x86.exe</a> Для x64 версии всё по той же схеме: вводим http2cli https://nightly.mpc-hc.org 1|find "x64.exe" и получаем:CMD: dzzb.ru <a href='/MPC-HC.1.7.9.181.x64.exe'>MPC-HC.1.7.9.181.x64.exe</a> Дальше уже обрезать лишнее и оставить только "/MPC-HC.1.7.9.181.x86.exe" - дело техники:
for /F "tokens=2 delims='" %%i in ('http2cli https://nightly.mpc-hc.org 1^|find "x86.exe"') do wget --no-check-certificate "https://nightly.mpc-hc.org%%i"
и у нас в руках самый свежий билд плеера.
Увы, но find не умеет искать то, что находится в двойных кавычках: Если ссылка лежит не в 'https://nightly.mpc-hc.org/MPC-HC.1.7.9.181.x86.exe', а "https://nightly.mpc-hc.org/MPC-HC.1.7.9.181.x86.exe", то простой правкой скрипта на for /F "tokens=2 delims="" %%i in ... не отделаешься. Нужны опять же костыли. В сети куча тематик и на русских и на английских ресурсах как обойти то, что команда for не работает с этим " разделителем.
Чтобы не нагромождались скрипты, http2cli заимел еще два параметра:
http2cli http://www.ya.ru 2 приведет к замене " на +++, но не будет в вмешиваться в разрывы строк.
http2cli http://www.ya.ru 3 приведет к замене " на +++ и создаст разрывы строк между html-тегами.
Кавычка заменена, скрипт for /F "tokens=2 delims=+++" %%i in ... - работает прекрасно.
Если сильно захотеть, то можно сделать, что-то вроде монитора изменения страницы без необходимости в запущенном браузере.
Примерно такой код будет мониторить любую страницу и сообщать, если на ней найдены изменения
@echo off
cls
for %%I in (old.html) do set OldFileSize=%%~zI
http2cli.exe "http://google.ru" > new.html
for %%I in (new.html) do set NewFileSize=%%~zI
if "%OldFileSize%"=="%NewFileSize%" goto bad

:good
echo Есть обновления!!
move /y new.html old.html >nul
goto end

:bad
echo Ничего нового...

:end
pause
Если на странице код всегда меняется, как у меня из-за счетчика до Нового Года, то http2cli всегда будет находить "обновления", это нужно учесть :)
Так же пришлось оборудовать этот костыль функцией перевода полученного текста из одной кодировки в другую.
Командная строка у нас по умолчанию в кодировке 866, а потому русский текст на современных страницах (чаще UTF8) будет отображаться так
F4 ╨╜╨░ TXT ╤Д╨░╨╣╨╗╨╡ - ╨╛╨╜ ╨╛╤В╨║╤А╨╛╨╡╤В╤Б╤П ╨▒╨╗╨╛╨║╨╜╨╛╤В╨╛╨╝, F4 ╨╜╨░ *.RTF - ╨╛╤В╨║╤А╤Л╨▓╨░╨╡╤В╤Б╤П ╨▓╨╕╨╜╨┤╨╛╨▓╤Л╨╝ ╨▓╨╛╤А╨┤╨┐╨░╨┤╨╛╨╝, F4 ╨╜╨░ JPG ╨║╨░╤А╤В╨╕╨╜╨║╨╡ - ╨╛╤В╨║╤А╨╛╨╡╤В╤Б╤П ╨┐╨╡╨╕╨╜╤В╨╛╨╝.
╨Т╤Б╨╡ ╨╜╨░╤Б╤В╤А╨╛╨╣╨║╨╕ ╨▓╨╡╨┤╤Г╤В╤Б╤П ╤З╨╡╤А╨╡╨╖ ini. ╨г╨┤╨╛╨▒╨╜╨╛, ╨║╨╗╨░╤Б╤Б╨╜╨╛, ╨┐╨╛╨╗╤М╨╖╨╛╨▓╨░╨╗╤Б╤П ╨│╨╛╨┤╨░╨╝╨╕. ╨в╤Г╤В ╨▓╨╜╨╡╨╖╨░╨┐╨╜╨╛ ╨┐╨╛╨╜╨░╨┤╨╛╨▒╨╕╨╗╨╛╤Б╤М, ╤З╤В╨╛╨▒╤Л ╤Д╨░
Кодовую страницу нужно указывать общепринятым номером (1251 - Windows Cyrillic, 866 - Dos Cyrillic, 65001 - UTF8 и т.д..), либо не указывать вообще, если перекодировка не требуется.
Команда:
http2cli.exe http://www.dzzb.ru 0 65001 866
выведет в консоль читаемый русский текст.
Наконец выкладываю сообщение, которое выдаст http2cli, если был произведен ее запуск без каких-либо параметров :
CMD: dzzb.ru http2cli 15.10.17 Сайт: http://www.dzzb.ru Автор: MBTY Приложение выводит содержимое URL в консоль. Пример использования: http2cli.exe http://www.google.ru Поддерживается переформатирование html кода из одной строки в развернутый вариант. Пример использования: Превращение однострочного кода в разбитый, путем вставки разрыва между html-тегами и заменой " на +++: http2cli.exe http://www.google.ru 3 Превращение замена " на +++ без создания разрывов строк между html-тегами: http2cli.exe http://www.google.ru 2 Превращение однострочного кода в разбитый, путем вставки разрыва между html-тегами: http2cli.exe http://www.google.ru 1 Сохранение исходно вида кода: http2cli.exe http://www.google.ru 0 Имеется поддержка перекодирования содержимого на лету. Пример использования: http2cli.exe http://www.google.ru [0/1] [исходная кодировка] [конечная кодировка] Кодовая страница указывается номером. 1251 - Windows Cyrillic 866 - Dos Cyrillic 65001 - UTF8 и т.д. Пример использования перекодировки страницы из UTF8 в DOS с сохранением форматирования: http2cli.exe http://www.google.ru 0 65001 866 Пример использования перекодировки страницы из UTF8 в DOS с разбиением кода на строки: http2cli.exe http://www.google.ru 1 65001 866

Скачать
Читать далее

Консольные помогаторы

Опубликовано: 24-07-2015 21:16 Автор: MBTY Теги: Мои разработки, HTML
А сегодня у нас два консольных костыля за раз.
Первый - NetSize:
Небольшая утилита, которая просто получает размер файла с сервера.
Вся эта паника вокруг Flash Player с его ежедневными фиксами привела к тому, что нужно каждый день обновлять установочные дистрибутивы браузеров на моей флешке.
У ЯндексБраузера ссылка на скачивание последнего билда имеет вид: http://browser.yandex.ru/download/?os=win&full=1
При обновлении дистрибутива ни aria2c ни wget не могут сравнить файл на сервере с файлом на флешке, потому что на сервере у него всегда меняется имя. Получается, что браузер всегда приходится перекачивать, даже если он не обновлялся.
Получается нужна сравнивалка размеров файла на сервере с локальным файлом. Получился NetSize.
Вбиваем в консоли NetSize "http://browser.yandex.ru/download/?os=win&full=1" и получаем в ответ 59194320 Скрипт, который демонстрирует его работу выглядит так.
1) for %%I in (Yandexlatest.exe) do set LocalFileSize=%%~zI
2) for /F %%a in ('%~d0\!_Soft\netsize "http://browser.yandex.ru/download/?os=win&full=1"') do set NetFileSize=%%a
3) if "%LocalFileSize%"=="%NetFileSize%" goto setup
4) :download
5) wget --trust-server-names --no-check-certificate "http://browser.yandex.ru/download/?os=win&full=1" -q -nv -N -O Yandexlatest.exe
6) :setup
7) Yandexlatest.exe
Поясню построчно.
1) Получаем размер файла на флешке и назначем ему переменную LocalFileSize
2) Получаем размер файла на сервере и назначем ему переменную NetFileSize
3) Если размеры одинаковы, то перескакиваем к процессу установки с маркером Setup, пропустив процесс скачивания.
4, 5) Если размеры не совпали, то начинается процесс скачивания с последнующей установкой.
6, 7) Установка браузера.
Скачать NetSize
Второй костыль - OPI:
Простая, но полезная утилита, которая будет удобна для обновления разных дистрибутивов.
Для примера рассмотрим как выкладываются дистрибутивы браузера Opera на оффициальном сервере.
Перейдя по ссылке http://get.geo.opera.com/ftp/pub/opera/desktop/, мы увидим, что нумерация версий приводит к тому, что в самом низу последним идёт самый свежий релиз браузера 30.0.1835.88
Сталкивался в сети с хитроумным скриптом для выполнения подобной цели - нахождение последнего билда любой программулины на страницах подобного формата. Скрипт скачивал всю страницу через Wget, отсеивал все ссылки в отдельный файл через find, затем gsar чистил сылку, чтобы получить только номер билда. Итого три утилиты.
OPI делает всё это за раз. Комманда opi.exe "http://get.geo.opera.com/ftp/pub/opera/desktop/" выдаёт в консоль: 30.0.1835.88 Скрипт демонстрации работы Opi:
1) for /F %%a in ('opi.exe http://get.geo.opera.com/ftp/pub/opera/desktop/') do set BUILD=%%a
2) wget http://get.geo.opera.com/ftp/pub/opera/desktop/%BUILD%/win/Opera_%BUILD%_Setup.exe
1)Opi вычисляет свежий билд и назначает переменную BUILD
2)wget скачивает файл по ссылке, но заменяет %BUILD% на 30.0.1835.88: http://get.geo.opera.com/ftp/pub/opera/desktop/30.0.1835.88/win/Opera_30.0.1835.88_Setup.exe

Скачать Opi
Читать далее

Всем по Ckeditor

Опубликовано: 26-01-2015 10:56 Автор: MBTY Теги: HTML,

Чаще стало нужно работать с HTML. Толковых WYSIWYG редакторов почти что нет. Писать такую то дичь - долго и некогда, писать html в блокноте - тяжело и глупо.
Выбор пал на онлайн html редакторы. Перебрав несколько за неделю, остался на ckeditor. Так как работать с ним нужно с нескольких машин, то понадобилось найти поставленный ckeditor в свободном доступе на каком-нибудь сайте.
Таких сайтов полно. Но либо редактор старый, либо рекламы много, либо версия урезанная. Чистой страницы с чистым редактором я не нашел. Залил себе на сайт. Версия 3.4.5 - не самая новая, но самая последняя, которая запустилась на Opera 12.17 (никогда не знаешь под каким браузером придется работать).
Постоянная ссылка на онлайн Ckeditor: bit.ly/cked-435

  • Рекламы на этой странице нет.
  • Редактор автоматом разворачивается на всю страницу
  • Версия редактора - full (существуют еще standart и basic - нам такое не нужно)

Пользуйтесь наздоровье

Читать далее

EasyHTML 14.11.29

Опубликовано: 29-11-2014 00:56 Автор: MBTY Теги: Мои разработки, HTML
EasyHTML 14.11.29 (dzzb.ru)EasyHTML 14.11.29 Написал простой HTML редактор, который пригодится больше не для работы в нём, а в обучающих целях. (Для учителей информатики)
Приложение разделено на две части: Простой текстовый редактор и Область предпросмотра, которая использует системный движок Internet Explorer
Имеется очень минималистичное, но РЕДАКТИРУЕМОЕ под свои нужды меню:
Правка меню осуществляется через редактирование ini файла EasyHTML
Для примера рассмотрим ini файл со следующей структурой:

[Ж]
mask=<b>%1</b>
[К]
mask=<i>%1</i>
[Ч]
mask=<u>%1</u>
[З]
mask=<s>%1</s>
Ж,К,Ч,З - 4 кнопки, которые будут доступны в приложении.
mask - действие этих кнопок.
%1 - выделенный текст.
Нужна кнопка, которая центрирует объект (<center>)
Дописываем в ini файле такой текст.
[Текст по центру]
mask=<center>%1</center>
После перезапуска, в EasyHTML появится кнопка "Текст по центру", которая будет заключать выделенный текст в тег <center>

Скачать
Читать далее

Скрипт на сайт для слабовидящих

Опубликовано: 28-10-2014 01:00 Автор: MBTY Теги: HTML, Мои разработки
Внизу выкладываю самоделку. Это пример главной страницы сайта на php, на которой реализована смена стиля (css) с сохранением его названия в cookie на 1 сутки.
Так же имеется три кнопки:
*Включить отображение для слабовидящих.
*Включить стандартный вид
*Динамическая кнопка переключения темы
Сами стили css не прилагаются - их придется пилить самому. Просто увеличьте размер шрифта и избегайте пестрых цветов (желательно Ч/Б) Не используются ни jquery ни какие-то еще java скрипты. Чистый php.
Красный кусок текста должен быть в САМОМ начале страницы, чтобы cookie записывались без ошибок и не ругались на "header already sent"
Всё ниженаписанное можно скопипастить в php файл и поиграться с содержимым. Тестировал на Denwer3_Base_2013-06-02_a2.2.22_p5.3.13_m5.5.25_pma3.5.1_xdebug
<?php
//Прием параметра от кнопки (кнопка в самом низу примера) и запись в куки названия нужной темы.
if(isset($_GET['vision'])) {
 setcookie("theme",'vision', time()+3600*24);
 header('Location: ' . $_SERVER['HTTP_REFERER']); }
elseif (isset($_GET['default'])) {
 setcookie("theme",'bootstrap', time()+3600*24);
 header('Location: ' . $_SERVER['HTTP_REFERER']);}
?>


<!DOCTYPE html>
<head>
<!-- Если в куке хранится vision-берем тему ($theme) Vision, а во всех остальных случаях-bootstrap -->
<?php if ($_COOKIE["theme"]=='vision') {$theme=vision;} else {$theme=bootstrap;} ?>
<!-- Тестовый вывод какую тему будем использовать. Можно стереть. -->
<?php echo "Используется тема "?> <b><?php echo $theme; ?></b><br>
<!-- Подгружаем нужную тему. -->
<link href="/css/<?php echo $theme; ?>.css" rel="stylesheet">
</head>

<body>
<!-- Кнопки переключения темы. С записью в куки нужной темы. (Самый верх страницы) -->
<a href="?vision">Для слабовидящих</a>
<a href="?default">Стандартная тема</a>
<!-- Переключатель одной кнопкой -->
<?php if ($_COOKIE["theme"]=='vision') {$button='default';} else {$button='vision';} ?>
<a href="?<?php echo $button;?>">Сменить внешний вид</a>
</body>
Читать далее
Выкладываю первый действительно полезный шаблон для моей кнопки
Работает он так:
1) Пользователь выделяет изображения, запускает MBTYTCB и выбирает этот скрипт создания галлереи.
2) Скрипт поочередно для каждого изображения сначала создает миниатюру, затем заливает на хостинг изображений savepic.su сначала оригинальную картинку, а потом уменьшенную.
3) Далее в противоположной панели создается файл imageurls.txt с двумя ссылками: а) ссылка на оригинальное изображение. б) ссылка на миниатюру.
4) Потом идет переход к следующему изображению, его заливка с внесением еще двух строк в imageurls.txt
Далее с файлом imageurls.txt делайте что хотите :)
Скрипт обязательно запускать в Sync режиме. Иначе в imageurls.txt ссылки будут внесены не последовательно парами для каждого изображения, а в порядке скорости обработки и заливки - какая картинка быстрее зальется на savepic.su - та и будет первой. Говоря проще: В imageurls.txt получится каша из ссылок.
Как установить скрипт в кнопку: (инструкция подразумевает, что сама MBTYTCB уже установлена)
1) Скачать архив с необходимыми программами и скриптом
2) Распаковать содержимое в папку Prog, которая, есть в MBTYTCB.
3) Внести в MBTYTCB.ini новый скрипт:
[Запилить галлерею миниатюр и залить на Savepic.SU]
Mask=Prog\Gallery\Gallery.cmd "%INPATH%%FILE%.%EXT%" "%OUTPATH%%FILE%_min_.PNG" "%OUTPATH%imageurls.txt"
Читать далее

Спойлер на чистом HTML

Опубликовано: 13-05-2014 06:10 Автор: MBTY Теги: Мои разработки, HTML
Несколько лет назад нашёл, теперь чуть не потерял. Выклдываю тут. Тут не должен потеряться.
<div style="margin: 2px; margin-top: 1px;"><div style="margin-bottom: 2px;"><strong>!Заголовок!</strong>: <input style="font-size: 14px; margin: 0px; padding: 0px;" onclick="if (this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display != '') { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = ''; this.innerText = ''; this.value = 'Спрятать'; } else { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = 'none'; this.innerText = ''; this.value = 'Показать'; }" type="button" value="Показать" /></div><div style="margin: 0px; padding: 0px; border: 2px ridge; border-radius: 10px;"><div style="display: none;">!Текст!</div></div></div>
Пример:
!Заголовок!:
!Текст!
Читать далее

Браузеры

Опубликовано: 18-02-2014 00:07 Автор: MBTY Теги: Мои разработки, HTML
Снова здравствуйте! Как вы (надеюсь) заметили - у нас стала периодически отваливаться боковая панель. ВСЯ. Причиной тому является периодическое зануление файла настроек сайта. Будем разбираться. Более того - ссылка на DG тоже слетела - поправил. Ну да ладно. Снова столкнулся с проблемой, с которой сталкивались многие - сломанный (или случайно удаленный) браузер в Windows. С таким сталкиваешься постоянно, когда чинишь чужие компьютеры. Либо IE слетел, либо поломался так, что работать он как бы должен, а вот запускаться он не хочет. Самое логичное решение - поставить человеку Opera (FF, Chrome, Safafi .....) и всё. Тут нас ждет очередной затык: все современные браузеры обновляются почти каждый день, а потому носить с собой на флешке актуальную версию чето-то просто невозможно. Вывод: Нужно скачать свежий обозреватель и поставить человеку. А скачивать нечем, потому что IE не запускается. Ответ один - таскать на флешке что-нибудь потративное, чтобы скачивать что-нибудь нужное. В сети полно portable браузеров, сборок, пересборок, того-сего, пятого-десятого, в большинстве случаев подойдет любой из них, но почти все они сделаны на VMware ThinApp (или его ранних аналогах), что вообще-то незаконно, потому как ThinApp платен, а все поделки, сделанные на ломаном софте являются априори незаконными. Дома таким пользоваться может и не страшно, а вот таскать такое с собой на флешке, как-то не весело. Многие разработчики, с недавних пор, добавили в свои программные продукты поддержку портативности, но опять таки мы получаем программу, которая по структуре является папкой с кучей файлов, что не есть хорошо (когда нужно-то зайти на 1 сайт, скачать 1 файл и всё). К тому же такие портативки очень изнашивают флешку (потому что перечитывают и перезаписывают кучу собственных файлов настроек каждый раз. Ну и посидев, подумав (за играми), решил я запилить две штуки:
  1. Portable Opera, собранную одним файлом, временно создающую нужные файлы в папке Temp и удаляющую ее после закрытия.
  2. Очень легковесную утлиту, которая по сути отображает сайты, используя движок IE - пригодится, когда Internet Explorer всё-таки в системе присутствует, но не запускается
Opera получила название OperaOne. One(один), потому что одноразовая. Каждый ее запуск будет открывать чистую, исходную оперу, словно вы в ней никогда до этого не работали. Поэтому ссылки на нужные Вам сайты храните рядом в текстовом файле (или используйте другие браузеры, а не мою поделку, если не нравится такой подход). Урезана и пожата она очень жестоко, а потому даже страница "О программе" (как и все системные страницы) отображаются без фирменного оформления, но вполне себе читабельны. Поясню очевидное: Все страницы эта Opera отображает правильно и красиво, а страницы с ошибками ("Невозможно найти удалённый сервер", "О программе", opera:config и т.д.) отображаются без красивого оформления. За основу взята Версия: 12.11 Сборка: 1661. Вес чуда составил 7,50 МБ (7 872 209 байт)
Вторая же поделка - написана с нуля и получила название NanoBrowser, потому как мне не доводилось видеть браузер меньше этого. Вес составил 85,0 КБ (87 040 байт), а выглядит NanoBrowser вот так.
Само собой - окно можно развернуть на весь экран.
Скачать
P.S. Повторяю, что оба приложения являются лишь инструментом для аварийных случаев.
Читать далее

Счетчик кликов

Опубликовано: 17-02-2012 23:42 Автор: MBTY Теги: Разное, HTML
Обновил кликосчиталку. Взял, кстати, отсюда. Отличная вещь. На любой сайт установить можно.
Пример использования:
<a href="/cc.php?q=ссылка">Скачать</a>[<b><script type="text/javascript" src="/cc.php?c=та же ссылка"></script></b>] 
P.S. В обновленной версии метод подсчета кликов изменился, а потому цифры кликов обнулились, да их и небыло толком. Ничего страшного. Читать далее

Жамкай
◘▲▼▲◘◘▲▼▲◘◘▲▼▲◘
epn - партнерская программа крупнейшей в мире торговой площадки AliExpress.
TCPHost new- дешевый быстрый хостинг с гибкой настройкой тарифа и отзывчивым саппортом.
Links Ads new - сокращай ссылки и получай деньги (даже без сайта)
DepositFiles new - один из самых честных и проверенных обменников
ICQadvert new - 2500р./1к кликов vk-message.
advmaker - смешанная ПП для жирных белых сайтов.
Telderi new - лучшая в рунете биржа купли-продажи сайтов!
Sape - древнейшая биржа покупки/продажи ссылок.
GoGetLinks - первая и лучшая биржа вечных ссылок.
Wizard-Banners - медиарич парнерка, от 80Р/1000 показов.
Media Rich - гибкая медиарич/попандер партнерка.
ГдеСлон - гибкая товарная парнерка.
Seopult - биржа автоматического продвижения.
Rookee - мощная альтернатива Сеопульту.
Blogun - постовые и вечные ссылки.
Webunder - правильный кликандер 100Р/1000 показов.
Popunder - мощный, механизмы от пессимизации.
Teasernet - старейшая надежная тизерная сеть.
Ladycash - женские тизеры, высокие ставки клик от 2+РУБ.
Alawar - продажа мини-игр от мастистого издателя.
Fotocash - парнерка тамагочи/дейтинга, высокая конверсия.
Avtoprogon - автоматический прогон по 7,652 каталогам.
Runetki new - партнерка ведущего эротического видеочата!
Admitad - старая, честная, гибкая PPA.