& # ’TextField & #’, & # ’# заглавието & #’ => & # "Фирма адрес & # ’& #’ # DEFAULT_VALUE & # ’=> theme_get_setting (& #’ company_address & # ") и # ’# размер & #’ => 60, & # ’# MAXLENGTH & #’ => 128, & # ’# изисква & #’ => FALSE,); Вземи стойности от тази област можем в нашите шаблони навсякъде, просто използвайте theme_get_setting (). Като опция се прехвърля на името на нашата област, и да посочите, предмет на който отчита стойността по подразбиране, тъй като е изваден от употреба, ако е необходимо. Например, за да получите стойността на полето с адреса на фирмата, ние трябва да използвате функцията така: печатни theme_get_settings ( "company_address"). Опитът показва, че най-добре е да приключи тези разговори в състоянието, ако (theme_get_setting ( "company_address ’)) {печат theme_get_setting (" company_address’); } Така ще се избегнат много грешки, които са склонни да се появи, ако стойността на печатните и той просто не се яви или при прехвърляне на сайта. Corny изобщо lokalke в Chiharu оре и drupalhosting без обвивка чука бял екран на смъртта. В действителност, това е на целия процес. Това дава възможност да се манипулират данните на уебсайта на опции тема, която от своя страна ускорява процеса на подмяна на големи обекти, а ако се прави на клиента, това няма да ви спра нищо. Добавянето на няколко примера в крайния участък за нашите полета, за да ги разделят на логически свързани настройки за потребителя. $ Форма [& # "други & # ’] = масив (& #’ # тип & # ’=> & #’ fieldset & # ’, & #’ # заглавието & # ’=> & #" Advanced Settings & #’ & # ’# тегло & # ’=> 5, & #’ # сгъваем & # ’=> вярно, & #’ # срути & # ’=> FALSE,); Добавяне на текстово поле с форматиране в този много раздел и, ако са свързани редактори, примера и затегнете CKEditor. $ Форма [& # "други & # ’] [& #’ text_with_format & # ’] = масив (& #’ # тип & # ’=> & #’ text_format & # ’, & #’ # заглавието & # ’=> & #" Текст & # ’, & #’ # DEFAULT_VALUE & # ’=> theme_get_setting (& #’ text_with_format & # ") [& #" стойност & # ’], & #’ # формат & # ’=> theme_get_setting (& #’ text_with_format & # ") [& # ’формат & #’], & # ’# тегло & #’ => 0); И най-интересното - добавете файла. Малко теория. След като изтеглите файла чрез Drupal форма, файлът е зареден, но в даден момент (~ 6 часа), т.е. тежи статут на "временно" и ако не зададете друга, той просто след 18:00 първия короната изтрит. Решението, като цяло, очевидната необходимост да се постигне трайна файл и преход през file_save (). Но за лош късмет, в този въпрос не може да (!) Huknut на изпращане на формуляра. И след това да се наложи или да напише персонализиран модул, който по принцип е абсурдно, за да добавите поле, за да изберете, или да се постави не, но надеждна патерица. Така че ние започваме. $ Форма [& # "други & # ’] [& #’ background_image & # ’] = масив (& #’ # заглавието & # ’=>" Предшестващо картина ", & #’ # тип & # ’=> & #’ managed_file & # ’ , & # ’# изисква & #’ => FALSE, & # ’# описание & #’ => "картината на фона.", & # ’# DEFAULT_VALUE & #’ => theme_get_setting (& # ’background_image & # ") и #’ # upload_location & # ’=> & # "публично: // & #’, & # ’# upload_validators & #’ => масив (& #" file_validate_extensions & # ’=> масив (& #’ GIF PNG JPG JPEG & # ")) ,); Този код ще добавя полеви общите качване на снимки, за да бъде изтеглен до обществена faylohranilische. Всичко ще работи! Но както писах, след 6 часа на първия CZK премахнете своя имидж. За да направите това, ние се тук, е като патерица: / Съхранявайте снимки, ако беше даден статут на "временно". $ Image_custom_index = theme_get_setting (& # ’background_image & #’); ако ($ image_custom_index) {/ Вземете ID на файла. $ Фид = theme_get_setting (& # ’background_image & #’); / Изпращане на нашето решение, аз открих. $ File = file_load ($ ДИП); / Ако състоянието наистина е "време", а след това ... ако ($ File-> статус == 0) {/ моделите нормалното състояние. $ File-> статус = FILE_STATUS_PERMANENT; / Запишете файла. file_save ($ файл); }} Това са пайове) на проблема с ноу, има много проблем, има петна, които работят дори когато е в сърцевината 7 е неизвестен. Това е, което в крайна сметка се е случило. Но пълен, пълен код на тема-settings.php с тези настройки. функция THEMENAME_form_system_theme_settings_alter (& $ форма, и $ form_state, $ form_id = NULL) {/ работното място наоколо за основната грешка, засягаща администраторски теми. Вижте брой # 943212. ако (Isset ($ form_id)) {връщане; } / Данни, получени от областта чрез theme_get_setting (& # ’comapny_address & # "). $ Форма [& # ’company_address & #’] = масив (& # ’# тип & #’ =?> & # ’TextField & #’, & # ’# заглавието & #’ => & # "Фирма Адрес & # ’& #’ # DEFAULT_VALUE & # ’=> theme_get_setting (& #’ company_address & # ") и # ’# размер & #’ => 60, & # ’# MAXLENGTH & #’ => 128, & #" необходими # & # ’=> FALSE,) ; $ Форма [& # "други & # ’] = масив (& #’ # тип & # ’=> & #’ fieldset & # ’, & #’ # заглавието & # ’=> & #" Advanced Settings & #’ & # ’# тегло & # ’=> 5, & #’ # сгъваем & # ’=> вярно, & #’ # срути & # ’=> FALSE,); / Данни, получени от областта чрез theme_get_setting (& # ’text_with_format & # "). $ Форма [& # "други & # ’] [& #’ text_with_format & # ’] = масив (& #’ # тип & # ’=> & #’ text_format & # ’, & #’ # заглавието & # ’=> & #" Текст & # ’, & #’ # DEFAULT_VALUE & # ’=> theme_get_setting (& #’ text_with_format & # ") [& #" стойност & # ’], & #’ # формат & # ’=> theme_get_setting (& #’ text_with_format & # ") [& # ’формат & #’], & # ’# тегло & #’ => 0); / Данни, получени от областта чрез theme_get_setting (& # ’text_with_format & # ") [& #" стойност & #’]. $ Форма [& # "други & # ’] [& #’ text_with_format & # ’] = масив (& #’ # тип & # ’=> & #’ text_format & # ’, & #’ # заглавието & # ’=> & #" Текст & # ’, & #’ # DEFAULT_VALUE & # ’=> theme_get_setting (& #’ text_with_format & # ") [& #" стойност & # ’], & #’ # формат & # ’=> theme_get_setting (& #’ text_with_format & # ") [& # ’формат & #’], & # ’# тегло & #’ => 0); / За да получите картината, ние направете следното: / $ образ = theme_get_setting (& # "background_image & # ’); / $ IMAGE_URL = file_create_url (& # ’background_image & #’, file_load ($ изображение) -> URI); / В $ IMAGE_URL е познат на всички линк към снимката. $ Форма [& # "други & # ’] [& #’ background_image & # ’] = масив (& #’ # заглавието & # ’=>" Предшестващо картина ", & #’ # тип & # ’=> & #’ managed_file & # ’ , & # ’# изисква & #’ => FALSE, & # ’# описание & #’ => "картината на фона.", & # ’# DEFAULT_VALUE & #’ => theme_get_setting (& # ’background_image & # ") и #’ # upload_location & # ’=> & # "публично: // & #’, & # ’# upload_validators & #’ => масив (& #" file_validate_extensions & # ’=> масив (& #’ GIF PNG JPG JPEG & # ")) ,); / Запазване на снимката, ако беше даден статут на "временно". $ Image_custom_index = theme_get_setting (& # ’background_image & #’); ако ($ image_custom_index) {/ Вземете ID на файла. $ Фид = theme_get_setting (& # ’background_image & #’); / Изпращане на нашето решение, аз открих. $ File = file_load ($ ДИП); / Ако състоянието наистина е "време", а след това ... ако ($ File-> статус == 0) {/ моделите нормалното състояние. $ File-> статус = FILE_STATUS_PERMANENT; / Запишете файла. file_save ($ файл); }}}" />

