Keyword

Display items where creation date=current date

  • stavroch
  • stavroch's Avatar Topic Author
  • Offline
  • Elite Member
More
11 years 6 months ago #111371 by stavroch
I am looking to display first in category page the items where the creation date = current date.

Olivier made this code
        
        <!-- Beginning of code for items of the day -->
        <?php
        $limitstart = JRequest::getInt('limitstart',0);
        
        if (!($limitstart)) {
                $numItems = 5;
                
                $user = &JFactory::getUser();
                $aid = $user->get('aid');
                $db = &JFactory::getDBO();
                $view = JRequest::getWord('view');
            $task = JRequest::getWord('task');
        
            $jnow = &JFactory::getDate();
                $now = $jnow->toMySQL();
                $nullDate = $db->getNullDate();
                
                $ordering = $this->params->get('catOrdering');
                
                $query = "SELECT i.*, c.name as categoryname,c.id as categoryid, c.alias as categoryalias, c.params as categoryparams";
                
                if ($ordering == 'best')
            $query .= ", (r.rating_sum/r.rating_count) AS rating";

        $query.=" FROM #__k2_items as i LEFT JOIN #__k2_categories AS c ON c.id = i.catid";

        if ($ordering == 'best')
            $query .= " LEFT JOIN #__k2_rating r ON r.itemID = i.id";

        if ($task == 'tag')
            $query .= " LEFT JOIN #__k2_tags_xref AS tags_xref ON tags_xref.itemID = i.id LEFT JOIN #__k2_tags AS tags ON tags.id = tags_xref.tagID";

        if($task=='user' && !$user->guest && $user->id==JRequest::getInt('id')){
                $query .= " WHERE ";
        }
        else {
         $query .= " WHERE i.published = 1 AND ";
        }

        $query .= "i.access <= {$aid}"
        ." AND i.trash = 0"
        ." AND c.published = 1"
        ." AND c.access <= {$aid}"
        ." AND c.trash = 0";

        if( !($task=='user' && !$user->guest && $user->id==JRequest::getInt('id') )) {
                $query .= " AND ( i.publish_up = ".$db->Quote($nullDate)." OR i.publish_up <= ".$db->Quote($now)." )";
                $query .= " AND ( i.publish_down = ".$db->Quote($nullDate)." OR i.publish_down >= ".$db->Quote($now)." )";
        }
        
        $id = JRequest::getInt('id');

                $category = &JTable::getInstance('K2Category', 'Table');
                $category->load($id);
                $cparams = new JParameter($category->params);
        
                if ($cparams->get('inheritFrom')) {
                        $parent = &JTable::getInstance('K2Category', 'Table');
                        $parent->load($cparams->get('inheritFrom'));
                        $cparams = new JParameter($parent->params);
                }

                if ($cparams->get('catCatalogMode')) {
                        $query .= " AND c.id={$id} ";
                } else {
                        $clearFlag = JRequest::getBool('clearFlag');
                        //$categories = K2ModelItemlist::getCategoryChilds($id, $clearFlag);
                        $categories[] = $id;
                        $categories = @array_unique($categories);
                        JArrayHelper::toInteger($categories);
                        $sql = @implode(',', $categories);
                        $query .= " AND c.id IN ({$sql})";
                }
        
                //Set featured flag
        if ($task == 'category' || empty($task)) {
            if (JRequest::getInt('featured') == '0') {
                $query .= " AND i.featured != 1";
            } else if (JRequest::getInt('featured') == '2') {
                $query .= " AND i.featured = 1";
            }
        }

        //Set with creation date = today
        $query.=" AND DATE(i.created) = CURDATE()";

        //Set ordering
        switch ($ordering) {

            case 'date':
                $orderby = 'i.created ASC';
                break;

            case 'rdate':
                $orderby = 'i.created DESC';
                break;

            case 'alpha':
                $orderby = 'i.title';
                break;

            case 'ralpha':
                $orderby = 'i.title DESC';
                break;

            case 'order':
                if (JRequest::getInt('featured') == '2')
                    $orderby = 'i.featured_ordering';
                else
                    $orderby = 'i.ordering';
                break;

            case 'rorder':
                if (JRequest::getInt('featured') == '2')
                    $orderby = 'i.featured_ordering DESC';
                else
                    $orderby = 'i.ordering DESC';
                break;

            case 'hits':
                $orderby = 'i.hits DESC';
                break;

            case 'rand':
                $orderby = 'RAND()';
                break;

            case 'best':
                $orderby = 'rating DESC';
                break;

            default:
                $orderby = 'i.id DESC';
                break;
        }

        $query .= " ORDER BY ".$orderby;
        $db->setQuery($query, 0, $numItems);
        $itemsOfTheDay = $db->loadObjectList();
        
                if (count($itemsOfTheDay)) {
                ?>
                        <div class="itemsOfTheDay premiera">
                        
 <h2>Πρεμιέρα</h2>

                                <?php
                        //Prepare items
                                $user = &JFactory::getUser();
                        $cache = &JFactory::getCache('com_k2_extended');
                        $itemModel = &$this->getModel('item');
                        
                        foreach($itemsOfTheDay as $itemOfTheDay) {
                
                                        $itemOfTheDay->itemGroup = 'leading'; // Can be 'leading', 'primary','secondary' or 'links' to set the image size
                    
                            if ($user->guest){
                                    $hits = $itemOfTheDay->hits;
                                    $itemOfTheDay->hits = 0;
                                        $itemOfTheDay = $cache->call(array('K2ModelItem', 'prepareItem'), $itemOfTheDay, $view, $task);
                                    $itemOfTheDay->hits = $hits;
                                    }
                                        else {
                                                $itemOfTheDay = $itemModel->prepareItem($itemOfTheDay, $view, $task);
                                        }
                                ?>
                                <div class="itemOfTheDay">
                                        <?php
                                                $this->item=$itemOfTheDay;
                                                echo $this->loadTemplate('item');
                                                ?>
                                        </div>
                                <?php
                        }
                                ?>
                </div>
                <?php
                }
        }
        ?>
        <!-- End of code for item of the day -->

