[РЕШЕНО] Пред./след. страница на главной

Главные вкладки

Аватар пользователя howt howt 9 марта 2010 в 14:40

Здравствуйте.

Не пинайте сильно Smile Вопрос такой: у меня на главной странице (внизу) для перелистывания есть ссылочки "1,2,3 стр., первая, пред.". Но они все оформлены в виде списка (ul/li). В каком файлике мне нужно покопаться, чтобы найти эту часть шаблона? В node.tpl/page.tpl этого нет (да и не должно быть по логике).

Заранее спасибо.

Комментарии

Аватар пользователя howt howt 10 марта 2010 в 11:35

Пытаюсь разобраться с функцией. По-моему li определяется не в ней. А в том коде, который вызывает эту функцию.

Аватар пользователя glu2006 glu2006 10 марта 2010 в 13:35

Я не знаю куда вы разбираетесь Smile но в конце функция theme_pager возвращает данные отстроенные функцией theme_item_list() вот она и строит эти ul li но ее переопределять надо осторожно поскольку она как и pager используется везде, по всему проекту.
А с большего ставьте задачу поконкретней поскольку очень часто в зависимости от того что нужно сделать появляются и способы решения :).

Аватар пользователя howt howt 10 марта 2010 в 15:30

В моём переопределении данные возвращаются с помощью функции theme():

return theme('item_list', $items, NULL, 'ul', array('class' => 'pager'))

Если я правильно понимаю, то уже theme() вызывает theme_item_list().

В принципе я ведь могу получить от функции theme эту строку (которую я возвращаю в переопределённой theme_pager() ) и выкинуть из неё ненужные теги? Или это будет "корявое" решение?

p.s. Нигде не могу найти подробного описания аргументов для theme()

Спасибо.

Аватар пользователя glu2006 glu2006 10 марта 2010 в 15:41

howt wrote:
В моём переопределении данные возвращаются с помощью функции theme():

return theme('item_list', $items, NULL, 'ul', array('class' => 'pager'))

Если я правильно понимаю, то уже theme() вызывает theme_item_list().

В принципе я ведь могу получить от функции theme эту строку (которую я возвращаю в переопределённой theme_pager() ) и выкинуть из неё ненужные теги? Или это будет "корявое" решение?

p.s. Нигде не могу найти подробного описания аргументов для theme()

Спасибо.

вызов функции theme('item_list', blablabla) и theme_item_list(blablabla) это одно и то-же согласно изученной мат части Smile

Аватар пользователя howt howt 10 марта 2010 в 15:44

О.. что-то я подобное подозревал Smile API docs рулят.
Так всё-таки: если я сам эту строку отработаю и выкину то, что не надо - насколько это будет допустимо?

Аватар пользователя glu2006 glu2006 10 марта 2010 в 17:21

howt wrote:
О.. что-то я подобное подозревал Smile API docs рулят.
Так всё-таки: если я сам эту строку отработаю и выкину то, что не надо - насколько это будет допустимо?

Так theme функции для того и придуманы чтоб их перекрывать. Надеюсь как знаете или уже почитали? Smile

Аватар пользователя howt howt 10 марта 2010 в 17:54

Всё, я разобрался.
Я скопировал из API theme_item_list в template.php, обозвав эту функцию theme_item_list2. Из неё выкинул "li" и в theme_pager вернул (return) значение именно theme_item_list2().
Не знаю, насколько это красивое решение, но работает.

Большое спасибо за помощь и извините за ламерские вопросы Smile

Аватар пользователя glu2006 glu2006 11 марта 2010 в 9:37

howt wrote:
Всё, я разобрался.
Я скопировал из API theme_item_list в template.php, обозвав эту функцию theme_item_list2. Из неё выкинул "li" и в theme_pager вернул (return) значение именно theme_item_list2().
Не знаю, насколько это красивое решение, но работает.

Большое спасибо за помощь и извините за ламерские вопросы :)

Разобрались Вы не в ту сторону, достаточно было theme_item_list скопировать в template.php вашей темы и переименовать ее в phptemplate_item_list() и более нигде ничего по коду не менять, а уже в скопированной функции настроить вывод таким образом каким надо.