Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

добавлены несколько статей и считываение тега из гита #7

Merged
merged 1 commit into from
Dec 3, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion albireo-data/layout/seo-parts/header.php
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
<?php if (!defined('BASE_DIR')) exit('No direct script access allowed'); ?>

<span class="t-gray150 t150">壱</span> <a class="t-gray100 t-bold hover-t-gray100" href="/">SEO Book</a> <sup class="t90">0.1</sup>
<?php
$gitInfo = getVal('gitInfo');
$tag = $gitInfo['tag'];
$url = $gitInfo['url'];
?>
<span class="t-gray150 t150">壱</span> <a class="t-gray100 t-bold hover-t-gray100" href="/">SEO Book</a>
<sup class="t90"><?= a($url, $tag); ?></sup>
111 changes: 111 additions & 0 deletions albireo-data/pages/seo/copyright/photo.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
<?php if (!defined('BASE_DIR')) exit('No direct script access allowed');
/**

title: Фото без авторских прав
description: Что делать, если на сайте без разрешения используется ваша фотография?

slug: wordpress/breeze

layout: seo.php
parser: simple

menu[title]: Фото на чужом сайте
menu[group]: Copyright

-articleClass: pad30

**/

?>

h1(mar0 bg-lime200 pad30-rl pad10-tb) Что делать, если на сайте без разрешения используется ваша фотография?

div(pad30-rl mar30-tb)

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

h2 Защита фотографии человека на фото.

_ Есть законодательство, согласно которому — обнародование и дальнейшее использование изображения гражданина допускается только с его согласия. Но тут есть несколько исключений:

<ul>
* фотография сделана в общественном месте,
* фотография сделана на публичном мероприятии,
* случае указанные в статье 152.1 ГК РФ (в основном фото за плату или на заказ).
</ul>

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

_ При этом если используются Ваши персональные данные, то тут нужно обратиться в Роскомнадзор.

_ Интересный казус — есть фирмы, которые покупают права (часто всего на музыку или ролики), а потом просто судятся со всеми, чтобы получить выгоду.

h2 Защита авторских прав на фото

_ Сами фотографии относятся к объектам авторского права и подлежат защите. При этом автором является гражданин, который её сделал.

_ Но тут есть несколько нюансов. Как же без них? Они касаются, что авторство нужно доказать, как и фиксацию нарушения авторского права на сайте.

_ Для обозначения авторства можно:

<ul>
* настроить камеру, чтобы она создавала IPTC запись в фотографии.
* иметь исходники и рабочие файлы (обычно это raw файлы)
* использовать водяной знак на фото
</ul>

_ Права у автора:

<ul>
* право авторства (право признаваться автором произведения),
* право на имя (использовать или разрешать использование произведения под своим именем, под псевдонимом или анонимно),
* право на обнародование,
* исключительные право — т. е. право использовать произведение любым не противоречащим закону способом,
* право на неприкосновенность произведения и иные права.
</ul>

_ При этом право на авторство и имя неотчуждаемы и непередаваемы, отказаться от них нельзя (на счет фотографии сделанные на заказ кого-то не уверен, тут нужна консультация опытного юриста).

_ Интересно рассмотреть право на обнародование. Это действия или согласие на действия, которые впервые делают произведение доступным для всеобщего сведения путём его опубликования, публичного показа и т. п. Тут важно отметить, что если вы сделали фотографию и никуда не выкладывали её, она не опубликована, но всё равно охраняется законом.

h2 Что делать при нарушении прав на фотографии?