but it doesn't work in joomla 3 and k2 2.6.5

Can you help me please?

Please Log in or Create an account to join the conversation.

More
11 years 6 months ago #111372 by Olivier Nolbert
Replied by Olivier Nolbert on topic Re: Display items where creation date=current date
Hi,

Not tested but this should be better with this code. ACL management code has been updated since J!2.5.
<!-- Beginning of code for items of the day -->
        <?php
        $limitstart = JRequest::getInt('limitstart',0);
 
        if (!($limitstart)) {
                $numItems = 5;
 
                $user = JFactory::getUser();
                $db = JFactory::getDBO();
                $view = JRequest::getWord('view');
            $task = JRequest::getWord('task');
 
            $jnow = &JFactory::getDate();
                $now = $jnow->toSQL();
                $nullDate = $db->getNullDate();
 
                $ordering = $this->params->get('catOrdering');
 
                $query = "SELECT i.*, c.name as categoryname,c.id as categoryid, c.alias as categoryalias, c.params as categoryparams";
 
                if ($ordering == 'best')
            $query .= ", (r.rating_sum/r.rating_count) AS rating";
 
        $query.=" FROM #__k2_items as i LEFT JOIN #__k2_categories AS c ON c.id = i.catid";
 
        if ($ordering == 'best')
            $query .= " LEFT JOIN #__k2_rating r ON r.itemID = i.id";
 
        if ($task == 'tag')
            $query .= " LEFT JOIN #__k2_tags_xref AS tags_xref ON tags_xref.itemID = i.id LEFT JOIN #__k2_tags AS tags ON tags.id = tags_xref.tagID";
 
        if($task=='user' && !$user->guest && $user->id==JRequest::getInt('id')){
                $query .= " WHERE ";
        }
        else {
         $query .= " WHERE i.published = 1 AND ";
        }
 
        $query .= "i.access IN(".implode(',', $user->getAuthorisedViewLevels()).")"
        ." AND i.trash = 0"
        ." AND c.published = 1"
        ." AND c.access IN(".implode(',', $user->getAuthorisedViewLevels()).")"
        ." AND c.trash = 0";
 
        if( !($task=='user' && !$user->guest && $user->id==JRequest::getInt('id') )) {
                $query .= " AND ( i.publish_up = ".$db->Quote($nullDate)." OR i.publish_up <= ".$db->Quote($now)." )";
                $query .= " AND ( i.publish_down = ".$db->Quote($nullDate)." OR i.publish_down >= ".$db->Quote($now)." )";
        }
 
        $id = JRequest::getInt('id');
 
                $category = JTable::getInstance('K2Category', 'Table');
                $category->load($id);
                $cparams = new JParameter($category->params);
 
                if ($cparams->get('inheritFrom')) {
                        $parent = JTable::getInstance('K2Category', 'Table');
                        $parent->load($cparams->get('inheritFrom'));
                        $cparams = new JParameter($parent->params);
                }
 
                if ($cparams->get('catCatalogMode')) {
                        $query .= " AND c.id={$id} ";
                } else {
                        $clearFlag = JRequest::getBool('clearFlag');
                        //$categories = K2ModelItemlist::getCategoryChildren($id, $clearFlag);
                        $categories[] = $id;
                        $categories = @array_unique($categories);
                        JArrayHelper::toInteger($categories);
                        $sql = @implode(',', $categories);
                        $query .= " AND c.id IN ({$sql})";
                }
 
                //Set featured flag
        if ($task == 'category' || empty($task)) {
            if (JRequest::getInt('featured') == '0') {
                $query .= " AND i.featured != 1";
            } else if (JRequest::getInt('featured') == '2') {
                $query .= " AND i.featured = 1";
            }
        }
 
        //Set with creation date = today
        $query.=" AND DATE(i.created) = CURDATE()";
 
        //Set ordering
        switch ($ordering) {
 
            case 'date':
                $orderby = 'i.created ASC';
                break;
 
            case 'rdate':
                $orderby = 'i.created DESC';
                break;
 
            case 'alpha':
                $orderby = 'i.title';
                break;
 
            case 'ralpha':
                $orderby = 'i.title DESC';
                break;
 
            case 'order':
                if (JRequest::getInt('featured') == '2')
                    $orderby = 'i.featured_ordering';
                else
                    $orderby = 'i.ordering';
                break;
 
            case 'rorder':
                if (JRequest::getInt('featured') == '2')
                    $orderby = 'i.featured_ordering DESC';
                else
                    $orderby = 'i.ordering DESC';
                break;
 
            case 'hits':
                $orderby = 'i.hits DESC';
                break;
 
            case 'rand':
                $orderby = 'RAND()';
                break;
 
            case 'best':
                $orderby = 'rating DESC';
                break;
 
            default:
                $orderby = 'i.id DESC';
                break;
        }
 
        $query .= " ORDER BY ".$orderby;
        $db->setQuery($query, 0, $numItems);
        $itemsOfTheDay = $db->loadObjectList();
 
                if (count($itemsOfTheDay)) {
                ?>
                        <div class="itemsOfTheDay premiera">
 
 <h2>Πρεμιέρα</h2>
 
                                <?php
                        //Prepare items
                                $user = JFactory::getUser();
                        $cache = JFactory::getCache('com_k2_extended');
                        $itemModel = $this->getModel('item');
 
                        foreach($itemsOfTheDay as $itemOfTheDay) {
 
                                        $itemOfTheDay->itemGroup = 'leading'; // Can be 'leading', 'primary','secondary' or 'links' to set the image size
 
                            if ($user->guest){
                                    $hits = $itemOfTheDay->hits;
                                    $itemOfTheDay->hits = 0;
                                        $itemOfTheDay = $cache->call(array('K2ModelItem', 'prepareItem'), $itemOfTheDay, $view, $task);
                                    $itemOfTheDay->hits = $hits;
                                    }
                                        else {
                                                $itemOfTheDay = $itemModel->prepareItem($itemOfTheDay, $view, $task);
                                        }
                                ?>
                                <div class="itemOfTheDay">
                                        <?php
                                                $this->item=$itemOfTheDay;
                                                echo $this->loadTemplate('item');
                                                ?>
                                        </div>
                                <?php
                        }
                                ?>
                </div>
                <?php
                }
        }
        ?>
        <!-- End of code for item of the day -->

