Using less in Bootstrap and why it need.

Дата: 18 August, 2016, Автор: admin_kselax

Array

Hello guys!

Today we review less in bootstrap, I can’t immediately understand why it need. Read book about bootstap and there was described about harp.js and I think it need use and however will creating CSS. It’s thought wrong.

Know I understood how use less and why it need, a bit understand 🙂 .
Ok go . Less need for compile Less sources files to CSS files. Less it’s special languages which use variables and mixins and others features.

>>>Читать далее

WP экранирует данные переданные из форм, что делать? Экранирование данных

Дата: 20 July, 2016, Автор: admin_kselax

Сталкнулся с такой проблемой, создал форму из нее передаю данные и дальше сохраняю в БД, то данные в массиве $_POST получаются экранированые.
Почему такое происходить?

Немножко погуглил нашел функцию в файле wp-settings.php

// Add magic quotes and set up $_REQUEST ( $_GET + $_POST )
wp_magic_quotes();

И вот ее код из файла wp_includes/load.php

>>>Читать далее

Как потестить функциональность в wordpress

Дата: 16 July, 2016, Автор: admin_kselax

Привет!
Бывает нужно потестить ту или иную функциональность в wordpress. Для этого существует простой способ, создаем в корневой директории файл test.php и в него добавляем следующий код

Показать »

<?php 
// Load the WordPress Environment
// define( "WP_DEBUG", true ); /* uncomment for debug mode */
require('./wp-load.php');
// require_once ("./wp-admin/admin.php"); /* uncomment for is_admin() */
?>
<pre>
<?php
/* test stuff here */
var_dump( is_admin() );
?>
</pre>

Все и дальше тестим, дабовляем любой код.

>>>Читать далее

C# WPF Webbrowser примеры кода

Дата: 30 September, 2015, Автор: admin_kselax

В C# есть два WebBrowser, один в пространстве имен System.Windows.Controls.WebBrowser, а другой в System.Windows.Forms.WebBrowser.

Похоже первый браузер который есть в WPF а это System.Windows.Controls.WebBrowser он вроде по функционалу слабенький для парсеров и ботов, поэтому мы будем использовать webbrowser  System.Windows.Forms.WebBrowser.

всяко разно »

чтобы не выводились ошибки сценария JavsScript добавим

webBrowser.ScriptErrorsSuppressed = true;

1. Подключение WebBrowser к WPF

Показать »

И так для начала нам нужно подключить веббраузер. По умолчанию у нас подключен System.Windows.Controls.WebBrowser. Его использовать не составляет труда, но потому что он убогий по функционалу, мы будем использовать другой из WondowsForm. Для того чтобы использовать пространство имен System.Windows.Forms нужно в менеджере ссылок его подключить. Заходим в проект и добавляем ссылки System.Windows.Forms , а также нужно еще добавить ссылку WindowsFormsIntegration. Все мы можем использовать браузер.

Чтобы браузер было виндо нужно его встроить на страницу

<Window x:Class="Test_fl.ru.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:Test_fl.ru"
        xmlns:forms="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms"
        mc:Ignorable="d"
        
        Title="MainWindow" Height="489.577" Width="860.586">
    <Grid Margin="0,0,2,-21">
        <Button x:Name="button" Content="Start" HorizontalAlignment="Left" Margin="718,24,0,0" VerticalAlignment="Top" Width="75" Click="button_Click" IsDefault="True"/>
        <TextBox x:Name="url" HorizontalAlignment="Left" Height="23" Margin="38,24,0,0" TextWrapping="Wrap" Text="TextBox" VerticalAlignment="Top" Width="600"/>
        
        <WindowsFormsHost Margin="38,24,189,57">
            <forms:WebBrowser x:Name="webBrowser"></forms:WebBrowser>
        </WindowsFormsHost>
    </Grid>
</Window>

этой строчкой мы указываем ссылку на формы

xmlns:forms="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms"

а эти строчки встраивают браузер на страницу

<WindowsFormsHost Margin="38,24,189,57">
      <forms:WebBrowser x:Name="webBrowser"></forms:WebBrowser>
</WindowsFormsHost>

2. Прочитать текст из WebBrowser

Показать »

Просто так нельзя присвоить, потому что если сайт будет в cp1251 или другой кодировке отличной от utf8, то при записи в файл будут крякозябры

string text = webBrowser.DocumentText;

Нужно делать так через потоки

Stream stream = webBrowser.DocumentStream;
StreamReader sr = new StreamReader(stream, Encoding.Default);
string text = sr.ReadToEnd();
stream.Close();
textBox.Text = text;

3. Удалить cookie из webbrowser

Показать »

Подключаем wininet.dll

[DllImport("wininet.dll", SetLastError = true, CharSet = CharSet.Auto)]
        private static extern bool InternetSetOption(
                                                    IntPtr hInternet,
                                                    int dwOption,
                                                    IntPtr lpBuffer,
                                                    int lpdwBufferLength);

не забываем добавить в самом начале файла

using System.Runtime.InteropServices;

И сам код

