예제 #1
0
 $itArray = array();
 foreach ($it as $file) {
     $itArray[] = $file;
 }
 if (isset($argv) && $argc > 0) {
     $bi = new BusyIndicator(count($itArray), 0, sprintf('%1$2d/%2$2d %3$s', $i + 1, count($Models), $Model->GetShortName()));
 }
 /* @var $FileInfo SplFileInfo */
 foreach ($itArray as $FileInfo) {
     if (isset($argv) && $argc > 0) {
         $bi->Next();
     }
     if ($FileInfo->isFile() && $FileInfo->isReadable()) {
         $setnamematch = preg_match('/(?P<Prefix>[A-Z]+[_ -])?(?P<Name>[A-Z0-9]+)(?P<Number>\\d\\d)(?P<Suffix>[a-z])?\\.(?P<Extension>[^.]+)$/i', $FileInfo->getFilename(), $matches);
         if (isset($matches) && count($matches) > 0) {
             $Set = Set::Filter($Sets, $Model->getID(), NULL, $matches['Name'] . $matches['Number'], $matches['Prefix']);
             if (!$Set) {
                 continue;
             } else {
                 $Set = $Set[0];
             }
             /* @var $VideoInDB Video */
             $VideosInDB = Video::Filter($Videos, $ModelID, $Set->getID(), $matches['Name'] . $matches['Number'] . $matches['Suffix']);
             if ($VideosInDB) {
                 $VideoInDB = $VideosInDB[0];
                 $cis = CacheImage::Filter($CacheImages, NULL, NULL, NULL, NULL, NULL, $VideoInDB->getID());
                 CacheImage::DeleteMulti($cis, $CurrentUser);
             } else {
                 $VideoInDB = new Video();
                 $VideoInDB->setSet($Set);
             }
예제 #2
0
$outfile = 'CandyDollDB.csv';
if ($ModelID && count($Models) > 0) {
    $Model = $Models[0];
    $outfile = sprintf('CandyDollDB %1$s.csv', $Model->GetFullName());
}
header(sprintf('Content-type: %1$s', Utils::GetMime('csv')));
header(sprintf('Content-Disposition: attachment; filename="%1$s"', $outfile));
$commentarray = array(sprintf("Generated by CandyDollDB v%1\$s on %2\$s at %3\$s", CANDYDOLLDB_VERSION, date('Y-m-d'), date('H:i;s')), sprintf("Author: %1\$s", $CurrentUser->getUserName()), "Project website: https://code.google.com/p/candydolldb/");
$commentcount = count($commentarray);
$x = 0;
/* @var $Model Model */
foreach ($Models as $Model) {
    if ($ModelID && $Model->getID() !== $ModelID) {
        continue;
    }
    $SetsThisModel = Set::Filter($Sets, $Model->getID());
    if ($SetsThisModel) {
        /* @var $Set Set */
        foreach ($SetsThisModel as $Set) {
            $ImagesThisSet = Image::GetImages(new ImageSearchParameters(FALSE, FALSE, $Set->getID(), FALSE, $Model->getID()));
            if ($ImagesThisSet) {
                /* @var $Image Image */
                foreach ($ImagesThisSet as $Image) {
                    if (Utils::_empty($Image->getFileCRC32())) {
                        continue;
                    }
                    printf("%1\$s,%2\$s,%3\$s,\\%4\$s\\,%5\$s%6\$s", $Image->getExportFilename(), $Image->getFileSize(), $Image->getFileCRC32(), str_replace(CANDYPATH . DIRECTORY_SEPARATOR, '', dirname($Image->getFilenameOnDisk())), $x <= $commentcount - 1 ? $commentarray[$x] . "," : NULL, PHP_EOL);
                    $x++;
                }
            }
            $VideosThisSet = Video::GetVideos(new VideoSearchParameters(FALSE, FALSE, $Set->getID(), FALSE, $Model->getID()));
예제 #3
0
 }
 if ($Model2Process->getID()) {
     Model::Update($Model2Process, $CurrentUser);
 } else {
     Model::Insert($Model2Process, $CurrentUser);
 }
 $modeltags = Tag::GetTagArray((string) $Model->attributes()->tags);
 $Tag2AllThisModel = Tag2All::Filter($Tag2AllsInDB, NULL, $Model2Process->getID(), FALSE, FALSE, FALSE);
 $Tag2AllThisModelOnly = Tag2All::Filter($Tag2AllThisModel, NULL, $Model2Process->getID(), NULL, NULL, NULL);
 Tag2All::HandleTags($modeltags, $Tag2AllThisModelOnly, $TagsInDB, $CurrentUser, $Model2Process->getID(), NULL, NULL, NULL, FALSE);
 if (!$Model->Sets) {
     continue;
 }
 $DatesThisModel = Date::FilterDates($DatesInDb, NULL, $Model2Process->getID(), NULL, NULL, NULL);
 foreach ($Model->Sets->Set as $Set) {
     $SetInDb = Set::Filter($SetsInDb, $Model2Process->getID(), NULL, preg_replace('/^SP_/i', '', (string) $Set->attributes()->name));
     if ($SetInDb) {
         $SetInDb = $SetInDb[0];
     }
     /* @var $Set2Process Set */
     $Set2Process = $SetInDb ? $SetInDb : new Set();
     $Set2Process->setModel($Model2Process);
     if ($Set2Process->getModel()->getFirstName() == 'VIP') {
         $Set2Process->setPrefix('SP_');
         $Set2Process->setName(preg_replace('/^SP_/i', '', (string) $Set->attributes()->name));
     } else {
         if ($Set2Process->getModel()->getFirstName() == 'Interviews') {
             $Set2Process->setPrefix('In_');
             $Set2Process->setName((string) $Set->attributes()->name);
         } else {
             if ($Set2Process->getModel()->getFirstName() == 'Promotions') {
예제 #4
0
 $SetVidCount = 0;
 $DirtySetCount = 0;
 $DirtySetPicCount = 0;
 $DirtySetVidCount = 0;
 $Dates = Date::GetDates(new DateSearchParameters(FALSE, FALSE, FALSE, FALSE, $Model->getID()));
 if ($Dates) {
     $datestart = Date::SmallestDate($Dates);
     $datestartshow = date($CurrentUser->getDateFormat(), $datestart->getTimeStamp());
     $dateend = Date::LargestDate($Dates);
     $dateendshow = date($CurrentUser->getDateFormat(), $dateend->getTimeStamp());
 } else {
     $datestartshow = NULL;
     $dateendshow = NULL;
 }
 /* @var $Set Set */
 foreach (Set::Filter($Sets, $Model->getID()) as $Set) {
     $SetCount++;
     if ($Set->getSetIsDirty()) {
         if ($Set->getSetIsDirtyPic()) {
             $DirtySetPicCount++;
         }
         if ($Set->getSetIsDirtyVid()) {
             $DirtySetVidCount++;
         }
         $DirtySetCount++;
     }
     if (($Set->getContainsWhat() & SET_CONTENT_IMAGE) > 0) {
         $SetPicCount++;
     }
     if (($Set->getContainsWhat() & SET_CONTENT_VIDEO) > 0) {
         $SetVidCount++;
예제 #5
0
function XmlOutputModel($Model, $TaggedOnly)
{
    global $xmlw, $Sets, $Dates, $Tag2Alls, $IncludeImages, $IncludeVideos;
    $xmlw->startElement('Model');
    $xmlw->writeAttribute('firstname', $Model->getFirstName());
    $xmlw->writeAttribute('lastname', $Model->getLastName());
    $xmlw->writeAttribute('birthdate', $Model->getBirthdate() > 0 ? date('Y-m-d', $Model->getBirthdate()) : NULL);
    $TagsThisModel = Tag2All::Filter($Tag2Alls, NULL, $Model->getID(), FALSE, FALSE, FALSE);
    $TagsThisModelOnly = Tag2All::Filter($TagsThisModel, NULL, $Model->getID(), NULL, NULL, NULL);
    $xmlw->writeAttribute('tags', Tag2All::Tags2AllCSV($TagsThisModelOnly));
    $SetsThisModel = Set::Filter($Sets, $Model->getID());
    if ($SetsThisModel) {
        $xmlw->startElement('Sets');
        $DatesThisModel = Date::FilterDates($Dates, NULL, $Model->getID());
        if ($Model->getFirstName() == 'VIP') {
            usort($SetsThisModel, array('Set', 'CompareASC'));
        }
        foreach ($SetsThisModel as $Set) {
            $PicDatesThisSet = Date::FilterDates($DatesThisModel, NULL, NULL, $Set->getID(), DATE_KIND_IMAGE);
            $VidDatesThisSet = Date::FilterDates($DatesThisModel, NULL, NULL, $Set->getID(), DATE_KIND_VIDEO);
            $TagsThisSet = Tag2All::Filter($TagsThisModel, NULL, $Model->getID(), $Set->getID(), NULL, NULL);
            $xmlw->startElement('Set');
            if ($Model->getFirstName() == 'VIP' && !is_numeric($Set->getName())) {
                $xmlw->writeAttribute('name', sprintf('SP_%1$s', $Set->getName()));
            } else {
                $xmlw->writeAttribute('name', $Set->getName());
            }
            $xmlw->writeAttribute('date_pic', Date::FormatDates($PicDatesThisSet, 'Y-m-d', FALSE, ' '));
            $xmlw->writeAttribute('date_vid', Date::FormatDates($VidDatesThisSet, 'Y-m-d', FALSE, ' '));
            $xmlw->writeAttribute('tags', Tag2All::Tags2AllCSV($TagsThisSet));
            if ($IncludeImages) {
                $ImagesThisSet = Image::GetImages(new ImageSearchParameters(FALSE, FALSE, $Set->getID(), FALSE, $Model->getID()));
                if ($ImagesThisSet) {
                    $xmlw->startElement('Images');
                    /* @var $Image Image */
                    foreach ($ImagesThisSet as $Image) {
                        $TagsThisImage = Tag2All::Filter($TagsThisModel, NULL, $Model->getID(), $Set->getID(), $Image->getID(), NULL);
                        if ($TaggedOnly === TRUE && $TagsThisImage || $TaggedOnly === FALSE) {
                            $xmlw->startElement('Image');
                            $xmlw->writeAttribute('name', $Image->getFileName());
                            $xmlw->writeAttribute('extension', $Image->getFileExtension());
                            $xmlw->writeAttribute('filesize', $Image->getFileSize());
                            $xmlw->writeAttribute('height', $Image->getImageHeight());
                            $xmlw->writeAttribute('width', $Image->getImageWidth());
                            $xmlw->writeAttribute('checksum', $Image->getFileCheckSum());
                            $xmlw->writeAttribute('crc32', $Image->getFileCRC32());
                            $xmlw->writeAttribute('tags', Tag2All::Tags2AllCSV($TagsThisImage));
                            $xmlw->endElement();
                        }
                    }
                    $xmlw->endElement();
                    $xmlw->flush();
                    ob_flush();
                    flush();
                    unset($ImagesThisSet);
                }
            }
            if ($IncludeVideos) {
                $VideosThisSet = Video::GetVideos(new VideoSearchParameters(FALSE, FALSE, $Set->getID(), FALSE, $Model->getID()));
                if ($VideosThisSet) {
                    $xmlw->startElement('Videos');
                    /* @var $Video Video */
                    foreach ($VideosThisSet as $Video) {
                        $TagsThisVideo = Tag2All::Filter($TagsThisModel, NULL, $Model->getID(), $Set->getID(), NULL, $Video->getID());
                        if ($TaggedOnly === TRUE && $TagsThisVideo || $TaggedOnly === FALSE) {
                            $xmlw->startElement('Video');
                            $xmlw->writeAttribute('name', $Video->getFileName());
                            $xmlw->writeAttribute('extension', $Video->getFileExtension());
                            $xmlw->writeAttribute('filesize', $Video->getFileSize());
                            $xmlw->writeAttribute('checksum', $Video->getFileCheckSum());
                            $xmlw->writeAttribute('crc32', $Video->getFileCRC32());
                            $xmlw->writeAttribute('tags', Tag2All::Tags2AllCSV($TagsThisVideo));
                            $xmlw->endElement();
                        }
                    }
                    $xmlw->endElement();
                    $xmlw->flush();
                    ob_flush();
                    flush();
                    unset($VideosThisSet);
                }
            }
            $xmlw->endElement();
        }
        $xmlw->endElement();
        $xmlw->flush();
        ob_flush();
        flush();
        if ($Model->getRemarks()) {
            $xmlw->startElement('Remarks');
            $xmlw->text($Model->getRemarks());
            $xmlw->endElement();
        }
    }
    $xmlw->endElement();
    $xmlw->flush();
    ob_flush();
    flush();
}
예제 #6
0
 function XmlOutputModel($Model)
 {
     global $xmlw, $Sets, $Dates, $Tag2Alls, $IncludeImages, $IncludeVideos;
     $xmlw->startElement('Model');
     $xmlw->writeAttribute('firstname', $Model->getFirstName());
     $xmlw->writeAttribute('lastname', $Model->getLastName());
     $xmlw->writeAttribute('birthdate', $Model->getBirthdate() > 0 ? date('Y-m-d', $Model->getBirthdate()) : NULL);
     $TagsThisModel = Tag2All::Filter($Tag2Alls, NULL, $Model->getID(), FALSE, FALSE, FALSE);
     $TagsThisModelOnly = Tag2All::Filter($TagsThisModel, NULL, $Model->getID(), NULL, NULL, NULL);
     $xmlw->writeAttribute('tags', Tag2All::Tags2AllCSV($TagsThisModelOnly));
     $SetsThisModel = Set::Filter($Sets, $Model->getID());
     if ($SetsThisModel) {
         $xmlw->startElement('Sets');
         $DatesThisModel = Date::FilterDates($Dates, NULL, $Model->getID());
         if ($Model->getFirstName() == 'VIP') {
             usort($SetsThisModel, array('Set', 'CompareASC'));
         }
         foreach ($SetsThisModel as $Set) {
             $PicDatesThisSet = Date::FilterDates($DatesThisModel, NULL, NULL, $Set->getID(), DATE_KIND_IMAGE);
             $VidDatesThisSet = Date::FilterDates($DatesThisModel, NULL, NULL, $Set->getID(), DATE_KIND_VIDEO);
             $TagsThisSet = Tag2All::Filter($TagsThisModel, NULL, $Model->getID(), $Set->getID(), NULL, NULL);
             $xmlw->startElement('Set');
             if ($Model->getFirstName() == 'VIP' && !is_numeric($Set->getName())) {
                 $xmlw->writeAttribute('name', sprintf('SP_%1$s', $Set->getName()));
             } else {
                 $xmlw->writeAttribute('name', $Set->getName());
             }
             $xmlw->writeAttribute('date_pic', Date::FormatDates($PicDatesThisSet, 'Y-m-d', FALSE, ' '));
             $xmlw->writeAttribute('date_vid', Date::FormatDates($VidDatesThisSet, 'Y-m-d', FALSE, ' '));
             $xmlw->writeAttribute('tags', Tag2All::Tags2AllCSV($TagsThisSet));
             $xmlw->endElement();
         }
         $xmlw->endElement();
         $xmlw->flush();
         ob_flush();
         flush();
         if ($Model->getRemarks()) {
             $xmlw->startElement('Remarks');
             $xmlw->text($Model->getRemarks());
             $xmlw->endElement();
         }
     }
     $xmlw->endElement();
     $xmlw->flush();
     ob_flush();
     flush();
 }