Ejemplo n.º 1
0
 * terms of the GNU General Public License as published by the Free Software
 * Foundation; either version 2 of the Licence, or any later version.
 * OPUS is distributed in the hope that it will be useful, but WITHOUT ANY
 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
 * details. You should have received a copy of the GNU General Public License
 * along with OPUS; if not, write to the Free Software Foundation, Inc., 51
 * Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 *
 * @category    Application
 * @author      Sascha Szott <*****@*****.**>
 * @copyright   Copyright (c) 2008-2014, OPUS 4 development team
 * @license     http://www.gnu.org/licenses/gpl.html General Public License
 * @version     $Id$
 */
/**
 * Dieses Script gibt die IDs aller veröffentlichten Dokumente aus, bei denen 
 * Jane Doe der Name des Autors ODER der Name einer sonstigen beteiligten 
 * Personen (advisor, contributor, editor, other, translator) ist
 */
$firstName = "Jane";
$lastName = "Doe";
$docfinder = new Opus_DocumentFinder();
// wichtig: müssen diesen Filter setzen, da im Index nur Dokument im Zustand published sind
$docfinder->setServerState('published');
$select = $docfinder->getSelect();
$select->joinLeft(array('pd' => 'link_persons_documents'), 'd.id = pd.document_id AND (pd.role = "author"' . ' OR pd.role = "advisor" OR pd.role = "contributor" OR pd.role = "editor" OR pd.role = "other"' . ' OR pd.role = "translator")', array())->joinLeft(array('p' => 'persons'), 'pd.person_id = p.id', array())->where('p.first_name = ?', $firstName)->where('p.last_name = ?', $lastName)->group('d.id');
foreach ($docfinder->ids() as $docId) {
    echo "DocID {$docId}\n";
}
exit;