123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228 |
- <?php
- function system_admin_config_page() {
-
- if (system_status(TRUE) && user_access('administer site configuration')) {
- drupal_set_message(t('One or more problems were detected with your Drupal installation. Check the <a href="@status">status report</a> for more information.', array('@status' => url('admin/reports/status'))), 'error');
- }
- $blocks = array();
- if ($admin = db_query("SELECT menu_name, mlid FROM {menu_links} WHERE link_path = 'admin/config' AND module = 'system'")->fetchAssoc()) {
- $result = db_query("
- SELECT m.*, ml.*
- FROM {menu_links} ml
- INNER JOIN {menu_router} m ON ml.router_path = m.path
- WHERE ml.link_path <> 'admin/help' AND menu_name = :menu_name AND ml.plid = :mlid AND hidden = 0", $admin, array('fetch' => PDO::FETCH_ASSOC));
- foreach ($result as $item) {
- _menu_link_translate($item);
- if (!$item['access']) {
- continue;
- }
-
-
- if (!empty($item['localized_options']['attributes']['title'])) {
- $item['description'] = $item['localized_options']['attributes']['title'];
- unset($item['localized_options']['attributes']['title']);
- }
- $block = $item;
- $block['content'] = '';
- $block['content'] .= theme('admin_block_content', array('content' => system_admin_menu_block($item)));
- if (!empty($block['content'])) {
- $block['show'] = TRUE;
- }
-
-
- $blocks[(50000 + $item['weight']) . ' ' . $item['title'] . ' ' . $item['mlid']] = $block;
- }
- }
- if ($blocks) {
- ksort($blocks);
- return theme('admin_page', array('blocks' => $blocks));
- }
- else {
- return t('You do not have any administrative items.');
- }
- }
- function system_admin_menu_block_page() {
- $item = menu_get_item();
- if ($content = system_admin_menu_block($item)) {
- $output = theme('admin_block_content', array('content' => $content));
- }
- else {
- $output = t('You do not have any administrative items.');
- }
- return $output;
- }
- function system_admin_index() {
- $module_info = system_get_info('module');
- foreach ($module_info as $module => $info) {
- $module_info[$module] = new stdClass();
- $module_info[$module]->info = $info;
- }
- uasort($module_info, 'system_sort_modules_by_info_name');
- $menu_items = array();
- foreach ($module_info as $module => $info) {
-
- if ($admin_tasks = system_get_module_admin_tasks($module, $info->info)) {
-
- uasort($admin_tasks, 'drupal_sort_title');
-
- $permission_key = "admin/people/permissions#module-$module";
- if (isset($admin_tasks[$permission_key])) {
- $permission_task = $admin_tasks[$permission_key];
- unset($admin_tasks[$permission_key]);
- $admin_tasks[$permission_key] = $permission_task;
- }
- $menu_items[$info->info['name']] = array($info->info['description'], $admin_tasks);
- }
- }
- return theme('system_admin_index', array('menu_items' => $menu_items));
- }
- function system_settings_overview() {
-
- if (function_exists('db_check_setup') && empty($_POST)) {
- db_check_setup();
- }
- $item = menu_get_item('admin/config');
- $content = system_admin_menu_block($item);
- $output = theme('admin_block_content', array('content' => $content));
- return $output;
- }
- function system_themes_page() {
-
- $themes = system_rebuild_theme_data();
- uasort($themes, 'system_sort_modules_by_info_name');
- $theme_default = variable_get('theme_default', 'bartik');
- $theme_groups = array();
- foreach ($themes as &$theme) {
- if (!empty($theme->info['hidden'])) {
- continue;
- }
- $admin_theme_options[$theme->name] = $theme->info['name'];
- $theme->is_default = ($theme->name == $theme_default);
-
- $theme->screenshot = NULL;
-
- if (isset($themes[$theme->name]->base_themes)) {
- $theme_keys = array_keys($themes[$theme->name]->base_themes);
- $theme_keys[] = $theme->name;
- }
- else {
- $theme_keys = array($theme->name);
- }
-
- foreach (array_reverse($theme_keys) as $theme_key) {
- if (isset($themes[$theme_key]) && file_exists($themes[$theme_key]->info['screenshot'])) {
- $theme->screenshot = array(
- 'path' => $themes[$theme_key]->info['screenshot'],
- 'alt' => t('Screenshot for !theme theme', array('!theme' => $theme->info['name'])),
- 'title' => t('Screenshot for !theme theme', array('!theme' => $theme->info['name'])),
- 'attributes' => array('class' => array('screenshot')),
- );
- break;
- }
- }
- if (empty($theme->status)) {
-
-
-
- $theme->incompatible_core = !isset($theme->info['core']) || ($theme->info['core'] != DRUPAL_CORE_COMPATIBILITY) || (!isset($theme->info['regions']['content']));
- $theme->incompatible_php = version_compare(phpversion(), $theme->info['php']) < 0;
- }
- $query['token'] = drupal_get_token('system-theme-operation-link');
- $theme->operations = array();
- if (!empty($theme->status) || !$theme->incompatible_core && !$theme->incompatible_php) {
-
- $query['theme'] = $theme->name;
- if (drupal_theme_access($theme)) {
- $theme->operations[] = array(
- 'title' => t('Settings'),
- 'href' => 'admin/appearance/settings/' . $theme->name,
- 'attributes' => array('title' => t('Settings for !theme theme', array('!theme' => $theme->info['name']))),
- );
- }
- if (!empty($theme->status)) {
- if (!$theme->is_default) {
- $theme->operations[] = array(
- 'title' => t('Disable'),
- 'href' => 'admin/appearance/disable',
- 'query' => $query,
- 'attributes' => array('title' => t('Disable !theme theme', array('!theme' => $theme->info['name']))),
- );
- $theme->operations[] = array(
- 'title' => t('Set default'),
- 'href' => 'admin/appearance/default',
- 'query' => $query,
- 'attributes' => array('title' => t('Set !theme as default theme', array('!theme' => $theme->info['name']))),
- );
- }
- }
- else {
- $theme->operations[] = array(
- 'title' => t('Enable'),
- 'href' => 'admin/appearance/enable',
- 'query' => $query,
- 'attributes' => array('title' => t('Enable !theme theme', array('!theme' => $theme->info['name']))),
- );
- $theme->operations[] = array(
- 'title' => t('Enable and set default'),
- 'href' => 'admin/appearance/default',
- 'query' => $query,
- 'attributes' => array('title' => t('Enable !theme as default theme', array('!theme' => $theme->info['name']))),
- );
- }
- }
-
- $theme->notes = array();
- $theme->classes = array();
- if ($theme->is_default) {
- $theme->classes[] = 'theme-default';
- $theme->notes[] = t('default theme');
- }
-
- $theme_groups[$theme->status ? 'enabled' : 'disabled'][] = $theme;
- }
-
- $theme_group_titles = array(
- 'enabled' => format_plural(count($theme_groups['enabled']), 'Enabled theme', 'Enabled themes'),
- );
- if (!empty($theme_groups['disabled'])) {
- $theme_group_titles['disabled'] = format_plural(count($theme_groups['disabled']), 'Disabled theme', 'Disabled themes');
- }
- uasort($theme_groups['enabled'], 'system_sort_themes');
- drupal_alter('system_themes_page', $theme_groups);
- $admin_form = drupal_get_form('system_themes_admin_form', $admin_theme_options);
- return theme('system_themes_page', array('theme_groups' => $theme_groups, 'theme_group_titles' => $theme_group_titles)) . drupal_render($admin_form);
- }
- function system_themes_admin_form($form, &$form_state, $theme_options) {
-
- $form['admin_theme'] = array(
- '#type' => 'fieldset',
- '#title' => t('Administration theme'),
- );
- $form['admin_theme']['admin_theme'] = array(
- '#type' => 'select',
- '#options' => array(0 => t('Default theme')) + $theme_options,
- '#title' => t('Administration theme'),
- '#description' => t('Choose "Default theme" to always use the same theme as the rest of the site.'),
- '#default_value' => variable_get('admin_theme', 0),
- );
- $form['admin_theme']['node_admin_theme'] = array(
- '#type' => 'checkbox',
- '#title' => t('Use the administration theme when editing or creating content'),
- '#default_value' => variable_get('node_admin_theme', '0'),
- );
- $form['admin_theme']['actions'] = array('#type' => 'actions');
- $form['admin_theme']['actions']['submit'] = array(
- '#type' => 'submit',
- '#value' => t('Save configuration'),
- );
- return $form;
- }
- function system_themes_admin_form_submit($form, &$form_state) {
- drupal_set_message(t('The configuration options have been saved.'));
- variable_set('admin_theme', $form_state['values']['admin_theme']);
- variable_set('node_admin_theme', $form_state['values']['node_admin_theme']);
- }
- function system_theme_enable() {
- if (isset($_REQUEST['theme']) && isset($_REQUEST['token']) && drupal_valid_token($_REQUEST['token'], 'system-theme-operation-link')) {
- $theme = $_REQUEST['theme'];
-
- $themes = list_themes();
-
- if (!empty($themes[$theme])) {
- theme_enable(array($theme));
- drupal_set_message(t('The %theme theme has been enabled.', array('%theme' => $themes[$theme]->info['name'])));
- }
- else {
- drupal_set_message(t('The %theme theme was not found.', array('%theme' => $theme)), 'error');
- }
- drupal_goto('admin/appearance');
- }
- return MENU_ACCESS_DENIED;
- }
- function system_theme_disable() {
- if (isset($_REQUEST['theme']) && isset($_REQUEST['token']) && drupal_valid_token($_REQUEST['token'], 'system-theme-operation-link')) {
- $theme = $_REQUEST['theme'];
-
- $themes = list_themes();
-
- if (!empty($themes[$theme])) {
- if ($theme == variable_get('theme_default', 'bartik')) {
-
- drupal_set_message(t('%theme is the default theme and cannot be disabled.', array('%theme' => $themes[$theme]->info['name'])), 'error');
- }
- else {
- theme_disable(array($theme));
- drupal_set_message(t('The %theme theme has been disabled.', array('%theme' => $themes[$theme]->info['name'])));
- }
- }
- else {
- drupal_set_message(t('The %theme theme was not found.', array('%theme' => $theme)), 'error');
- }
- drupal_goto('admin/appearance');
- }
- return MENU_ACCESS_DENIED;
- }
- function system_theme_default() {
- if (isset($_REQUEST['theme']) && isset($_REQUEST['token']) && drupal_valid_token($_REQUEST['token'], 'system-theme-operation-link')) {
- $theme = $_REQUEST['theme'];
-
- $themes = list_themes();
-
- if (!empty($themes[$theme])) {
-
- if (empty($themes[$theme]->status)) {
- theme_enable(array($theme));
- }
-
- variable_set('theme_default', $theme);
-
-
-
-
-
- menu_rebuild();
-
-
- $admin_theme = variable_get('admin_theme', 0);
- if ($admin_theme != 0 && $admin_theme != $theme) {
- drupal_set_message(t('Please note that the administration theme is still set to the %admin_theme theme; consequently, the theme on this page remains unchanged. All non-administrative sections of the site, however, will show the selected %selected_theme theme by default.', array(
- '%admin_theme' => $themes[$admin_theme]->info['name'],
- '%selected_theme' => $themes[$theme]->info['name'],
- )));
- }
- else {
- drupal_set_message(t('%theme is now the default theme.', array('%theme' => $themes[$theme]->info['name'])));
- }
- }
- else {
- drupal_set_message(t('The %theme theme was not found.', array('%theme' => $theme)), 'error');
- }
- drupal_goto('admin/appearance');
- }
- return MENU_ACCESS_DENIED;
- }
- function system_theme_settings($form, &$form_state, $key = '') {
-
- if ($key) {
- $var = 'theme_' . $key . '_settings';
- $themes = list_themes();
- $features = $themes[$key]->info['features'];
- }
- else {
- $var = 'theme_settings';
- }
- $form['var'] = array('#type' => 'hidden', '#value' => $var);
-
- $toggles = array(
- 'logo' => t('Logo'),
- 'name' => t('Site name'),
- 'slogan' => t('Site slogan'),
- 'node_user_picture' => t('User pictures in posts'),
- 'comment_user_picture' => t('User pictures in comments'),
- 'comment_user_verification' => t('User verification status in comments'),
- 'favicon' => t('Shortcut icon'),
- 'main_menu' => t('Main menu'),
- 'secondary_menu' => t('Secondary menu'),
- );
-
- $disabled = array();
- if (!variable_get('user_pictures', 0)) {
- $disabled['toggle_node_user_picture'] = TRUE;
- $disabled['toggle_comment_user_picture'] = TRUE;
- }
- if (!module_exists('comment')) {
- $disabled['toggle_comment_user_picture'] = TRUE;
- $disabled['toggle_comment_user_verification'] = TRUE;
- }
- $form['theme_settings'] = array(
- '#type' => 'fieldset',
- '#title' => t('Toggle display'),
- '#description' => t('Enable or disable the display of certain page elements.'),
- );
- foreach ($toggles as $name => $title) {
- if ((!$key) || in_array($name, $features)) {
- $form['theme_settings']['toggle_' . $name] = array('#type' => 'checkbox', '#title' => $title, '#default_value' => theme_get_setting('toggle_' . $name, $key));
-
- if (isset($disabled['toggle_' . $name])) {
- $form['theme_settings']['toggle_' . $name]['#disabled'] = TRUE;
- }
- }
- }
- if (!element_children($form['theme_settings'])) {
-
-
- $form['theme_settings']['#access'] = FALSE;
- }
-
- if ((!$key) || in_array('logo', $features)) {
- $form['logo'] = array(
- '#type' => 'fieldset',
- '#title' => t('Logo image settings'),
- '#description' => t('If toggled on, the following logo will be displayed.'),
- '#attributes' => array('class' => array('theme-settings-bottom')),
- );
- $form['logo']['default_logo'] = array(
- '#type' => 'checkbox',
- '#title' => t('Use the default logo'),
- '#default_value' => theme_get_setting('default_logo', $key),
- '#tree' => FALSE,
- '#description' => t('Check here if you want the theme to use the logo supplied with it.')
- );
- $form['logo']['settings'] = array(
- '#type' => 'container',
- '#states' => array(
-
- 'invisible' => array(
- 'input[name="default_logo"]' => array('checked' => TRUE),
- ),
- ),
- );
- $form['logo']['settings']['logo_path'] = array(
- '#type' => 'textfield',
- '#title' => t('Path to custom logo'),
- '#description' => t('The path to the file you would like to use as your logo file instead of the default logo.'),
- '#default_value' => theme_get_setting('logo_path', $key),
- );
- $form['logo']['settings']['logo_upload'] = array(
- '#type' => 'file',
- '#title' => t('Upload logo image'),
- '#maxlength' => 40,
- '#description' => t("If you don't have direct file access to the server, use this field to upload your logo.")
- );
- }
- if ((!$key) || in_array('favicon', $features)) {
- $form['favicon'] = array(
- '#type' => 'fieldset',
- '#title' => t('Shortcut icon settings'),
- '#description' => t("Your shortcut icon, or 'favicon', is displayed in the address bar and bookmarks of most browsers."),
- );
- $form['favicon']['default_favicon'] = array(
- '#type' => 'checkbox',
- '#title' => t('Use the default shortcut icon.'),
- '#default_value' => theme_get_setting('default_favicon', $key),
- '#description' => t('Check here if you want the theme to use the default shortcut icon.')
- );
- $form['favicon']['settings'] = array(
- '#type' => 'container',
- '#states' => array(
-
- 'invisible' => array(
- 'input[name="default_favicon"]' => array('checked' => TRUE),
- ),
- ),
- );
- $form['favicon']['settings']['favicon_path'] = array(
- '#type' => 'textfield',
- '#title' => t('Path to custom icon'),
- '#description' => t('The path to the image file you would like to use as your custom shortcut icon.'),
- '#default_value' => theme_get_setting('favicon_path', $key),
- );
- $form['favicon']['settings']['favicon_upload'] = array(
- '#type' => 'file',
- '#title' => t('Upload icon image'),
- '#description' => t("If you don't have direct file access to the server, use this field to upload your shortcut icon.")
- );
- }
-
- foreach (array('logo' => 'logo.png', 'favicon' => 'favicon.ico') as $type => $default) {
- if (isset($form[$type]['settings'][$type . '_path'])) {
- $element = &$form[$type]['settings'][$type . '_path'];
-
-
- $original_path = $element['#default_value'];
- $friendly_path = NULL;
- if (file_uri_scheme($original_path) == 'public') {
- $friendly_path = file_uri_target($original_path);
- $element['#default_value'] = $friendly_path;
- }
- }
- }
- if ($key) {
-
- $function = $themes[$key]->prefix . '_engine_settings';
- if (function_exists($function)) {
- $form['engine_specific'] = array(
- '#type' => 'fieldset',
- '#title' => t('Theme-engine-specific settings'),
- '#description' => t('These settings only exist for the themes based on the %engine theme engine.', array('%engine' => $themes[$key]->prefix)),
- );
- $function($form, $form_state);
- }
-
- if (isset($themes[$key]->base_themes)) {
- $theme_keys = array_keys($themes[$key]->base_themes);
- $theme_keys[] = $key;
- }
- else {
- $theme_keys = array($key);
- }
-
-
-
- $default_theme = !empty($GLOBALS['theme_key']) ? $GLOBALS['theme_key'] : NULL;
- $GLOBALS['theme_key'] = $key;
-
- foreach ($theme_keys as $theme) {
-
- $filename = DRUPAL_ROOT . '/' . str_replace("/$theme.info", '', $themes[$theme]->filename) . '/theme-settings.php';
- if (file_exists($filename)) {
- require_once $filename;
- }
-
- $function = $theme . '_form_system_theme_settings_alter';
- if (function_exists($function)) {
- $function($form, $form_state);
- }
- }
-
- if (isset($default_theme)) {
- $GLOBALS['theme_key'] = $default_theme;
- }
- else {
- unset($GLOBALS['theme_key']);
- }
- }
- $form = system_settings_form($form);
-
- array_pop($form['#submit']);
- $form['#submit'][] = 'system_theme_settings_submit';
- $form['#validate'][] = 'system_theme_settings_validate';
- return $form;
- }
- function system_theme_settings_validate($form, &$form_state) {
-
- $validators = array('file_validate_is_image' => array());
-
- $file = file_save_upload('logo_upload', $validators);
- if (isset($file)) {
-
- if ($file) {
-
- $form_state['values']['logo_upload'] = $file;
- }
- else {
-
- form_set_error('logo_upload', t('The logo could not be uploaded.'));
- }
- }
- $validators = array('file_validate_extensions' => array('ico png gif jpg jpeg apng svg'));
-
- $file = file_save_upload('favicon_upload', $validators);
- if (isset($file)) {
-
- if ($file) {
-
- $form_state['values']['favicon_upload'] = $file;
- }
- else {
-
- form_set_error('favicon_upload', t('The favicon could not be uploaded.'));
- }
- }
-
-
- if (!empty($form_state['values']['logo_path'])) {
- $path = _system_theme_settings_validate_path($form_state['values']['logo_path']);
- if (!$path) {
- form_set_error('logo_path', t('The custom logo path is invalid.'));
- }
- }
- if (!empty($form_state['values']['favicon_path'])) {
- $path = _system_theme_settings_validate_path($form_state['values']['favicon_path']);
- if (!$path) {
- form_set_error('favicon_path', t('The custom favicon path is invalid.'));
- }
- }
- }
- function _system_theme_settings_validate_path($path) {
-
- if (drupal_realpath($path) == $path) {
- return FALSE;
- }
-
- if (is_file($path)) {
- return $path;
- }
-
- if (file_uri_scheme($path) === FALSE) {
- $path = 'public://' . $path;
- }
- if (is_file($path)) {
- return $path;
- }
- return FALSE;
- }
- function system_theme_settings_submit($form, &$form_state) {
-
- form_state_values_clean($form_state);
- $values = $form_state['values'];
-
-
- $key = $values['var'];
- unset($values['var']);
-
-
- if (!empty($values['logo_upload'])) {
- $file = $values['logo_upload'];
- unset($values['logo_upload']);
- $filename = file_unmanaged_copy($file->uri);
- $values['default_logo'] = 0;
- $values['logo_path'] = $filename;
- $values['toggle_logo'] = 1;
- }
- if (!empty($values['favicon_upload'])) {
- $file = $values['favicon_upload'];
- unset($values['favicon_upload']);
- $filename = file_unmanaged_copy($file->uri);
- $values['default_favicon'] = 0;
- $values['favicon_path'] = $filename;
- $values['toggle_favicon'] = 1;
- }
-
-
- if (!empty($values['logo_path'])) {
- $values['logo_path'] = _system_theme_settings_validate_path($values['logo_path']);
- }
- if (!empty($values['favicon_path'])) {
- $values['favicon_path'] = _system_theme_settings_validate_path($values['favicon_path']);
- }
- if (empty($values['default_favicon']) && !empty($values['favicon_path'])) {
- $values['favicon_mimetype'] = file_get_mimetype($values['favicon_path']);
- }
- variable_set($key, $values);
- drupal_set_message(t('The configuration options have been saved.'));
- cache_clear_all();
- }
- function _system_is_incompatible(&$incompatible, $files, $file) {
- if (isset($incompatible[$file->name])) {
- return TRUE;
- }
-
- foreach ($file->requires as $requires) {
- if (isset($files[$requires]) && _system_is_incompatible($incompatible, $files, $files[$requires])) {
- $incompatible[$file->name] = TRUE;
- return TRUE;
- }
- }
- }
- function system_modules($form, $form_state = array()) {
-
- $files = system_rebuild_module_data();
-
- $visible_files = $files;
- foreach ($visible_files as $filename => $file) {
- if (!empty($file->info['hidden'])) {
- unset($visible_files[$filename]);
- }
- }
- uasort($visible_files, 'system_sort_modules_by_info_name');
-
-
-
-
- if (!empty($form_state['storage'])) {
- return system_modules_confirm_form($visible_files, $form_state['storage']);
- }
- $modules = array();
- $form['modules'] = array('#tree' => TRUE);
-
- $help_arg = module_exists('help') ? drupal_help_arg() : FALSE;
-
- require_once DRUPAL_ROOT . '/includes/install.inc';
- $distribution_name = check_plain(drupal_install_profile_distribution_name());
-
- foreach ($visible_files as $filename => $module) {
- $extra = array();
- $extra['enabled'] = (bool) $module->status;
- if (!empty($module->info['required'] )) {
- $extra['disabled'] = TRUE;
- $extra['required_by'][] = $distribution_name . (!empty($module->info['explanation']) ? ' ('. $module->info['explanation'] .')' : '');
- }
-
- foreach ($module->requires as $requires => $v) {
- if (!isset($files[$requires])) {
- $extra['requires'][$requires] = t('@module (<span class="admin-missing">missing</span>)', array('@module' => drupal_ucfirst($requires)));
- $extra['disabled'] = TRUE;
- }
-
- elseif (isset($visible_files[$requires])) {
- $requires_name = $files[$requires]->info['name'];
-
- if ($incompatible_version = drupal_check_incompatibility($v, str_replace(DRUPAL_CORE_COMPATIBILITY . '-', '', $files[$requires]->info['version']))) {
- $extra['requires'][$requires] = t('@module (<span class="admin-missing">incompatible with</span> version @version)', array(
- '@module' => $requires_name . $incompatible_version,
- '@version' => $files[$requires]->info['version'],
- ));
- $extra['disabled'] = TRUE;
- }
-
-
- elseif ($files[$requires]->info['core'] != DRUPAL_CORE_COMPATIBILITY) {
- $extra['requires'][$requires] = t('@module (<span class="admin-missing">incompatible with</span> this version of Drupal core)', array(
- '@module' => $requires_name,
- ));
- $extra['disabled'] = TRUE;
- }
- elseif ($files[$requires]->status) {
- $extra['requires'][$requires] = t('@module (<span class="admin-enabled">enabled</span>)', array('@module' => $requires_name));
- }
- else {
- $extra['requires'][$requires] = t('@module (<span class="admin-disabled">disabled</span>)', array('@module' => $requires_name));
- }
- }
- }
-
- if ($help_arg && $module->status && in_array($filename, module_implements('help'))) {
- if (module_invoke($filename, 'help', "admin/help#$filename", $help_arg)) {
- $extra['links']['help'] = array(
- '#type' => 'link',
- '#title' => t('Help'),
- '#href' => "admin/help/$filename",
- '#options' => array('attributes' => array('class' => array('module-link', 'module-link-help'), 'title' => t('Help'))),
- );
- }
- }
-
- if ($module->status && user_access('administer permissions') && in_array($filename, module_implements('permission'))) {
- $extra['links']['permissions'] = array(
- '#type' => 'link',
- '#title' => t('Permissions'),
- '#href' => 'admin/people/permissions',
- '#options' => array('fragment' => 'module-' . $filename, 'attributes' => array('class' => array('module-link', 'module-link-permissions'), 'title' => t('Configure permissions'))),
- );
- }
-
-
- if ($module->status && isset($module->info['configure'])) {
- $configure_link = menu_get_item($module->info['configure']);
- if ($configure_link['access']) {
- $extra['links']['configure'] = array(
- '#type' => 'link',
- '#title' => t('Configure'),
- '#href' => $configure_link['href'],
- '#options' => array('attributes' => array('class' => array('module-link', 'module-link-configure'), 'title' => $configure_link['description'])),
- );
- }
- }
-
-
- foreach ($module->required_by as $required_by => $v) {
-
- if (isset($visible_files[$required_by])) {
- if ($files[$required_by]->status == 1 && $module->status == 1) {
- $extra['required_by'][] = t('@module (<span class="admin-enabled">enabled</span>)', array('@module' => $files[$required_by]->info['name']));
- $extra['disabled'] = TRUE;
- }
- else {
- $extra['required_by'][] = t('@module (<span class="admin-disabled">disabled</span>)', array('@module' => $files[$required_by]->info['name']));
- }
- }
- }
- $form['modules'][$module->info['package']][$filename] = _system_modules_build_row($module->info, $extra);
- }
-
- foreach (element_children($form['modules']) as $package) {
- $form['modules'][$package] += array(
- '#type' => 'fieldset',
- '#title' => t($package),
- '#collapsible' => TRUE,
- '#theme' => 'system_modules_fieldset',
- '#header' => array(
- array('data' => t('Enabled'), 'class' => array('checkbox')),
- t('Name'),
- t('Version'),
- t('Description'),
- array('data' => t('Operations'), 'colspan' => 3),
- ),
-
- '#weight' => $package == 'Core' ? -10 : NULL,
- );
- }
-
- uasort($form['modules'], 'element_sort_by_title');
- $form['actions'] = array('#type' => 'actions');
- $form['actions']['submit'] = array(
- '#type' => 'submit',
- '#value' => t('Save configuration'),
- );
- $form['#action'] = url('admin/modules/list/confirm');
- return $form;
- }
- function system_sort_modules_by_info_name($a, $b) {
- return strcasecmp($a->info['name'], $b->info['name']);
- }
- function system_sort_themes($a, $b) {
- if ($a->is_default) {
- return -1;
- }
- if ($b->is_default) {
- return 1;
- }
- return strcasecmp($a->info['name'], $b->info['name']);
- }
- function _system_modules_build_row($info, $extra) {
-
- $extra += array(
- 'requires' => array(),
- 'required_by' => array(),
- 'disabled' => FALSE,
- 'enabled' => FALSE,
- 'links' => array(),
- );
- $form = array(
- '#tree' => TRUE,
- );
-
- $form['name'] = array(
- '#markup' => $info['name'],
- );
- $form['description'] = array(
- '#markup' => t($info['description']),
- );
- $form['version'] = array(
- '#markup' => $info['version'],
- );
- $form['#requires'] = $extra['requires'];
- $form['#required_by'] = $extra['required_by'];
-
- $compatible = TRUE;
- $status_short = '';
- $status_long = '';
-
-
-
- $reasons_short = array();
- $reasons_long = array();
-
- if (!isset($info['core']) || $info['core'] != DRUPAL_CORE_COMPATIBILITY) {
- $compatible = FALSE;
- $reasons_short[] = t('Incompatible with this version of Drupal core.');
- $reasons_long[] = t('This version is not compatible with Drupal !core_version and should be replaced.', array('!core_version' => DRUPAL_CORE_COMPATIBILITY));
- }
-
- if (version_compare(phpversion(), $info['php']) < 0) {
- $compatible = FALSE;
- $reasons_short[] = t('Incompatible with this version of PHP');
- $php_required = $info['php'];
- if (substr_count($info['php'], '.') < 2) {
- $php_required .= '.*';
- }
- $reasons_long[] = t('This module requires PHP version @php_required and is incompatible with PHP version !php_version.', array('@php_required' => $php_required, '!php_version' => phpversion()));
- }
-
-
- if ($compatible) {
- $form['enable'] = array(
- '#type' => 'checkbox',
- '#title' => t('Enable'),
- '#default_value' => $extra['enabled'],
- );
- if ($extra['disabled']) {
- $form['enable']['#disabled'] = TRUE;
- }
- }
- else {
- $status_short = implode(' ', $reasons_short);
- $status_long = implode(' ', $reasons_long);
- $form['enable'] = array(
- '#markup' => theme('image', array('path' => 'misc/watchdog-error.png', 'alt' => $status_short, 'title' => $status_short)),
- );
- $form['description']['#markup'] .= theme('system_modules_incompatible', array('message' => $status_long));
- }
-
- foreach (array('help', 'permissions', 'configure') as $key) {
- $form['links'][$key] = (isset($extra['links'][$key]) ? $extra['links'][$key] : array());
- }
- return $form;
- }
- function system_modules_confirm_form($modules, $storage) {
- $items = array();
- $form['validation_modules'] = array('#type' => 'value', '#value' => $modules);
- $form['status']['#tree'] = TRUE;
- foreach ($storage['more_required'] as $info) {
- $t_argument = array(
- '@module' => $info['name'],
- '@required' => implode(', ', $info['requires']),
- );
- $items[] = format_plural(count($info['requires']), 'You must enable the @required module to install @module.', 'You must enable the @required modules to install @module.', $t_argument);
- }
- foreach ($storage['missing_modules'] as $name => $info) {
- $t_argument = array(
- '@module' => $name,
- '@depends' => implode(', ', $info['depends']),
- );
- $items[] = format_plural(count($info['depends']), 'The @module module is missing, so the following module will be disabled: @depends.', 'The @module module is missing, so the following modules will be disabled: @depends.', $t_argument);
- }
- $form['text'] = array('#markup' => theme('item_list', array('items' => $items)));
- if ($form) {
-
- $form = confirm_form(
- $form,
- t('Some required modules must be enabled'),
- 'admin/modules',
- t('Would you like to continue with the above?'),
- t('Continue'),
- t('Cancel'));
- return $form;
- }
- }
- function system_modules_submit($form, &$form_state) {
- include_once DRUPAL_ROOT . '/includes/install.inc';
-
- $modules = array();
-
- if (empty($form_state['storage'])) {
-
- foreach ($form_state['values']['modules'] as $group_name => $group) {
- foreach ($group as $module => $enabled) {
- $modules[$module] = array('group' => $group_name, 'enabled' => $enabled['enable']);
- }
- }
- }
- else {
-
-
- $modules = $form_state['storage']['modules'];
- }
-
- $files = system_rebuild_module_data();
-
- $sort = array();
- foreach (array_keys($modules) as $module) {
- $sort[$module] = $files[$module]->sort;
- }
- array_multisort($sort, $modules);
-
- $more_required = array();
- $missing_modules = array();
- foreach ($modules as $name => $module) {
- if ($module['enabled']) {
-
-
-
- $dependencies = array();
- foreach (array_keys($files[$name]->requires) as $required) {
- if (empty($modules[$required]['enabled'])) {
- if (isset($files[$required])) {
- $dependencies[] = $files[$required]->info['name'];
- $modules[$required]['enabled'] = TRUE;
- }
- else {
- $missing_modules[$required]['depends'][] = $name;
- $modules[$name]['enabled'] = FALSE;
- }
- }
- }
-
- if (!empty($dependencies)) {
- $more_required[$name] = array(
- 'name' => $files[$name]->info['name'],
- 'requires' => $dependencies,
- );
- }
- }
- }
-
- if ((!empty($more_required) || !empty($missing_modules)) && !isset($form_state['values']['confirm'])) {
- $form_state['storage'] = array(
- 'more_required' => $more_required,
- 'modules' => $modules,
- 'missing_modules' => $missing_modules,
- );
- $form_state['rebuild'] = TRUE;
- return;
- }
-
-
- foreach ($modules as $name => $module) {
-
- if ($module['enabled'] && drupal_get_installed_schema_version($name) == SCHEMA_UNINSTALLED) {
- if (!drupal_check_module($name)) {
- $modules[$name]['enabled'] = FALSE;
- foreach (array_keys($files[$name]->required_by) as $required_by) {
- $modules[$required_by]['enabled'] = FALSE;
- }
- }
- }
- }
-
- $actions = array(
- 'enable' => array(),
- 'disable' => array(),
- 'install' => array(),
- );
-
- foreach ($modules as $name => $module) {
- if ($module['enabled']) {
- if (drupal_get_installed_schema_version($name) == SCHEMA_UNINSTALLED) {
- $actions['install'][] = $name;
- $actions['enable'][] = $name;
- }
- elseif (!module_exists($name)) {
- $actions['enable'][] = $name;
- }
- }
- elseif (module_exists($name)) {
- $actions['disable'][] = $name;
- }
- }
-
-
- $pre_install_list = module_list();
- unset($form_state['storage']);
-
- krsort($actions['enable']);
-
- module_enable($actions['enable'], FALSE);
- module_disable($actions['disable'], FALSE);
-
-
- $post_install_list = module_list(TRUE);
- if ($pre_install_list != $post_install_list) {
- drupal_flush_all_caches();
- drupal_set_message(t('The configuration options have been saved.'));
- }
- $form_state['redirect'] = 'admin/modules';
- }
- function system_modules_uninstall($form, $form_state = NULL) {
-
- include_once DRUPAL_ROOT . '/includes/install.inc';
-
- if (!empty($form_state['storage']) && $confirm_form = system_modules_uninstall_confirm_form($form_state['storage'])) {
- return $confirm_form;
- }
-
- $all_modules = system_rebuild_module_data();
- $disabled_modules = array();
- foreach ($all_modules as $name => $module) {
- if (empty($module->status) && $module->schema_version > SCHEMA_UNINSTALLED) {
- $disabled_modules[$name] = $module;
- }
- }
-
-
- if (!empty($disabled_modules)) {
- $profile = drupal_get_profile();
- uasort($disabled_modules, 'system_sort_modules_by_info_name');
- $form['uninstall'] = array('#tree' => TRUE);
- foreach ($disabled_modules as $module) {
- $module_name = $module->info['name'] ? $module->info['name'] : $module->name;
- $form['modules'][$module->name]['#module_name'] = $module_name;
- $form['modules'][$module->name]['name']['#markup'] = $module_name;
- $form['modules'][$module->name]['description']['#markup'] = t($module->info['description']);
- $form['uninstall'][$module->name] = array(
- '#type' => 'checkbox',
- '#title' => t('Uninstall @module module', array('@module' => $module_name)),
- '#title_display' => 'invisible',
- );
-
-
-
- foreach (array_keys($module->required_by) as $dependent) {
- if ($dependent != $profile && drupal_get_installed_schema_version($dependent) != SCHEMA_UNINSTALLED) {
- $dependent_name = isset($all_modules[$dependent]->info['name']) ? $all_modules[$dependent]->info['name'] : $dependent;
- $form['modules'][$module->name]['#required_by'][] = $dependent_name;
- $form['uninstall'][$module->name]['#disabled'] = TRUE;
- }
- }
- }
- $form['actions'] = array('#type' => 'actions');
- $form['actions']['submit'] = array(
- '#type' => 'submit',
- '#value' => t('Uninstall'),
- );
- $form['#action'] = url('admin/modules/uninstall/confirm');
- }
- else {
- $form['modules'] = array();
- }
- return $form;
- }
- function system_modules_uninstall_confirm_form($storage) {
-
- if (empty($storage)) {
- return;
- }
-
- foreach (array_filter($storage['uninstall']) as $module => $value) {
- $info = drupal_parse_info_file(drupal_get_path('module', $module) . '/' . $module . '.info');
- $uninstall[] = $info['name'];
- $form['uninstall'][$module] = array('#type' => 'hidden',
- '#value' => 1,
- );
- }
-
- if (isset($uninstall)) {
- $form['#confirmed'] = TRUE;
- $form['uninstall']['#tree'] = TRUE;
- $form['modules'] = array('#markup' => '<p>' . t('The following modules will be completely uninstalled from your site, and <em>all data from these modules will be lost</em>!') . '</p>' . theme('item_list', array('items' => $uninstall)));
- $form = confirm_form(
- $form,
- t('Confirm uninstall'),
- 'admin/modules/uninstall',
- t('Would you like to continue with uninstalling the above?'),
- t('Uninstall'),
- t('Cancel'));
- return $form;
- }
- }
- function system_modules_uninstall_validate($form, &$form_state) {
-
- if (!count(array_filter($form_state['values']['uninstall']))) {
- drupal_set_message(t('No modules selected.'), 'error');
- drupal_goto('admin/modules/uninstall');
- }
- }
- function system_modules_uninstall_submit($form, &$form_state) {
-
- include_once DRUPAL_ROOT . '/includes/install.inc';
- if (!empty($form['#confirmed'])) {
-
- $modules = array_keys($form_state['values']['uninstall']);
- drupal_uninstall_modules($modules);
- drupal_set_message(t('The selected modules have been uninstalled.'));
- $form_state['redirect'] = 'admin/modules/uninstall';
- }
- else {
- $form_state['storage'] = $form_state['values'];
- $form_state['rebuild'] = TRUE;
- }
- }
- function system_ip_blocking($default_ip = '') {
- $rows = array();
- $header = array(t('Blocked IP addresses'), t('Operations'));
- $result = db_query('SELECT * FROM {blocked_ips}');
- foreach ($result as $ip) {
- $rows[] = array(
- $ip->ip,
- l(t('delete'), "admin/config/people/ip-blocking/delete/$ip->iid"),
- );
- }
- $build['system_ip_blocking_form'] = drupal_get_form('system_ip_blocking_form', $default_ip);
- $build['system_ip_blocking_table'] = array(
- '#theme' => 'table',
- '#header' => $header,
- '#rows' => $rows,
- '#empty' => t('No blocked IP addresses available.'),
- );
- return $build;
- }
- function system_ip_blocking_form($form, $form_state, $default_ip) {
- $form['ip'] = array(
- '#title' => t('IP address'),
- '#type' => 'textfield',
- '#size' => 48,
- '#maxlength' => 40,
- '#default_value' => $default_ip,
- '#description' => t('Enter a valid IP address.'),
- );
- $form['actions'] = array('#type' => 'actions');
- $form['actions']['submit'] = array(
- '#type' => 'submit',
- '#value' => t('Add'),
- );
- $form['#submit'][] = 'system_ip_blocking_form_submit';
- $form['#validate'][] = 'system_ip_blocking_form_validate';
- return $form;
- }
- function system_ip_blocking_form_validate($form, &$form_state) {
- $ip = trim($form_state['values']['ip']);
- if (db_query("SELECT * FROM {blocked_ips} WHERE ip = :ip", array(':ip' => $ip))->fetchField()) {
- form_set_error('ip', t('This IP address is already blocked.'));
- }
- elseif ($ip == ip_address()) {
- form_set_error('ip', t('You may not block your own IP address.'));
- }
- elseif (filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_RES_RANGE) == FALSE) {
- form_set_error('ip', t('Enter a valid IP address.'));
- }
- }
- function system_ip_blocking_form_submit($form, &$form_state) {
- $ip = trim($form_state['values']['ip']);
- db_insert('blocked_ips')
- ->fields(array('ip' => $ip))
- ->execute();
- drupal_set_message(t('The IP address %ip has been blocked.', array('%ip' => $ip)));
- $form_state['redirect'] = 'admin/config/people/ip-blocking';
- return;
- }
- function system_ip_blocking_delete($form, &$form_state, $iid) {
- $form['blocked_ip'] = array(
- '#type' => 'value',
- '#value' => $iid,
- );
- return confirm_form($form, t('Are you sure you want to delete %ip?', array('%ip' => $iid['ip'])), 'admin/config/people/ip-blocking', t('This action cannot be undone.'), t('Delete'), t('Cancel'));
- }
- function system_ip_blocking_delete_submit($form, &$form_state) {
- $blocked_ip = $form_state['values']['blocked_ip'];
- db_delete('blocked_ips')
- ->condition('iid', $blocked_ip['iid'])
- ->execute();
- watchdog('user', 'Deleted %ip', array('%ip' => $blocked_ip['ip']));
- drupal_set_message(t('The IP address %ip was deleted.', array('%ip' => $blocked_ip['ip'])));
- $form_state['redirect'] = 'admin/config/people/ip-blocking';
- }
- function system_site_information_settings() {
- $form['site_information'] = array(
- '#type' => 'fieldset',
- '#title' => t('Site details'),
- );
- $form['site_information']['site_name'] = array(
- '#type' => 'textfield',
- '#title' => t('Site name'),
- '#default_value' => variable_get('site_name', 'Drupal'),
- '#required' => TRUE
- );
- $form['site_information']['site_slogan'] = array(
- '#type' => 'textfield',
- '#title' => t('Slogan'),
- '#default_value' => variable_get('site_slogan', ''),
- '#description' => t("How this is used depends on your site's theme."),
- );
- $form['site_information']['site_mail'] = array(
- '#type' => 'textfield',
- '#title' => t('E-mail address'),
- '#default_value' => variable_get('site_mail', ini_get('sendmail_from')),
- '#description' => t("The <em>From</em> address in automated e-mails sent during registration and new password requests, and other notifications. (Use an address ending in your site's domain to help prevent this e-mail being flagged as spam.)"),
- '#required' => TRUE,
- );
- $form['front_page'] = array(
- '#type' => 'fieldset',
- '#title' => t('Front page'),
- );
- $form['front_page']['default_nodes_main'] = array(
- '#type' => 'select', '#title' => t('Number of posts on front page'),
- '#default_value' => variable_get('default_nodes_main', 10),
- '#options' => drupal_map_assoc(array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 15, 20, 25, 30)),
- '#description' => t('The maximum number of posts displayed on overview pages such as the front page.')
- );
- $form['front_page']['site_frontpage'] = array(
- '#type' => 'textfield',
- '#title' => t('Default front page'),
- '#default_value' => (variable_get('site_frontpage')!='node'?drupal_get_path_alias(variable_get('site_frontpage', 'node')):''),
- '#size' => 40,
- '#description' => t('Optionally, specify a relative URL to display as the front page. Leave blank to display the default content feed.'),
- '#field_prefix' => url(NULL, array('absolute' => TRUE)) . (variable_get('clean_url', 0) ? '' : '?q='),
- );
- $form['error_page'] = array(
- '#type' => 'fieldset',
- '#title' => t('Error pages'),
- );
- $form['error_page']['site_403'] = array(
- '#type' => 'textfield',
- '#title' => t('Default 403 (access denied) page'),
- '#default_value' => variable_get('site_403', ''),
- '#size' => 40,
- '#description' => t('This page is displayed when the requested document is denied to the current user. Leave blank to display a generic "access denied" page.'),
- '#field_prefix' => url(NULL, array('absolute' => TRUE)) . (variable_get('clean_url', 0) ? '' : '?q=')
- );
- $form['error_page']['site_404'] = array(
- '#type' => 'textfield',
- '#title' => t('Default 404 (not found) page'),
- '#default_value' => variable_get('site_404', ''),
- '#size' => 40,
- '#description' => t('This page is displayed when no other content matches the requested document. Leave blank to display a generic "page not found" page.'),
- '#field_prefix' => url(NULL, array('absolute' => TRUE)) . (variable_get('clean_url', 0) ? '' : '?q=')
- );
- $form['#validate'][] = 'system_site_information_settings_validate';
- return system_settings_form($form);
- }
- function system_site_information_settings_validate($form, &$form_state) {
-
- if ($error = user_validate_mail($form_state['values']['site_mail'])) {
- form_set_error('site_mail', $error);
- }
-
- if (empty($form_state['values']['site_frontpage'])) {
-
- form_set_value($form['front_page']['site_frontpage'], 'node', $form_state);
- }
- else {
-
- form_set_value($form['front_page']['site_frontpage'], drupal_get_normal_path($form_state['values']['site_frontpage']), $form_state);
- }
-
- if (!drupal_valid_path($form_state['values']['site_frontpage'])) {
- form_set_error('site_frontpage', t("The path '%path' is either invalid or you do not have access to it.", array('%path' => $form_state['values']['site_frontpage'])));
- }
-
- if (!empty($form_state['values']['site_403'])) {
- form_set_value($form['error_page']['site_403'], drupal_get_normal_path($form_state['values']['site_403']), $form_state);
- }
- if (!empty($form_state['values']['site_404'])) {
- form_set_value($form['error_page']['site_404'], drupal_get_normal_path($form_state['values']['site_404']), $form_state);
- }
-
- if (!empty($form_state['values']['site_403']) && !drupal_valid_path($form_state['values']['site_403'])) {
- form_set_error('site_403', t("The path '%path' is either invalid or you do not have access to it.", array('%path' => $form_state['values']['site_403'])));
- }
-
- if (!empty($form_state['values']['site_404']) && !drupal_valid_path($form_state['values']['site_404'])) {
- form_set_error('site_404', t("The path '%path' is either invalid or you do not have access to it.", array('%path' => $form_state['values']['site_404'])));
- }
- }
- function system_cron_settings() {
- global $base_url;
- $form['description'] = array(
- '#markup' => '<p>' . t('Cron takes care of running periodic tasks like checking for updates and indexing content for search.') . '</p>',
- );
- $form['run'] = array(
- '#type' => 'submit',
- '#value' => t('Run cron'),
- '#submit' => array('system_run_cron_submit'),
- );
- $status = '<p>' . t('Last run: %cron-last ago.', array('%cron-last' => format_interval(REQUEST_TIME - variable_get('cron_last')),)) . '</p>';
- $form['status'] = array(
- '#markup' => $status,
- );
- $form['cron_url'] = array(
- '#markup' => '<p>' . t('To run cron from outside the site, go to <a href="!cron">!cron</a>', array('!cron' => url($base_url . '/cron.php', array('external' => TRUE, 'query' => array('cron_key' => variable_get('cron_key', 'drupal')))))) . '</p>',
- );
- $form['cron'] = array(
- '#type' => 'fieldset',
- );
- $form['cron']['cron_safe_threshold'] = array(
- '#type' => 'select',
- '#title' => t('Run cron every'),
- '#description' => t('More information about setting up scheduled tasks can be found by <a href="@url">reading the cron tutorial on drupal.org</a>.', array('@url' => url('http://drupal.org/cron'))),
- '#default_value' => variable_get('cron_safe_threshold', DRUPAL_CRON_DEFAULT_THRESHOLD),
- '#options' => array(0 => t('Never')) + drupal_map_assoc(array(3600, 10800, 21600, 43200, 86400, 604800), 'format_interval'),
- );
- return system_settings_form($form);
- }
- function system_run_cron_submit($form, &$form_state) {
-
- if (drupal_cron_run()) {
- drupal_set_message(t('Cron run successfully.'));
- }
- else {
- drupal_set_message(t('Cron run failed.'), 'error');
- }
- drupal_goto('admin/config/system/cron');
- }
- function system_logging_settings() {
- $form['error_level'] = array(
- '#type' => 'radios',
- '#title' => t('Error messages to display'),
- '#default_value' => variable_get('error_level', ERROR_REPORTING_DISPLAY_ALL),
- '#options' => array(
- ERROR_REPORTING_HIDE => t('None'),
- ERROR_REPORTING_DISPLAY_SOME => t('Errors and warnings'),
- ERROR_REPORTING_DISPLAY_ALL => t('All messages'),
- ),
- '#description' => t('It is recommended that sites running on production environments do not display any errors.'),
- );
- return system_settings_form($form);
- }
- function system_performance_settings() {
- drupal_add_js(drupal_get_path('module', 'system') . '/system.js');
- $form['clear_cache'] = array(
- '#type' => 'fieldset',
- '#title' => t('Clear cache'),
- );
- $form['clear_cache']['clear'] = array(
- '#type' => 'submit',
- '#value' => t('Clear all caches'),
- '#submit' => array('system_clear_cache_submit'),
- );
- $form['caching'] = array(
- '#type' => 'fieldset',
- '#title' => t('Caching'),
- );
- $cache = variable_get('cache', 0);
- $form['caching']['cache'] = array(
- '#type' => 'checkbox',
- '#title' => t('Cache pages for anonymous users'),
- '#default_value' => $cache,
- '#weight' => -2,
- );
- $period = drupal_map_assoc(array(0, 60, 180, 300, 600, 900, 1800, 2700, 3600, 10800, 21600, 32400, 43200, 86400), 'format_interval');
- $period[0] = '<' . t('none') . '>';
- $form['caching']['cache_lifetime'] = array(
- '#type' => 'select',
- '#title' => t('Minimum cache lifetime'),
- '#default_value' => variable_get('cache_lifetime', 0),
- '#options' => $period,
- '#description' => t('Cached pages will not be re-created until at least this much time has elapsed.')
- );
- $form['caching']['page_cache_maximum_age'] = array(
- '#type' => 'select',
- '#title' => t('Expiration of cached pages'),
- '#default_value' => variable_get('page_cache_maximum_age', 0),
- '#options' => $period,
- '#description' => t('The maximum time an external cache can use an old version of a page.')
- );
- $directory = 'public://';
- $is_writable = is_dir($directory) && is_writable($directory);
- $disabled = !$is_writable;
- $disabled_message = '';
- if (!$is_writable) {
- $disabled_message = ' ' . t('<strong class="error">Set up the <a href="!file-system">public files directory</a> to make these optimizations available.</strong>', array('!file-system' => url('admin/config/media/file-system')));
- }
- $form['bandwidth_optimization'] = array(
- '#type' => 'fieldset',
- '#title' => t('Bandwidth optimization'),
- '#description' => t('External resources can be optimized automatically, which can reduce both the size and number of requests made to your website.') . $disabled_message,
- );
- $js_hide = $cache ? '' : ' class="js-hide"';
- $form['bandwidth_optimization']['page_compression'] = array(
- '#type' => 'checkbox',
- '#title' => t('Compress cached pages.'),
- '#default_value' => variable_get('page_compression', TRUE),
- '#prefix' => '<div id="page-compression-wrapper"' . $js_hide . '>',
- '#suffix' => '</div>',
- );
- $form['bandwidth_optimization']['preprocess_css'] = array(
- '#type' => 'checkbox',
- '#title' => t('Aggregate and compress CSS files.'),
- '#default_value' => intval(variable_get('preprocess_css', 0) && $is_writable),
- '#disabled' => $disabled,
- );
- $form['bandwidth_optimization']['preprocess_js'] = array(
- '#type' => 'checkbox',
- '#title' => t('Aggregate JavaScript files.'),
- '#default_value' => intval(variable_get('preprocess_js', 0) && $is_writable),
- '#disabled' => $disabled,
- );
- $form['#submit'][] = 'drupal_clear_css_cache';
- $form['#submit'][] = 'drupal_clear_js_cache';
-
-
- $form['#submit'][] = 'system_clear_page_cache_submit';
- return system_settings_form($form);
- }
- function system_clear_cache_submit($form, &$form_state) {
- drupal_flush_all_caches();
- drupal_set_message(t('Caches cleared.'));
- }
- function system_clear_page_cache_submit($form, &$form_state) {
- cache_clear_all('*', 'cache_page', TRUE);
- }
- function system_file_system_settings() {
- $form['file_public_path'] = array(
- '#type' => 'textfield',
- '#title' => t('Public file system path'),
- '#default_value' => variable_get('file_public_path', conf_path() . '/files'),
- '#maxlength' => 255,
- '#description' => t('A local file system path where public files will be stored. This directory must exist and be writable by Drupal. This directory must be relative to the Drupal installation directory and be accessible over the web.'),
- '#after_build' => array('system_check_directory'),
- );
- $form['file_private_path'] = array(
- '#type' => 'textfield',
- '#title' => t('Private file system path'),
- '#default_value' => variable_get('file_private_path', ''),
- '#maxlength' => 255,
- '#description' => t('An existing local file system path for storing private files. It should be writable by Drupal and not accessible over the web. See the online handbook for <a href="@handbook">more information about securing private files</a>.', array('@handbook' => 'http://drupal.org/documentation/modules/file')),
- '#after_build' => array('system_check_directory'),
- );
- $form['file_temporary_path'] = array(
- '#type' => 'textfield',
- '#title' => t('Temporary directory'),
- '#default_value' => variable_get('file_temporary_path', file_directory_temp()),
- '#maxlength' => 255,
- '#description' => t('A local file system path where temporary files will be stored. This directory should not be accessible over the web.'),
- '#after_build' => array('system_check_directory'),
- );
-
-
- foreach (file_get_stream_wrappers(STREAM_WRAPPERS_WRITE_VISIBLE) as $scheme => $info) {
- $options[$scheme] = check_plain($info['description']);
- }
- if (!empty($options)) {
- $form['file_default_scheme'] = array(
- '#type' => 'radios',
- '#title' => t('Default download method'),
- '#default_value' => variable_get('file_default_scheme', isset($options['public']) ? 'public' : key($options)),
- '#options' => $options,
- '#description' => t('This setting is used as the preferred download method. The use of public files is more efficient, but does not provide any access control.'),
- );
- }
- return system_settings_form($form);
- }
- function system_image_toolkit_settings() {
- $toolkits_available = image_get_available_toolkits();
- $current_toolkit = image_get_toolkit();
- if (count($toolkits_available) == 0) {
- variable_del('image_toolkit');
- $form['image_toolkit_help'] = array(
- '#markup' => t("No image toolkits were detected. Drupal includes support for <a href='!gd-link'>PHP's built-in image processing functions</a> but they were not detected on this system. You should consult your system administrator to have them enabled, or try using a third party toolkit.", array('gd-link' => url('http://php.net/gd'))),
- );
- return $form;
- }
- if (count($toolkits_available) > 1) {
- $form['image_toolkit'] = array(
- '#type' => 'radios',
- '#title' => t('Select an image processing toolkit'),
- '#default_value' => variable_get('image_toolkit', $current_toolkit),
- '#options' => $toolkits_available
- );
- }
- else {
- variable_set('image_toolkit', key($toolkits_available));
- }
-
- $function = 'image_' . $current_toolkit . '_settings';
- if (function_exists($function)) {
- $form['image_toolkit_settings'] = $function();
- }
- return system_settings_form($form);
- }
- function system_rss_feeds_settings() {
- $form['feed_description'] = array(
- '#type' => 'textarea',
- '#title' => t('Feed description'),
- '#default_value' => variable_get('feed_description', ''),
- '#description' => t('Description of your site, included in each feed.')
- );
- $form['feed_default_items'] = array(
- '#type' => 'select',
- '#title' => t('Number of items in each feed'),
- '#default_value' => variable_get('feed_default_items', 10),
- '#options' => drupal_map_assoc(array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 15, 20, 25, 30)),
- '#description' => t('Default number of items to include in each feed.')
- );
- $form['feed_item_length'] = array(
- '#type' => 'select',
- '#title' => t('Feed content'),
- '#default_value' => variable_get('feed_item_length', 'fulltext'),
- '#options' => array('title' => t('Titles only'), 'teaser' => t('Titles plus teaser'), 'fulltext' => t('Full text')),
- '#description' => t('Global setting for the default display of content items in each feed.')
- );
- return system_settings_form($form);
- }
- function system_regional_settings() {
- include_once DRUPAL_ROOT . '/includes/locale.inc';
- $countries = country_get_list();
-
- $zones = system_time_zones();
- $form['locale'] = array(
- '#type' => 'fieldset',
- '#title' => t('Locale'),
- );
- $form['locale']['site_default_country'] = array(
- '#type' => 'select',
- '#title' => t('Default country'),
- '#empty_value' => '',
- '#default_value' => variable_get('site_default_country', ''),
- '#options' => $countries,
- '#attributes' => array('class' => array('country-detect')),
- );
- $form['locale']['date_first_day'] = array(
- '#type' => 'select',
- '#title' => t('First day of week'),
- '#default_value' => variable_get('date_first_day', 0),
- '#options' => array(0 => t('Sunday'), 1 => t('Monday'), 2 => t('Tuesday'), 3 => t('Wednesday'), 4 => t('Thursday'), 5 => t('Friday'), 6 => t('Saturday')),
- );
- $form['timezone'] = array(
- '#type' => 'fieldset',
- '#title' => t('Time zones'),
- );
- $form['timezone']['date_default_timezone'] = array(
- '#type' => 'select',
- '#title' => t('Default time zone'),
- '#default_value' => variable_get('date_default_timezone', date_default_timezone_get()),
- '#options' => $zones,
- );
- $configurable_timezones = variable_get('configurable_timezones', 1);
- $form['timezone']['configurable_timezones'] = array(
- '#type' => 'checkbox',
- '#title' => t('Users may set their own time zone.'),
- '#default_value' => $configurable_timezones,
- );
- $form['timezone']['configurable_timezones_wrapper'] = array(
- '#type' => 'container',
- '#states' => array(
-
-
- 'invisible' => array(
- 'input[name="configurable_timezones"]' => array('checked' => FALSE),
- ),
- ),
- );
- $form['timezone']['configurable_timezones_wrapper']['empty_timezone_message'] = array(
- '#type' => 'checkbox',
- '#title' => t('Remind users at login if their time zone is not set.'),
- '#default_value' => variable_get('empty_timezone_message', 0),
- '#description' => t('Only applied if users may set their own time zone.')
- );
- $form['timezone']['configurable_timezones_wrapper']['user_default_timezone'] = array(
- '#type' => 'radios',
- '#title' => t('Time zone for new users'),
- '#default_value' => variable_get('user_default_timezone', DRUPAL_USER_TIMEZONE_DEFAULT),
- '#options' => array(
- DRUPAL_USER_TIMEZONE_DEFAULT => t('Default time zone.'),
- DRUPAL_USER_TIMEZONE_EMPTY => t('Empty time zone.'),
- DRUPAL_USER_TIMEZONE_SELECT => t('Users may set their own time zone at registration.'),
- ),
- '#description' => t('Only applied if users may set their own time zone.')
- );
- return system_settings_form($form);
- }
- function system_date_time_settings() {
-
- drupal_static_reset('system_get_date_types');
- $format_types = system_get_date_types();
-
- $all_formats = array();
- drupal_static_reset('system_get_date_formats');
- $date_formats = system_get_date_formats();
- foreach ($date_formats as $type => $format_info) {
- $all_formats = array_merge($all_formats, $format_info);
- }
- $custom_formats = system_get_date_formats('custom');
- if (!empty($format_types)) {
- foreach ($format_types as $type => $type_info) {
-
-
- if ($type_info['locked'] == 1) {
- $formats = system_get_date_formats($type);
- if (empty($formats)) {
- $formats = $all_formats;
- }
- elseif (!empty($custom_formats)) {
- $formats = array_merge($formats, $custom_formats);
- }
- }
-
- else {
- $formats = $all_formats;
- }
- $choices = array();
- foreach ($formats as $f => $format) {
- $choices[$f] = format_date(REQUEST_TIME, 'custom', $f);
- }
- reset($formats);
- $default = variable_get('date_format_' . $type, key($formats));
-
- $type_info = system_get_date_types($type);
- $form['formats']['#theme'] = 'system_date_time_settings';
-
- $form['formats']['format']['date_format_' . $type] = array(
- '#type' => 'select',
- '#title' => check_plain($type_info['title']),
- '#attributes' => array('class' => array('date-format')),
- '#default_value' => (isset($choices[$default]) ? $default : 'custom'),
- '#options' => $choices,
- );
-
-
- if ($type_info['locked'] == 0) {
- $form['formats']['delete']['date_format_' . $type . '_delete'] = array(
- '#type' => 'link',
- '#title' => t('delete'),
- '#href' => 'admin/config/regional/date-time/types/' . $type . '/delete',
- );
- }
- }
- }
-
- $form['#empty_text'] = t('No date types available. <a href="@link">Add date type</a>.', array('@link' => url('admin/config/regional/date-time/types/add')));
- return system_settings_form($form);
- }
- function theme_system_date_time_settings($variables) {
- $form = $variables['form'];
- $header = array(
- t('Date type'),
- t('Format'),
- t('Operations'),
- );
- foreach (element_children($form['format']) as $key) {
- $delete_key = $key . '_delete';
- $row = array();
- $row[] = $form['format'][$key]['#title'];
- $form['format'][$key]['#title_display'] = 'invisible';
- $row[] = array('data' => drupal_render($form['format'][$key]));
- $row[] = array('data' => drupal_render($form['delete'][$delete_key]));
- $rows[] = $row;
- }
- $output = theme('table', array('header' => $header, 'rows' => $rows, 'attributes' => array('id' => 'system-date-types')));
- $output .= drupal_render_children($form);
- return $output;
- }
- function system_add_date_format_type_form($form, &$form_state) {
- $form['date_type'] = array(
- '#title' => t('Date type'),
- '#type' => 'textfield',
- '#required' => TRUE,
- );
- $form['machine_name'] = array(
- '#type' => 'machine_name',
- '#machine_name' => array(
- 'exists' => 'system_get_date_types',
- 'source' => array('date_type'),
- ),
- );
-
- $formats = array();
- drupal_static_reset('system_get_date_formats');
- $date_formats = system_get_date_formats();
- foreach ($date_formats as $type => $format_info) {
- $formats = array_merge($formats, $format_info);
- }
- $custom_formats = system_get_date_formats('custom');
- if (!empty($custom_formats)) {
- $formats = array_merge($formats, $custom_formats);
- }
- $choices = array();
- foreach ($formats as $f => $format) {
- $choices[$f] = format_date(REQUEST_TIME, 'custom', $f);
- }
-
- $form['date_format'] = array(
- '#type' => 'select',
- '#title' => t('Date format'),
- '#attributes' => array('class' => array('date-format')),
- '#options' => $choices,
- '#required' => TRUE,
- );
- $form['actions'] = array('#type' => 'actions');
- $form['actions']['submit'] = array(
- '#type' => 'submit',
- '#value' => t('Add date type'),
- );
- $form['#validate'][] = 'system_add_date_format_type_form_validate';
- $form['#submit'][] = 'system_add_date_format_type_form_submit';
- return $form;
- }
- function system_add_date_format_type_form_validate($form, &$form_state) {
- if (!empty($form_state['values']['machine_name']) && !empty($form_state['values']['date_type'])) {
- if (!preg_match("/^[a-zA-Z0-9_]+$/", trim($form_state['values']['machine_name']))) {
- form_set_error('machine_name', t('The date type must contain only alphanumeric characters and underscores.'));
- }
- $types = system_get_date_types();
- if (in_array(trim($form_state['values']['machine_name']), array_keys($types))) {
- form_set_error('machine_name', t('This date type already exists. Enter a unique type.'));
- }
- }
- }
- function system_add_date_format_type_form_submit($form, &$form_state) {
- $machine_name = trim($form_state['values']['machine_name']);
- $format_type = array();
- $format_type['title'] = trim($form_state['values']['date_type']);
- $format_type['type'] = $machine_name;
- $format_type['locked'] = 0;
- $format_type['is_new'] = 1;
- system_date_format_type_save($format_type);
- variable_set('date_format_' . $machine_name, $form_state['values']['date_format']);
- drupal_set_message(t('New date type added successfully.'));
- $form_state['redirect'] = 'admin/config/regional/date-time';
- }
- function system_date_time_lookup() {
- $result = format_date(REQUEST_TIME, 'custom', $_GET['format']);
- drupal_json_output($result);
- }
- function system_site_maintenance_mode() {
- $form['maintenance_mode'] = array(
- '#type' => 'checkbox',
- '#title' => t('Put site into maintenance mode'),
- '#default_value' => variable_get('maintenance_mode', 0),
- '#description' => t('When enabled, only users with the "Use the site in maintenance mode" <a href="@permissions-url">permission</a> are able to access your site to perform maintenance; all other visitors see the maintenance mode message configured below. Authorized users can log in directly via the <a href="@user-login">user login</a> page.', array('@permissions-url' => url('admin/people/permissions'), '@user-login' => url('user'))),
- );
- $form['maintenance_mode_message'] = array(
- '#type' => 'textarea',
- '#title' => t('Maintenance mode message'),
- '#default_value' => variable_get('maintenance_mode_message', t('@site is currently under maintenance. We should be back shortly. Thank you for your patience.', array('@site' => variable_get('site_name', 'Drupal')))),
- '#description' => t('Message to show visitors when the site is in maintenance mode.')
- );
- return system_settings_form($form);
- }
- function system_clean_url_settings($form, &$form_state) {
- $available = FALSE;
- $conflict = FALSE;
-
-
- if (strpos(request_uri(), '?q=') === FALSE && strpos(request_uri(), '&q=') === FALSE) {
- $available = TRUE;
- }
- else {
- $request = drupal_http_request($GLOBALS['base_url'] . '/admin/config/search/clean-urls/check');
-
- if (isset($request->code) && $request->code == 200) {
- $available = TRUE;
-
- if (isset($form_state['input']['clean_url_test_execute'])) {
- drupal_set_message(t('The clean URL test passed.'));
- }
- }
- else {
-
-
- if (variable_get('clean_url', 0)) {
- $conflict = TRUE;
-
-
- if (!isset($form_state['input']['op'])) {
- drupal_set_message(t('Clean URLs are enabled, but the clean URL test failed. Uncheck the box below to disable clean URLs.'), 'warning');
- }
- }
-
- elseif (isset($form_state['input']['clean_url_test_execute'])) {
- drupal_set_message(t('The clean URL test failed.'), 'warning');
- }
- }
- }
-
-
- if ($available || $conflict) {
- $form['clean_url'] = array(
- '#type' => 'checkbox',
- '#title' => t('Enable clean URLs'),
- '#default_value' => variable_get('clean_url', 0),
- '#description' => t('Use URLs like <code>example.com/user</code> instead of <code>example.com/?q=user</code>.'),
- );
- $form = system_settings_form($form);
- if ($conflict) {
-
-
- $form_state['redirect'] = url('', array('query' => array('q' => '/admin/config/search/clean-urls')));
- }
- }
-
- else {
- drupal_add_js(drupal_get_path('module', 'system') . '/system.js');
- $form_state['redirect'] = url('admin/config/search/clean-urls');
- $form['clean_url_description'] = array(
- '#type' => 'markup',
- '#markup' => '<p>' . t('Use URLs like <code>example.com/user</code> instead of <code>example.com/?q=user</code>.'),
- );
-
-
- $form['clean_url_test_result'] = array(
- '#type' => 'markup',
- '#markup' => '<p>' . t('Clean URLs cannot be enabled. If you are directed to this page or to a <em>Page not found (404)</em> error after testing for clean URLs, see the <a href="@handbook">online handbook</a>.', array('@handbook' => 'http://drupal.org/node/15365')) . '</p>',
- );
- $form['actions'] = array(
- '#type' => 'actions',
- 'clean_url_test' => array(
- '#type' => 'submit',
- '#value' => t('Run the clean URL test'),
- ),
- );
- $form['clean_url_test_execute'] = array(
- '#type' => 'hidden',
- '#value' => 1,
- );
- }
- return $form;
- }
- function system_status($check = FALSE) {
-
- include_once DRUPAL_ROOT . '/includes/install.inc';
- drupal_load_updates();
-
- $requirements = module_invoke_all('requirements', 'runtime');
- usort($requirements, '_system_sort_requirements');
- if ($check) {
- return drupal_requirements_severity($requirements) == REQUIREMENT_ERROR;
- }
-
-
- db_update('users')
- ->expression('uid', 'uid - uid')
- ->condition('name', '')
- ->condition('pass', '')
- ->condition('status', 0)
- ->execute();
- return theme('status_report', array('requirements' => $requirements));
- }
- function system_run_cron() {
-
- if (drupal_cron_run()) {
- drupal_set_message(t('Cron ran successfully.'));
- }
- else {
- drupal_set_message(t('Cron run failed.'), 'error');
- }
- drupal_goto('admin/reports/status');
- }
- function system_php() {
- phpinfo();
- drupal_exit();
- }
- function system_batch_page() {
- require_once DRUPAL_ROOT . '/includes/batch.inc';
- $output = _batch_page();
- if ($output === FALSE) {
- drupal_access_denied();
- }
- elseif (isset($output)) {
-
-
- drupal_set_page_content($output);
- $page = element_info('page');
- $page['#show_messages'] = FALSE;
- return $page;
- }
- }
- function theme_admin_block($variables) {
- $block = $variables['block'];
- $output = '';
-
- if (empty($block['show'])) {
- return $output;
- }
- $output .= '<div class="admin-panel">';
- if (!empty($block['title'])) {
- $output .= '<h3>' . $block['title'] . '</h3>';
- }
- if (!empty($block['content'])) {
- $output .= '<div class="body">' . $block['content'] . '</div>';
- }
- else {
- $output .= '<div class="description">' . $block['description'] . '</div>';
- }
- $output .= '</div>';
- return $output;
- }
- function theme_admin_block_content($variables) {
- $content = $variables['content'];
- $output = '';
- if (!empty($content)) {
- $class = 'admin-list';
- if ($compact = system_admin_compact_mode()) {
- $class .= ' compact';
- }
- $output .= '<dl class="' . $class . '">';
- foreach ($content as $item) {
- $output .= '<dt>' . l($item['title'], $item['href'], $item['localized_options']) . '</dt>';
- if (!$compact && isset($item['description'])) {
- $output .= '<dd>' . filter_xss_admin($item['description']) . '</dd>';
- }
- }
- $output .= '</dl>';
- }
- return $output;
- }
- function theme_admin_page($variables) {
- $blocks = $variables['blocks'];
- $stripe = 0;
- $container = array();
- foreach ($blocks as $block) {
- if ($block_output = theme('admin_block', array('block' => $block))) {
- if (empty($block['position'])) {
-
- $block['position'] = ++$stripe % 2 ? 'left' : 'right';
- }
- if (!isset($container[$block['position']])) {
- $container[$block['position']] = '';
- }
- $container[$block['position']] .= $block_output;
- }
- }
- $output = '<div class="admin clearfix">';
- $output .= theme('system_compact_link');
- foreach ($container as $id => $data) {
- $output .= '<div class="' . $id . ' clearfix">';
- $output .= $data;
- $output .= '</div>';
- }
- $output .= '</div>';
- return $output;
- }
- function theme_system_admin_index($variables) {
- $menu_items = $variables['menu_items'];
- $stripe = 0;
- $container = array('left' => '', 'right' => '');
- $flip = array('left' => 'right', 'right' => 'left');
- $position = 'left';
-
- foreach ($menu_items as $module => $block) {
- list($description, $items) = $block;
-
- if (count($items)) {
- $block = array();
- $block['title'] = $module;
- $block['content'] = theme('admin_block_content', array('content' => $items));
- $block['description'] = t($description);
- $block['show'] = TRUE;
- if ($block_output = theme('admin_block', array('block' => $block))) {
- if (!isset($block['position'])) {
-
- $block['position'] = $position;
- $position = $flip[$position];
- }
- $container[$block['position']] .= $block_output;
- }
- }
- }
- $output = '<div class="admin clearfix">';
- $output .= theme('system_compact_link');
- foreach ($container as $id => $data) {
- $output .= '<div class="' . $id . ' clearfix">';
- $output .= $data;
- $output .= '</div>';
- }
- $output .= '</div>';
- return $output;
- }
- function theme_status_report($variables) {
- $requirements = $variables['requirements'];
- $severities = array(
- REQUIREMENT_INFO => array(
- 'title' => t('Info'),
- 'class' => 'info',
- ),
- REQUIREMENT_OK => array(
- 'title' => t('OK'),
- 'class' => 'ok',
- ),
- REQUIREMENT_WARNING => array(
- 'title' => t('Warning'),
- 'class' => 'warning',
- ),
- REQUIREMENT_ERROR => array(
- 'title' => t('Error'),
- 'class' => 'error',
- ),
- );
- $output = '<table class="system-status-report">';
- foreach ($requirements as $requirement) {
- if (empty($requirement['#type'])) {
- $severity = $severities[isset($requirement['severity']) ? (int) $requirement['severity'] : REQUIREMENT_OK];
- $severity['icon'] = '<div title="' . $severity['title'] . '"><span class="element-invisible">' . $severity['title'] . '</span></div>';
-
- if (!empty($requirement['description'])) {
- $output .= '<tr class="' . $severity['class'] . ' merge-down"><td class="status-icon">' . $severity['icon'] . '</td><td class="status-title">' . $requirement['title'] . '</td><td class="status-value">' . $requirement['value'] . '</td></tr>';
- $output .= '<tr class="' . $severity['class'] . ' merge-up"><td colspan="3" class="status-description">' . $requirement['description'] . '</td></tr>';
- }
- else {
- $output .= '<tr class="' . $severity['class'] . '"><td class="status-icon">' . $severity['icon'] . '</td><td class="status-title">' . $requirement['title'] . '</td><td class="status-value">' . $requirement['value'] . '</td></tr>';
- }
- }
- }
- $output .= '</table>';
- return $output;
- }
- function theme_system_modules_fieldset($variables) {
- $form = $variables['form'];
-
- $rows = array();
-
-
- foreach (element_children($form) as $key) {
-
- $module = $form[$key];
- $row = array();
- unset($module['enable']['#title']);
- $row[] = array('class' => array('checkbox'), 'data' => drupal_render($module['enable']));
- $label = '<label';
- if (isset($module['enable']['#id'])) {
- $label .= ' for="' . $module['enable']['#id'] . '"';
- }
- $row[] = $label . '><strong>' . drupal_render($module['name']) . '</strong></label>';
- $row[] = drupal_render($module['version']);
-
- $description = drupal_render($module['description']);
- if ($module['#requires']) {
- $description .= '<div class="admin-requirements">' . t('Requires: !module-list', array('!module-list' => implode(', ', $module['#requires']))) . '</div>';
- }
- if ($module['#required_by']) {
- $description .= '<div class="admin-requirements">' . t('Required by: !module-list', array('!module-list' => implode(', ', $module['#required_by']))) . '</div>';
- }
- $row[] = array('data' => $description, 'class' => array('description'));
-
- foreach (array('help', 'permissions', 'configure') as $link_type) {
- $row[] = array('data' => drupal_render($module['links'][$link_type]), 'class' => array($link_type));
- }
- $rows[] = $row;
- }
- return theme('table', array('header' => $form['#header'], 'rows' => $rows));
- }
- function theme_system_modules_incompatible($variables) {
- return '<div class="incompatible">' . $variables['message'] . '</div>';
- }
- function theme_system_modules_uninstall($variables) {
- $form = $variables['form'];
-
- if (isset($form['confirm'])) {
- return drupal_render($form);
- }
-
- $header = array(t('Uninstall'),
- t('Name'),
- t('Description'),
- );
-
- $rows = array();
- foreach (element_children($form['modules']) as $module) {
- if (!empty($form['modules'][$module]['#required_by'])) {
- $disabled_message = format_plural(count($form['modules'][$module]['#required_by']),
- 'To uninstall @module, the following module must be uninstalled first: @required_modules',
- 'To uninstall @module, the following modules must be uninstalled first: @required_modules',
- array('@module' => $form['modules'][$module]['#module_name'], '@required_modules' => implode(', ', $form['modules'][$module]['#required_by'])));
- $disabled_message = '<div class="admin-requirements">' . $disabled_message . '</div>';
- }
- else {
- $disabled_message = '';
- }
- $rows[] = array(
- array('data' => drupal_render($form['uninstall'][$module]), 'align' => 'center'),
- '<strong><label for="' . $form['uninstall'][$module]['#id'] . '">' . drupal_render($form['modules'][$module]['name']) . '</label></strong>',
- array('data' => drupal_render($form['modules'][$module]['description']) . $disabled_message, 'class' => array('description')),
- );
- }
- $output = theme('table', array('header' => $header, 'rows' => $rows, 'empty' => t('No modules are available to uninstall.')));
- $output .= drupal_render_children($form);
- return $output;
- }
- function theme_system_themes_page($variables) {
- $theme_groups = $variables['theme_groups'];
- $output = '<div id="system-themes-page">';
- foreach ($variables['theme_group_titles'] as $state => $title) {
- if (!count($theme_groups[$state])) {
-
- continue;
- }
-
- $output .= '<div class="system-themes-list system-themes-list-'. $state .' clearfix"><h2>'. $title .'</h2>';
- foreach ($theme_groups[$state] as $theme) {
-
- $screenshot = $theme->screenshot ? theme('image', $theme->screenshot) : '<div class="no-screenshot">' . t('no screenshot') . '</div>';
-
- $description = t($theme->info['description']);
-
- $notes = count($theme->notes) ? ' (' . join(', ', $theme->notes) . ')' : '';
- $theme->classes[] = 'theme-selector';
- $theme->classes[] = 'clearfix';
- $output .= '<div class="'. join(' ', $theme->classes) .'">' . $screenshot . '<div class="theme-info"><h3>' . $theme->info['name'] . ' ' . (isset($theme->info['version']) ? $theme->info['version'] : '') . $notes . '</h3><div class="theme-description">' . $description . '</div>';
-
- if (!empty($theme->incompatible_core)) {
- $output .= '<div class="incompatible">' . t('This version is not compatible with Drupal !core_version and should be replaced.', array('!core_version' => DRUPAL_CORE_COMPATIBILITY)) . '</div>';
- }
- elseif (!empty($theme->incompatible_php)) {
- if (substr_count($theme->info['php'], '.') < 2) {
- $theme->info['php'] .= '.*';
- }
- $output .= '<div class="incompatible">' . t('This theme requires PHP version @php_required and is incompatible with PHP version !php_version.', array('@php_required' => $theme->info['php'], '!php_version' => phpversion())) . '</div>';
- }
- else {
- $output .= theme('links', array('links' => $theme->operations, 'attributes' => array('class' => array('operations', 'clearfix'))));
- }
- $output .= '</div></div>';
- }
- $output .= '</div>';
- }
- $output .= '</div>';
- return $output;
- }
- function system_date_delete_format_form($form, &$form_state, $dfid) {
- $form['dfid'] = array(
- '#type' => 'value',
- '#value' => $dfid,
- );
- $format = system_get_date_format($dfid);
- $output = confirm_form($form,
- t('Are you sure you want to remove the format %format?', array('%format' => format_date(REQUEST_TIME, 'custom', $format->format))),
- 'admin/config/regional/date-time/formats',
- t('This action cannot be undone.'),
- t('Remove'), t('Cancel'),
- 'confirm'
- );
- return $output;
- }
- function system_date_delete_format_form_submit($form, &$form_state) {
- if ($form_state['values']['confirm']) {
- $format = system_get_date_format($form_state['values']['dfid']);
- system_date_format_delete($form_state['values']['dfid']);
- drupal_set_message(t('Removed date format %format.', array('%format' => format_date(REQUEST_TIME, 'custom', $format->format))));
- $form_state['redirect'] = 'admin/config/regional/date-time/formats';
- }
- }
- function system_delete_date_format_type_form($form, &$form_state, $format_type) {
- $form['format_type'] = array(
- '#type' => 'value',
- '#value' => $format_type,
- );
- $type_info = system_get_date_types($format_type);
- $output = confirm_form($form,
- t('Are you sure you want to remove the date type %type?', array('%type' => $type_info['title'])),
- 'admin/config/regional/date-time',
- t('This action cannot be undone.'),
- t('Remove'), t('Cancel'),
- 'confirm'
- );
- return $output;
- }
- function system_delete_date_format_type_form_submit($form, &$form_state) {
- if ($form_state['values']['confirm']) {
- $type_info = system_get_date_types($form_state['values']['format_type']);
- system_date_format_type_delete($form_state['values']['format_type']);
- drupal_set_message(t('Removed date type %type.', array('%type' => $type_info['title'])));
- $form_state['redirect'] = 'admin/config/regional/date-time';
- }
- }
- function system_date_time_formats() {
- $header = array(t('Format'), array('data' => t('Operations'), 'colspan' => '2'));
- $rows = array();
- drupal_static_reset('system_get_date_formats');
- $formats = system_get_date_formats('custom');
- if (!empty($formats)) {
- foreach ($formats as $format) {
- $row = array();
- $row[] = array('data' => format_date(REQUEST_TIME, 'custom', $format['format']));
- $row[] = array('data' => l(t('edit'), 'admin/config/regional/date-time/formats/' . $format['dfid'] . '/edit'));
- $row[] = array('data' => l(t('delete'), 'admin/config/regional/date-time/formats/' . $format['dfid'] . '/delete'));
- $rows[] = $row;
- }
- }
- $build['date_formats_table'] = array(
- '#theme' => 'table',
- '#header' => $header,
- '#rows' => $rows,
- '#empty' => t('No custom date formats available. <a href="@link">Add date format</a>.', array('@link' => url('admin/config/regional/date-time/formats/add'))),
- );
- return $build;
- }
- function system_configure_date_formats_form($form, &$form_state, $dfid = 0) {
- $js_settings = array(
- 'type' => 'setting',
- 'data' => array(
- 'dateTime' => array(
- 'date-format' => array(
- 'text' => t('Displayed as'),
- 'lookup' => url('admin/config/regional/date-time/formats/lookup'),
- ),
- ),
- ),
- );
- if ($dfid) {
- $form['dfid'] = array(
- '#type' => 'value',
- '#value' => $dfid,
- );
- $format = system_get_date_format($dfid);
- }
- $now = ($dfid ? t('Displayed as %date', array('%date' => format_date(REQUEST_TIME, 'custom', $format->format))) : '');
- $form['date_format'] = array(
- '#type' => 'textfield',
- '#title' => t('Format string'),
- '#maxlength' => 100,
- '#description' => t('A user-defined date format. See the <a href="@url">PHP manual</a> for available options.', array('@url' => 'http://php.net/manual/function.date.php')),
- '#default_value' => ($dfid ? $format->format : ''),
- '#field_suffix' => ' <small id="edit-date-format-suffix">' . $now . '</small>',
- '#attached' => array(
- 'js' => array(drupal_get_path('module', 'system') . '/system.js', $js_settings),
- ),
- '#required' => TRUE,
- );
- $form['actions'] = array('#type' => 'actions');
- $form['actions']['update'] = array(
- '#type' => 'submit',
- '#value' => ($dfid ? t('Save format') : t('Add format')),
- );
- $form['#validate'][] = 'system_add_date_formats_form_validate';
- $form['#submit'][] = 'system_add_date_formats_form_submit';
- return $form;
- }
- function system_add_date_formats_form_validate($form, &$form_state) {
- $formats = system_get_date_formats('custom');
- $format = trim($form_state['values']['date_format']);
- if (!empty($formats) && in_array($format, array_keys($formats)) && (!isset($form_state['values']['dfid']) || $form_state['values']['dfid'] != $formats[$format]['dfid'])) {
- form_set_error('date_format', t('This format already exists. Enter a unique format string.'));
- }
- }
- function system_add_date_formats_form_submit($form, &$form_state) {
- $format = array();
- $format['format'] = trim($form_state['values']['date_format']);
- $format['type'] = 'custom';
- $format['locked'] = 0;
- if (!empty($form_state['values']['dfid'])) {
- system_date_format_save($format, $form_state['values']['dfid']);
- drupal_set_message(t('Custom date format updated.'));
- }
- else {
- $format['is_new'] = 1;
- system_date_format_save($format);
- drupal_set_message(t('Custom date format added.'));
- }
- $form_state['redirect'] = 'admin/config/regional/date-time/formats';
- }
- function system_actions_manage() {
- actions_synchronize();
- $actions = actions_list();
- $actions_map = actions_actions_map($actions);
- $options = array();
- $unconfigurable = array();
- foreach ($actions_map as $key => $array) {
- if ($array['configurable']) {
- $options[$key] = $array['label'] . '...';
- }
- else {
- $unconfigurable[] = $array;
- }
- }
- $row = array();
- $instances_present = db_query("SELECT aid FROM {actions} WHERE parameters <> ''")->fetchField();
- $header = array(
- array('data' => t('Action type'), 'field' => 'type'),
- array('data' => t('Label'), 'field' => 'label'),
- array('data' => $instances_present ? t('Operations') : '', 'colspan' => '2')
- );
- $query = db_select('actions')->extend('PagerDefault')->extend('TableSort');
- $result = $query
- ->fields('actions')
- ->limit(50)
- ->orderByHeader($header)
- ->execute();
- foreach ($result as $action) {
- $row[] = array(
- array('data' => $action->type),
- array('data' => check_plain($action->label)),
- array('data' => $action->parameters ? l(t('configure'), "admin/config/system/actions/configure/$action->aid") : ''),
- array('data' => $action->parameters ? l(t('delete'), "admin/config/system/actions/delete/$action->aid") : '')
- );
- }
- if ($row) {
- $pager = theme('pager');
- if (!empty($pager)) {
- $row[] = array(array('data' => $pager, 'colspan' => '3'));
- }
- $build['system_actions_header'] = array('#markup' => '<h3>' . t('Available actions:') . '</h3>');
- $build['system_actions_table'] = array('#markup' => theme('table', array('header' => $header, 'rows' => $row)));
- }
- if ($actions_map) {
- $build['system_actions_manage_form'] = drupal_get_form('system_actions_manage_form', $options);
- }
- return $build;
- }
- function system_actions_manage_form($form, &$form_state, $options = array()) {
- $form['parent'] = array(
- '#type' => 'fieldset',
- '#title' => t('Create an advanced action'),
- '#attributes' => array('class' => array('container-inline')),
- );
- $form['parent']['action'] = array(
- '#type' => 'select',
- '#title' => t('Action'),
- '#title_display' => 'invisible',
- '#options' => $options,
- '#empty_option' => t('Choose an advanced action'),
- );
- $form['parent']['actions'] = array('#type' => 'actions');
- $form['parent']['actions']['submit'] = array(
- '#type' => 'submit',
- '#value' => t('Create'),
- );
- return $form;
- }
- function system_actions_manage_form_submit($form, &$form_state) {
- if ($form_state['values']['action']) {
- $form_state['redirect'] = 'admin/config/system/actions/configure/' . $form_state['values']['action'];
- }
- }
- function system_actions_configure($form, &$form_state, $action = NULL) {
- if ($action === NULL) {
- drupal_goto('admin/config/system/actions');
- }
- $actions_map = actions_actions_map(actions_list());
- $edit = array();
-
- if (is_numeric($action)) {
- $aid = $action;
-
- $data = db_query("SELECT * FROM {actions} WHERE aid = :aid", array(':aid' => $aid))->fetch();
- $edit['actions_label'] = $data->label;
- $edit['actions_type'] = $data->type;
- $function = $data->callback;
- $action = drupal_hash_base64($data->callback);
- $params = unserialize($data->parameters);
- if ($params) {
- foreach ($params as $name => $val) {
- $edit[$name] = $val;
- }
- }
- }
-
- else {
- $function = $actions_map[$action]['callback'];
- $edit['actions_label'] = $actions_map[$action]['label'];
- $edit['actions_type'] = $actions_map[$action]['type'];
- }
- $form['actions_label'] = array(
- '#type' => 'textfield',
- '#title' => t('Label'),
- '#default_value' => $edit['actions_label'],
- '#maxlength' => '255',
- '#description' => t('A unique label for this advanced action. This label will be displayed in the interface of modules that integrate with actions, such as Trigger module.'),
- '#weight' => -10
- );
- $action_form = $function . '_form';
- $form = array_merge($form, $action_form($edit));
- $form['actions_type'] = array(
- '#type' => 'value',
- '#value' => $edit['actions_type'],
- );
- $form['actions_action'] = array(
- '#type' => 'hidden',
- '#value' => $action,
- );
-
- if (isset($aid)) {
- $form['actions_aid'] = array(
- '#type' => 'hidden',
- '#value' => $aid,
- );
- }
- $form['actions_configured'] = array(
- '#type' => 'hidden',
- '#value' => '1',
- );
- $form['actions'] = array('#type' => 'actions');
- $form['actions']['submit'] = array(
- '#type' => 'submit',
- '#value' => t('Save'),
- '#weight' => 13
- );
- return $form;
- }
- function system_actions_configure_validate($form, &$form_state) {
- $function = actions_function_lookup($form_state['values']['actions_action']) . '_validate';
-
- if (function_exists($function)) {
- $function($form, $form_state);
- }
- }
- function system_actions_configure_submit($form, &$form_state) {
- $function = actions_function_lookup($form_state['values']['actions_action']);
- $submit_function = $function . '_submit';
-
- $params = $submit_function($form, $form_state);
- $aid = isset($form_state['values']['actions_aid']) ? $form_state['values']['actions_aid'] : NULL;
- actions_save($function, $form_state['values']['actions_type'], $params, $form_state['values']['actions_label'], $aid);
- drupal_set_message(t('The action has been successfully saved.'));
- $form_state['redirect'] = 'admin/config/system/actions/manage';
- }
- function system_actions_delete_form($form, &$form_state, $action) {
- $form['aid'] = array(
- '#type' => 'hidden',
- '#value' => $action->aid,
- );
- return confirm_form($form,
- t('Are you sure you want to delete the action %action?', array('%action' => $action->label)),
- 'admin/config/system/actions/manage',
- t('This cannot be undone.'),
- t('Delete'),
- t('Cancel')
- );
- }
- function system_actions_delete_form_submit($form, &$form_state) {
- $aid = $form_state['values']['aid'];
- $action = actions_load($aid);
- actions_delete($aid);
- watchdog('user', 'Deleted action %aid (%action)', array('%aid' => $aid, '%action' => $action->label));
- drupal_set_message(t('Action %action was deleted', array('%action' => $action->label)));
- $form_state['redirect'] = 'admin/config/system/actions/manage';
- }
- function system_action_delete_orphans_post($orphaned) {
- foreach ($orphaned as $callback) {
- drupal_set_message(t("Deleted orphaned action (%action).", array('%action' => $callback)));
- }
- }
- function system_actions_remove_orphans() {
- actions_synchronize(TRUE);
- drupal_goto('admin/config/system/actions/manage');
- }
|