Сегодня 31 декабря, среда ГлавнаяНовостиО проектеЛичный кабинетПомощьКонтакты Сделать стартовойКарта сайтаНаписать администрации
Поиск по сайту
 
Ваше мнение
Какой рейтинг вас больше интересует?
 
 
 
 
 
Проголосовало: 7281
Кнопка
BlogRider.ru - Каталог блогов Рунета
получить код
Заметки - Блог о web-разработке. Сервисы для блоггеров. Блоговое
Заметки - Блог о web-разработке. Сервисы для блоггеров. Блоговое
Голосов: 1
Адрес блога: http://www.blogovoe.ru/blog/
Добавлен: 2013-12-27 23:28:54 блограйдером panevin
 

YouTube: монетизация видео

2016-09-01 12:16:58 (читать в оригинале)

Продолжительное время мне не давал покоя феномен украинского журналиста Анатолия Шария, после того как он обмолвился о своём заработке с видео на Ютубе — 20 000 € в месяц (двадцать тысяч евро в месяц! пересчитайте в наши тугрики, прослезитесь). Ну, то, конечно, недостижимая планка, у Шария > 200 000 просмотров роликов, а ролики он штампует пачками в день. Но мы попробуем, что нам, кабанам.

Делаем ролик. Не умеем делать? Спиздим чужое.



Главное авторские права не нарушать, а тут и видео удачное — во-первых оно на Вимео, есть слабая надежда, что его нет на YouTube (оказалось что уже есть, ну да ладно), во-вторых я же фактически рекламирую эту яхту, размещая ролик.

Затем включаем монетизацию роликов и связываем аккаунт на YouTube с аккаунтом в AdSense. Идём в Канал—>Монетизация
{IMG_2 alt="YouTube: монетизация видео, связь с AdSense"}

В настройках видео во вкладке Монетизация включаем её. Пол дела сделано.

Нам нужны тысячи просмотров, иначе овчинка выделки не стоит. Если у вас есть посещаемый сайт нужной тематики, проблем нет. У меня такого сайта под рукой не оказалось, я решил запилить псто на Яплакал (как раз нужная аудитория и суперпосещаемый форум). Мне повезло и псто набрал вожделенные 50 плюсов и попал на глагне :) Вуаля! > 8 000 просмотров за 2 дня. А дня через 3 раздуплится статистика Ютуба и покажет мне сколько я заработал.

Перенос записей из Wordpress в Битрикс

2016-08-29 08:30:10 (читать в оригинале)

Задача:
Перенести из Wordpress все записи в Битрикс.

Решение:
Накатываем в Вордпрессе плагин Export Featured Images, делаем экспорт записей в XML файл. А теперь, самое интересное — распарсить XML и засунуть записи в инфоблок в Битриксе.
Поехали:

$DOCUMENT_ROOT = $_SERVER["DOCUMENT_ROOT"];

define("NO_KEEP_STATISTIC", true);
define("NOT_CHECK_PERMISSIONS", true);
require($DOCUMENT_ROOT."/bitrix/modules/main/include/prolog_before.php");

set_time_limit(0);
ini_set('max_execution_time', '36000');
// ini_set('memory_limit', '512M');
$IBLOCK_ID = 14;
$update = true;

//////////////
CModule::IncludeModule("iblock");
CModule::IncludeModule("catalog");
CModule::IncludeModule("sale");
$obE = new CIBlockElement();

$file = $_SERVER["DOCUMENT_ROOT"].'/scripts/wordpress.2016-06-06.xml';

$xml = simplexml_load_file($file);

function castr_str ($text,$length) {
	$temp_text = explode(" ",$text);
	$temp1_string = '';
	for ($h=0; $h 5) $text = $temp1_string.'...';
	else $text = $temp1_string;
	return($text);
}