Добавяне на собствени настройки в тема Drupal 7

Като тривиален пример настройка по теми в моя блог.

Добавяне на собствени настройки в тема Drupal 7

Пример на блог

Първоначално те са били здраво забит в темата, но когато реших да ги промените, аз бях изправен пред факта, че аз трябваше да се изкачи по FTP, редактирате темата. Какво става, ако имате страница - # 42; .tpl.php повече от 2 (page.tpl.php и страница - предно tpl.php)? Взима пълен садизъм и загуба на време напразно, така че аз просто направени съответните корекции в темата.

Добавяне на собствени настройки в тема Drupal 7

обучение

За да се приложи, се нуждаем от една тема, към която ще добавим персонализирани настройки, както и повърхностни познания на ръцете Форма API. или поне възможност за бързо разбират сложните неща не :)

И сега към бизнеса

По-голямата част от работата се извършва в досието на тема-settings.php. Ако не разполагат с него, да създавате и да добавите формата на кука:

Вземи стойности от тази област можем в нашите шаблони навсякъде, просто използвайте theme_get_setting (). Като опция се прехвърля на името на нашата област, и да посочите, предмет на който отчита стойността по подразбиране, тъй като е изваден от употреба, ако е необходимо.

Опитът показва, че най-добре е да приключи тези разговори в състояние

