From 3fc3544f231a564494141de8a801ea69bec272a2 Mon Sep 17 00:00:00 2001 From: Dmitriy Simushev Date: Mon, 23 Dec 2013 15:29:18 +0000 Subject: [PATCH] Move all function related with invitation styles to InvitationStyle class --- src/mibew/libs/classes/invitation_style.php | 94 +++++++++++++++++++++ src/mibew/libs/getcode.php | 16 ++-- src/mibew/libs/styles.php | 32 ------- src/mibew/operator/getcode.php | 4 +- src/mibew/operator/invitationthemes.php | 4 +- src/mibew/operator/page_themes.php | 1 - src/mibew/operator/settings.php | 4 +- 7 files changed, 110 insertions(+), 45 deletions(-) create mode 100644 src/mibew/libs/classes/invitation_style.php delete mode 100644 src/mibew/libs/styles.php diff --git a/src/mibew/libs/classes/invitation_style.php b/src/mibew/libs/classes/invitation_style.php new file mode 100644 index 00000000..b9d9b3a6 --- /dev/null +++ b/src/mibew/libs/classes/invitation_style.php @@ -0,0 +1,94 @@ +name(); + } + + /** + * Loads configurations of the style. + * + * @return array Style configurations + */ + public function configurations() { + return array(); + } + + /** + * Stub for StyleInterface::render method. + * + * The method does not contain actual code because inviation styles are not + * renderable now. + */ + public function render($template_name) { + return FALSE; + } + + /** + * Returns name of the style which is currently used in the system + * + * @return string Name of a style + */ + public static function currentStyle() { + // Load value from system settings + return Settings::get('invitationstyle'); + } + + /** + * Sets style which is currently used in the system + * + * @param string $style_name Name of a style + */ + public static function setCurrentStyle($style_name) { + Settings::set('invitationstyle', $style_name); + Settings::update(); + } + + /** + * Returns an array which contains names of available styles. + * + * @param array List of styles names + */ + public static function availableStyles() { + $styles_root = dirname(dirname(dirname(__FILE__))) . + '/styles/invitations'; + + return self::getStyleList($styles_root); + } + + /** + * Returns array of default configurations for concrete style object. This + * method uses "Template method" design pattern. + * + * @return array Default configurations of the style + */ + protected function defaultConfigurations() { + return array(); + } +} + +?> \ No newline at end of file diff --git a/src/mibew/libs/getcode.php b/src/mibew/libs/getcode.php index 422e428c..f2702737 100644 --- a/src/mibew/libs/getcode.php +++ b/src/mibew/libs/getcode.php @@ -15,7 +15,7 @@ * limitations under the License. */ -function generate_button($title, $locale, $style, $invitationstyle, $group, $inner, $showhost, $forcesecure, $modsecurity, $operator_code) +function generate_button($title, $locale, $style, $invitation_style_name, $group, $inner, $showhost, $forcesecure, $modsecurity, $operator_code) { $app_location = get_app_location($showhost, $forcesecure); $link = $app_location . "/client.php"; @@ -48,12 +48,16 @@ function generate_button($title, $locale, $style, $invitationstyle, $group, $inn if (Settings::get('enabletracking')) { $widget_data = array(); + // Get actual invitation style instance + if (!$invitation_style_name) { + $invitation_style_name = InvitationStyle::currentStyle(); + } + $invitation_style = new InvitationStyle($invitation_style_name); + // URL of file with additional CSS rules for invitation popup - $widget_data['inviteStyle'] = $app_location . '/styles/invitations/' . - ($invitationstyle - ? $invitationstyle - : (Settings::get('invitationstyle')) - ) . '/invite.css'; + $widget_data['inviteStyle'] = $app_location . '/' . + $invitation_style->filesPath() . + '/invite.css'; // Time between requests to the server in milliseconds $widget_data['requestTimeout'] = Settings::get('updatefrequency_tracking') diff --git a/src/mibew/libs/styles.php b/src/mibew/libs/styles.php deleted file mode 100644 index 66f68f66..00000000 --- a/src/mibew/libs/styles.php +++ /dev/null @@ -1,32 +0,0 @@ - \ No newline at end of file diff --git a/src/mibew/operator/getcode.php b/src/mibew/operator/getcode.php index 1d0f86e4..e41cc99b 100644 --- a/src/mibew/operator/getcode.php +++ b/src/mibew/operator/getcode.php @@ -19,11 +19,11 @@ require_once(dirname(dirname(__FILE__)).'/libs/init.php'); require_once(dirname(dirname(__FILE__)).'/libs/operator.php'); require_once(dirname(dirname(__FILE__)).'/libs/groups.php'); require_once(dirname(dirname(__FILE__)).'/libs/getcode.php'); -require_once(dirname(dirname(__FILE__)).'/libs/styles.php'); require_once(dirname(dirname(__FILE__)).'/libs/interfaces/style.php'); require_once(dirname(dirname(__FILE__)).'/libs/classes/style.php'); require_once(dirname(dirname(__FILE__)).'/libs/classes/chat_style.php'); require_once(dirname(dirname(__FILE__)).'/libs/classes/page_style.php'); +require_once(dirname(dirname(__FILE__)).'/libs/classes/invitation_style.php'); $operator = check_login(); force_password($operator); @@ -44,7 +44,7 @@ if ($style && !in_array($style, $stylelist)) { $style = ""; } -$invitationstylelist = get_style_list(dirname(dirname(__FILE__)).'/styles/invitations'); +$invitationstylelist = InvitationStyle::availableStyles(); $invitationstylelist[""] = getlocal("page.preview.style_default"); $invitationstyle = verifyparam("invitationstyle", "/^\w*$/", ""); if ($invitationstyle && !in_array($invitationstyle, $invitationstylelist)) { diff --git a/src/mibew/operator/invitationthemes.php b/src/mibew/operator/invitationthemes.php index 43464fee..3a4de277 100644 --- a/src/mibew/operator/invitationthemes.php +++ b/src/mibew/operator/invitationthemes.php @@ -21,14 +21,14 @@ require_once(dirname(dirname(__FILE__)).'/libs/operator.php'); require_once(dirname(dirname(__FILE__)).'/libs/groups.php'); require_once(dirname(dirname(__FILE__)).'/libs/expand.php'); require_once(dirname(dirname(__FILE__)).'/libs/settings.php'); -require_once(dirname(dirname(__FILE__)).'/libs/styles.php'); require_once(dirname(dirname(__FILE__)).'/libs/interfaces/style.php'); require_once(dirname(dirname(__FILE__)).'/libs/classes/style.php'); require_once(dirname(dirname(__FILE__)).'/libs/classes/page_style.php'); +require_once(dirname(dirname(__FILE__)).'/libs/classes/invitation_style.php'); $operator = check_login(); -$stylelist = get_style_list(dirname(dirname(__FILE__)).'/styles/invitations'); +$stylelist = InvitationStyle::availableStyles(); $preview = verifyparam("preview", "/^\w+$/", "default"); if (!in_array($preview, $stylelist)) { diff --git a/src/mibew/operator/page_themes.php b/src/mibew/operator/page_themes.php index d48739b0..25f00c23 100644 --- a/src/mibew/operator/page_themes.php +++ b/src/mibew/operator/page_themes.php @@ -18,7 +18,6 @@ require_once(dirname(dirname(__FILE__)).'/libs/init.php'); require_once(dirname(dirname(__FILE__)).'/libs/operator.php'); require_once(dirname(dirname(__FILE__)).'/libs/settings.php'); -require_once(dirname(dirname(__FILE__)).'/libs/styles.php'); require_once(dirname(dirname(__FILE__)).'/libs/interfaces/style.php'); require_once(dirname(dirname(__FILE__)).'/libs/classes/style.php'); require_once(dirname(dirname(__FILE__)).'/libs/classes/page_style.php'); diff --git a/src/mibew/operator/settings.php b/src/mibew/operator/settings.php index a3a47827..900e76b9 100644 --- a/src/mibew/operator/settings.php +++ b/src/mibew/operator/settings.php @@ -18,12 +18,12 @@ require_once(dirname(dirname(__FILE__)).'/libs/init.php'); require_once(dirname(dirname(__FILE__)).'/libs/operator.php'); require_once(dirname(dirname(__FILE__)).'/libs/settings.php'); -require_once(dirname(dirname(__FILE__)).'/libs/styles.php'); require_once(dirname(dirname(__FILE__)).'/libs/cron.php'); require_once(dirname(dirname(__FILE__)).'/libs/interfaces/style.php'); require_once(dirname(dirname(__FILE__)).'/libs/classes/style.php'); require_once(dirname(dirname(__FILE__)).'/libs/classes/chat_style.php'); require_once(dirname(dirname(__FILE__)).'/libs/classes/page_style.php'); +require_once(dirname(dirname(__FILE__)).'/libs/classes/invitation_style.php'); $operator = check_login(); force_password($operator); @@ -52,7 +52,7 @@ $options = array( if (Settings::get('enabletracking')) { $options[] = 'invitationstyle'; - $invitationstylelist = get_style_list(dirname(dirname(__FILE__)).'/styles/invitations'); + $invitationstylelist = InvitationStyle::availableStyles(); } $params = array();