Четвер, 5 березня 2009 р.

Blogger - невеличкий веб лікнеп 2

3 коментарів:
 Як додати віджети у заголовок (header) , підвал (footer), будь-яке інше місце шаблону. Як змінити стандартні тексти шаблону.
 До стилів ми ще повернемося, а зараз розглянемо "тіло" затиснуте між тегами <bodi>.
 Найперше, поставимо галочку біля   "Розширити шаблони елементів керування". Надалі, перед тим як завантажити новий шаблон, клацаємо розширити елементи керування. Кажуть так менше ймовірність виникнення помилок. Особисто я ніколи шаблон не міняв. Що я робив дуже часто, так це вносив правку у код шаблону і на власному досвіді переконався  —  перед будь-якими змінами у коді шаблону обов'язково натисніть "Завантажити шаблон повністю". Цим ви завантажите резервну копію шаблону собі на жорсткий диск. У разі виникнення фатальної помилки у вас завжди буде можливість відновити останній робочій шаблон завантаживши його з файла "на жорсткий диск", мабуть мався на увазі жорсткий диск на блогерському сервері.



 Якщо ми розглянемо початковий код нашої сторінки у браузері, то побачимо, що розділ <style> такий самий як і у шаблоні, а от розділ <bodi> суттєво відрізняється.
Браузер нам показує звичайну послідовність блоків <div>, <span>, тегів, скриптів - все як і на інших веб сторінках. У шаблоні також трапляються знайомі теги, але поміж ними багато малозрозумілих і на перший погляд безглуздих значків:


<body>
  <div id='wrap'><div id='wrap2'><div id='wrap4'>
<div id='outer-wrapper'>
   <b:section class='header' id='header' maxwidgets='3'>
<b:widget id='HTML1' locked='false' title='' type='HTML'>
<b:includable id='main'>
  <!-- only display title if it's non-empty -->
  <b:if cond='data:title != &quot;&quot;'>
    <h2 class='title'><data:title/></h2>
  </b:if>
  <div class='widget-content'>
    <data:content/>
  </div>
<b:include name='quickedit'/>
</b:includable>
</b:widget>
 Можна припустити, що сторінка генерується на основі нашого шаблону. Попутно в неї включають типові віджети та різноманітні стандартні текстові блоки. Що саме буде включено, залежить від:


  • вашого вибору  —  це коли ви на вкладці "елементи сторінки" натискаєте "додати гаджет до сторінки".
  • мови блогу  —  одні й ті самі універсальні шаблони використовують для різних мов.
 Також автоматично генеруються:


  • данні про час написання,
  • мітки,
  • данні про авторство,
  • данні про знайдені посилання на допис.
 У нашому прикладі :

  <div id='wrap'><div id='wrap2'><div id='wrap4'><div id='outer-wrapper'> - блоки оформлення дизайну прописані у таблиці стилів.
<b:section class='header' id='header' maxwidgets='3'> - блок заголовку header, у стилях прописані правила для #header, а також для класу header.
 Мене зацікавило що означає maxwidgets='3'. Виявилось це максимальна кількість віджетів, які ви можете додати у блок. Стандартно було maxwidgets='1' тому, ніби нічого додати було не можливо. Після правки я туди примостив віджет перекладу. Більше для красоти, бо практичної користі з гуглівського перекладу не багато.



Мал. 1  Додаємо третій віджет

Мал. 2 Все, більше нікуди, ліміт вибрано повністю.
 Якщо у цьому ж рядку прописати showaddelement='no', то з вкладки "додати та впорядкувати елементи сторінки" зникне можливість додавання віджетів. Відповідно, якщо у якомусь із блоків прибрати цей запис, або переправити "no" на "yes" - така можливість з'явиться.



Мал. 3 У шапці блогу showaddelement='yes' у блоці публікації showaddelement='no'

Мал. 4 А тепер навпаки у шапці showaddelement='no' , а у публікаціях  —  showaddelement='yes'
Цього вже достатньо щоб розширити шаблон як душа забажає.
Наступний рядок нам мало чого дає
<b:widget id='HTML1'  —  ідентифікатор віджету, наскільки я зрозумів. Краще не чіпати :).
     locked='false'  —  замок, блокує ( true ) , або розблоковує ( false ) можливість переміщення блоків:



Мал. 5 Параметр   locked='false'

Мал. 6 Параметр locked='true'
        title=''  —  назва віджету, у нашому випадку відсутня. Якщо набрати title='віджет' Слово "віджет" з'явиться на сторінці, над самим віджетом. Краще назви віджитів набирати у формах самих віджетів, а не у шаблоні.
        type='HTML'>  —  не чіпаємо, схоже що це тип віджиту. нам воно нідочого.
