Новости Joomla

0 Пользователей и 1 Гость просматривают эту тему.
  • 117 Ответов
  • 24432 Просмотров
*

Imho

  • Осваиваюсь на форуме
  • 22
  • 0 / 0
Настройки/Обзор галереи/Общие установки/Отмечать новые категории ? - Нет.
Результат на 12 категорий на страницу, при 22 категориях и 1554 фото:
было Зарегистрировано запросов: 84
стало Зарегистрировано запросов: 56
Ай спасибо. Убрал 60 запросов!
Если еще будут варианты оптимизации - напишите пожалуйста, буду крайне признателен.

*

jem777

  • Завсегдатай
  • 1666
  • 119 / 2
На здоровье! Был только рад помочь. Жаль, что при этом мы остаемся без индикатора новых фотографий в категориях, но ничего - это того стоит. 8)

Осталось самое главное - как то урегулировать вывод карусели. По умолчанию он туда грузит ВСЕ превьюшки. Вес страницы при 100 фотографиях в категории при этом уже зашкаливает за 1 Мб!
Но тут уже в коде надо копаться. Я в этом увы, не силен. :(
*

Beer

  • Moderator
  • 1097
  • 41 / 1
  • БИРУ - БИР!
Еще ключевых слов там нету ну и некоторых настроек. Сам юзаю 4images и приглядываю ей замену под Joomla. Как узнать сколько запросов у 4images?
*

AnnaOl

  • Захожу иногда
  • 209
  • 0 / 0
Сейчас Вм ответят: сделайте пинг и узнаете. :)
*

jem777

  • Завсегдатай
  • 1666
  • 119 / 2
Код
<div id="motioncontainer">
      <div id="motiongallery">
        <div style="white-space:nowrap;" id="trueContainer">
<?php
    }
    if(count($rows) > 0)
    {  
      foreach($rows as $row1)
      {
?>
          <a href="<?php echo JRoute::_($this->joom_componenturl.'&func=detail&id='.$row1->id._JOOM_ITEMID).'#joomimg'; ?>">
<?php

        if($row1->id == $this->id)
        {
?>
            <img src="<?php echo _JOOM_LIVE_SITE.$this->joom_thumbnailpath.$row1->imgthumbname; ?>" name="jg_mini_akt" class="jg_minipic" alt="<?php echo $row1->imgtitle; ?>" id="jg_mini_<?php echo $row1->id; ?>" /></a>
<?php
        }
        elseif($row1->id != $this->id)
        {
?>
            <img src="<?php echo _JOOM_LIVE_SITE.$this->joom_thumbnailpath.$row1->imgthumbname; ?>" class="jg_minipic" alt="<?php echo $row1->imgtitle; ?>" id="jg_mini_<?php echo $row1->id; ?>" /></a>
<?php
        }
      }
    }
    if($config->jg_motionminis == 2)
    {
?>
        </div>
      </div>
    </div>

Этот код в файле joom.viewdetails.html.php видимо отвечает за вывод карусели. Насколько я понял, он считывает число фотографий и грузит их все в карусель. Вот как бы сделать ограничение на заданное число (например 20) на вывод фото в карусели?
« Последнее редактирование: 19.11.2009, 10:17:47 от jem777 »
*

Beer

  • Moderator
  • 1097
  • 41 / 1
  • БИРУ - БИР!
Не двадцать, а 10 до просматриваемой фотографии и 10 после просматриваемой фотографии - т.е. карусель должна не просто 20 первых фото показать, а 20 которые расположены рядом с просматриваемой фотографией.
*

jem777

  • Завсегдатай
  • 1666
  • 119 / 2
Да, вернее так. Это хорошо реализовано в Тругаллери. Пытаюсь сделать подобную конструкцию. Пока не получается.))
*

octopus

  • Захожу иногда
  • 169
  • 8 / 0
  • Во всём можно разобраться... Если захотеть.
я так понимаю желание гружить только 20 шт, а остальные фото в карусель догружаются как?
*

jem777

  • Завсегдатай
  • 1666
  • 119 / 2
Нет, желание грузить именно в карусель по 20 штук. Он туда грузит по умолчанию все превьюшки из категории. А если их у меня 300 штук в этой категории? Вы посмотрите какой у вас обьем страницы получается при этом.
*

Beer

  • Moderator
  • 1097
  • 41 / 1
  • БИРУ - БИР!
Остальные подгрузятся когда откроешь другую фотографию. По аналогии карусель можно заменить блоком, который бы выводил все превью над фотографией - какой это  будет по размеру блок? Там блин на несколько страниц выйдет!
Что-то похожее есть в Coppermine-юзал одно время ее...

Мы же обсуждаем галерею, в которой не 15-20 фотографий, а 15-20 тыс. фото как минимум...
*

