Jump to content
  • 0

Tabelka ze statystykami


Go to solution Solved by Spanner,

Question

Hej, niedawno udało mi się uzyskać do @Spanner poradę jak wstawić tabelkę pokazującą ilość rekordów w danej kategorii.

https://www.audiostereo.pl/ogloszenia_sprzet/ (tabelka w sidebarze)

Jednak jest z nią taki problem, że sumuje również ilość przedmiotów, które zdejmujemy za pomocą crona. Crona zmienia właściwość "record_approved" na -1. Jak zrobić, żeby pokazywało sumę przedmiotów bez tych widocznych?

 

Kod tabelki:

$return = <<<HTML
<div id="ogloszenia_kategorie_sprzet" class="ipsWidget ipsWidget_vertical ipsBox">
    <h3 class="ipsType_sectionTitle ipsType_reset">{$block->_title}</h3>
    <div class="ipsPad_half">
        <div class="ipsSideMenu">
            <ul class="ipsSideMenu_list">

HTML;

foreach( new \IPS\Patterns\ActiveRecordIterator( \IPS\Db::i()->select( '*', 'cms_database_categories', array( 'category_database_id=?', 30 ), 'category_position ASC' ), 'IPS\cms\Categories30' ) as $category )
{
    try
    {
        $return .= <<<HTML
        <li style="margin-left: 20px;">
        <a href="{$category->url()}" class="ipsSideMenu_item ipsTruncate ipsTruncate_line"><span class="ipsBadge ipsBadge_style1 ipsPos_right">{number="$category->records"}</span>{$category->_title}</a>
        </li>
HTML;
    }
    catch( \Exception $e ) {}
}


echo $return . '</ul>
        </div>
    </div>
</div>';

 

Link to post
Share on other sites

5 answers to this question

Recommended Posts

  • 0
  • Administrator
  • Solution
$where = array();
$where[] =  array( \IPS\cms\Records30::$databasePrefix . \IPS\cms\Records30::$databaseColumnMap['approved' ] .'=?', 1 );
$where[] =  array( \IPS\cms\Records30::$databasePrefix . \IPS\cms\Records30::$databaseColumnMap['container'] . '=?', $category->id );
$amount = (int) \IPS\Db::i()->select( 'COUNT(*)', \IPS\cms\Records30::$databaseTable, $where )->first();

to wstawiasz nad:

 

$return .= <<<HTML
        <li style="margin-left: 20px;">
        <a href="{$category->url()}" class="ipsSideMenu_item ipsTruncate ipsTruncate_line"><span class="ipsBadge ipsBadge_style1 ipsPos_right">{number="$category->records"}</span>{$category->_title}</a>
        </li>

i $amount wstawiasz tam w number...

  • Like 1
Link to post
Share on other sites
  • 0
  • Administrator

Ogólnie na 2 sposoby:

1. Naprawić crona. To że zmienia approved na -1 to jedno, ale drugie, to powinien synchronizować informacje w kategorii 🙂

2. napisać nową metodę, zapytanie, które będzie zliczać rekordy, tylko z approved=1

  • Like 1
Link to post
Share on other sites
Guest
This topic is now closed to further replies.
  • Dołącz do pierwszego newslettera Invision Community

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

Important Information

W celu świadczenie usług przez nasz Serwis na najwyższym poziomie, w ramach Serwisu wykorzystujemy pliki Cookies (tzw. ciasteczka). Korzystając ze stron Serwisu IPSBEYOND.PL bez zmiany ustawień przeglądarki będą one zapisane w pamięci urządzenia. Jeżeli nie dokonacie Państwo zmiany ustawień przeglądarki internetowej to wyrażacie zgodę na zapisywanie plików Cookies.