User:J*
From FollowTheScore
imagecontainer
DynamicPageList2.php.bak was DPL version 1.7.3
--- DynamicPageList2.php.bak 2008-05-04 22:13:08.000000000 +0200 +++ DynamicPageList2.php 2008-05-05 09:28:12.000000000 +0200 @@ -534,6 +534,11 @@ */ 'imageused' => array('default' => ''), /** + * this parameter restricts the output to images which are used (contained) by one of the specified pages. + * Examples: imagecontainer=my article|your article + */ + 'imagecontainer' => array('default' => ''), + /** * this parameter restricts the output to articles which use the specified template. * Examples: uses=Template:my template */ @@ -1256,6 +1261,8 @@ $aImageUsed = array(); + $aImageContainer = array(); + $aUses = array(); $aNotUses = array(); @@ -1520,6 +1527,19 @@ $bConflictsWithOpenReferences=true; break; + case 'imagecontainer': + $pages = explode('|', trim($sArg)); + $n=0; + foreach($pages as $page) { + if (trim($page)=='') continue; + if (!($theTitle = Title::newFromText(trim($page)))) return $logger->msgWrongParam('imageused', $sArg); + $aImageContainer[$n++] = $theTitle; + $bSelectionCriteriaFound=true; + } + if(!$bSelectionCriteriaFound) return $logger->msgWrongParam('imageUsed', $sArg); + //$bConflictsWithOpenReferences=true; + break; + case 'uses': $pages = explode('|', $sArg); $n=0; @@ -2544,6 +2564,21 @@ $sSqlCond_page_pl .= ')'; } + // imagecontainer + if ( count($aImageContainer)>0 ) { + $sSqlPageLinksTable .= $sImageLinksTable . ' as ic, '; + $sSqlCond_page_pl .= ' AND '.$sPageTable.'.page_namespace=\'6\' AND '.$sPageTable.'.page_title=ic.il_to AND ('; + $n=0; + foreach ($aImageContainer as $link) { + if ($n>0) $sSqlCond_page_pl .= ' OR '; + if ($bIgnoreCase) $sSqlCond_page_pl .= "UPPER(ic.il_from)=UPPER(" . $dbr->addQuotes( $link->getArticleID() ).')'; + else $sSqlCond_page_pl .= "ic.il_from=" . $dbr->addQuotes( $link->getArticleID() ); + $n++; + } + $sSqlCond_page_pl .= ')'; + } + + // uses if ( count($aUses)>0 ) { $sSqlPageLinksTable .= ' '.$sTemplateLinksTable . ' as tl, ';