function xmlObjToArr($obj) {
        $namespace = $obj->getDocNamespaces(true);
        $namespace[NULL] = NULL;
       
        $children = array();
        $attributes = array();
        $name = strtolower((string)$obj->getName());
       
        $text = trim((string)$obj);
        if( strlen($text) <= 0 ) {
            $text = NULL;
        }
       
        // get info for all namespaces
        if(is_object($obj)) {
            foreach( $namespace as $ns=>$nsUrl ) {
                // atributes
                $objAttributes = $obj->attributes($ns, true);
                foreach( $objAttributes as $attributeName => $attributeValue ) {
                    $attribName = strtolower(trim((string)$attributeName));
                    $attribVal = trim((string)$attributeValue);
                    if (!empty($ns)) {
                        $attribName = $ns . ':' . $attribName;
                    }
                    $attributes[$attribName] = $attribVal;
                }
               
                // children
                $objChildren = $obj->children($ns, true);
                foreach( $objChildren as $childName=>$child ) {
                    $childName = strtolower((string)$childName);
                    if( !empty($ns) ) {
                        $childName = $ns.':'.$childName;
                    }
                    $children[$childName][] = xmlObjToArr($child);
                }
            }
        }
       
        return array(
            'name'=>$name,
            'text'=>$text,
            'attributes'=>$attributes,
            'children'=>$children
        );
}
$array = xmlObjToArr($xml);
$count = 0;
$count_err = 0;
$tags = array();
foreach ($array['children'] as $item) {
	foreach ($item[0]['children']['item'] as $post) {

		$text = $post['children']['content:encoded'][0]['text'];
		if (!empty($text)) {
			$atext = strip_tags($text);
			$atext = castr_str($atext,210);
		}

		$date = $post['children']['wp:post_date'][0]['text'];
		list($day,$time) = explode(' ',$date);
		list($year,$month,$dayc) = explode('-',$day);
		$date = $dayc.'.'.$month.'.'.$year.' '.$time;

		$code = $post['children']['wp:post_name'][0]['text'];
		$name = $post['children']['title'][0]['text'];

		$status = $post['children']['wp:status'][0]['text'];
		if ($status == 'trash') $active = "N";
		else $active = "Y";

		if (empty($name)) {//если название пустое Битрикс не даст сохранить элемент
			$name = 'Без названия';
			$active = 'N';
		}
		if (empty($code)) {//сгенерируем символьный код, если он пустой
			$arParams = array("replace_space"=>"-","replace_other"=>"-");
			$code = Cutil::translit($name,"ru",$arParams);
		}


		$link = $post['children']['link'][0]['text'];//old url

		$keywords = $post['children']['wp:postmeta'][2]['children']['wp:meta_value'][0]['text'];
		unset($tags,$title,$description,$keywords);
		foreach ($post['children']['wp:postmeta'] as $k => $meta) {//титлы, дискрипшены, кейвордзы
			if ($meta['children']['wp:meta_key'][0]['text'] == '_aioseop_title') $title = $post['children']['wp:postmeta'][$k]['children']['wp:meta_value'][0]['text'];
			if ($meta['children']['wp:meta_key'][0]['text'] == '_aioseop_description') $description = $post['children']['wp:postmeta'][$k]['children']['wp:meta_value'][0]['text'];
			if ($meta['children']['wp:meta_key'][0]['text'] == '_aioseop_keywords') $keywords = $post['children']['wp:postmeta'][$k]['children']['wp:meta_value'][0]['text'];
		}
		$SECTION_ID = 13;//другое
		foreach ($post['children']['category'] as $k2 => $tag) {//распихивание записей по рубрикам, совпадающим с тегами
			if ($tag['attributes']['domain'] == 'post_tag') $tags[] = $tag['text'];
			$tag['text'] = strip_tags($tag['text']);
			if ($tag['text'] == 'разработка сайтов' || $tag['text'] == 'аудит') $SECTION_ID = 12;
			if ($tag['text'] == 'SEO') $SECTION_ID = 14;
			if ($tag['text'] == 'контекстная реклама') $SECTION_ID = 15;
			if ($tag['text'] == 'продвижение в соцсетях' || $tag['text'] == 'SMM' || $tag['text'] == 'продвижение в facebook' || $tag['text'] == 'продвижение в одноклассниках') $SECTION_ID = 16;
			if ($tag['text'] == 'аналитика' || $tag['text'] == 'аудит') $SECTION_ID = 17;
			if ($tag['text'] == 'конверсия') $SECTION_ID = 18;
	
		}
		if (!empty($tags)) $tags_txt = implode(",", $tags);
		else $tags_txt = '';

			$arSelect = array(
				"ID",
				"NAME",
				"IBLOCK_ID",
				"IBLOCK_SECTION_ID",//added
				"*",//added
				"DETAIL_TEXT",
				"ACTIVE",
				"ACTIVE_DATE",
				"SORT",
				"DETAIL_PICTURE"
			);
			$arFilter = array(
				"IBLOCK_ID" => $IBLOCK_ID,
				"IBLOCK_ACTIVE" => "Y",
				"CODE" => $code,
				//"ACTIVE_DATE" => "Y",
				//"ACTIVE" => "Y",
			);
			$r = CIBlockElement::GetList(
				array(), 
				$arFilter, 
				false, 
				false, 
				$arSelect
			);
			$arFields = Array(
				"ACTIVE" => $active,
				"IBLOCK_ID" => $IBLOCK_ID,
				"NAME" => $name,
				"CODE" => $code,
				"PREVIEW_TEXT" => $atext,
				"PREVIEW_TEXT_TYPE" => 'html',
				"DETAIL_TEXT" => $text,
				"DETAIL_TEXT_TYPE" => 'html',
				"TAGS" => $tags_txt,
				"DATE_CREATE" => $date,
				"IPROPERTY_TEMPLATES"=>Array(
					"ELEMENT_META_TITLE" => $title,
					"ELEMENT_META_DESCRIPTION" => $description,
					"ELEMENT_META_KEYWORDS" => $keywords,
				)
			);
			if ( $arCurrentItem = $r->GetNext() ) {//update
				$arFields_update = $arFields;
				$arFields_update["SECTION_ID"] = $SECTION_ID;
				$arFields_update["IBLOCK_SECTION_ID"] = $SECTION_ID;
				
				$obE->Update($arCurrentItem["ID"], $arFields_update);
				echo ''.$name.' update
'; } else {//insert $arFields_insert = $arFields; $arFields_insert["CODE"] = $code; $arFields_insert["SECTION_ID"] = $SECTION_ID; if ( $ID = $obE->Add($arFields_insert) ) { //CIBlockElement::SetPropertyValuesEx($ID, $IBLOCK_ID, $arProps_add); echo ''.$name.' add
'; $count++; } else { echo $name.' ошибка добавления
'; $count_err++; } } } } echo 'Успешно: '.$count.'
'; echo 'Ошибок: '.$count_err;

Вот таким вот кандебобером. А перенос картинок опишу следующим постом.

Перенос записей из Wordpress в Битрикс

2016-08-29 08:30:10 (читать в оригинале)

Задача:
Перенести из Wordpress все записи в Битрикс.

Решение:
Накатываем в Вордпрессе плагин Export Featured Images, делаем экспорт записей в XML файл. А теперь, самое интересное — распарсить XML и засунуть записи в инфоблок в Битриксе.
Поехали:

$DOCUMENT_ROOT = $_SERVER["DOCUMENT_ROOT"];

define("NO_KEEP_STATISTIC", true);
define("NOT_CHECK_PERMISSIONS", true);
require($DOCUMENT_ROOT."/bitrix/modules/main/include/prolog_before.php");

set_time_limit(0);
ini_set('max_execution_time', '36000');
// ini_set('memory_limit', '512M');
$IBLOCK_ID = 14;
$update = true;

//////////////
CModule::IncludeModule("iblock");
CModule::IncludeModule("catalog");
CModule::IncludeModule("sale");
$obE = new CIBlockElement();

$file = $_SERVER["DOCUMENT_ROOT"].'/scripts/wordpress.2016-06-06.xml';

$xml = simplexml_load_file($file);

function castr_str ($text,$length) {
	$temp_text = explode(" ",$text);
	$temp1_string = '';
	for ($h=0; $h 5) $text = $temp1_string.'...';
	else $text = $temp1_string;
	return($text);
}

function xmlObjToArr($obj) {
        $namespace = $obj->getDocNamespaces(true);
        $namespace[NULL] = NULL;
       
        $children = array();
        $attributes = array();
        $name = strtolower((string)$obj->getName());
       
        $text = trim((string)$obj);
        if( strlen($text) <= 0 ) {
            $text = NULL;
        }
       
        // get info for all namespaces
        if(is_object($obj)) {
            foreach( $namespace as $ns=>$nsUrl ) {
                // atributes
                $objAttributes = $obj->attributes($ns, true);
                foreach( $objAttributes as $attributeName => $attributeValue ) {
                    $attribName = strtolower(trim((string)$attributeName));
                    $attribVal = trim((string)$attributeValue);
                    if (!empty($ns)) {
                        $attribName = $ns . ':' . $attribName;
                    }
                    $attributes[$attribName] = $attribVal;
                }
               
                // children
                $objChildren = $obj->children($ns, true);
                foreach( $objChildren as $childName=>$child ) {
                    $childName = strtolower((string)$childName);
                    if( !empty($ns) ) {
                        $childName = $ns.':'.$childName;
                    }
                    $children[$childName][] = xmlObjToArr($child);
                }
            }
        }
       
        return array(
            'name'=>$name,
            'text'=>$text,
            'attributes'=>$attributes,
            'children'=>$children
        );
}
$array = xmlObjToArr($xml);
$count = 0;
$count_err = 0;
$tags = array();
foreach ($array['children'] as $item) {
	foreach ($item[0]['children']['item'] as $post) {

		$text = $post['children']['content:encoded'][0]['text'];
		if (!empty($text)) {
			$atext = strip_tags($text);
			$atext = castr_str($atext,210);
		}

		$date = $post['children']['wp:post_date'][0]['text'];
		list($day,$time) = explode(' ',$date);
		list($year,$month,$dayc) = explode('-',$day);
		$date = $dayc.'.'.$month.'.'.$year.' '.$time;

		$code = $post['children']['wp:post_name'][0]['text'];
		$name = $post['children']['title'][0]['text'];

		$status = $post['children']['wp:status'][0]['text'];
		if ($status == 'trash') $active = "N";
		else $active = "Y";

		if (empty($name)) {//если название пустое Битрикс не даст сохранить элемент
			$name = 'Без названия';
			$active = 'N';
		}
		if (empty($code)) {//сгенерируем символьный код, если он пустой
			$arParams = array("replace_space"=>"-","replace_other"=>"-");
			$code = Cutil::translit($name,"ru",$arParams);
		}


		$link = $post['children']['link'][0]['text'];//old url

		$keywords = $post['children']['wp:postmeta'][2]['children']['wp:meta_value'][0]['text'];
		unset($tags,$title,$description,$keywords);
		foreach ($post['children']['wp:postmeta'] as $k => $meta) {//титлы, дискрипшены, кейвордзы
			if ($meta['children']['wp:meta_key'][0]['text'] == '_aioseop_title') $title = $post['children']['wp:postmeta'][$k]['children']['wp:meta_value'][0]['text'];
			if ($meta['children']['wp:meta_key'][0]['text'] == '_aioseop_description') $description = $post['children']['wp:postmeta'][$k]['children']['wp:meta_value'][0]['text'];
			if ($meta['children']['wp:meta_key'][0]['text'] == '_aioseop_keywords') $keywords = $post['children']['wp:postmeta'][$k]['children']['wp:meta_value'][0]['text'];
		}
		$SECTION_ID = 13;//другое
		foreach ($post['children']['category'] as $k2 => $tag) {//распихивание записей по рубрикам, совпадающим с тегами
			if ($tag['attributes']['domain'] == 'post_tag') $tags[] = $tag['text'];
			$tag['text'] = strip_tags($tag['text']);
			if ($tag['text'] == 'разработка сайтов' || $tag['text'] == 'аудит') $SECTION_ID = 12;
			if ($tag['text'] == 'SEO') $SECTION_ID = 14;
			if ($tag['text'] == 'контекстная реклама') $SECTION_ID = 15;
			if ($tag['text'] == 'продвижение в соцсетях' || $tag['text'] == 'SMM' || $tag['text'] == 'продвижение в facebook' || $tag['text'] == 'продвижение в одноклассниках') $SECTION_ID = 16;
			if ($tag['text'] == 'аналитика' || $tag['text'] == 'аудит') $SECTION_ID = 17;
			if ($tag['text'] == 'конверсия') $SECTION_ID = 18;
	
		}
		if (!empty($tags)) $tags_txt = implode(",", $tags);
		else $tags_txt = '';

			$arSelect = array(
				"ID",
				"NAME",
				"IBLOCK_ID",
				"IBLOCK_SECTION_ID",//added
				"*",//added
				"DETAIL_TEXT",
				"ACTIVE",
				"ACTIVE_DATE",
				"SORT",
				"DETAIL_PICTURE"
			);
			$arFilter = array(
				"IBLOCK_ID" => $IBLOCK_ID,
				"IBLOCK_ACTIVE" => "Y",
				"CODE" => $code,
				//"ACTIVE_DATE" => "Y",
				//"ACTIVE" => "Y",
			);
			$r = CIBlockElement::GetList(
				array(), 
				$arFilter, 
				false, 
				false, 
				$arSelect
			);
			$arFields = Array(
				"ACTIVE" => $active,
				"IBLOCK_ID" => $IBLOCK_ID,
				"NAME" => $name,
				"CODE" => $code,
				"PREVIEW_TEXT" => $atext,
				"PREVIEW_TEXT_TYPE" => 'html',
				"DETAIL_TEXT" => $text,
				"DETAIL_TEXT_TYPE" => 'html',
				"TAGS" => $tags_txt,
				"DATE_CREATE" => $date,
				"IPROPERTY_TEMPLATES"=>Array(
					"ELEMENT_META_TITLE" => $title,
					"ELEMENT_META_DESCRIPTION" => $description,
					"ELEMENT_META_KEYWORDS" => $keywords,
				)
			);
			if ( $arCurrentItem = $r->GetNext() ) {//update
				$arFields_update = $arFields;
				$arFields_update["SECTION_ID"] = $SECTION_ID;
				$arFields_update["IBLOCK_SECTION_ID"] = $SECTION_ID;
				
				$obE->Update($arCurrentItem["ID"], $arFields_update);
				echo ''.$name.' update
'; } else {//insert $arFields_insert = $arFields; $arFields_insert["CODE"] = $code; $arFields_insert["SECTION_ID"] = $SECTION_ID; if ( $ID = $obE->Add($arFields_insert) ) { //CIBlockElement::SetPropertyValuesEx($ID, $IBLOCK_ID, $arProps_add); echo ''.$name.' add
'; $count++; } else { echo $name.' ошибка добавления
'; $count_err++; } } } } echo 'Успешно: '.$count.'
'; echo 'Ошибок: '.$count_err;

Вот таким вот кандебобером. А перенос картинок опишу следующим постом.

Современные требования к сайтам

2016-08-27 15:22:57 (читать в оригинале)

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

Современные требования к сайтам таковы:

Адаптив
С год назад Google припугнул всех веб-мастеров понижением выдачи сайтов не адаптированных под мобильные устройства. Это действительно произошло, но для мобильной выдачи. Падения трафика на не адаптированных сайтах я не заметил, зато заметил рост у сайтов с «адаптивом».
Проверить свой сайт на соответствие требованиям можно тут.

Микроразметка
Никто не будет спорить, что микроразметка этот тотальный плюс сайту как в плане улучшения индексации (роботу легче найти цену товара и характеристики), так и в плане социализации — при грамотной
микроразметке расшаривания материалов в соцсетях будет происходить в привлекательном виде — с нужными заголовками, картинками и описанием.

Расшаривание материалов
Лайки, ссылки на расшаривание материалов, попадаются повсеместно, на сайтах совершенно разной тематики, в том числе и на коммерческих ресурсах. Тут зависит от тематики сайта и его аудитории. Где-то люди станут расшаривать страницы сайта, где-то нет.

Ретина
Apple сделала всем подлянку, «раздробив» физический пиксель Айфонов/Айпадов/мониторов на 4 части. Пришлось изворачиваться и заготавливать отдельные изображения под ретина-дисплеи (в 2 раза больших размеров по ширине).

Современные требования к сайтам

2016-08-27 15:22:57 (читать в оригинале)

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

Современные требования к сайтам таковы:

Адаптив
С год назад Google припугнул всех веб-мастеров понижением выдачи сайтов не адаптированных под мобильные устройства. Это действительно произошло, но для мобильной выдачи. Падения трафика на не адаптированных сайтах я не заметил, зато заметил рост у сайтов с «адаптивом».
Проверить свой сайт на соответствие требованиям можно тут.

Микроразметка
Никто не будет спорить, что микроразметка этот тотальный плюс сайту как в плане улучшения индексации (роботу легче найти цену товара и характеристики), так и в плане социализации — при грамотной
микроразметке расшаривания материалов в соцсетях будет происходить в привлекательном виде — с нужными заголовками, картинками и описанием.

Расшаривание материалов
Лайки, ссылки на расшаривание материалов, попадаются повсеместно, на сайтах совершенно разной тематики, в том числе и на коммерческих ресурсах. Тут зависит от тематики сайта и его аудитории. Где-то люди станут расшаривать страницы сайта, где-то нет.

Ретина
Apple сделала всем подлянку, «раздробив» физический пиксель Айфонов/Айпадов/мониторов на 4 части. Пришлось изворачиваться и заготавливать отдельные изображения под ретина-дисплеи (в 2 раза больших размеров по ширине).


Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 

 


Самый-самый блог
Блогер ЖЖ все стерпит
ЖЖ все стерпит
по сумме баллов (758) в категории «Истории»


Загрузка...Загрузка...
BlogRider.ru не имеет отношения к публикуемым в записях блогов материалам. Все записи
взяты из открытых общедоступных источников и являются собственностью их авторов.