Сигнатуры донорского сайта:
Чтобы добавить в Портатор работу с тем или иным донорским ресурсом, в файле ./data/settings.php в массив $sites нужно прописать домен этого донорского ресурса, как это проиллюстрировано в одном из предыдущих документов.
Далее папку с сигнатурами (носит имя домена сайта) нужно поместить внутрь папки ./data/donors/ - смотрите структуру скрипта.
Как явствует из этой структуры, сигнатура для донорского ресурса содержит три мелких файлика, которые можно рассматривать как расшифровку генома этого донора (его структуры и дизайна). С помощью сигнатуры возможно получить полезный контент любого документа, отделив его от дизайна, и по любой тематике, охваченной сигнатурой.
Вам разрешается приложить руки только к одному из файлов сигнатуры - cats.php.
Он имеет внутри себя всего один массив, например, такой:
$donor_cats=array( "browse-CSS-1"=>"CSS", "browse-DHTML-1"=>"DHTML", # "browse-Direct_Mail-1"=>"Direct Mail", );
Массив на самом деле большой, тут он урезан. Доступные действия:
-
Помещение значка # перед строчкой массива исключает этот раздел донорского сайта из поля видимости Портатора.
В данном случае мы работаем с разделами CSS и DHTML, но не работаем с Direct Mail.Исходно в сигнатурах все разделы отключены.
-
Ключ элемента массива (до =>) трогать вообще нельзя.
Он нужен парсеру, не Вам. -
А вот значение элемента массива (после =>) можно модифицировать.
Этим решаются сразу три независимых задачи:-
Значения CSS и DHTML становятся именами фолдеров Вашего Портатора.
Для удобоваримости они переводятся в нижний регистр: css и dhtml
Если значение элемента массива содержит символ, запрещённый в URL-ах, этот символ исключается, причём пробел всегда заменяется дефисом.
Если тут используются русские буквы, то они транслитерируются, что может породить не сильно осмысленное имя папки и некрасивый URL.
Поэтому Вы можете задавать любое своё значение элемента массива на инглише- именно такое имя фолдера и получите. -
Название категории на кнопке фолдера в дизайне Портатора по умолчанию равно значению элемента массива.
Однако Вам может захотеться переименовать кнопку категории.
Делается это так:$donor_cats=array( "browse-CSS-1"=>"html-css [about CSS]", "browse-DHTML-1"=>"html-dhtml [Dynamic HTML]", # "browse-Direct_Mail-1"=>"Direct Mail", );
То, что в квадратных скобках, становится именем соответствующей кнопки.
В квадратных скобках уже можно применять русский язык.Обратите внимание, что, согласно предыдущему пункту данной инструкции, мы произвели замену имени папки нашего Портатора с css (оно принудительно переводится в нижний регистр) на html-css, а с dhtml на html-dhtml
-
Когда донорских ресурсов много, Вам может понравиться мысль объединения новостей с нескольких донорских ресурсов по какой-то теме в одной папке. Либо не раскладывать содержимое категорий одного донорского ресурса по разным папкам, а слить в одну. Никаких проблем- объединим новости по каскадным таблицам стилей и динамическому HTML в одну категорию:
$donor_cats=array( "browse-CSS-1"=>"html [HTML технологии]", "browse-DHTML-1"=>"html [HTML технологии]", # "browse-Direct_Mail-1"=>"Direct Mail", );
Понятное дело, что и с другими донорами можно поступать так же- вполне реально брать новости финансового рынка с десяти мест, и накапливать в одном ресурсе блогового типа, в одной папочке.
-
Резюмируя.
С помощью концепции сигнатур и редактирования обычного PHP массива любой из этих сигнатур Вам доступно конфигурирование Портатора для работы с разными донорами, настройка файловой структуры самого Портатора, прописка правил раскладки импортируемых статей по папкам Портатора, а также сопоставление каждой категории любого донорского ресурса определённой папке.
Влияние на интерфейс (назначение папкам имён) самое что ни на есть простое.
Сигнатуры донорских ресурсов приобретаются в шопе.
Дополнительные возможности:
Поскольку донорский ресурс может быть любым, в том числе и с не очень корректным кодом, каждая сигнатура может быть дополнена правилами игнорирования тегов.
К примеру, донорский ресурс пихает в код документа комментарии управления гугловым ботом для АдСенса:
<!-- google_ad_section_start -->
<!-- google_ad_section_end -->
Вам эта радость не нужна совершенно, так как в Вашем движке портатора уже заложена генерация в нужных местах подобных тегов, и они будут конфликтовать с теми, что содержатся в контенте. Следовательно, импортированные комментарии нужно вырезать. Как и JavaScript код того же АдСенса- в подавляющем большинстве случаев он впендюрен прямо в текст заметки.
Бывает и так, что текст импортируемых артиклей какого-то донорского ресурса просто нашпигован ссылками перелинковки с другими страницами этого донора. Хоть движок Портатора и ставит внутрь тегов ссылок атрибут rel='nofollow', но Вам лично все эти уводящие ссылки совершенно ни к чему. Следовательно, в импортированном коде ссылки нужно давить.
И вообще тоскливо, когда дизайн на донорском ресурсе организован не традиционно, через каскадные таблицы стилей, а довольно дурным образом- через контейнеры <div> с атрибутами- отступами, полями, шириной-высотой...
В этом случае на текст в Вашем Портаторе будет больно смотреть.
А чтоб не было мучительно больно, нужно дивы вырезать, сохраняя их содержимое.
Про всякие таблицы и картинки вообще отдельный разговор.
Итак, настройки универсальнаой резалки в файле cats.php любой сигнатуры:
# Тонкие настройки: # Теги, которые в посте сохраняются. Возможные значения: # a - ссылки # img - изображения # script - скрипты # table - таблицы # rem - комментарии # div - контейнеры <div></div> # То, что хотите оставить при импорте контента, закавычивайте # и перечисляйте через запятую внутри массива. # Пример: # $_s['safe']=array("a","table","img"); # Тут мы оставляем при импорте контента все таблицы, картинки и линки. # Соответственно, скрипты, комментарии и дивы убираем. # Всё просто.
Ниже этих комментариев Вы и определяете массив, как указано:
$_s['safe']=array("a");
- тут мы оставляем только теги линков, остальное срезаем подчистую.
Обратите внимание- в массив пишем не то, что вырезаем, а то, что оставляем.
Выделенный красным массив прописываем в файле cats.php сигнатуры донора. Всё.