Статьи, приемы, хитрости и Уроки по Photoshop, Illustrator, Web дизайну и кодингу.

SeRbGa

SeRbGa

мечтатель

301 редирект - как сделать

Всем привет!

Недавно потребовалось переименовать адрес страницы на сайте, что-бы она была доступна по другому адресу, но проблема в том, что она была проиндексирована. Как же сделать перемещение, чтобы не потерять трафик с поисковых систем ?

Итак нам поможет 301 редирект 

301-ая ошибка (301 Permament Redirect), возвращаемая при обращении к определенному адресу страницы, означает, что сайт был на постоянной основе перенесен на новый адрес, также указанный в HTTP заголовке.  При 301 редиректе произойдет склейка старого и нового адресов: параметры вроде PageRank и тИЦ, а также вес страницы и ссылочный вес старого адреса будет передан новому URL.

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

301 редирект в .htaccess

При использовании апача (apache) на сервере, переадресацию можно просто выполнить с помощью файла .htaccess, однако, при этом, не забыть включить модули mod_alias (для поддержки директив Redirect, RedirectPermanent и RedirectMatch) и/или mod_rewrite (для использования реврайта) в php.ini.

Редирект с помощью директивы Redirect или RedirectPermanent модуля mod_alias

Redirect 301 /old-page.html http://new-domain.ru/new-page.html

или

Redirect permanent /old-page.html http://new-domain.ru/new-page.html

Редирект с помощью директивы RedirectMatch

Этот редирект подобен предыдущему, за исключением того, что можно задавать регулярное выражение для старых URL адресов. Допустим, при смене движка с PHP на ASP, можно старые адреса перенаправить следующим образом:

RedirectMatch /(.*)\.php$ /$1.aspx

Редирект с помощью директивы RewriteRule модуля mod_rewrite

 

Для использования директивы RewriteRule необходимо удостовериться, что в httpd.conf подключен модуль mod_rewrite, а также влючена опция FollowSymLinks. Использование реврайт модуля дает много возможностей для перенаправления страниц на новые адреса.

Перенаправление домена с www на не-www

 

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST}^www\.(.*)[NC]
RewriteRule ^(.*)$ http://%1/$1	[R=301,L]

или

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.domain\.com$ [NC]
RewriteRule ^(.*)$ http://domain.com/$1 [R=301,L]

Редирект запросов с не-www на домен с www префиксом

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^domain\.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]

или

RewriteEngine On
RewriteCond %{HTTP_HOST}!^www\.(.*)[NC]
RewriteRule ^(.*)$ http://www.%1/$1[R=301,L]

 

Редирект с помощью скрипта (отправки заголовков)

Редирект запросов можно осуществлять также с помощью скриптов, отправляя клиенту необходимые заголовки.

HTTP/1.1 301 Moved Permanently
Location: http://www.newdomain.ru/newdir/newpage.htm

PHP редирект

