示例#1
0
 /**
  * Creates new instance of the builder for the current project.
  * @return \SocialSharing_Projects_Builder
  */
 protected function instantiateBuilder()
 {
     $builder = null;
     if ('flat' === substr($this->project->get('design', 'flat-1'), 0, 4)) {
         $builder = new SocialSharing_Projects_Builder_Flat($this->project, $this->environment);
     } elseif (class_exists('SocialSharingPro_Projects_Builder_Mono') && 'mono' === substr($this->project->get('design'), 0, 4)) {
         $builder = new SocialSharingPro_Projects_Builder_Mono($this->project, $this->environment);
     } elseif (class_exists('SocialSharingPro_Projects_Builder_Bordered') && 'bordered' === substr($this->project->get('design'), 0, 8)) {
         $builder = new SocialSharingPro_Projects_Builder_Bordered($this->project, $this->environment);
     } elseif (class_exists('SocialSharingPro_Projects_Builder_Livejournal') && 'livejournal' === substr($this->project->get('design'), 0, 11)) {
         $builder = new SocialSharingPro_Projects_Builder_Livejournal($this->project, $this->environment);
     } elseif (class_exists('SocialSharingPro_Projects_Builder_Various') && 'various' === substr($this->project->get('design'), 0, 7)) {
         $builder = new SocialSharingPro_Projects_Builder_Various($this->project, $this->environment);
     } else {
         $this->project->setSettings(array_merge($this->project->getSettings(), array('design' => 'flat-1')));
         $builder = new SocialSharing_Projects_Builder_Flat($this->project, $this->environment);
         add_action('admin_notices', array($this, 'invalidBuilderNotice'));
     }
     /** @var SocialSharing_Networks_Module $networks */
     if ($this->project->has('show_more') && null !== ($networks = $this->environment->getModule('networks'))) {
         $builder = new SocialSharing_Projects_Builder_Decorator_Popup($builder, $networks->getAll());
         /** @var SocialSharing_Ui_Module $ui */
         $ui = $this->environment->getModule('ui');
         $ui->addAsset($ui->create('script', 'social-sharing-builder-popup')->setHookName('before_html_build')->setModuleSource($this->environment->getModule('projects'), 'js/builder/popup.js')->setCachingAllowed($this->environment->isProd()));
         $ui->addAsset($ui->create('style', 'social-sharing-builder-popup')->setHookName('before_html_build')->setModuleSource($this->environment->getModule('projects'), 'css/builder/popup.css')->setCachingAllowed($this->environment->isProd()));
     }
     if ($this->project->has('sidebar_navigation')) {
         $builder = new SocialSharing_Projects_Builder_Decorator_Navigation($builder);
         /** @var SocialSharing_Ui_Module $ui */
         $ui = $this->environment->getModule('ui');
         $ui->addAsset($ui->create('script', 'social-sharing-builder-navigation')->setHookName('before_html_build')->setModuleSource($this->environment->getModule('projects'), 'js/builder/navigation.js')->setCachingAllowed($this->environment->isProd()));
         $ui->addAsset($ui->create('style', 'social-sharing-builder-navigation')->setHookName('before_html_build')->setModuleSource($this->environment->getModule('projects'), 'css/builder/navigation.css')->setCachingAllowed($this->environment->isProd()));
     }
     return $builder;
 }
示例#2
0
 /**
  * Returns an array of the container classes.
  * @return array
  */
 protected function getContainerClasses()
 {
     $classes = array('supsystic-social-sharing', 'supsystic-social-sharing-package-' . strtolower($this->getName()));
     if ($this->project->isHiddenOnHomePage()) {
         $classes[] = 'supsystic-social-sharing-hide-on-homepage';
     }
     if ($this->isHomepage()) {
         $classes[] = 'supsystic-social-homepage';
     }
     if ($this->project->isHiddenOnMobile()) {
         $classes[] = 'supsystic-social-sharing-hide-on-mobile';
     }
     if ($this->project->isShowOnlyOnMobile()) {
         $classes[] = 'supsystic-social-sharing-show-only-on-mobile';
     }
     if (!$this->project->isPopupShow() && $this->project->isShowOnClick()) {
         $classes[] = 'supsystic-social-sharing-click';
     }
     if ($this->project->has('spacing')) {
         $classes[] = 'supsystic-social-sharing-spacing';
     }
     if ($this->project->isShowAtSidebar()) {
         $classes[] = 'supsystic-social-sharing-fixed';
         $classes[] = 'supsystic-social-sharing-' . $this->project->getExtra('left');
         if (function_exists('is_admin_bar_showing') && is_admin_bar_showing()) {
             $classes[] = 'supsystic-social-sharing-adminbar';
         }
     } else {
         $classes[] = 'supsystic-social-sharing-content';
         $alignInContent = $this->project->getAlignTypeInContent();
         switch ($alignInContent) {
             case 'left':
                 $classes[] = 'supsystic-social-sharing-content-align-left';
                 break;
             case 'right':
                 $classes[] = 'supsystic-social-sharing-content-align-right';
                 break;
             default:
                 $classes[] = 'supsystic-social-sharing-content-align-center';
         }
     }
     return $classes;
 }