ПредишенСледващото

Не забравяйте да вземете жетони

Често най-важната част на сайта направи своите потребители. Те - уникални личности, които са в основата на проспериращи общества. Тъй като това е от жизненоважно значение за подпомагане на потребителите и да направи съдържанието на сайта по предсказуем и персонално.

Един от най-големите трудности, които в тази среща, - които дават на потребителите персонализирани информация, без да поставяте дубликат код в цялата купчина. Важно е също така да бъде в състояние лесно изход уникална линия данни, за да се покаже по-нататъшни потребители.

За щастие, Drupal е удобен метод за вмъкване на променливите в съдържанието с помощта на модула Token. За разлика от прости заменящи низове, Token модул предлага на разработчиците на общ метод за работни струни, които могат да бъдат използвани в различни части на системата. Тя лесно се интегрира с други модули и намалява общото количество на съдържанието, че възложителят ще трябва да се боя да се създаде уеб сайт обичай.

Превод!

Преди да се потопите в модула Token, важно е да се разбере своята роля в екосистемата на Drupal. В Drupal има няколко метода на низ замяна, което може да дойде по-удобно в зависимост от ситуацията. Най-честите от тях - вградена система Drupal превод.

транслационна система е много проста и се използва почти изцяло чрез (функцията т). Например, ако искаме да покажем на потребителя преведена приветственото съобщение, което можем да направим, така че:

След като се създаде правилните файлове превод за езика на потребителя, този ред ще бъде прехвърлена. Въпреки това, има един проблем. Отделно от езика, няма персонализация. За щастие, самата функция за прехвърляне е в състояние да извърши подмяната на линиите!

Тук ние виждаме първата ни знак (@user). Тази линия в крайна сметка ще бъде заменен с потребителско име. Символ означава Добавя рано знак метод филтриране използва в един ред (помага да напише защитен код).

  • !променлива - се добавя ред, както е-е;
  • @variable - линия преминава през check_plain (), HTML се превръща в текст;
  • Променлива% - линия преминава през check_plain () и theme_placeholder (), HTML се превръща в текст, всичко е затворено.
Внимателен разработчик ще забележите друг ограничение в този метод е, че ние не може да влезе в ред наведнъж единствено и множествено число. Но Drupal е метод, който го прави лесно да форматирате низ в множествено число чрез format_plural (функция). @count Функцията format_plural () - специална променлива, тя винаги се използва за номера на заместване, предадена от първия аргумент.

Заслужава да се отбележи, че тези функции трябва да се използва само за интерфейса на превода. Превод струни трябва да са статични (т.е. не е въведен от потребителя). Така или иначе, тези характеристики дават възможност да се напише за превод на други езици модули в паралел с потребителски струни.

API Token модул

Модул Token API - много добро средство за динамични замествания в текста. Тя позволява на разработчиците да заместят линията (наречени жетони) променливите данни в рамките на текста. Мнозина вече са запознати с един вид жетони, които могат да се видят в модула за употреба, включени в стандартното разпределение на Drupal. Потребителят модул широко използва жетони в генерирането на персонализирани електронни писма до потребители. Например:

За съжаление, тъй като символично модул не е включен в основната Drupal (до Drupal 7), потребителски модул не може да се възползва от всички свои предимства. Е, това изглежда като част от текст, когато се използва означението?
Ние използваме същия пример на потребителя на модула:

Така че, защо (освен код ефективността на идеята), за да се направи отделна API за нещо на пръв поглед незначителна? В крайна сметка, в PHP, можете да вече имат вградена функция подмяна низ, и винаги да бъде включен в променливата на низ. Отговорът е, че замяната на линии в Drupal - много по-напреднали от променлива смяна проста. Използвайки този метод, вие ще получите някои важни предимства:

  • Стандартизация - знак модул предоставя стандартен начин за създаване на символи и лесни за разбиране на крайния потребител.
  • Преносимост - знак модул позволява на програмистите да определят собствени означения, които след това могат да бъдат използвани в други модули, както и да се възползват от модули жетони на други хора.
  • Помощ - API знак модул предоставя списък с всички символи, които са на разположение на сайта. Това намалява необходимостта от код дублиране и създаването на еднакви символи на различни места.
Използване на символите по код

Стига приказки, време е да се отхвърли ръцете му. Както и при много други API, има добра причина да използвате символите API: това е изключително лесно. Да речем, че искате да смените стойностите на текст възел от обект:
или в случай на нашето послание към потребителя

И това е всичко! Модул знак е добре за факта, че всички символи, които се считат глобалното (като този на уебсайта), ще бъде на разположение, без значение какъв обект се използва за замяна на символи.

Моето собствено означение

Какво става, ако в модула има свои собствени данни и искате да направите за тях символи?
Също така е много лесно. Да кажем, че имате модул, който използвате символични резервни части за електронни съобщения. Просто използвайте hook_token_values.

Сега няколко нови жетони достъпни за потребителите. Дайте им съвети също е много прост - с помощта hook_token_list.

Това е всичко, приятели

Това е всичко. Както можете да видите, можете да използвате знак замяна е много лесно и бързо. Ако искате да се проникне по-дълбоко, има някои допълнителни неща, за да изследват (като например промяна на символите, създадени в други модули) и документация API е прикрепен към оригиналната бележка (няма нищо в знак модул README.txt добро описание - алея ..).

означение модул е ​​включен в ядрото на Drupal 7. Това означава подпомагане на символите от кутията. Yohoho! Както можете да видите, ние всички сме развълнувани за предстоящото пускане :)

В поредица от "20 API за 20 дни", няма да има повече бележки. Не си отиде!

Свързани статии

Подкрепете проекта - споделете линка, благодаря!