Version 4.3.0
This commit is contained in:
1 parent
96997ddd8e
commit
fe1acf984a
1349 files changed
+116159
-67711
No files matched your search
@@ -147,26 +147,29 @@ class _Rss extends \IPS\Node\Model
|
||||
$form->addHeader( 'rss_content' );
|
||||
foreach( \IPS\Content::routedClasses( TRUE, FALSE, TRUE ) AS $class )
|
||||
{
|
||||
$options = array();
|
||||
$containerClass = NULL;
|
||||
if ( isset( $class::$containerNodeClass ) )
|
||||
if ( isset( $class::$databaseColumnMap['author'] ) )
|
||||
{
|
||||
$options = array( 'togglesOn' => array( 'rss_nodes_' . $class::$title ) );
|
||||
$containerClass = $class::$containerNodeClass;
|
||||
}
|
||||
|
||||
\IPS\Member::loggedIn()->language()->words["rss_classes_{$class}"] = \IPS\Member::loggedIn()->language()->addToStack( $class::$title . '_pl' );
|
||||
$form->add( new \IPS\Helpers\Form\YesNo( 'rss_classes_' . $class, ( $this->_id ) ? in_array( $class, $this->configuration['classes'] ) : FALSE, FALSE, $options ) );
|
||||
|
||||
if ( $containerClass )
|
||||
{
|
||||
\IPS\Member::loggedIn()->language()->words["nodes_{$class}"] = \IPS\Member::loggedIn()->language()->addToStack( $containerClass::$nodeTitle );
|
||||
$form->add( new \IPS\Helpers\Form\Node( "nodes_{$class}", ( $this->_id AND isset( $this->configuration['containers'][$class] ) ) ? $this->configuration['containers'][$class] : 0, FALSE, array(
|
||||
'class' => $containerClass,
|
||||
'zeroVal' => 'all',
|
||||
'multiple' => TRUE,
|
||||
'permissionCheck' => function( $val ) { return $val->can( 'view', new \IPS\Member ); }
|
||||
), NULL, NULL, NULL, "rss_nodes_{$class::$title}" ) );
|
||||
$options = array();
|
||||
$containerClass = NULL;
|
||||
if ( isset( $class::$containerNodeClass ) )
|
||||
{
|
||||
$options = array( 'togglesOn' => array( 'rss_nodes_' . $class::$title ) );
|
||||
$containerClass = $class::$containerNodeClass;
|
||||
}
|
||||
|
||||
\IPS\Member::loggedIn()->language()->words["rss_classes_{$class}"] = \IPS\Member::loggedIn()->language()->addToStack( $class::$title . '_pl' );
|
||||
$form->add( new \IPS\Helpers\Form\YesNo( 'rss_classes_' . $class, ( $this->_id ) ? in_array( $class, $this->configuration['classes'] ) : FALSE, FALSE, $options ) );
|
||||
|
||||
if ( $containerClass )
|
||||
{
|
||||
\IPS\Member::loggedIn()->language()->words["nodes_{$class}"] = \IPS\Member::loggedIn()->language()->addToStack( $containerClass::$nodeTitle );
|
||||
$form->add( new \IPS\Helpers\Form\Node( "nodes_{$class}", ( $this->_id AND isset( $this->configuration['containers'][$class] ) ) ? $this->configuration['containers'][$class] : 0, FALSE, array(
|
||||
'class' => $containerClass,
|
||||
'zeroVal' => 'all',
|
||||
'multiple' => TRUE,
|
||||
'permissionCheck' => function( $val ) { return $val->can( 'view', new \IPS\Member ); }
|
||||
), NULL, NULL, NULL, "rss_nodes_{$class::$title}" ) );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -391,27 +394,34 @@ class _Rss extends \IPS\Node\Model
|
||||
{
|
||||
$member = $member ?: new \IPS\Member;
|
||||
|
||||
$search = \IPS\Content\Search\Query::init( $member );
|
||||
$search = \IPS\Content\Search\Query::init( $member );
|
||||
$filterByClass = FALSE;
|
||||
|
||||
if ( count( $this->configuration['classes'] ) )
|
||||
{
|
||||
$filters = array();
|
||||
$filterByClass = TRUE;
|
||||
$filters = array();
|
||||
|
||||
foreach( $this->configuration['classes'] AS $class )
|
||||
{
|
||||
if ( isset( $class::$firstCommentRequired ) AND $class::$firstCommentRequired )
|
||||
if( class_exists( $class, TRUE ) )
|
||||
{
|
||||
$filter = \IPS\Content\Search\ContentFilter::init( $class, TRUE, TRUE, FALSE )->onlyFirstComment();
|
||||
if ( isset( $class::$firstCommentRequired ) AND $class::$firstCommentRequired )
|
||||
{
|
||||
$filter = \IPS\Content\Search\ContentFilter::init( $class, TRUE, TRUE, FALSE )->onlyFirstComment();
|
||||
}
|
||||
else
|
||||
{
|
||||
$filter = \IPS\Content\Search\ContentFilter::init( $class, TRUE, FALSE, FALSE );
|
||||
}
|
||||
|
||||
if ( !empty( $this->configuration['containers'][$class] ) )
|
||||
{
|
||||
$filter->onlyInContainers( $this->configuration['containers'][$class] );
|
||||
}
|
||||
|
||||
$filters[] = $filter;
|
||||
}
|
||||
else
|
||||
{
|
||||
$filter = \IPS\Content\Search\ContentFilter::init( $class, TRUE, FALSE, FALSE );
|
||||
}
|
||||
|
||||
if ( !empty( $this->configuration['containers'][$class] ) )
|
||||
{
|
||||
$filter->onlyInContainers( $this->configuration['containers'][$class] );
|
||||
}
|
||||
|
||||
$filters[] = $filter;
|
||||
}
|
||||
|
||||
$search->filterByContent( $filters );
|
||||
@@ -425,7 +435,14 @@ class _Rss extends \IPS\Node\Model
|
||||
$search->setLimit( $this->count );
|
||||
$search->setOrder( \IPS\Content\Search\Query::ORDER_NEWEST_CREATED );
|
||||
|
||||
$results = $search->search();
|
||||
if( $filterByClass == TRUE AND !count( $filters ) )
|
||||
{
|
||||
$results = array();
|
||||
}
|
||||
else
|
||||
{
|
||||
$results = $search->search();
|
||||
}
|
||||
|
||||
/* We have to use get() to ensure CDATA tags wrap the title properly */
|
||||
$title = \IPS\Member::loggedIn()->language()->get( "rss_export_title_{$this->_id}" );
|
||||
|
||||
Reference in new issue
Block a user