<?php
header(“HTTP/1.1 301 Moved Permanently”);
header(“Location: http://www.newdomain.ru/newdir/newpage.htm”);
exit();
?>

ASP редирект

<%@ Language=VBScript %>
<% 
Response.Status=“301 Moved Permanently”
Response.AddHeader “Location”, “http://www.new-url.com”
response.end
%>

ASP.NET редирект

 

 

 

<script runat=“server”>
private void Page_Load(object sender, System.EventArgs e)
{
Response.Status = “301 Moved Permanently”;
Response.AddHeader(“Location”,“http://www.new-url.com”);
}
</script>

 

ColdFusion редирект

 

<.cfheader statuscode=“301” statustext=“Moved permanently”>
<.cfheader name=“Location” value=“http://www.new-url.com”>

 

JSP (Java) редирект

 

<%
response.setStatus(301);
response.setHeader( “Location”, “http://www.new-url.com/” );
response.setHeader( “Connection”, “close” );
%>

 CGI PERL

 

$q = new CGI;
print $q->redirect(“http://www.new-url.com/”);

 Ruby on Rails

def old_action
headers[“Status”] = “301 Moved Permanently”
redirect_to “http://www.new-url.com/”
end

 Осуществление редиректа в nginx

if ($host = ‘www.domain.com’ ) {
rewrite ^(.*)$ http://domain.com$1 permanent;
}

 Редирект в Joomla 3.0

Допустим есть 2 страницы в Joomla - old.php  и  new.php

В old.php пишем:

 

<?php header( 'location: http://www.site.ru/new.php'); exit; ?>

Заключам этот код а теги плагина "{"source"}" - без кавычек и отключаем ее публикацию. (source - это плагин для вставки кода в материал)

 

проверяем Все работает :)

 

 Редирект в Bitrix.

я попробовал способ PHP - работает.

Установка phpMyAdmin в «Битрикс веб-окружение».

  Иногда во время тестирования сайта для «1С-Битрикс» появляется необходимость поработать с базой данных, изучить таблицы их содержимое или проследить как они связаны. 

В «Битрикс веб-окружение» нет phpMyAdmin. Сейчас мы его поставим.
Сначала нужно скачать phpMyAdmin. Это можно сделать на сайте http://php-myadmin.ru в разделе «Скачать». Для скачивания выбираем архив, содержащий все языковые файлы в нескольких кодировках (all-languages). 
Затем нужно создать папку, куда мы будем распаковывать скачанный архив. Так и назовем ее “phpMyAdmin”. Папку нужно создать внутри каталога \Bitrix\ (тот каталог куда установили веб окружение) (например, D:\Bitrix\phpMyAdmin) 
Далее нужно создать в «Битрикс веб-окружение» новый виртуальный хост. Это делается в файле httpd.conf, в котором хранятся все настройки веб-сервера Apache. Это файл лежит в папке D:\Bitrix\apache\conf\. 
Открываем его с помощью, например, “Notepad++” и добавляем следующий блок настроек: 
Код

 

Listen 82
<VirtualHost *:82>
ServerName localhost
DocumentRoot "D:\Bitrix\phpmyadmin"
</VirtualHost>

Таким образом, мы добавили новый виртуальный хост в «Битрикс веб-окружение», который будет доступен по адресу localhost:82. 

 

Можно использовать любой допустимый порт (не обязательно 82). 
Не забудьте после завершения настроек перезагрузить сервер, чтобы добавленный виртуальный хост стал доступен. 
Теперь в созданную ранее папку нужно разархивировать скачанный ранее phpMyAdmin
Заходим в папку D:\Bitrix\phpmyadmin и находим в ней файл config.inc.php. В нем хранятся настройки для соединения с сервером mysql. 

Если его нет - создайте и пометите туда этот код:

 

<?php
/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
 * phpMyAdmin sample configuration, you can use it as base for
 * manual configuration. For easier setup you can use setup/
 *
 * All directives are explained in Documentation.html and on phpMyAdmin
 * wiki <http://wiki.cihar.com>.
 *
 * @version $Id: config.sample.inc.php 11781 2008-11-06 05:29:28Z rajkissu $
 */

/*
 * This is needed for cookie based authentication to encrypt password in
 * cookie
 */
$cfg['blowfish_secret'] = ''; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */

/*
 * Servers configuration
 */
$i = 0;

/*
 * First server
 */
$i++;
/* Authentication type */
$cfg['Servers'][$i]['auth_type'] = 'cookie';
/* Server parameters */
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['port'] = '31006';
$cfg['Servers'][$i]['AllowRoot'] = 'true';
$cfg['Servers'][$i]['AllowNoPasswordRoot'] = 'true';
$cfg['Servers'][$i]['nopassword'] = 'true';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['compress'] = false;
/* Select mysqli if your server has it */
$cfg['Servers'][$i]['extension'] = 'mysql';

/* rajk - for blobstreaming */
$cfg['Servers'][$i]['bs_garbage_threshold'] = 50;
$cfg['Servers'][$i]['bs_repository_threshold'] = '32M';
$cfg['Servers'][$i]['bs_temp_blob_timeout'] = 600;
$cfg['Servers'][$i]['bs_temp_log_threshold'] = '32M';

$cfg['UploadDir'] = '';
$cfg['SaveDir'] = '';
?>

 

 

Настройки представляют из себя ассоциативный массив. Нас интересуют следующие элементы этого массива: 

$cfg['Servers'][$i]['host'] — сюда нужно прописать хост для доступа к серверу mysql (в «Битрикс веб-окружение» по умолчанию — localhost:31006) 
$cfg['Servers'][$i]['user'] — сюда вписываем пользователя (по умолчанию “root”) 
$cfg['Servers'][$i]['password'] – здесь указываем пароль пользователя “root” (по умолчанию пустое значение) 

После того как мы сделаем эти настройки, по адресу localhost:82 будет доступен phpMyaAdmin, в котором просматривать базу данных системы «1С-Битрикс».

 

Выводим форму модуля WEBFORM или CONTACT в popup окно (во всплывающее окно) в Drupal

Всем привет! Сегодня научимся закидывать форму обратной связи во всплывающее окно – чтобы красиво было. Для Drupal Задача – вывести форму обратной связи во всплывающем окне Для начала определим форму контактов в ноде (node) В Drupal 6 можно следующим образом:

 

<?php
  require_once drupal_get_path('module', 'contact').'/contact.pages.inc';
  print drupal_get_form('contact_mail_page');
?>

Далее подключаем скрипты colorbox (полностью архив плагина можно скачать на оф. сайте) – это скрипт, а точнее плагин, который позволяет использовать на сайте всплывающие popup окошки для фоток, видео и т.д. Можно подключать как и в шаблоне так и в документе php. Соответственно положил его я в корень сайта в папку /js/colorbox/

 

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js">
</script>   <script type="text/javascript" src="/js/colorbox/jquery.colorbox-min.js"></script>
<link type="text/css" rel="stylesheet" href="/js/colorbox/colorbox.css" />
<link type="text/css" rel="stylesheet" href="/js/colorbox/style.css" />

Далее прописываем тело скрипта (блок и функцию)

 

<a class="inline" href="#show-block">
<img alt="форма обратной связи" title="форма обратной связи" src="/userfiles/obr_sviaz2.png" /></a>
<div class="hidden">
<div id="show-block"><?php
  require_once drupal_get_path('module', 'contact').'/contact.pages.inc';
  print drupal_get_form('contact_mail_page');
?></div>
</div>
<script type="text/javascript">
(function($) {
 $(document).ready(function() {
     $("a.inline").colorbox({inline:true});
 });
}(jQuery))
</script>

В Drupal 7 код, который вытащит тебе только форму с ноды типа webform. Выглядит так:

 

<?php
$block_recall = module_invoke('webform', 'block_view', 'client-block-1');
print $block_recall['content'];
?>

 

client-block-1 - id формы засунуть ее надо как раз в див id="show-block" который выводит блок внутри плагина colorbox. Проверяем – работает.

8 МАРТА !

От всей души поздравляю с праздником!

Пусть будет много в день весенний
Цветов, улыбок, поздравлений,
Мир станет красочней и ярче
От пожеланий и подарков!
Любовь пусть все вокруг заполнит
И все желания исполнит…
Пусть безграничным будет счастье,
И станет жизнь еще прекрасней!

8 March serbga

Ошибка БД SQL Illegal mix of collations (cp1251_bin,IMPLICIT)

Всем привет!

Это первая тема в разделе SQLphpmyadmin, буду ее иногда дополнять J

Сегодня при переносе старого сайта и БД SQLна другой хостинг возникла ошибка.  Вернее, перенос прошел удачно, а возникла ошибка уже после при обращении к скрипту, который этой базой пользовался.

Итак ошибка:  «1267: Illegal mix of collations (cp1251_bin,IMPLICIT) and (latin1_swedish_ci,COERCIBLE) for operation '=' (mysqlserver)».

1

Задача: избавится от нее и заставить нормально работать.

Сразу видно, что проблема где-то с кодировкой. Или «Обнаружена ошибка синтаксиса запроса к базе данных»

Решение: Идем в phpmyadmin– смотрим в какой кодировке таблица в БД – видим cp1251. Видимо давно база была создана в этой кодировке. Сервер кушает utf-8.

1 способ - можно исправить кодировку таблицы на нужную прямо в phpmyadmin.

2 способ – поколдовать в скрипте отвечающим за коннект и передачу данных.

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

Поэтому в скрипте прописываем следуещее после строк коннекта (клиент, коннект и результат):

 

        mysql_query("SET character_set_client = 'cp1251'");

        mysql_query("SET character_set_connection = 'cp1251'");

        mysql_query("SET character_set_results = 'cp1251'");

Выглядит примерно так:

2

Кодировку, естественно, надо указать ту, которая вам нужна.

 

Проеверяем - все работает!

Как сделать произвольные title в компоненте k2 joomla — в материалах

Задача: сделать произвольные title в компоненте k2 joomla — в материалах

Красивые title и правильные url всегда были проблемой CMS Joomla, и новые версии j 2.5 и 3 ситуацию не исправляют. Расширений типа sh404 или artio создают дополнительные нагрузки и, порой, не отвечают всем требованиям проекта.

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

Как сделать произвольные title для материалов k2

Работать с произвольным title будем с помощью дополнительных полей k2.

Стандартный тайтл любого материала одинаков с названием этого материала. Что не есть хорошо с точки зрения seo да и юзабилити в общем.

Создаем группу дополнительных полей и называем её к примеру allseo.

1

Создаем дополнительное поле в этой группе. Тип текстовый, значение по умолчанию пустое.

2

Теперь необходимо назначить всем категориям k2, в записях которых требуются произвольные тайтлы, эту группу дополнительных полей. Это делается при редактировании категории в K2.

3

Далее открываем или создаем материал, в которым мы хотим сделать произвольный title. В вкладке дополнительные поля видимо наше поле titleseok2, заполняем его в соответствии с требуемым запросом и сохраняем материал.

4

А теперь необходимо внести некоторые изменения в шаблон k2. Работать будем исключительно с шаблоном компонента, (иногда этот файл можно найти в разных местах - все зависит от ядра и фреймворка) Так что места могут быть разные:

например  - адресу /templates/ваш_joomla_шаблон/html/com_k2/default/item.php

например  - адресу /components/com_k2/templates/default/item.php

Ищите где он у вас.

5

открываем файл item.php добавляем следующий код, где-то  после строки 57 и скрипт заключаем в теги php - это же скрипт :) :

// дополнительные поля материала K2
$extrafields = array();
foreach($this->item->extra_fields as $item)
{
$extrafields[$item->id] = $item->value;
}
$document     = & JFactory::getDocument();
$config     = & JFactory::getConfig();
if ($extrafields[1]) {
$curtitle = $extrafields[1];
} else {
$curtitle = $document->title;
}
$document->setTitle( $curtitle );

В строке $curtitle = $extrafields[1]; указываем id (у меня оказалось 1) дополнительного поля содержащее наш новый title.

6

Если для материала не был прописан произвольный тайтл то будет выводится стандартный заголовок. Если прописан — выводится содержимое дополнительного поля.

Узнать id дополнительного поля можно в админке Joomla, в списке дополнительных полей есть специальная колонка показывающая id поля.

Проеверяем - все работает!

Уведомления на email в K2

Уведомления на email в K2

В компоненте K2 нет функции отправки уведомлений о новых комментариях.

Сейчас мы это поправим.

Вы можете опробовать этот хак:

1 этот хак

для Joomla 2.5 & K2 2.6.2
ищем файл /components/com_k2/models/item.php а там строчку1225, $json->encode($response); вставляем код:
        // Email notification 
$uri = JURI::root().K2HelperRoute::getItemRoute
($row->itemID.':'.urlencode($row->itemAlias),
$row->catid.':'.urlencode($row->catAlias));
$to = 'Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра. ';
$subject = 'New comment published!';
$message = 'New comment published!' . "\r\n\r\n" . 'By:
'. $user->name . "\r\n" . 'Text: ' . $row->
commentText . "\r\n" . 'URL of the page: ' . $uri;
$headers = 'From: '. $user->email . "\r\n" .
'Reply-To: '. $user->email . "\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $message, $headers);


2. Или этот хак:

1.- ищем /components/com_k2/models/item.php

2.- ищем строчку "...K2_COMMENT_ADDED_AND_WAITING_FOR_APPROVAL..."

3.-после добавляем код:

$mainframe = &JFactory::getApplication();
$mail = &JFactory::getMailer();
$senderEmail = $mainframe->getCfg('mailfrom');
$senderName = $mainframe->getCfg('fromname');
$mail->setSender(array($senderEmail, $senderName));
$mail->setSubject(JText::_('K2_COMMENT_REPORT'));
$mail->IsHTML(true);
$body = "
".JText::_('ТЕМА').": ".($row->title = $item->title)."
".JText::_('ТЕМА').": ".($row->link = $item->link)."
".JText::_('ИМЯ').": ".($row->userName)."
".JText::_('ДАТА').": ".($row->commentDate)."
".JText::_('E-MAIL').": ".($row->commentEmail)."
".JText::_('K2_COMMENT').": ".nl2br($row->commentText)."
";
$mail->setBody($body);
$mail->ClearAddresses();
$mail->AddAddress($params->get('commentsReportRecipient',
$mainframe->getCfg('mailfrom')));
$mail->Send();

уведомление будет приходить на ту почту, которую Вы указали в настроках компонента в поле "жалоба на комментарий"

 

Ошибка: Invalid backend response. Data is not JSON.

В данном случае у нас Ошибка медиа-менеджера компонента K2 v2.6.7 или Ошибка медиа-менеджера компонента Simple Image Gallery Pro v3.0.0 

Версии могут отличаться, но суть не в этом.

1

Задача: избавиться от ошибки Invalid backend response. Data is not JSON. 
Дословно:  «Неверный ответа бэкенда. Данные не JSON.»
Что же мы имеем:
JSON (англ. JavaScript Object Notation) — текстовый формат обмена данными, основанный на  JavaScript и обычно используемый именно с этим языком. Как и многие другие текстовые форматы, JSON легко читается людьми.
За счёт своей лаконичности по сравнению с XML, формат JSON может быть более подходящим для сложных структур. Если говорить о веб-приложениях, в таком ключе он уместен в задачах обмена данными как между браузером и сервером (AJAX), так и между самими серверами (программные HTTP-интерфейсы).

Решение:

Для начала обновите все модули и CMS до актуальных версий.


Ошибка Бэкэнда в отображении каталога папок и файлов, точнее ошибка в выводе ошибок в бэкэнде AJAX – получилось «масло масленое» - но что же поделать :) 
Для начала надо проверить включена ли поддержка JSON в PHP на сервере, должно быть примерно так:
Json
json support enabled
json version 1.2.1
Далее надо проверить доступы к папкам и файлам на сервере, должно быть так на joomla 3.0:
755 для папок
644 для файлов
444 configuration.php
4
После проверки папок и файлов, например с помощью total commaner или другого, идем в меню
2
Сайт - Общие настройки – Сервер (или «настройка сервера») и ставим «Сообщения об ошибках» в положение «НЕТ»
3
Сохраняемся. При этом configuration.php должен иметь правильный chmod (644 или 777)  чтобы это сделать, потом после конфигурирования НЕ ЗАБУДЬТЕ поставить chmod на этот файл 444.
4

( Go to System > Global configuration > Server - Set "Error reporting" to "none" - SAVE IT )
Проблема решена.

5

JUTooltip - подсказки для joomla

Всем привет!

Задача - сделать всплывающие подсказки плагином для joomla.

Итак, качаем плагин для подсказок JU Tooltip (для 2.5, 3.0)

Настраиваем в меню управления плагинами.

jutool

 

Интегрируем в контент специальные теги.

Пример работы:

Загружаем элемент html tooltip включающую в себя любой тег HTML: наведи и посмотри

подсказка жирный тег, далее еще жирный показывается из тега div который идет следом
Для начала определяем класс:
<a class="jutooltip">инструмент "перо"</a>
Далее конструкция, внутри которой будет наша подсказка - там может быть что угодно (например картинка).
<div style="display: none;"><img src="/images/PSD_ICO/pero.jpg" /></div>

 

Пример работы с картинкой:

Например всплывающая подсказка, которая берет данные из скрытого тега div, следующего за определяющим классом (в нашем случае там картинка)
инструмент "перо".

Вот и все работает, теперь не запутаться в инструментах photoshop.

Как запаролить директорию или сайт на сервере Apache.

Задача: запаролить директорию или весь сайт и как установить пароль на папки (или весь сайт) с помощью Apache.

должно получится при обращении к серверу:

1

1 - Создаем файл паролей путь к которому указывается в качестве параметра к директиве AuthUserFile. Пароли в этом файле должны быть шифрованными, чего можно достигнуть с помощью программы htpasswd, входящей в поставку Apache.

Если Вы набрали в unix shell команду htpasswd и система сообщила, что такого файла нет, выясните у своего хостинг-провайдера где же находится htpasswd.

допустим, htpasswd у нас доступен :

> htpasswd 
Usage: 
htpasswd [-cmdps] passwordfile username 
htpasswd -b[cmdps] passwordfile username password 

-c Create a new file. 
Здесь мы не будем рассматривать все параметры этой команды, но Вы можете сами прочитать подробности, запустив htpasswd в unix shell или ознакомившись с соответствующей страницей документации по Apache. 


Итак, изначально у нас еще нет файла с паролями и нам нужно его создать :
> htpasswd -c .htpasswd user1 
New password: 
Re-type new password: 
Adding password for user user1 

После нажатия Enter, будет предложено вести пароль (с помощью данной команды можно изменить уже присвоенный пароль). После выполнения данной операции htpasswd создаст файл .htpasswd, в котором окажется пользователь user1 и его пароль в зашифрованном виде:

А теперь мы хотим добавить еще одного пользователя. Так как файл с паролями у нас уже есть, мы просто не будем использовать ключ '-c' :

> htpasswd .htpasswd user2 
New password: 
Re-type new password: 
Adding password for user user2 

Можно сделать тоже самое на локале с помощью программы htpasswd, входящей в поставку Apache - если нету -берите тут и запускайте ее из командной строки (cmd)

далее все тоже самое (см. выше)

2

2 - В директории которую хотим запаролить создаем файл .htaccess. Если надо запаролить весь сайт, тогда файл .htaccess помещаем в корень сайта.

В .htaccess прописываем следующие строки:

AuthType Basic
AuthName "Enter password"
AuthUserFile "/usr/local/www/data/.htpasswd"
Require valid-user

Где AuthName "Enter password" – ваше сообщение

“/usr/local/www/data/.htpasswd” путь до файла с паролями.

Обычно на живом хостинге такой (может конесно отличаться - но папка с файлом паролей должна быть задана верно):

/home/s/логин_на_хосте/имя_сайта/public_html/data/.htpasswd

Все готово!

Теперь доступ к папке (или сайту) возможен только после авторизации.

Подписаться на этот канал RSS

Популярные статьи

  • 1
  • 2
  • 3
  • 4

последние комментарии

ON-Line Блог SeRbGa.ru предоставляет самую свежую и актуальную информацию для веб-дизайнеров и разработчиков в виде тематических материалов, уроков созданных собственноручно, а так же переводов статей и новостей, полученных с зарубежных информационных ресурсов.

Копирование материалов сайта разрешено только с указанием активной индексируемой гиперссылки на данный сайт!

ДИСКЛЕЙМЕР/DISCLAIMER:

Я сам вдохновляюсь материалами, которые предлагаются вам на обозрение, будь то интересные руководства или полезные и впечатляющие подборки (дизайнов, шаблонов, макетов и т.д.), и по возможности всегда сохраняется ссылка на источники, и сообщается  автор изображений, использованных в подборках или руководствах. Зачастую, ссылка на источник не ведёт напрямую к автору шедевра, но если кто-то захочет использовать какие-либо изображения, графические элементы, исходники, которые здесь предоставлены, то единственное требование, выставленное к перепосту, заключается в сохранении ссылки на источник, а также соблюдение условий лицензионного соглашения (если таковое имеется). Если кто-то желает модифицировать тот или иной продукт, изменить его, подкорректировать, то ему придется самостоятельно искать настоящего автора материала.