- Posts: 295
COMMUNITY FORUM
Display items where creation date=current date
- stavroch
-
Topic Author
- Offline
- Elite Member
Less
More
12 years 1 month ago #111371
by stavroch
Display items where creation date=current date was created by stavroch
I am looking to display first in category page the items where the creation date = current date.
Olivier made this code
but it doesn't work in joomla 3 and k2 2.6.5
Can you help me please?
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.
- Olivier Nolbert
-
- Offline
- New Member
Less
More
- Posts: 12
12 years 1 month 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.
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
-
Topic Author
- Offline
- Elite Member
Less
More
- Posts: 295
12 years 1 month ago #111373
by stavroch
Replied by stavroch on topic Re: Display items where creation date=current date
No it doesn't work.
I get error with jParameter.
Any other solution?
I get error with jParameter.
Any other solution?
Please Log in or Create an account to join the conversation.
- Mohamed Abdelaziz
-
- Offline
- Platinum Member
- Joomla Developer
12 years 1 month ago #111374
by Mohamed Abdelaziz
Multiple Extra Fields Groups for K2
AutoMeta for K2
Chained Fields for K2
More K2 Extensions In My Extensions Store
Replied by Mohamed Abdelaziz on topic Re: Display items where creation date=current date
JParameter is depricated in J3
replace it with JRegistry
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
-
Topic Author
- Offline
- Elite Member
Less
More
- Posts: 295
12 years 1 month ago #111375
by stavroch
Replied by stavroch on topic Re: Display items where creation date=current date
No again I get white page with the title "items of the day" (ΠΡΕΜΙΕΡΑ).
without any other info - item.
without any other info - item.
Please Log in or Create an account to join the conversation.
- stavroch
-
Topic Author
- Offline
- Elite Member
Less
More
- Posts: 295
12 years 1 month ago #111376
by stavroch
Replied by stavroch on topic Re: Display items where creation date=current date
Have you any news?
Can you help me please?
Can you help me please?
Please Log in or Create an account to join the conversation.