Посторінкова навігація в компоненті! Joomla 1

Ось приклад з одного мого компонента Код: // підключаємо клас і виставляємо дані за замовчуванням
jimport ( 'joomla.html.pagination');
$ Limit = $ ad_toplist;
$ Limitstart = JRequest :: getVar ( 'limitstart', 0, 'int');
$ Page_nav_links = '';
// отримуємо кількість
$ Query = "SELECT count (*) AS count FROM #__joopic WHERE published = 1 AND approved = 1";
$ Db-> setQuery ($ query);
$ Row = $ db-> LoadObject ();
$ Total = $ row-> count;
$ PageNav = new JPagination ($ total, $ limitstart, $ limit);
$ Page_nav_links = $ pageNav-> getPagesLinks ();
// сам запит до бази з урахуванням даних пагінацію
$ Query = 'SELECT a. *, C. *, A.id as aid,
CASE WHEN CHAR_LENGTH (a.imgalias) THEN CONCAT_WS (\ ': \', a.id, a.imgalias) ELSE a.id END as slug,
CASE WHEN CHAR_LENGTH (c.catailas) THEN CONCAT_WS (\ ': \', c.cid, c.catailas) ELSE c.cid END as catslug
FROM #__joopic AS a
LEFT JOIN #__joopic_catg AS c on c.cid = a.catid
WHERE a.published = 1 AND a.published = 1 AND a.approved = 1 AND c.published = 1
ORDER BY a.id desc limit '. $ Limitstart.', '. $ Limit.' ';
$ Db-> setQuery ($ query);
// далі вже обробка і виведення в циклі, в даному випадку не актуальне

А мені ось в цьому місці: "// далі вже обробка і виведення в циклі, в даному випадку не актуально" дуже навіть актуально!)) Ось все роблю як у Вас в цьому прикладі, але не працює і все! Ось після цієї передостанній рядки: "$ db-> setQuery ($ query);" яким чином надсилати запит? я вже й $ rL = $ db-> loadResult (); і $ rL = $ db-> LoadObject (); і $ rL = $ db-> loadObjectList (); і $ rL = $ db-> loadAssocList (); все перепробував! і все одно видає помилку: "Warning: Invalid argument supplied for foreach ()" Ну ось що я роблю не так. Чому масив порожній?

Ну раз запис не одна, то відповідно потрібно використовувати щось на зразок $ rows = $ db-> loadObjectList (). Правильно розумію, що це масив $ rows у вас порожній? Раз так, значить помилка в самому SQL запиті. Подивіться ще оригінал статті, там більш докладно (правда. Англійською).

Ось мій код: (тільки він вже написаний по джумлапедіі): ////////// Begin ///// $ db = JFactory :: getDBO (); $ Lim = $ mainframe-> getUserStateFromRequest ( "$ option.li mit", 'limit', 14, 'int'); // Ось що це за змінна $ option.limit. в будь-якому випадку навіть якщо я просто ставлю, наприклад 4, то все одно помилка та ж $ lim0 = JRequest :: getVar ( 'limitstart', 0, '', 'int'); $ Db-> setQuery ( "SELECT p.product_sku FROM #___product AS p INNER JOIN #___ product_type_1 AS pt ON p.product_id = pt.product_id WHERE p.product_publish = 'Y' ORDER BY p.product_name ASC", $ lim0, $ lim); $ RL = $ db-> loadObjectList (); $ D b-> setQuery ( "SELECT COUNT (*) FROM #___product AS p INNER JOIN #___ product_type_1 AS pt ON p.product_id = pt.product_id WHERE p.product_publish = 'Y'"); jimport ( 'joomla.html.pagination'); $ PageNav = new JPagination ($ db-> loadResult (), $ lim0, $ lim); foreach ($ rL as $ r) product_sku;> echo $ pageNav-> getPagesLinks (); //////////// End /////////// Всі запити робочі, стабільно відображають те, що треба, до впровадження пагінацію :) А ще, коли код спрацьовував (я просто постійна правки вносив, поки гугл, вже не встежити за ними), то відображався тільки getLimitBox () замість getListFooter (), це я вважаю дуже дивним. І LimitBox нікуди нічого не відправляв, тому що в форму нічого не обертається при кінцевому виводі. Кстати да, треба самому весь цей код обертати в або все-таки клас пагінацію сам повинен це робити? Прошу допомоги, добра людина! І так, спасибі за такий швидкий відгук!

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

Схожі статті