Така ще се избегнат много грешки, които обикновено се появяват, ако стойността на печатните и той просто не се яви или при прехвърляне на сайта. Corny изобщо lokalke в Chiharu оре и drupalhosting без обвивка чука бял екран на смъртта.

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

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

Добавяне на секция на нашите полета, за да бъде разделена на логически свързани настройки за потребителя.

Благодаря за бърз отговор!

Всичко за настройките за напасване на възел. Не казвам, че това трябва да се направи, но не това е просто едно добро решение за потребителски настройки?

Е, виж, какви предимства мога да видя тук:

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

б) се скрие от търсачките? Така че един ред в същите Robots всички, нали?

Темата се променя и там се появяват \ отстранени някои от полетата. Отново търсят възел и редактиране chtoli. Така е и се получават настройките за определена тема.

Е, това е, защото ние вече сме на темата за избор. Разбира се, чрез промяна на темата ще имаме нашите полета (една от този възел с настройките), за да тяга на правилните места Tm (в печат) новата тема.

И въпросът се променя, когато се промени темата тук, не е от голямо значение. В крайна сметка, всеки достатъчно персонализирате сайта чрез промяна на темата ще падне много неща.

Т.е. всички по-горе изглежда повече като положителните страни на такова решение, нали? Какви други значителни недостатъци може да се нарече?

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

Поне в моя проект за решение, като възел няма да намери приложение. Аз съм много schepitilen за това. Аз съм много съдържание тип vybeshivaet формуляра, който се създава, когато модулът със същото име. Веднага виси snoshu и възможни форми на нормален пейджър = \-чист Admin и клиентът не уточни какво е уеб-форма, а в българския вариант, както и всички "Въпросник". Те си мислят, че това е една анкета и да седне neponyatkah.

Така че аз повдигна въпроса за сметка на това, което искам да се скрие някак компетентно настройки Зина към нормалния потребител не вижда никакви настройки favikonok, тема rebuld т.н.

$ Node = node_load ($ NID);
$ Node-> field_name [ 'унд'] [0] "стойност"]

Ако е така, защото, ако проектът ще подкрепи друг измамник theme_get_setting () функция е по-говоря)

Просто ей така от външната страна, тя не drupalway решение. В крайна сметка, възможност за добавяне на свои собствени настройки в темата не се прави за шоу.

Много решения drupalway вкоренени остана много дълбока и често това е единственото оправдание за тяхното suschestovvaniya в сегашния си вид, за това често се говори и да работят по 8-9. Така че аз просто погледнете, ако имаме толкова много проблеми и странности с набор от опции, както и дали да се направи всичко това по-лесно и по-логично за потребителя?

И в придатък към него, за да създадете потребителски модул, който се създаде специална, собствен администраторския панел на еднакви форми и Пейдж. Съдържание, както би трябвало, и т.н. Но като административното пространство има смисъл да пиша само за наистина големи проекти, както и всяко малко нещо, което може да хвърли по този въпрос.

Напиши администратор или хвърлят по този въпрос и да се скрият / усъвършенства? Подход с един прост възел на не по-просто / по-ясно това?