jem777

  • Завсегдатай
  • 1666
  • 119 / 2
Совершенно верно, т.е. превьюшки должны грузиться динамически, например, 10 слева от просматриваемой фотографии и 10 справа. Незачем их всех грузить одновременно.
Но по блокам не понял..зачем? Карусель удобнее и занимает меньше места, тем более сейчас он и так грузит все превью.

Я в коде не силен...но тут, насколько я понимаю, получается так что он вытягивает весь массив, считывает все данные и выводит все превью.
Хотелось бы изменить код таким образом, чтобы он вытягивал из этого массива превью динамически (не все, а ограниченное кол-во по мере просмотра).
Самому изменить код - знаний, увы не хватает. Поэтому прошу совета у более опытных товарищей, может кто поможет с этим? Или хотя бы подскажет в каком направлении думать?
*

jem777

  • Завсегдатай
  • 1666
  • 119 / 2
В общем переделал карусель как в Тругаллери. Теперь он грузит в карусель не все превью, а например 10 штук далее от просматриваемой фотографии.
Для этого потребуется изменить код в файле joom.viewdetails.html.php:

находим код с 302 строки по 344:
Код
  <div class="jg_minis">
<?php
    if($config->jg_motionminis == 2)
    {
?>
    
    <div id="motioncontainer">
      <div id="motiongallery">
        <div style="white-space:nowrap;" id="trueContainer">
<?php
    }
    if(count($rows) > 0)
    {  
      foreach($rows as $row1)  
      {
?>
          <a href="<?php echo JRoute::_($this->joom_componenturl.'&func=detail&id='.$row1->id._JOOM_ITEMID).'#joomimg'; ?>">
<?php

        if($row1->id == $this->id)
        {
?>
            <img src="<?php echo _JOOM_LIVE_SITE.$this->joom_thumbnailpath.$row1->imgthumbname; ?>" name="jg_mini_akt" class="jg_minipic" alt="<?php echo $row1->imgtitle; ?>" id="jg_mini_<?php echo $row1->id; ?>" /></a>
<?php
        }
        elseif($row1->id != $this->id)
        {
?>
            <img src="<?php echo _JOOM_LIVE_SITE.$this->joom_thumbnailpath.$row1->imgthumbname; ?>" class="jg_minipic" alt="<?php echo $row1->imgtitle; ?>" id="jg_mini_<?php echo $row1->id; ?>" /></a>
<?php
        }
      }
    }
    if($config->jg_motionminis == 2)
    {
?>
        </div>
      </div>
    </div>
<?php
    }
?>
  </div>

закомментируем или меняем на:
Код
<div class="jg_minis">
<?php
    if($config->jg_motionminis == 2)
    {
?>
    <div id="motioncontainer">
 <div id="motiongallery">
<div style="white-space:nowrap;" id="trueContainer">

<?php
$database = & JFactory::getDBO();
 
        $database->setQuery(" SELECT * FROM #__joomgallery WHERE catid = '$this->catid' AND approved  = '1' AND published = '1' AND id <= '$this->id' ORDER BY id desc LIMIT 10 ");
        $rows = $database->loadObjectList();

foreach($rows as $row1)  
      {
?>
          <a href="<?php echo JRoute::_($this->joom_componenturl.'&func=detail&id='.$row1->id._JOOM_ITEMID).'#joomimg'; ?>">
<?php

        if($row1->id == $this->id)
        {
?>
            <img src="<?php echo _JOOM_LIVE_SITE.$this->joom_thumbnailpath.$row1->imgthumbname; ?>" name="jg_mini_akt" class="jg_minipic" alt="<?php echo $row1->imgtitle; ?>" id="jg_mini_<?php echo $row1->id; ?>" /></a>
<?php
        }
        elseif($row1->id != $this->id)
        {
?>
            <img src="<?php echo _JOOM_LIVE_SITE.$this->joom_thumbnailpath.$row1->imgthumbname; ?>" class="jg_minipic" alt="<?php echo $row1->imgtitle; ?>" id="jg_mini_<?php echo $row1->id; ?>" /></a>
<?php
        }
      }

?>  
         </div>
       </div>
     </div>
<?php
    }
?>
  </div>

Имеем на выходе +1 запрос, но зато вес страницы при включенной карусели стал куда более легче. Если надо больше превьюшек включить в карусель - меняем число запросов с 10 на другое число.
« Последнее редактирование: 21.11.2009, 15:37:27 от jem777 »
*

AnnaOl

  • Захожу иногда
  • 209
  • 0 / 0
