From ae9d1bf9ae7726f6d9f1a256616ce16ced77afca Mon Sep 17 00:00:00 2001 From: epriestley Date: Mon, 26 Mar 2012 09:29:31 -0700 Subject: [PATCH] Allow installs to add a custom corp/org header link Summary: A bunch of installs are doing this to varying degrees of success anyway, make it easier and nudge them toward a more consistent approach. Test Plan: Set a custom logo, viewed normal and admin pages. Reviewers: btrahan Reviewed By: btrahan CC: aran, epriestley Maniphest Tasks: T700 Differential Revision: https://secure.phabricator.com/D2019 --- .gitignore | 3 ++ conf/default.conf.php | 9 ++++++ .../standard/PhabricatorStandardPageView.php | 19 +++++++++++- .../application/base/standard-page-view.css | 29 +++++++++++++++--- webroot/rsrc/image/custom/README | 3 ++ .../rsrc/image/custom/example_facebook.png | Bin 0 -> 4826 bytes webroot/rsrc/image/custom/example_rainbow.png | Bin 0 -> 1720 bytes .../rsrc/image/custom/example_template.png | Bin 0 -> 2909 bytes webroot/rsrc/image/phabricator_logo.png | Bin 6888 -> 7350 bytes webroot/rsrc/image/phabricator_logo_admin.png | Bin 6609 -> 7093 bytes 10 files changed, 57 insertions(+), 6 deletions(-) create mode 100644 webroot/rsrc/image/custom/README create mode 100644 webroot/rsrc/image/custom/example_facebook.png create mode 100644 webroot/rsrc/image/custom/example_rainbow.png create mode 100644 webroot/rsrc/image/custom/example_template.png diff --git a/.gitignore b/.gitignore index 08287579ff..9c20fc658f 100644 --- a/.gitignore +++ b/.gitignore @@ -14,3 +14,6 @@ # Arcanist scratch directory /.arc + +# Custom Logo File +/webroot/rsrc/image/custom/custom.png diff --git a/conf/default.conf.php b/conf/default.conf.php index abbdb7bf2e..5759262487 100644 --- a/conf/default.conf.php +++ b/conf/default.conf.php @@ -60,6 +60,15 @@ return array( 'security.hmac-key' => '[D\t~Y7eNmnQGJ;rnH6aF;m2!vJ8@v8C=Cs:aQS\.Qw', +// -- Customization --------------------------------------------------------- // + + // If you want to use a custom logo (e.g., for your company or organization), + // copy 'webroot/rsrc/image/custom/example_template.png' to + // 'webroot/rsrc/image/custom/custom.png' and set this to the URI you want it + // to link to (like http://www.yourcompany.com/). + 'phabricator.custom.logo' => null, + + // -- DarkConsole ----------------------------------------------------------- // // DarkConsole is a administrative debugging/profiling tool built into diff --git a/src/view/page/standard/PhabricatorStandardPageView.php b/src/view/page/standard/PhabricatorStandardPageView.php index f4903b059c..7ebecc28f2 100644 --- a/src/view/page/standard/PhabricatorStandardPageView.php +++ b/src/view/page/standard/PhabricatorStandardPageView.php @@ -356,13 +356,30 @@ final class PhabricatorStandardPageView extends AphrontPageView { $admin_class = 'phabricator-admin-page-view'; } + $custom_logo = null; + $with_custom = null; + $custom_conf = PhabricatorEnv::getEnvConfig('phabricator.custom.logo'); + if ($custom_conf) { + $with_custom = 'phabricator-logo-with-custom'; + $custom_logo = phutil_render_tag( + 'a', + array( + 'class' => 'logo-custom', + 'href' => $custom_conf, + ), + ' '); + } + $header_chrome = null; $footer_chrome = null; if ($this->getShowChrome()) { $header_chrome = ''. ''. - ''. + ''. '
'. ''. ''. diff --git a/webroot/rsrc/css/application/base/standard-page-view.css b/webroot/rsrc/css/application/base/standard-page-view.css index 5521ccc59a..a7e851b5d7 100644 --- a/webroot/rsrc/css/application/base/standard-page-view.css +++ b/webroot/rsrc/css/application/base/standard-page-view.css @@ -53,15 +53,38 @@ width: 220px; } +.phabricator-logo-with-custom { + width: 440px; +} + .phabricator-logo a { display: block; width: 220px; height: 40px; - background: url('/rsrc/image/phabricator_logo.png') no-repeat 0 0; padding: 0; margin: 0; } +.phabricator-logo a.logo-custom { + position: absolute; + background: url(/rsrc/image/custom/custom.png) no-repeat 0 0; +} + +.phabricator-logo a.logo-standard { + background: url(/rsrc/image/phabricator_logo.png) no-repeat 0 0; + background-position-left: 220px; +} + +.phabricator-admin-page-view .phabricator-logo a.logo-standard { + background-image: url(/rsrc/image/phabricator_logo_admin.png); +} + +.phabricator-logo-with-custom a.logo-standard { + padding-left: 220px; + background-position-left: 0; +} + + .phabricator-logo a:hover { background-position: 0 -40px; } @@ -108,10 +131,6 @@ td.phabricator-login-details { background: #cc3333; } -.phabricator-admin-page-view .phabricator-logo a { - background-image: url('/rsrc/image/phabricator_logo_admin.png'); -} - .keyboard-shortcut-help td, .keyboard-shortcut-help th { padding: 8px; diff --git a/webroot/rsrc/image/custom/README b/webroot/rsrc/image/custom/README new file mode 100644 index 0000000000..bab43c10c9 --- /dev/null +++ b/webroot/rsrc/image/custom/README @@ -0,0 +1,3 @@ +To customize your Phabricator install's appearance, create a 240x80 PNG like +the examples in this folder, name it "custom.png" in this folder, and then set +'phabricator.custom.logo' to a link URI. diff --git a/webroot/rsrc/image/custom/example_facebook.png b/webroot/rsrc/image/custom/example_facebook.png new file mode 100644 index 0000000000000000000000000000000000000000..02bd95ec9b94c7babd89ee0182593e24866ed565 GIT binary patch literal 4826 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 literal 0 HcmV?d00001 diff --git a/webroot/rsrc/image/custom/example_rainbow.png b/webroot/rsrc/image/custom/example_rainbow.png new file mode 100644 index 0000000000000000000000000000000000000000..1cd8ab464d75a8545225e7b61b46828845a2315e GIT binary patch literal 1720 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 Y4cqG2w4NFO-pe3+YX_@xOP{~~3+ktkFaQ7m literal 0 HcmV?d00001 diff --git a/webroot/rsrc/image/phabricator_logo.png b/webroot/rsrc/image/phabricator_logo.png index a491a6055dfa879978675797e9be60d61bf6bf71..b758a0e7dd718f0e016d802c405ce096b51b891e 100644 GIT binary patch literal 7350 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 DE}u34 diff --git a/webroot/rsrc/image/phabricator_logo_admin.png b/webroot/rsrc/image/phabricator_logo_admin.png index 235cbaec3e92d519b6c65ed3987b35e1c3235d79..4ac978153b86d04e46c6714af53f1db708d09c57 100644 GIT binary patch literal 7093 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 literal 6609 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