Please Log in or Create an account to join the conversation.

  • stavroch
  • stavroch's Avatar Topic Author
  • Offline
  • Elite Member
More
11 years 6 months ago #111373 by stavroch
No it doesn't work.

I get error with jParameter.

Any other solution?

Please Log in or Create an account to join the conversation.

  • Mohamed Abdelaziz
  • Mohamed Abdelaziz's Avatar
  • Offline
  • Platinum Member
  • Joomla Developer
More
11 years 6 months ago #111374 by Mohamed Abdelaziz
Replied by Mohamed Abdelaziz on topic Re: Display items where creation date=current date
JParameter is depricated in J3

replace it with JRegistry

Multiple Extra Fields Groups for K2
AutoMeta for K2
Chained Fields for K2
More K2 Extensions In My Extensions Store

Please Log in or Create an account to join the conversation.

  • stavroch
  • stavroch's Avatar Topic Author
  • Offline
  • Elite Member
More
11 years 6 months ago #111375 by stavroch
No again I get white page with the title "items of the day" (ΠΡΕΜΙΕΡΑ).

without any other info - item.

Please Log in or Create an account to join the conversation.

  • stavroch
  • stavroch's Avatar Topic Author
  • Offline
  • Elite Member
More
11 years 6 months ago #111376 by stavroch
Have you any news?

Can you help me please?

Please Log in or Create an account to join the conversation.


Powered by Kunena Forum