Что-то у меня вырубило галерею после добавления кода этого... :( Не всю, а в детальных посмотрах.
*

jem777

  • Завсегдатай
  • 1666
  • 119 / 2
Вроде нигде кроме этого файла изменений не вносил. Проверил на 2 сайтах, правда пока на локалке. Так что на реальном сервере могут и баги вылезти.
*

jem777

  • Завсегдатай
  • 1666
  • 119 / 2
Изменил запрос, так как при выводе карусели были ошибки очередности. Навигация галереи работает по очередности (т.е. по порядковому номеру), карусель по ID.

было:
Код
" SELECT * FROM #__joomgallery WHERE catid = '$this->catid' AND approved  = '1' AND published = '1' AND id <= '$this->id' ORDER BY id desc LIMIT 10 "

стало:
Код
" SELECT * FROM #__joomgallery WHERE catid = '$this->catid' AND approved  = '1' AND published = '1' AND ordering <= '$this->ordering' ORDER BY ordering DESC LIMIT 10 "
*

jem777

  • Завсегдатай
  • 1666
  • 119 / 2
Водяной знак там опция. Но, включив ее и добавляя фотку 100кб, на выходе имеем уже 250кб. Поюзал и отключил нах.
Про остальное самому интересно.

С водяным знаком можно сделать так: ищем файл joom.specialimages.php и находим там значения в коде
Код
$this->Joom_Counter($id);
    if($orig != 1)
    {
      $cache = 'cache';
      $quali = 80;
    }
    else
    {
      $cache = 'nocache';
      $quali = 95;
    }

Меняем на любое меньшее значение. Я например выставил значение 40 и 45. Так скрипт даже уменьшил выходной размер фотографии, причем очень сильно. И что самое приятное - не слишком ухудшая качество на выходе. Так фото 952,69 KB (1920 x 1440 px) он уменьшил до 219 KБ (1920 x 1440 px) - качество вполне смотрибельно. Для меня так и вообще нормально. Причем эта установка работает и на средний эскиз, он тоже сильно худеет в размерах. А качество мини-превьюшек можно задать в настройках самой галереи. Это находится в - Основные настройки/Обработка фото/Качество мини-эскизов - 100. Наверно можно смело указать где то в 70-80 процентов и выиграть еще пару сотен килобайт.
Просто в настройках галереи они упустили этот очень важный параметр. Искал, вроде не нашел.
« Последнее редактирование: 22.11.2009, 18:21:33 от jem777 »
*

AnnaOl

  • Захожу иногда
  • 209
  • 0 / 0
Оставила при загрузке больших фото - 80% Нормальное качество. Артефактов нет.
*

Imho

  • Осваиваюсь на форуме
  • 22
  • 0 / 0
С водяным знаком можно сделать так: ищем файл joom.specialimages.php и находим там значения в коде
Код
$this->Joom_Counter($id);
    if($orig != 1)
    {
      $cache = 'cache';
      $quali = 80;
    }
    else
    {
      $cache = 'nocache';
      $quali = 95;
    }

Меняем на любое меньшее значение. Я например выставил значение 40 и 45. Так скрипт даже уменьшил выходной размер фотографии, причем очень сильно. И что самое приятное - не слишком ухудшая качество на выходе. Так фото 952,69 KB (1920 x 1440 px) он уменьшил до 219 KБ (1920 x 1440 px) - качество вполне смотрибельно. Для меня так и вообще нормально. Причем эта установка работает и на средний эскиз, он тоже сильно худеет в размерах. А качество мини-превьюшек можно задать в настройках самой галереи. Это находится в - Основные настройки/Обработка фото/Качество мини-эскизов - 100. Наверно можно смело указать где то в 70-80 процентов и выиграть еще пару сотен килобайт.
Просто в настройках галереи они упустили этот очень важный параметр. Искал, вроде не нашел.
Уже загруженные фотографии можно модифицировать с учетом новых настроек?
Заново закачивать не вариант. :)
*

AnnaOl

  • Захожу иногда
  • 209
  • 0 / 0
Галерея обрабатывает при добавлении фото. Я это выяснила после изменений параметров в своей галерее. Сначала закачала 800х Потом изменила на 550. Зашла, кликнула свойства: он ее свиду ужал до 550х, но в свойствах она по прежнему 800х
*

jem777

  • Завсегдатай
  • 1666
  • 119 / 2
Мне показалось, что при выводе он динамически меняет размер файлов. Т.е. средние и большие эскизы в галерее начинают весить по разному, в зависимости от этих установок.
Галерея у меня целиком импоритрованная и Тругаллери. Система Joomla 1.5 на локалке в денвере.
*

Beer

  • Moderator
  • 1097
  • 41 / 1
  • БИРУ - БИР!
Я право не помню как там загрузка устроена (ставил на один сайт), но на входе (на загрузке) надобно ставить ограничение на размер файла, как это делается на всех нормальных галереях. Например 150-200кб. и ограничение на размер по пикселям.
 (1920 x 1440 px)  - у кого такой монитор есть?
 Ну и нафик грузить такие фоты?
 Ну типо есть определенные правила и требования (стандарты на фотогалерею), а остальное - обвес и бусы.
 Еще нужен размер альбома юзера в МБ.