Наступні кілька рядків:


<b:includable id='main'>
  <!-- only display title if it's non-empty -->
  <b:if cond='data:title != &quot;&quot;'>
    <h2 class='title'><data:title/></h2>
предписують блогеру включити у шаблон блок 'main', якщо є заголовок то відобразити.
 Малозрозумілі: &quot;&quot ,є не що інше, як звичайні лапки (") . Це, знову ж таки, наскільки я зрозумів, так звані сутності XML. У нетрі я не полізу, мені досить було зрозуміти: &amp; - ( & ) , &lt; - ( < ) , &gt; - ( > ) , &apos; - (  ) , &quot; - ( " ) . Тобто написано: "якщо data:title не (!=) порожній рядок ("") відобразити на сторінці рядок data:title як клас 'title' помістивши його у теги <h2>.
 Цікаво вже те, що з'ясувавши значення перемінних, можна трохи покращити дизайн блога.
 Серед іншого, мене не влаштовує оте "Ім'ярек сказав..." у коментарях. Дрібниця, але прекрасна половина має всі підстави ображатися.Слова:  "каже:", "пише:" набагато толерантніші й без недоречних трьох крапок...А то й взагалі прибрати зайве слово, залишивши лише двокрапку.
  Озброівшись  улюбленим методом Ламайстра  —  методом тику, швиденько знайшов у шаблоні ось цю перемінну:  <data:commentPostedByMsg/>. Виходячи з розташування, саме вона містить те некоректне у украіномовному шаблоні: "сказав...", Вам найпростіше буде знайти цю перемвнну скориставшись "пошуком на сторінці" у вашому браузері. Про всяк випадок наводжу фрагмент коду:

 <dl id='comments-block'>
        <b:loop values='data:post.comments' var='comment'>
          <dt expr:class='&quot;comment-author &quot; + data:comment.authorClass' expr:id='data:comment.anchorName'>
            <a expr:name='data:comment.anchorName'/>
            <b:if cond='data:comment.authorUrl'>
              <a expr:href='data:comment.authorUrl' rel='nofollow'><data:comment.author/></a>
            <b:else/>
              <data:comment.author/>
            </b:if>
            <data:commentPostedByMsg/>
          </dt>
          <dd class='comment-body'>
            <b:if cond='data:comment.isDeleted'>
              <span class='deleted-comment'>< data:comment.body/></span>
            <b:else/>
              <p><data:comment.body/></p>
            </b:if>
          </dd>
залишається замінити її на щось подібне :


<span style="color: rgb(51, 102, 136);">каже:</span>
або ще краще:


<span style="color: rgb(51, 102, 136);">:</span>
Ось і все, нічого складного.



  <div class='widget-content'>
    <data:content/>
  </div>
<b:include name='quickedit'/>
</b:includable>
</b:widget>
 Шаблон наказує блогеру включити у сторінку код віджета, та засоби швидкого редагування того ж таки віджета. Тут нічого цікавого для себе я не побачив.
 На сьогодні все.
Далі буде :)...

3 коментаря

tivasyk :

привіт!

ти пропонуєш просто замінити ‹data:commentPostedByMsg/› на ‹span style="color: rgb(51, 102, 136);"›каже:‹/span>›?

гхм... насправді тоді ми ігноруємо стиль шаблону для цього фрагменту. цікаво, чи можна це пофіксити, якщо знати назву стилю (я html'ем цікавився давно, а css'ами ще й не надто терпляче).

tivasyk :

привіт ще раз =)

подивився до цього фрагменту... перевіряти трошкиліниво, але по-моєму, ось так має бути правильніше:

‹span class='comment-author'›каже:‹/span›

(зрозуміло, що кутики треба замінити на звичайні)

ivanko :

Привіт, привіт :) !
Згоден, так буде правильніше, бо використовуєш клас визначений у шаблоні Блогера. Я ж просто визначив свій стиль, бо хотілося зробити щоб колір слова "каже" відрізнявся від кольору тексту коментаря. Загалом нічого страшного у цій неправильності мабуть немає.
Твій варіант я перевірив, працює. Але, що цікаво, переглянувши свій шаблон, опис класу comment-author у стилях не знайшов...
Враховуючи, що я з CSS та html знайомлюсь у процесі освоєння Блогера, цікаво буде подивитися що зміниться якщо стиль .comment-author визначити описавши самостійно.
Зроблю як з'явиться бажання ще поморочитися з шаблоном :) .

Дописати коментар

Можна використовувати теги:
<i>курсив</i> <b>жирний</b>
<a href="http:// «адреса посилання» "> «текст» </a>

ще? :