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

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

обучение
За да се приложи, се нуждаем от една тема, към която ще добавим персонализирани настройки, както и повърхностни познания на ръцете Форма 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 ($ файл);
>
>
>
се показва поле в настройките на темата. Аз изберете изображение. Аз спаси. всичко е наред.
но. ако го направя следващия път, когато отидете на теми страницата за настройки и промяна на други настройки, пише за мен
Използва се във файла товарач не може да се използва.
Кажи ми, моля те, че това може да бъде?