Форум русской поддержки Joomla!® CMS
21.01.2017, 17:19:02 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

Как изменить расстояние между колонками?

 (Прочитано 20484 раз)
0 Пользователей и 1 Гость смотрят эту тему.
drobinkin
Осваиваюсь на форуме
***

Репутация: +4/-0
Offline Offline

Пол: Мужской
Сообщений: 90


Старый пират


« : 12.01.2008, 05:17:30 »

Т.е. при выводе, допустим, Блог-Содержимое категории в 2 колонки. Тут на форуме (http://joomlaforum.ru/index.php/topic,4402.0.html) человек советует играться с отступами у table.contentpaneopen. Но если я правильно понимаю, это изменит ОБА отступа и у левой и правой колонок. Да, расстояние между ними изменится. Но также и изменится расстояния до внешних границ. А надо, чтобы только внутренние отступы менялись, т.е. у левой колонки правый отступ, а у правой - левый Azn. Но что-то мне подсказывает, что джумла (или джустина) не может контролировать, где левая, а где правая колонка. Или есть какое-то решение? Подскажите, пожалуйста.
Спасибо.
« Последнее редактирование: 12.01.2008, 18:04:35 от drobinkin » Записан
 
yunoshev
Разработчик расширений для Joomla 1.0
*

Репутация: +176/-1
Offline Offline

Пол: Мужской
Сообщений: 1235


« Ответ #1 : 12.01.2008, 18:46:31 »

Как на мой взгляд, ваша проблема решается добавлением кода в файле content.php в функции
Код:
function BlogOutput ( &$rows, &$params, $gid, &$access, $pop, &$menu, $limitstart, $limit, $total, $archive=NULL, $archive_page=NULL ) {
в строки
Код:
                // this is required to output a closing </tr> tag if one of the 3 conditions are met
                // 1. No of intro story output = number of columns
                // 2. Total number of items is reached before the number set to display
                // 3. Reached the last item but it does not fully fill the last row of output - a blank column is left
                if ( !( ( $z + 1 ) % $columns ) || $columns == 1 ) {
                    echo '</tr>';
                } else if ($i >= $total) {
                    echo '</tr>';
                } else if ( ( ( $z + 1 )==$intro ) && ( $intro % $columns ) ) {
                    echo '</tr>';
                }

Что нужно добавить? Проверку на количество заданных колонок и если их 2, то вставить просто-напросто между ними еще одну колонку без содержимого с шириной процентов в 2% (или сами подберете). А в коде этой же функции, чуть выше, найти строки, где задается параметр $width (он в коде вычисляется простым делением 100 на кол-во колонок), и уменьшить это значение на заданную вами ширину отступа.
Вот. Должно получиться.
Записан
drobinkin
Осваиваюсь на форуме
***

Репутация: +4/-0
Offline Offline

Пол: Мужской
Сообщений: 90


Старый пират


« Ответ #2 : 12.01.2008, 19:21:14 »

Я к сожалению, не совсем програмер, но попробую, спасибо Azn

Пока ждал ответа, в голову пришла мысль - это скорее к разрабам или к умельцам. По идее, ничего особо сложного Azn
Идея такая:
Ввести параметр типа X (это и будет величина расстояния между клонками)
А общий вывод колонок делать примерно так:
Число колонок и так задается в админке. Подозреваю, что вывод происходит циклически Azn
У первой ячейки в строке делать только правый отступ равным Х/2
у всех последующих, кроме последней - оба отступа равными Х/2
у последней в строке - только левый.
При переходе на следующую строку все повторяется.

Думаю, мысль понятна.
Причем, это по идее, должно работать независимо от числа колонок.
Что думаете?
Записан
yunoshev
Разработчик расширений для Joomla 1.0
*

Репутация: +176/-1
Offline Offline

Пол: Мужской
Сообщений: 1235


« Ответ #3 : 12.01.2008, 20:18:22 »

Думаете в правильном направлении!  Azn
Именно так и происходит вывод содержимого в этом цикле. Если вам это не срочно, то завтра я бы мог проверить эту версию в действии. Сегодня, к сожалению, много чего нужно сделать.
Записан
drobinkin
Осваиваюсь на форуме
***

Репутация: +4/-0
Offline Offline

Пол: Мужской
Сообщений: 90


Старый пират


« Ответ #4 : 12.01.2008, 20:30:52 »

В принципе, время терпит. Т.е. прямо сейчас не нужно. Azn
Хотя некое ученическо-исследовательское нетерпение (или жажда) присутствует Azn, но я с ними постараюсь справиться Azn
Да и думаю, другим будет интересно и полезно, ибо потребность у людей в этом решении (как я вижу) периодически возникает.
Записан
drobinkin
Осваиваюсь на форуме
***

Репутация: +4/-0
Offline Offline

Пол: Мужской
Сообщений: 90


Старый пират


« Ответ #5 : 13.01.2008, 04:35:02 »

Вдогонку:

Хорошо бы завести этот параметр расстояния между колонками в разделе настроек оформления вывода блога, скажем, сразу после указания числа колонок.
Ну или на худой конец в виде какого-нибудь .суффикса стиля, если такое возможно.
С первым мне кажется должно быть проще.
Записан
yunoshev
Разработчик расширений для Joomla 1.0
*

Репутация: +176/-1
Offline Offline

Пол: Мужской
Сообщений: 1235


« Ответ #6 : 14.01.2008, 21:22:10 »

приветствую! я сделал, завтра выложу. (Сегодня общаюсь с мобильного.)
Записан
yunoshev
Разработчик расширений для Joomla 1.0
*

Репутация: +176/-1
Offline Offline

Пол: Мужской
Сообщений: 1235


« Ответ #7 : 15.01.2008, 15:10:03 »

Здравствуйте!
Выкладываю решение для изменения расстояния между колонками
Цитировать
при выводе ... Блог-Содержимое категории
в ЛЮБОЕ количество колонок (в пределах разумного, разумеется  Wink ).

Сразу обговорю некоторые моменты:
1. Тестировалось на Joomla! 1.0.12 LE.
2. В некоторых случаях шинира самих колонок неравномерна (ширина первой отличается от ширины последней, хотя все задается одинаково, -- где глюк, не знаю).

Шаг 1
Открываем файл ххх\www\components\com_content\content.php. Переходим к строке №1277 вида:
Код:
...
echo '<td valign="top" '. $width .'>';
...
Это находится в теле функции:
Код:
function BlogOutput ( &$rows, &$params, $gid, &$access, $pop, &$menu, $limitstart, $limit, $total, $archive=NULL, $archive_page=NULL ) {

Нашли? Меняем их на следующий код:
Код:
$paddings = $params->def( 'paddings', 5 );
    $style_str = "";
    $cur_style = "";
    $cur_column = $z % $columns;
    if ($columns > 1) {
    if (($cur_column+1) < $columns) {
  $style_str .= 'padding-right: '.$paddings.'px;';
  }
    if (($cur_column+1) <= $columns && $cur_column != 0){
    $style_str .= ($style_str === "") ? 'padding-left: '.$paddings.'px;' : ' padding-left: '.$paddings.'px;';
    }
$cur_style = ' style="'. $style_str. '"';
}

echo '<td valign="top" '. $width . $cur_style. '>';
Впрочем, строку:
Код:
    $style_str .= ($style_str === "") ? 'padding-left: '.$paddings.'px;' : ' padding-left: '.$paddings.'px;';
можно упростить:
Код:
    $style_str .= 'padding-left: '.$paddings.'px;';

Шаг 2
Открываем файл ххх\www\administrator\components\com_menus\content_blog_category\content_blog_category.xml Переходим к строке №29 вида:
Код:
...
<param name="columns" type="text" size="3" default="2" label="Колонки" description="Когда показывается вступление, во сколько колонок выстраивать материалы" />
...
и добавляем сразу после нее новый параметр paddings -- ОТСТУПЫ (будет виден в админке):
Код:
<param name="paddings" type="text" size="3" default="5" label="Отступы" description="Какие отступы между колонками материалов" />
С помощью этого параметра мы будем указывать расстояние отступа (в пикселях). Внимание! Расстояние между соседними колонками будет, соответственно, больше в два раза!

Вот и все! Azn
К материалу прилагаю архив с измененными файлами.

P.S. Замечен глюк. После изменения кода, в браузере изменнения в силу не вступают, пока не поменяешь количество колонок...

[вложение удалено Администратором]
« Последнее редактирование: 15.01.2008, 16:29:08 от yunoshev » Записан
drobinkin
Осваиваюсь на форуме
***

Репутация: +4/-0
Offline Offline

Пол: Мужской
Сообщений: 90


Старый пират


« Ответ #8 : 21.01.2008, 16:23:08 »

Ух-ты, вот здорово, спасибо
Попробую погонять Azn
Записан
yunoshev
Разработчик расширений для Joomla 1.0
*

Репутация: +176/-1
Offline Offline

Пол: Мужской
Сообщений: 1235


« Ответ #9 : 21.01.2008, 19:46:35 »

На здоровье! Azn
Записан
jofinet
Гость
« Ответ #10 : 14.04.2008, 01:32:36 »

Я так понял, что после того, как мы внесли изменения в компонент Content - они работают и для Блог- Категории, и для Блог-Секции. Только, чтобы добавить форму управления отступами для Блог - Секция, нужно внести код из Шага 2 в com_menus\content_blog_section\content_blog_section.xml

Я правильно понял?
Записан
yunoshev
Разработчик расширений для Joomla 1.0
*

Репутация: +176/-1
Offline Offline

Пол: Мужской
Сообщений: 1235


« Ответ #11 : 14.04.2008, 07:36:35 »

да
Записан
cyberbattler
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 31


« Ответ #12 : 25.04.2008, 14:53:30 »

+1
Записан
ArieZ
Осваиваюсь на форуме
***

Репутация: +3/-0
Offline Offline

Пол: Мужской
Сообщений: 48



« Ответ #13 : 26.11.2008, 13:24:50 »

Привет всем! а как это можно применить для 1,5? очень нужно, после выравнивания по ширине текст как бы сливается в один, вот и думаю как можно сделать немного отступ. Думал вставить ещё один столбец между ними , но не знаю куда именно. =(
Записан
yunoshev
Разработчик расширений для Joomla 1.0
*

Репутация: +176/-1
Offline Offline

Пол: Мужской
Сообщений: 1235


« Ответ #14 : 26.11.2008, 15:50:07 »

с 1.5 не работаю Azn
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet