среда, 9 июня 2010 г.

Создаем списки

Сегодня учимся создавать списки, в этом нам будет помогать функция addListItem.


$section->addListItem( $text, [$depth], [$styleText], [$styleList] );

Итак, начинаю вещать) :


Функция addListItem()
Параметр
Тип данных
Описание
$text
String
Текст который передаем
$depth
Integer
Уровень списка, далее приведу пример не переживайте.
$styleText
String / Array
Стиль текста в текущей строке, примеры ниже
$styleList
Array
Стиль самого списка



Теперь разберем подробнее, много чего не сразу понятно.
Простой список создается так:


$section->addListItem('Строка 1', 0);    //первая строка(элемент списка)
$section->addListItem('
Строка 2', 0);     //....
$section->addListItem('
Строка 3', 0);     //....

Результат будет таким:
  • Строка 1
  • Строка 2
  • Строка 3
Список с тремя уровнями
  
$section->addListItem('Строка 1', 0);      //первая строка(элемент списка), уровень 0
$section->addListItem('
Строка 1.1', 1);   // уровень 1
$section->addListItem('
Строка 1.2', 1);   // уровень 1
$section->addListItem('
Строка 1.3 (styled)', 1, array('bold'=>true));   //тут мы уже задали стиль текста
$section->addListItem('
Строка 1.3.1', 2);     // уровень 2
$section->addListItem('
Строка 1.3.2', 2);     // уровень 2 
   
Результат будет таким:


  • Строка 1
    • Строка1.1
    • Строка1.2
    • Строка 1.3 (styled)
      • Строка1.3.1
      •  Строка1.3.2 
 Теперь перейдем в нумерованому списку:


$listStyle = array('listType'=>PHPWord_Style_ListItem::TYPE_NUMBER); // создали стиль списка
$section->addListItem('
Строка 1', 0, null, $listStyle);  // первая строка
$section->addListItem('
Строка 2', 0, null, $listStyle);
$section->addListItem('
Строка 3', 0, null, $listStyle);

 Разберем. В первой строке создаем стиль для списка, возможные варианты разберу ниже(TYPE_NUMBER - нумерованный). NULL во второй строке и следеющих означет, что текст со стилем по умолчанию. А в результате получим такое:
  1. Строка 1
  2. Строка 2
  3. Строка 3
Вот и подходим  к самому интересному, список нумерованный с уровнями.


$PHPWord->addFontStyle('myOwnStyle', array('color'=>'FF0000'));  //создали стиль для текста$listStyle = array('listType'=>PHPWord_Style_ListItem::TYPE_NUMBER_NESTED); //стиль списка
$section->addListItem('List Item 1', 0, 'myOwnStyle', $listStyle);   /
/ уровень  0
$section->addListItem('List Item 2', 0, 'myOwnStyle', $listStyle);
$section->addListItem('List Item 3', 1, 'myOwnStyle', $listStyle);    
// уровень  1
$section->addListItem('List Item 4', 1, 'myOwnStyle', $listStyle);  
$section->addListItem('List Item 5', 2, 'myOwnStyle', $listStyle);    
// уровень  2
$section->addListItem('List Item 6', 1, 'myOwnStyle', $listStyle);     
// уровень 1
$section->addListItem('List Item 7', 0, 'myOwnStyle', $listStyle);
   
Разбираем писанину.  В первой строке создали стиль для текста, который потом и будем применять. Вторая строка, создали стиль для списка.

1.     List Item 1
2.     List Item 2
o    List Item 3
o    List Item 4
      • List Item 5
                  o    List Item 6

3.     List Item 7

Как и обещал, привожу список констант для PHPWord_Style_ListItem, в последнем примере вторая строка:
TYPE_NUMBER - нумерованый список;
TYPE_NUMBER_NESTED - нумерованый-вложенный список;
TYPE_BULLET_FILLED - маркированый список, маркер ввиде заполненной окружности;
TYPE_BULLET_EMPTYмаркированый список, маркер ввиде незаполненной окружности;
TYPE_SQUARE_FILLED - маркированый список, маркер ввиде заполненного квадрата. 

Комментариев нет:

Отправить комментарий