_ Тут просто — нужно связаться с администратором домена (можно через обратную связь сервиса Whois, чтобы:

<ul>
* Попросить предоставить основания для использования фотографий и потребовать удаления фото и выплаты компенсации.
* Заключить договор о легальной возмездной передаче неисключительных прав на фото.
</ul>

h3 Для автора

_ Я бы советовал использоваться специальные биржи для продажи фотографий заказчикам. Их довольно много.

h3 Для вебмастера

_ Использовать только материалы для свободного распространения. Ну или заказывать такие. Тут могу посоветовать использовать бесплатные фотостоки или фотобанки, их довольно много.

_ Например:

<ul>
* <?= a('http://depositphotos.com/?ref=2948001', 'deposiphoto'); ?> — есть бесплатные фотографии. Много платных фото и видео
* pixabay — большая библиотека бесплатных фото. Более 2,2 миллиона фотографий
* <?= a('https://ru.freeimages.com/','Free Images'); ?>
* и многие другие
</ul>

h3 Итоги

_ К сожалению, я сталкивался с подобной ситуацией. Правда не с фотографией, а переводом текста. Планировал открыть один проект, но за основу взять определенный узкоспециализированный контент (был перевод с английского языка), переработать и дополнить. А когда выложил на сайт для поднятия вопроса, что дописывать или переделывать, а что просто другим будет неинтересно.

_ На этой фазе мне пришла повестка из отдела К. Но так как сайт был закрыт, они просто закрыли дело. Сейчас я стараюсь не нарушать авторских прав (хотя иногда использую картинки из поиска, что Вам не рекомендую делать).

_ Было несколько запросов на удаление определенного контента — но обычно просто пишут на почту, указанную на сайте. При запросе правообладатель прикладывает документы.

_ Некоторые не прикладывают документы, поэтому лучше в ответ написать, чтобы они предоставили документы (в это время лучше закрыть контент и сделать скриншоты, по возможности у нотариуса). Просто тут могут быть два варианта:

<ul>
* «левый» человек, который хотел приколоться или по какой-то своей причине.
* после запроса, он делает скрины у нотариуса. А потом идет в суд, где говорит, что посылал запрос (вот он), а на администратор сайта не реагирует (вот скрины, что информация осталась). Всё, он почти выиграл дело (особенно если у Вас нет толкового юриста).
</ul>
/div
160 changes: 160 additions & 0 deletions albireo-data/pages/seo/laravel/laravel.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,160 @@
<?php if (!defined('BASE_DIR')) exit('No direct script access allowed');
/**

title: Sape.RTB в Laravel
description: Используем код SAPE в Laravel
slug: laravel/sape_rtb
layout: seo.php
parser: simple geshi

menu[title]: Sape.RTB в Laravel
menu[group]: Laravel
menu[order]: 1

-articleClass: pad30

**/

?>

h1(mar0 bg-lime200 pad30-rl pad10-tb) Sape.RTB в Laravel

div(pad30-rl mar30-tb)

_ Ларавел довольно популярный framework. По идее, тому, кто сделал сайт на Laravel, не составит проблем подключить Sape. Ну или любой другой дополнительный функционал.

_ Но бывают разные ситуации. Например, программист был только на этапе запуска. А нанимать программиста, который это сделает, не всегда целесообразно.

_ А теперь сама установка. Способов очень много. Но мне показался более правильным такой: создаем новый провайдер (только для Sape), в нем указываем для каких шаблонов создавать новые переменные. А в шаблоне уже использовать стандартный код вывода.

_ А теперь подброднее:

h2 Создание нового провайдера

_ Создаем с помощью команды:

geshi_bash
php artisan make:provider SapeServiceProvider
/geshi

_ В результате чего у нас появится новый файл в папке App\Providers

_ Cам файл можно просто создать. Содержимое файла @SapeServiceProvider.php@:

<!-- nosimple -->
geshi_php
namespace App\Providers;
use Illuminate\Support\Facades\View;
use Illuminate\Support\ServiceProvider;
class SapeServiceProvider extends ServiceProvider
{
/**
* Register services.
*
* @return void
*/
public function register()
{
//
}
/**
* Bootstrap services.
*
* @return void
*/
public function boot()
{
//
}
}
/geshi
<!-- /nosimple -->

_ Далее его надо подключить. Для это открываем файл @config/app.php@. Находим там раздел *‘providers’* и перед закрывающийся квадратной скобкой дописываем имя нашего класса

geshi_php
\App\Providers\SidebarServiceProvider::class,
/geshi

_ По идее осталось совсем немноно.

h2 Создаем и передаем переменные клиента Sape

_ Для начала нужно скачать клиент и скопировать в проект. Например, в папку @/public@. То есть будет путь будет: @/path/to/laravel/public/длинный_ид_клиента_sape/sape.php@

_ Теперь в нашем провайдере добавляем следующее содержимое в функцию boot(), должно получится так:

geshi_php(lines=3)
public function boot()
{
View::composer('*', function ($view) {
if (!defined('_SAPE_USER')) define('_SAPE_USER', 'кодСапы');
require_once($_SERVER['DOCUMENT_ROOT'] . '/' . _SAPE_USER . '/sape.php');
$options = array();
$options['force_show_code'] = true;
$sape = new \SAPE_client($options);
$view->with(compact('sape'));
});
}
/geshi

_ Вместо звёздочки (первый параметр в View::composer) можно указать название файла, где будет доступен клиент. Примеры:

_ geshi_php View::composer(‘sidebar’, fn()=>{});/geshi
_ geshi_php View::composer([‘sidebar’,’main_menu’], fn()=>{});/geshi

_ Звёздочка обозначает, что созданные переменные будут доступны из любого места.

_ У меня это выглядит так:

geshi_php(lines=2)
View::composer('*', function ($view) {
if (!defined('_SAPE_USER')) define('_SAPE_USER', 'кодСапы');
require_once(resource_path('sape/sape.php'));
$options = [
'force_show_code' => true,
'charset' => 'UTF-8',
// 'verbose' => true,
];
$sapeArticles = new \SAPE_articles($options);
$sape = new \SAPE_client($options);
$sapeContext = new \SAPE_context();
$sapeRtb = new \SAPE_rtb(['site_id' => 12345]);
$sapeRtb->process_request();
$view->with(compact('sape', 'sapeArticles', 'sapeRtb','sapeContext'));
});
/geshi

_ Я код разместил в папке @/path/to/laravel/resources/sape/sape.php@. Это позволяет использовать разные клиенты не меня структуру файлов. Константу можно задавать в файле env. Но я этого не стал делать.

_ Что тут происходит: создается константа с идентификатором от Sape. Задаются начальные опции клиента (принудительные вывод кода и кодировка). А потом создаются различные клиенты, которые можно использовать в любом месте шаблона. Правильней будет передача нужных переменных в нужные шаблоны.

h2 Вывод ссылок

_ Теперь нужно в нужном месте шаблона вывести ссылки. Например:
geshi_php
<p class="menu-label">Реклама</p>
<ul class="menu-list">
{!! $sape->return_links() !!}
</ul>
/geshi

_ А текст для контекстной рекламы делается через функцию (нужно создать в провайдере переменную только):

geshi_php
{!! $sapeContext->replace_in_text_segment($post->content) !!}
/geshi

_ Это вместо

geshi_php
{!! $post->content !!}.
/geshi

h2 Итоги

_ Подключается и используется код очень легко. Всего пара минут. И чего я пять лет назад забросил Laravel, очень удобный framework.

<?php snippet('next-prev', ['', '']); ?>

/div
1 change: 0 additions & 1 deletion albireo-data/pages/seo/mediawiki/sape_rtb.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@

menu[title]: Sape.RTB в Mediawiki
menu[group]: Mediawiki
menu[order]: 1

-articleClass: pad30

Expand Down
45 changes: 45 additions & 0 deletions albireo-data/pages/seo/mediawiki/sitemap.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
<?php if (!defined('BASE_DIR')) exit('No direct script access allowed');
/**

title: Sitemap для Mediawiki
description: Sitemap для Mediawiki

slug: mediawiki/sitemap

layout: seo.php
parser: simple

menu[title]: Sitemap для Mediawiki
menu[group]: Mediawiki

-articleClass: pad30

**/

?>

h1(mar0 bg-lime200 pad30-rl pad10-tb) Sitemap для Mediawiki

div(pad30-rl mar30-tb)

_ Небольшое дополнение к движку MediaWiki, которая создает rss ленты. В основном, это нужно для добавления в <?= a('mediawiki/turbo','ЯндексТурбо') ?>. Скачать можно с <?= a('https://github.com/Ichinya/yandex_turbo_for_mediawiki', 'GitHub') ?>

_ Начиная с версии 1.2 появилась возможность построения sitemap

_ Шаблон сделан для webmaster Яндекса. Доступ к карте сайте получается по ссылке:

div(mar10-b)
@https://site.ru/turbo/?template=sitemap@
/div

<?= img('1.png'); ?>

h2 На счет оптимизации

_ Я проверяю на своем небольшом сайте на движке mediawiki, на котором примерно 100 статей. Скорость вывода страницы sitemap — примерно 600мс.

<?= img('2.png'); ?>

<?php snippet('next-prev', ['', '']); ?>

/div
3 changes: 1 addition & 2 deletions albireo-data/pages/seo/mediawiki/turbo.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,10 @@
slug: mediawiki/turbo

layout: seo.php
parser: simple geshi
parser: simple

menu[title]: Яндекс.Турбо в Mediawiki
menu[group]: Mediawiki
menu[order]: 1

-articleClass: pad30

Expand Down
1 change: 0 additions & 1 deletion albireo-data/pages/seo/mediawiki/ya_rtb.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@

menu[title]: РСЯ в Mediawiki
menu[group]: Mediawiki
menu[order]: 0

-articleClass: pad30

Expand Down
Loading