Jump to content


Photo
- - - - -

добавить свой класс CSS в изображение по умолчанию в JBZoo Image

jbzoo image

Best Answer al2401 , 01 November 2013 - 11:38

Не работает, добавляет класс всем изображениям, т.к. условия которые проверяются беруться из настроек, они не меняются в зависимости от того есть изображение или берется по умолчанию.

Спасибо за помощь.

 

Сделал так, в имени файла изображения по умолчанию должно быть слово "default" (например image_default.jpg)

        // render layout
        if ($image && $layout = $this->getLayout('jbimage-' . $template . '.php')) {
		if (strpos($image->url, 'default') === false) {
			$jbimageclass = 'jbimage';
		} else {
			$jbimageclass = 'jbimage no-image';
		}
            return $this->renderLayout($layout, array(
                    'imageAttrs' => $this->_buildAttrs(array(
                        'class'  => $jbimageclass,
Go to the full post


  • This topic is locked This topic is locked
4 replies to this topic

#1 al2401

al2401
  • JBZoo User (rus)
  • User rate: 0.7
  • posts: 173
  • topics: 56

Posted 01 November 2013 - 08:03

Добрый день, подскажите как добавить свой класс в изображение выбранное по умолчанию в JBZoo Image

 

код изображений по умолчанию:

<img class="jbimage" alt="12414" title="12414" src="http://kvartira.961-...f97f41b44a4.jpg" width="90" height="66">

 

требуется добавить класс img_default:

<img class="jbimage img_default" alt="12414" title="12414" src="http://kvartira.961-...f97f41b44a4.jpg" width="90" height="66">


  • 0

#2 Cheren-dow

Cheren-dow
  • JBZoo User (rus)
  • User rate: 95.7
  • posts: 5060
  • topics: 31

Posted 01 November 2013 - 09:04

Добрый день вы можете добавить свовой класс в 

сайт\media\zoo\applications\jbuniversal\elements\jbimage\jbimage.php

Найдите эту часть кода и добавьте класс. где jbimage стоит только jbimage не удаляйте - будут проблемы

// render layout
        if ($image && $layout = $this->getLayout('jbimage-' . $template . '.php')) {
            return $this->renderLayout($layout, array(
                    'imageAttrs' => $this->_buildAttrs(array(
                        'class'  => 'jbimage',
                        'alt'    => $alt,
                        'title'  => $title,
                        'src'    => $image->url,
                        'width'  => $image->width,
                        'height' => $image->height,
                    )),
                    'linkAttrs'  => $this->_buildAttrs(array(
                        'class'  => 'jbimage-link ' . $appendClass,
                        'title'  => $title,
                        'href'   => $url,
                        'rel'    => $rel,
                        'target' => $target,
                        'id'     => uniqid('jbimage-link-'),
                    )),
                    'link'       => $url,
                    'image'      => $image,
                )
            );
        }

Edited by Cheren-dow, 01 November 2013 - 09:05.

  • 0
Изображение
 

#3 al2401

al2401
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 0.7
  • posts: 173
  • topics: 56

Posted 01 November 2013 - 10:25

В ответе класс добавится для всех jbimage изображений, а нужно отдельно оформить только изображения которые выводятся по умолчанию,

 

другими словами,

в настройках jbimage указано изображение по умолчанию, для него нужно добавить отдельный класс


  • 0

#4 Cheren-dow

Cheren-dow
  • JBZoo User (rus)
  • User rate: 95.7
  • posts: 5060
  • topics: 31

Posted 01 November 2013 - 11:04

Замените условие на это

// render layout
        if ($image && $layout = $this->getLayout('jbimage-' . $template . '.php')) {
		
			$not_image_class = '';
			$defaultImage  = $this->config->get('default_image');
			$defaultEnable = (int)$this->config->get('default_enable', 0);
			
			if($defaultEnable & !empty($defaultImage)){
				$not_image_class = 'no-image';
			}
				
            return $this->renderLayout($layout, array(
                    'imageAttrs' => $this->_buildAttrs(array(
                        'class'  => 'jbimage ' . $not_image_class,
                        'alt'    => $alt,
                        'title'  => $title,
                        'src'    => $image->url,
                        'width'  => $image->width,
                        'height' => $image->height,
                    )),
                    'linkAttrs'  => $this->_buildAttrs(array(
                        'class'  => 'jbimage-link ' . $appendClass,
                        'title'  => $title,
                        'href'   => $url,
                        'rel'    => $rel,
                        'target' => $target,
                        'id'     => uniqid('jbimage-link-'),
                    )),
                    'link'       => $url,
                    'image'      => $image,
                )
            );
        }

Должно сработать


  • 0
Изображение
 

#5 al2401

al2401
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 0.7
  • posts: 173
  • topics: 56

Posted 01 November 2013 - 11:38   Best Answer

Не работает, добавляет класс всем изображениям, т.к. условия которые проверяются беруться из настроек, они не меняются в зависимости от того есть изображение или берется по умолчанию.

Спасибо за помощь.

 

Сделал так, в имени файла изображения по умолчанию должно быть слово "default" (например image_default.jpg)

        // render layout
        if ($image && $layout = $this->getLayout('jbimage-' . $template . '.php')) {
		if (strpos($image->url, 'default') === false) {
			$jbimageclass = 'jbimage';
		} else {
			$jbimageclass = 'jbimage no-image';
		}
            return $this->renderLayout($layout, array(
                    'imageAttrs' => $this->_buildAttrs(array(
                        'class'  => $jbimageclass,

  • 0





Also tagged with one or more of these keywords: jbzoo image

Click to return to top of page in style!