Прошу подсказать каким образом можно обернуть теги списка выводимого пэйджинатором в теги div?
Искал, читал, но так и не понял, где именно формируется этот список.
Этого нельзя делать. В UL могут идти только элементы списка LI. А внутри уже - обёртывайте содержимое дивом.
Функции темизации пейджера находятся в файле includes/pager.inc с префиксом theme_ в имени функции. Например, theme_pager. Ну а дальше о темизации читайте на сайте, материала много. Главное - ни в коем случае не править прямо там!
А вообще то тока идиот будет заворачивать элемент списка в блок ... и даже закрыв глаза на то, что это делается динамически, такая конструкция эстетически неверна!
<ul> <li>1</li> <li>2</li> </ul>
Если вы хотите сделать что-то на подобие гламурных кнопок, то я бы посоветовал .apend() с пустым блочным элементом, на который можно навешать графику. А вообще всё решается CSS по большей части.
Для проверки на наличие элемента, чтобы не гонять код лишний раз, можно оберунть в условие
Опишу подробно свои действия:
1. Создаю файл template.php в папке с темой
2. В файл копирую код отсюда [ru-api=theme_pager]theme_pager[/ru-api]
3. Переименовываю в коде имя функции theme_pager на mytheme_pager
4. Заменяю (пока одну) строку: 'data' =>$li_first, на 'data' =>'<div>'.$li_first.'</div>',
5. Чищу кэш.
Ну раз должно работать, то буду разбираться, где совершил ошибку.
Большое всем спасибо, кто уделил время.
p.s.: Еще очень интересует вариант с оберткой на jQuery и вопрос почему в моем варианте она дублируется. Я пробовал сделать тоже самое отдельно в файле html там все работает хорошо, а вот Друпал почему-то дублирует.
Скажите, а зачем вам обертывать теги li в тег div? Мне почему-то кажется, что вы не можете решить какую-то элементарную задачу по верстке пейджера, и вместо нормального решения на CSS городите мегаогород из архиглупого решения по обертке li в div (нарушая семантику документа) да еще и приправляя это JS...
В своем втором комменте я уже написал, почему li в div
Ну а простым CSS не обойтись - нужно циферки оформить в закругленные кнопочки. Минимум два контейнера нужно: первый - левая сторона и бэкграунд одной картинкой, второй - правая сторона.
Ну а простым CSS не обойтись - нужно циферки оформить в закругленные кнопочки. Минимум два контейнера нужно: первый - левая сторона и бэкграунд одной картинкой, второй - правая сторона.
pie ... .append() + float; + position по вкусу ....
Пипец... Решение проблемы написано в самом первом комментарии к этой теме. Чего за бурную деятельность из-за элементарной темизации вы все развели? Отправьте автора учиться темизации, он на 99% всё сделал уже, а вы его только запутаете сейчас.
"orion76" wrote:
orion76
Что это такое? У Вас постраничная навигация всегда одинакового размера по ширине? Наверное, "1" занимает столько же места, столько и "100"?
Пипец... Решение проблемы написано в самом первом комментарии к этой теме. Чего за бурную деятельность из-за элементарной темизации вы все развели? Отправьте автора учиться темизации, он на 99% всё сделал уже, а вы его только запутаете сейчас.
Cyber, научитесь с людьми общаться сначала, я Вам не мальчик. Если есть личные претензии ко мне - пишите в ЛС. Если не согласны по теме с моим решением - пишите мотивированные обоснования.
P. S. Сообщение, которое Вы цитируете, было написано не одному Вам. Если так будет понятнее.
И что же я сказал такого, интересно? Я попросил не путать человека, когда он уже почти всё сделал сам. Вы потом взяли и написали аналогичное решение моему, только дали человеку совершенно ненужный, чужой код, который ему якобы нужно ковырять. Когда он сам уже сделал такой же точно, но под себя:
Передо мной школьник. Обижаться не буду, всё понятно. Дитя, которое решило тут всем показать, какое оно невъебенное, но, увы и ах, тут есть и другие люди, не тупее! Обидно, понимаю Учите уроки, завтра в школу.
Я рад, что ваша истерозность поутихла. А теперь предлагаю потереть всё что не относится к теме и сделать этот топик чуточку более полезным для широких масс.
Я школу закончил 6 лет назад. Это так, к сведению.
Второе - чтобы в тебя, бедный мой друг, не тыкали носом - не тупи, а читай, что пишут в теме остальные, и не повторяй в сотый раз чужой ответ, да ещё и приводя при этом кусок непонятного, ненужного кода.
Я школу закончил 6 лет назад. Это так, к сведению.
Лучше бы ты этого не писал -- сошёл бы за взрослого ...
"CSoft" wrote:
Второе - чтобы в тебя, бедный мой друг, не тыкали носом - не тупи, а читай, что пишут в теме остальные, и не повторяй в сотый раз чужой ответ, да ещё и приводя при этом кусок непонятного, ненужного кода.
Чем этот код не подходит для темы с "Pager" в тайтле? Зайдёт другой человек и получит гораздо больше информации нежели твой голимый посыл в первом посте. Этот код делает вполне адекватный и удобный постраничник, если чё.
Лучше бы ты этого не писал -- сошёл бы за взрослого ...
Что ви говорите xD Взрослый - это наверное лет c 40. Интересно-интересно!
Я не стесняюсь того, что я молодой программист. И никогда этого стесняться не буду, не намерен даже. Мне не 13 лет, чтобы стесняться.
Знаешь, читаю твои сообщения - вот тут точно ничего взрослого не вижу. И эти посылы на хуй - взрослый человек так будет общаться? Чёрта с два. И показывать свою невъебенность, как это ты делаешь на протяжении всей темы - взрослый человек тоже не будет. Уверен, что у нас или похожий возраст, или ты младше меня. По крайней мере, судя по твоей манере общения. Юношеский максимализм.
"Cyber" wrote:
Чем этот код не подходит для темы с "Pager" в тайтле?
Я уже сто раз ответил выше. Перечитай. Не путайте человека, пусть с простым разберётся сначала. IMHO.
На этом из темы выхожу. Всё, что мог - подсказал. А с тобой разговор у нас так никогда не закончится, да и бесполезен он. Два барана друг другу ничего никогда не докажут.
Я не стесняюсь того, что я молодой программист. И никогда этого стесняться не буду, не намерен даже. Мне не 13 лет, чтобы стесняться.
прекращай играть в доморощенного психолога, оставь это занятие для кого-то другого.
"CSoft" wrote:
На этом из темы выхожу. Всё, что мог - подсказал. А с тобой разговор у нас так никогда не закончится, да и бесполезен он. Два барана друг другу ничего никогда не докажут.
не обобщай, и даже не пытайся думать, что я кого пытаюсь сопоставить, либо обидеть, мне это тупо не нужно
"CSoft" wrote:
Уверен, что у нас или похожий возраст, или ты младше меня. По крайней мере, судя по твоей манере общения. Юношеский максимализм.
судя по всему ты пытаешься сделать какие то выводы сидя в интернете и откапывая потайной смысл между строк. выйди подыши свежим воздухом
Комментарии
Этого нельзя делать. В UL могут идти только элементы списка LI. А внутри уже - обёртывайте содержимое дивом.
Функции темизации пейджера находятся в файле includes/pager.inc с префиксом theme_ в имени функции. Например, theme_pager. Ну а дальше о темизации читайте на сайте, материала много. Главное - ни в коем случае не править прямо там!
С тем что не справлюсь с php - смирился. Пробую обернуть при помощи jQuery, но и тут результат не совсем ожидаемый.
$('ul.pager li').wrap('<div class="pager-wrapper-1"><div class="pager-wrapper-2"></div></div>');
В коде происходит двойная "обертка":
<div class="pager-wrapper-2">
<div class="pager-wrapper-1">
<div class="pager-wrapper-2">
<li class="pager-current first">1</li>
</div>
</div>
</div>
</div>
Нельзя так делать вообще. Нарушаете стандарты кодирования html-документа.
Обертка списка в дивы? С этим понятно - не проснулся еще )
Прочитайте мой первый комментарий. Там все ответы. И решение Вашей задачи.
Подскажите почему происходит двойная обертка?
$('ul.pager li').wrapInner('<span class="pager-wrapper-1"><span class="pager-wrapper-2"></span></span>');
<span class="pager-wrapper-1">
<span class="pager-wrapper-2">
<span class="pager-wrapper-1">
<span class="pager-wrapper-2">1</span>
</span>
</span>
</span>
</li>
Изменяется перекрытием этой функции темизации [ru-api=theme_item_list]
Оборачивать li в div НЕ РЕКОМЕНДУЕТСЯ http://www.xiper.net/manuals/html/tags/ul.html
Я бы не стал её трогать, ибо обернутся все списки на сайте. Советую работать с theme_pager.
Можно и так, в конце функции сформировать свой список $items.
Я бы в $items[]['data'] вокруг переменной бы и делал обёртку.
Както так?
template.php
<?php
function theme_pager($tags = array(), $limit = 10, $element = 0, $parameters = array(), $quantity = 9) {
...
if (
$li_first) {$items[] = array(
'class' => 'pager-first',
'data' => '<div class="wr1">'.$li_first.'</div>',
);
}
...
}
?>Да. Только прочитайте о правилах темизации.
йобте ...
.wrap('<div class="some" />');
.wrap('<div id="some" />');
.wrapInner('<div class="some" /><div class="some2" />');
.wrapInner('<div id="some" class="some" />');
"Single-tag" style.
А вообще то тока идиот будет заворачивать элемент списка в блок ... и даже закрыв глаза на то, что это делается динамически, такая конструкция эстетически неверна!
<li>1</li>
<li>2</li>
</ul>
Если вы хотите сделать что-то на подобие гламурных кнопок, то я бы посоветовал .apend() с пустым блочным элементом, на который можно навешать графику. А вообще всё решается CSS по большей части.
Для проверки на наличие элемента, чтобы не гонять код лишний раз, можно оберунть в условие
// code goes here
}
С "Single-tag" style происходит тоже самое - двойное обертывание.
Не надо извращений... Делайте через темизацию. Уже почти сделали, только корректно имя функции поставьте и всё.
Опишу подробно свои действия:
1. Создаю файл template.php в папке с темой
2. В файл копирую код отсюда [ru-api=theme_pager]theme_pager[/ru-api]
3. Переименовываю в коде имя функции theme_pager на mytheme_pager
4. Заменяю (пока одну) строку:
'data' => $li_first,
на'data' => '<div>'.$li_first.'</div>',
5. Чищу кэш.
Результат - никаких изменений.
Советую поменять имя функции лучше на phptemplate_pager. Потом очистить кэш и всё будет работать - 100%.
Нет - не работает.
Подскажите а если вставлять внутрь li то с чем работать? Это все в коде theme_pager?
Это работает, ещё раз повторяю, - 100%. Я так тысячу раз оборачивал содержимое в нужные мне теги. Что-то делаете неправильно.
Так это и есть вставка внутрь тега li... То, что находится в ['data'] - оборачивается потом в li.
Ну раз должно работать, то буду разбираться, где совершил ошибку.
Большое всем спасибо, кто уделил время.
p.s.: Еще очень интересует вариант с оберткой на jQuery и вопрос почему в моем варианте она дублируется. Я пробовал сделать тоже самое отдельно в файле html там все работает хорошо, а вот Друпал почему-то дублирует.
Двойной вызов js или двойная вложенность li.
Идея навскидку...
Хотя делать это через js мне представляется порочной идеей.
Скажите, а зачем вам обертывать теги li в тег div? Мне почему-то кажется, что вы не можете решить какую-то элементарную задачу по верстке пейджера, и вместо нормального решения на CSS городите мегаогород из архиглупого решения по обертке li в div (нарушая семантику документа) да еще и приправляя это JS...
xD
В своем втором комменте я уже написал, почему li в div
Ну а простым CSS не обойтись - нужно циферки оформить в закругленные кнопочки. Минимум два контейнера нужно: первый - левая сторона и бэкграунд одной картинкой, второй - правая сторона.
pie ... .append() + float; + position по вкусу ....
count in css ... switch
Возможно я не совсем понятно выразился, но ваш пример не подходит. Оформить нужно каждую кнопку пэйджинатора.
background: url('images/button.png') ;
}
#selector a:hover{
background: url('images/button-hover.png') ;
Попробуйте ковырять это
<?php
/* Better pagination addon */
function YourThemeName_pager($tags = array(), $limit = 10, $element = 0, $parameters = array(), $quantity = 9) {
global $pager_page_array, $pager_total, $theme;
$pager_middle = ceil($quantity / 2);
$pager_current = $pager_page_array[$element] + 1;
$pager_first = $pager_current - $pager_middle + 1;
$pager_last = $pager_current + $quantity - $pager_middle;
$pager_max = $pager_total[$element];
// Prepare for generation loop.
$i = $pager_first;
if($pager_last > $pager_max) {
$i = $i + ($pager_max - $pager_last);
$pager_last = $pager_max;
}
if($i <= 0) {
$pager_last = $pager_last + (1 - $i);
$i = 1;
} // End of generation loop preparation.
$li_previous = theme('pager_previous', (isset($tags[1]) ? $tags[1] : 'назад' ), $limit, $element, 1, $parameters);
$li_next = theme('pager_next', (isset($tags[3]) ? $tags[3] : 'вперёд' ), $limit, $element, 1, $parameters);
$li_first = theme('pager_first', 1, $limit, $element, $parameters);
$li_last = theme('pager_last', $pager_max, $limit, $element, $parameters);
$show_first = ( $i > 1 ) ? true : false ;
if($pager_total[$element] > 1) {
if( $li_previous ) $items[] = array( 'class' => 'pager-previous', 'data' => $li_previous );
if( $show_first && $li_first ) $items[] = array( 'class' => 'pager-first', 'data' => $li_first );
if($i != $pager_max) {
if($i > 2) $items[] = array( 'class' => 'pager-ellipsis', 'data' => '…' );
for(; $i <= $pager_last && $i <= $pager_max; $i++) {
if($i < $pager_current ) $items[] = array( 'class' => 'pager-item', 'data' => theme('pager_previous', $i, $limit, $element, ($pager_current - $i), $parameters) );
if($i == $pager_current) $items[] = array( 'class' => 'pager-current', 'data' => $i );
if($i > $pager_current) $items[] = array( 'class' => 'pager-item', 'data' => theme('pager_next', $i, $limit, $element, ($i - $pager_current), $parameters) );
}
if ($i < $pager_max) $items[] = array( 'class' => 'pager-ellipsis', 'data' => '…' );
}
$show_last = ( $pager_max > ($i-1) ) ? true : false ;
if( $show_last && $li_last) $items[] = array( 'class' => 'pager-last', 'data' => $li_last );
if( $li_next) $items[] = array( 'class' => 'pager-next', 'data' => $li_next );
return theme('item_list', $items, NULL, 'ul', array('class' => 'pager'));
}
} // End pagination addon
?>
Пипец... Решение проблемы написано в самом первом комментарии к этой теме. Чего за бурную деятельность из-за элементарной темизации вы все развели? Отправьте автора учиться темизации, он на 99% всё сделал уже, а вы его только запутаете сейчас.
Что это такое? У Вас постраничная навигация всегда одинакового размера по ширине? Наверное, "1" занимает столько же места, столько и "100"?
molp, найдите свою ошибку и не мучайтесь. И не слушайте больше ничего, Вы уже всё сделали! Просто доделайте по-человечески!
Ололо, чё за пузырёж?
Cyber, научитесь с людьми общаться сначала, я Вам не мальчик. Если есть личные претензии ко мне - пишите в ЛС. Если не согласны по теме с моим решением - пишите мотивированные обоснования.
P. S. Сообщение, которое Вы цитируете, было написано не одному Вам. Если так будет понятнее.
Не надо узурпировать. Аналогично можно сказать и вам.
детский сад
И что же я сказал такого, интересно? Я попросил не путать человека, когда он уже почти всё сделал сам. Вы потом взяли и написали аналогичное решение моему, только дали человеку совершенно ненужный, чужой код, который ему якобы нужно ковырять. Когда он сам уже сделал такой же точно, но под себя:
Зачем его запутывать теперь? Не понятно.
Ахах, ну да, конечно:
Я детский сад, да
Ладно, предлагаю закрыть тему. Автору помогли в общем-то, а скубаться я не желаю. На ровном месте? Не стоит.
идите нахуй
так понятно?
Передо мной школьник. Обижаться не буду, всё понятно. Дитя, которое решило тут всем показать, какое оно невъебенное, но, увы и ах, тут есть и другие люди, не тупее! Обидно, понимаю
Учите уроки, завтра в школу.
Я рад, что ваша истерозность поутихла. А теперь предлагаю потереть всё что не относится к теме и сделать этот топик чуточку более полезным для широких масс.
Я не знаю такого слова, к сожалению.
Я бы ещё и Ваш аккаунт потёр, чтобы Вы слова подбирали в следующий раз. Малолетнее хамло.
по земле покатайтесь, можно потопать ногами, легче станет
Не переживайте за меня, за себя переживайте.
вот именно, следи за собой и не тыкай в меня своими школьными комплексами
Я школу закончил 6 лет назад. Это так, к сведению.
Второе - чтобы в тебя, бедный мой друг, не тыкали носом - не тупи, а читай, что пишут в теме остальные, и не повторяй в сотый раз чужой ответ, да ещё и приводя при этом кусок непонятного, ненужного кода.
Лучше бы ты этого не писал -- сошёл бы за взрослого ...
Чем этот код не подходит для темы с "Pager" в тайтле? Зайдёт другой человек и получит гораздо больше информации нежели твой голимый посыл в первом посте. Этот код делает вполне адекватный и удобный постраничник, если чё.
Что ви говорите xD Взрослый - это наверное лет c 40. Интересно-интересно!
Я не стесняюсь того, что я молодой программист. И никогда этого стесняться не буду, не намерен даже. Мне не 13 лет, чтобы стесняться.
Знаешь, читаю твои сообщения - вот тут точно ничего взрослого не вижу. И эти посылы на хуй - взрослый человек так будет общаться? Чёрта с два. И показывать свою невъебенность, как это ты делаешь на протяжении всей темы - взрослый человек тоже не будет. Уверен, что у нас или похожий возраст, или ты младше меня. По крайней мере, судя по твоей манере общения. Юношеский максимализм.
Я уже сто раз ответил выше. Перечитай. Не путайте человека, пусть с простым разберётся сначала. IMHO.
На этом из темы выхожу. Всё, что мог - подсказал. А с тобой разговор у нас так никогда не закончится, да и бесполезен он. Два барана друг другу ничего никогда не докажут.
Ну на пустом месте ведь... люди хватит уже.
Лучше бы ошибку подсказали как найти. Потому что 1% из 99 мне так и не хватило.
molp, Вы создали свою тему, так? Активировали. Внутри неё поместили файлик template.php и прописали там код, который приводили?
В общем, подробнее и по шагам, что делалось.
Большое спасибо вам. Просто обернул все значения ключей 'data' в контейнеры и получил нужный результат.
Ну да, так и надо было сделать
Вы ведь и код для этого давно составили. Так а почему не работало-то?
прекращай играть в доморощенного психолога, оставь это занятие для кого-то другого.
не обобщай, и даже не пытайся думать, что я кого пытаюсь сопоставить, либо обидеть, мне это тупо не нужно
судя по всему ты пытаешься сделать какие то выводы сидя в интернете и откапывая потайной смысл между строк. выйди подыши свежим воздухом