//logOut
        private void button_logout_Click(object sender, RoutedEventArgs e)
        {
            if(InternetSetOption(IntPtr.Zero, 42, IntPtr.Zero, 0))
            {
                System.Diagnostics.Process.Start("cmd.exe", "/C RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 255");
            }
        }

Отключить вывод ошибко в webbrowser

Показать »

webBrowser.ScriptErrorsSuppressed = true;

Дождаться конца загрузки страницы DocumentCompleted

Показать »

//событие на загрузку страницы
private void webBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
    if (e.Url.AbsolutePath != (sender as System.Windows.Forms.WebBrowser).Url.AbsolutePath)
        return;

    m_flag = false;
    m_timer.Stop();
}

webbrower шаблон для winforms

Показать »

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace BotForSteam
{
    public partial class Form1 : Form
    {
        public System.Windows.Forms.Timer m_timer;//таймер
        public int m_count;
        public bool m_flag;

        public Form1()
        {
            InitializeComponent();
            //инициализация таймера
            m_timer = new System.Windows.Forms.Timer();//таймер
            m_timer.Tick += new EventHandler(f_timer);//подписка на событие
            m_timer.Interval = 1000;//1 секунда

            webBrowser.ScriptErrorsSuppressed = true;
            webBrowser.Navigate("http://google.ru");
        }

        private void button_Start_Click(object sender, EventArgs e)
        {
            MyNavigate("http://fl.ru");
        }

        private void button_Logout_Click(object sender, EventArgs e)
        {
            
        }

        //таймер
        private void f_timer(object sender, EventArgs e)
        {
            m_count--;
            textBox.AppendText(Convert.ToString(m_count, 10) + "n");
            if (m_count < 0)
            {
                m_flag = false;//выход из цикла
            }
        }

        //функция для загрузки страницы
        private void MyNavigate(string url)
        {
            m_flag = true;
            m_count = 10;//секунд
            m_timer.Start();//запуск таймера
            webBrowser.Navigate(url);
            while (m_flag)
            {
                System.Windows.Forms.Application.DoEvents();
                //задержка 0.1 сек
                System.Threading.Thread.Sleep(TimeSpan.FromSeconds(0.1));
            }
            m_timer.Stop();//остановка таймера
        }

        //событие на загрузку страницы
        private void webBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
            if (e.Url.AbsolutePath != (sender as System.Windows.Forms.WebBrowser).Url.AbsolutePath)
                return;

            m_flag = false;
            m_timer.Stop();
        }
    }
}

еще один

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Runtime.InteropServices;//для подключения длл

namespace BotForSteam
{
    public partial class Form1 : Form
    {
        public System.Windows.Forms.Timer m_timer;//таймер
        public int m_count;
        public bool m_flag;

        [DllImport("wininet.dll", SetLastError = true, CharSet = CharSet.Auto)]
        private static extern bool InternetSetOption(
                                                    IntPtr hInternet,
                                                    int dwOption,
                                                    IntPtr lpBuffer,
                                                    int lpdwBufferLength);

        public Form1()
        {
            InitializeComponent();
            //инициализация таймера
            m_timer = new System.Windows.Forms.Timer();//таймер
            m_timer.Tick += new EventHandler(f_timer);//подписка на событие
            m_timer.Interval = 1000;//1 секунда

            webBrowser.ScriptErrorsSuppressed = true;
            webBrowser.Navigate("http://google.ru");
        }

        private void button_Start_Click(object sender, EventArgs e)
        {
            MyNavigate("http://fl.ru");
        }

        private void button_Logout_Click(object sender, EventArgs e)
        {
            if (InternetSetOption(IntPtr.Zero, 42, IntPtr.Zero, 0))
            {
                System.Diagnostics.Process.Start("cmd.exe", "/C RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 255");
            }
        }

        //таймер
        private void f_timer(object sender, EventArgs e)
        {
            m_count--;
            textBox.AppendText(Convert.ToString(m_count, 10) + "n");
            if (m_count < 0)
            {
                m_flag = false;//выход из цикла
                m_timer.Stop();//останавливаем таймер
            }
        }

        //функция для загрузки страницы
        private void MyNavigate(string url)
        {
            m_flag = true;
            m_count = 10;//секунд
            m_timer.Start();//запуск таймера
            webBrowser.Navigate(url);
            while (m_flag)
            {
                System.Windows.Forms.Application.DoEvents();
                //задержка 0.1 сек
                System.Threading.Thread.Sleep(TimeSpan.FromSeconds(0.1));
            }
            m_timer.Stop();//остановка таймера
        }

        //событие на загрузку страницы
        private void webBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
            if (e.Url.AbsolutePath != (sender as System.Windows.Forms.WebBrowser).Url.AbsolutePath)
                return;

            m_flag = false;//выход из цикла
            m_timer.Stop();//останавливаем таймер
        }

        private void button_Set_Click(object sender, EventArgs e)
        {

        }
    }
}

запись в файл текста из webbrowser в той кодировке в которой он есть

Показать »