*

jem777

  • Завсегдатай
  • 1666
  • 119 / 2
Я право не помню как там загрузка устроена (ставил на один сайт), но на входе (на загрузке) надобно ставить ограничение на размер файла, как это делается на всех нормальных галереях. Например 150-200кб. и ограничение на размер по пикселям.
 (1920 x 1440 px)  - у кого такой монитор есть?
 Ну и нафик грузить такие фоты?
 Ну типо есть определенные правила и требования (стандарты на фотогалерею), а остальное - обвес и бусы.
 Еще нужен размер альбома юзера в МБ.

1. Можно ставить ограничение на объем загружаемого файла. Настройки/Права пользователей/Загрузка пользователем через "Моя галерея"/Макс. размер всех файлов - 2000000 (в байтах)
2. По размерам самих фото ограничений нет.
3. Что мне грузить - я буду решать сам, ок?
4. Нужный размер альбома юзера - Настройки/Права пользователей/Загрузка пользователем через "Моя галерея"/Макс. число фотографий - 500 (или любое требуемое значение).
*

Beer

  • Moderator
  • 1097
  • 41 / 1
  • БИРУ - БИР!
 Надо ограничение на загрузку для юзера приделать как-то и размер его всех фоток загруженных сделать изменяемым через админку, типа дисковой квоты. Иначе лить будут мегафайтные фотки, а это не видеогалерея все же, а фото. Более-менее логично сделано в Coppermine Photo Gallery, в Gallery2 вообще гуд, в 4images нету ограничения дисковой квоты, но есть на размер фото по весу и пикселям, причем на админа оно не действует (хак) - оно правильно, он же админ!
*

jem777

  • Завсегдатай
  • 1666
  • 119 / 2
Я же вам указал где это можно выставить. Попробуйте.
*

AnnaOl

  • Захожу иногда
  • 209
  • 0 / 0
Есть горячая необходимость сделать ограничение как на фото.ру или фотосайте.ру: раз в три дня 1 фото. Или раз в три дня 3 фото. Что бы придумать здесь? Есть ведь народ без башни - как пойдет постить - не остановить.
*

jem777

  • Завсегдатай
  • 1666
  • 119 / 2
Видимо придется залезать в код опять и не слабо. Может через куки или сессии?
*

Beer

  • Moderator
  • 1097
  • 41 / 1
  • БИРУ - БИР!
 Такая фича есть в 4images, и там есть описание этого хака (их 2 варианта). Т.е. кто шарит - могет понять наверное методу подхода - http://www.4homepages.de/forum/index.php?topic=7701.0
 Имхо это хорошо для конкурса, а не для повседневной жизни. Куда важнее дисковая квота для юзера и ограничения на размер загружаемых фоток. При размере фото 100-150кб (ну 200...) загрузить можно предостаточно даже на квоту 10мег.
*

jem777

  • Завсегдатай
  • 1666
  • 119 / 2
Там все завязано на сессиях. И много кода. В общем идея такая, что при заходе юзера ставим ему сессию сроком на 3 дня. Перед добавлением фото в галерею, проверяем сессию, и если она не просрочена - даем доступ.
*

AnnaOl

  • Захожу иногда
  • 209
  • 0 / 0
Там все завязано на сессиях. И много кода. В общем идея такая, что при заходе юзера ставим ему сессию сроком на 3 дня. Перед добавлением фото в галерею, проверяем сессию, и если она не просрочена - даем доступ.

Сколько такой хак стоит, интересно?
*

jem777

  • Завсегдатай
  • 1666
  • 119 / 2
Наверное не дешево. Очень нетривиальная задача. С доступом еще более менее понятно. А вот как юзера ограничить одним фото в день? Ума не приложу.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Водяной знак watermark перестает работать

Автор xSPiRiTx

Ответов: 2
Просмотров: 2247
Последний ответ 21.05.2015, 22:53:53
от svab
Добавление водяного знака (watermark) на миниатюры и в детальный просмотр при аплоаде оригинального

Автор ardeus

Ответов: 0
Просмотров: 1270
Последний ответ 19.03.2015, 22:03:53
от ardeus
Watermark не работает

Автор DevilX

Ответов: 12
Просмотров: 3801
Последний ответ 01.02.2013, 18:38:14
от anthophyta
WaterMark в виде категории

Автор OverRND

Ответов: 3
Просмотров: 1969
Последний ответ 05.01.2013, 12:59:47
от jem777
Watermark на превь. и на файлы

Автор Akksimo

Ответов: 0
Просмотров: 1332
Последний ответ 23.03.2012, 00:56:51
от Akksimo