$ Node = node_load ($ NID);
$ Node-> field_name [ 'унд'] [0] "стойност"]

Ако е така, защото, ако проектът ще подкрепи друг измамник theme_get_setting () функция е по-говоря)

Е, друг програмист трябва да се чете три думи за това, че областта трябва да бъдат предприети в възел Nastrojki, например. Твърде, защото нищо не е трудно и страшно.

Аз не holivar в никакъв случай. Аз се опитвам да се намери бързо, лесно, удобно решение.

Тази кожа е за една година)

Аз все пак как данните се вмъква в кода става чиста. Pravdka форматирането се губи, но това е по-добре, отколкото по-късно в изходния код чист стил и класа, добавя той. Всичко, което искам да пиша за определяне CKEditor'a за мениджъри на съдържание, но не забравяйте = \

Само аз забелязах, че след отстраняване / подмяна на изображения от административната област, старата Файлът не се изтрива.

Изправени пред друг проблем, ако посоченият фоновото изображение чрез CSS или директно в през .tpl , След това, като се налива нови сметки всеки път да калайджия с кода, който обезсмисля всички автоматизация) със сигурност може да Cherz JS да се зареди най-новите качени файлове, но това е Mauvais тон. Как да настроите автоматично преименуване на зареждане на шаблона?

Само аз забелязах, че след отстраняване / подмяна на изображения от административната област, старата Файлът не се изтрива

Той трябва да се пенсионират на първия короната след 3-4 часа.

Изправени пред друг проблем, ако посоченият фоновото изображение чрез CSS или директно в през .tpl , След това, като се налива нови сметки всеки път да калайджия с кода, който обезсмисля всички автоматизация)

Не не, вие правите нещо нередно. Не е необходимо да посочите URL чрез PHP да я получи. file_create_url () zaguglit

стартирани CZK няколко лесни времена, снимки не се изтриват.

функция wb_clear_form_system_theme_settings_alter ($ форма, $ Form_state, $ form_id = NULL)

ако (Isset ($ form_id)) връщане;
>

$ Форма [ "други"] [ 'background_image'] = масив (
"#title '=>" Предшестващо картина "
"#type '=>' managed_file ',
"#required '=> FALSE,
"#description" => "Картината на заден план."
"#default_value '=> theme_get_setting (" background_image "),
"#upload_location '=>' публично: // BG /",
"#upload_validators '=> масив (
= 'File_validate_extensions "> масив (" GIF PNG JPG JPEG "),
)
);

// Запазете изображението, ако тя получи статут на "временно".
$ Image_custom_index = theme_get_setting ( "background_image ');
ако ($ image_custom_index) $ подпора = theme_get_setting ( "background_image ');
$ File = file_load ($ ДИП);
ако ($ File-> статус == 0) $ File-> статус = FILE_STATUS_PERMANENT;
file_save ($ файл);
>
>

Файлът не е глупав за короната се отстранява. Той висеше на етикета, който не се използва, и то само след 3-4 часа, когато първият короната провеждат след този период той ще бъде изтрит физически. И той вижда, че корони в по-малко от 3-4 часа и отстраняване черен списък.

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

Добър ден. Съжалявам. но аз не работя областта на изображението.

тук ми е тема-settings.php файл

функция artforce_form_system_theme_settings_alter ($ форма, $ Form_state, $ form_id = NULL) // работното място наоколо за основната грешка, засягаща администраторски теми. Вижте брой # 943212.
ако (Isset ($ form_id)) връщане;
>

$ Форма [ "други"] = масив (
"#type '=>' fieldset ',
"#title '=>' Разширени настройки"
"#weight '=> 5
"#collapsible '=> вярно,
"#collapsed '=> FALSE,
);

// Запазете изображението, ако тя получи статут на "временно".
$ Image_custom_index = theme_get_setting ( "товарач ');
ако ($ image_custom_index) // Вземете идентификационния файл.
$ Фид = theme_get_setting ( "товарач ');
// кораб нашето решение, аз открих.
$ File = file_load ($ ДИП);
// Ако състоянието наистина е "време" е.
ако ($ File-> статус == 0) // Задаване на нормалното състояние.
$ File-> статус = FILE_STATUS_PERMANENT;
// Запазете файла.
file_save ($ файл);
>
>
>

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

Кажи ми, моля те, че това може да бъде?