// 2. проверяем была ли авторизация
Stream stream = webBrowser.DocumentStream;
StreamReader sr = new StreamReader(stream, Encoding.Default);
string text = sr.ReadToEnd();
stream.Close();
//textBox.Text = text;
//сохраняем в файл с кодировкой по умолчанию
File.WriteAllText("data.html", text, Encoding.Default);

 

 

 

 

 

Phantomjs консольный веббраузер для новичков.

Дата: 4 September, 2015, Автор: admin_kselax

Phantomjs – это консольный веб – браузер без экрана headless. Его мы будем использовать для создания ботов и парсеров сайтов с javascript кодом, где данные подгружаются черзе javascript просто спарсить через curl не получиться.

Создание файла который будет загружать JS

Официальный сайт Phantomjs PhantomJS

И так это консольный браузер. Я с гаряча его как бы хотел попробовать на нем писать парсер вместо Curl и WinInet но как то так посмотрел, там все коды нужно делать на JavaScript, поэтому в общем как то не ясно как его оформлять. Короче была идея создать через CreateProcess процесс, создать пайп, перенаправить stdin и stdout и посылать код js на обработку и получать результат. Фиг его знает как он будет работать, да и реализовать это не так просто будет. Наверно все таки WebBrowser лучше будет использовать. Есть еще второй вариант как использовать, это просто запускать JavaScript скрипты и ждать пока они спарсять, но тогда смысл использовать MFC и С++, только ради GUI наверно и возможно как клей. Вообще в этом Phantomjs нужно разбираться, например как он куки сохраняет, а если я выйду из phantomjs и что куки которые были ранее пропадут? >>>Читать далее

Microsoft Excel 2010 – создание макроса на VBA

Дата: 18 July, 2015, Автор: admin_kselax

Здорова ребятки!

Сегодня разберем как создаются макросы в Excel 2010 с использованием скриптового языка VBA (visual basic for application).

И так запускаем Excel 2010. создаем новую книгу. Затем заходим на вкладку Разработчик. Если ее у вас нету то вы ее можете включить, для этого выбираете “файл” -> “параметры”, потом выбираете “настройка ленты” и в панели “Основные вкладки” ставьте галочку на “Разработчик” и нажмите ОК. У вас появится вкладка разработчик.

Дальше чтобы создать макрос вначале нужно зайти в “Безопасность макросов”

exel macros

 

>>>Читать далее

Создание расширения для Firefox

Дата: 22 June, 2015, Автор: admin_kselax

add-on sdkЗдорова!

Решил написать плагин для Firefox. Там для этого существует несколько типо инструментов, вроде как щас популярно использовать Add on SDK вот ссылка на то где расписано как его скачать, установить и настроить. https://developer.mozilla.org/ru/Add-ons

>>>Читать далее

Drupal 7 – подключение файлов JavaScript

Дата: 17 May, 2015, Автор: admin_kselax

Здорова! Разберем как подключить JavaScript файлы к Drupal 7. К этой ЦМС если не так просто их подключить.drupal-7 Для этого нужно зайти в папку где находится тема вашего сайта и найти файл info и туда впасать файл js который вы хотите подключить.

 

В моем случае это файл

\sites\all\themes\starfish_responsive_theme\starfish_responsive_theme.info >>>Читать далее

Javascript – синтаксис языка для новичков

Дата: 7 May, 2015, Автор: admin_kselax

регулярные выражения

Показать »

почитать можно тут.

//нужно получить все ссылки на изображения
var str=page.content;
var regexp=/<img[^<>]*?src[^<>]*?=[^<>]*?"([^<>]*?)"[^<>]*?>/g;
var r;
console.log("tyt");
links=[];
for(var i=0;r=regexp.exec(str);i++){
    console.log("i="+i+" "+r[1]);
    links[i]=r[1];
}

Здорова ребятки! Немножно разберем синтаксис языка javascript

Подключение файлов Javascript в Drupal 7

Создание и подключение кода:

Создание и подлючение кода »

в Javascritp файлы в html документ подключаются следующим образом

<head>
	<script type="text/javascript" src="js/jquery.js"></script>
</head>

Добавляется между тегов <head></head>, src указывает на путь к файлу

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

<html>
<head>
	<script type="text/javascript" src="js/jquery.js"></script>
	
	<script type="text/javascript">
	var a=1;
	for(i=1;i<10;i++)
		document.write(i+"<br>");
	</script>
	
	<style type="text/css">
	#blog {border:1px solid #aaf;background:#f9f9f9;padding:4px}
	.post {border:1px solid #aaa;background:#fff;padding:4px;margin: 2px 0}
	#loading {height: 40px}
	</style>
</head>

<body>

<h1>Hellow world!</h1>

</body>
</html>

и получим в вывод на экран

javascritp

>>>Читать далее

С++ CLI Диалоговые окна и элементы управления

Дата: 28 February, 2015, Автор: admin_kselax

Здорова ребятки!

Продолжаем улучшать нашу программку разработанную в посте С++ CLI улучшаем представление графического редактора .

CLI application >>>Читать далее