private function renderThumbnail(PholioImage $image)
 {
     $thumbfile = $image->getFile();
     $preview_key = PhabricatorFileThumbnailTransform::TRANSFORM_THUMBGRID;
     $xform = PhabricatorFileTransform::getTransformByKey($preview_key);
     Javelin::initBehavior('phabricator-tooltips');
     $attributes = array('class' => 'pholio-mock-thumb-grid-image', 'src' => $thumbfile->getURIForTransform($xform));
     if ($image->getFile()->isViewableImage()) {
         $dimensions = $xform->getTransformedDimensions($thumbfile);
         if ($dimensions) {
             list($x, $y) = $dimensions;
             $attributes += array('width' => $x, 'height' => $y, 'style' => 'top: ' . floor((100 - $y) / 2) . 'px');
         }
     } else {
         // If this is a PDF or a text file or something, we'll end up using a
         // generic thumbnail which is always sized correctly.
         $attributes += array('width' => 100, 'height' => 100);
     }
     $tag = phutil_tag('img', $attributes);
     $classes = array('pholio-mock-thumb-grid-item');
     if ($image->getIsObsolete()) {
         $classes[] = 'pholio-mock-thumb-grid-item-obsolete';
     }
     $inline_count = null;
     if ($image->getInlineComments()) {
         $inline_count[] = phutil_tag('span', array('class' => 'pholio-mock-thumb-grid-comment-count'), pht('%s', new PhutilNumber(count($image->getInlineComments()))));
     }
     return javelin_tag('a', array('sigil' => 'mock-thumbnail has-tooltip', 'class' => implode(' ', $classes), 'href' => '#', 'meta' => array('imageID' => $image->getID(), 'tip' => $image->getName(), 'align' => 'N')), array($tag, $inline_count));
 }
Exemplo n.º 2
0
 protected function loadPage()
 {
     $table = new PholioImage();
     $conn_r = $table->establishConnection('r');
     $data = queryfx_all($conn_r, 'SELECT * FROM %T %Q %Q %Q', $table->getTableName(), $this->buildWhereClause($conn_r), $this->buildOrderClause($conn_r), $this->buildLimitClause($conn_r));
     $images = $table->loadAllFromArray($data);
     return $images;
 }
 private function renderThumbnail(PholioImage $image)
 {
     $thumbfile = $image->getFile();
     if ($image->getFile()->isViewableImage()) {
         $dimensions = PhabricatorImageTransformer::getPreviewDimensions($thumbfile, 100);
     } else {
         // If this is a PDF or a text file or something, we'll end up using a
         // generic thumbnail which is always sized correctly.
         $dimensions = array('sdx' => 100, 'sdy' => 100);
     }
     $tag = phutil_tag('img', array('width' => $dimensions['sdx'], 'height' => $dimensions['sdy'], 'src' => $thumbfile->getPreview100URI(), 'class' => 'pholio-mock-thumb-grid-image', 'style' => 'top: ' . floor((100 - $dimensions['sdy']) / 2) . 'px'));
     $classes = array('pholio-mock-thumb-grid-item');
     if ($image->getIsObsolete()) {
         $classes[] = 'pholio-mock-thumb-grid-item-obsolete';
     }
     $inline_count = null;
     if ($image->getInlineComments()) {
         $inline_count[] = phutil_tag('span', array('class' => 'pholio-mock-thumb-grid-comment-count'), pht('%s', new PhutilNumber(count($image->getInlineComments()))));
     }
     return javelin_tag('a', array('sigil' => 'mock-thumbnail', 'class' => implode(' ', $classes), 'href' => '#', 'meta' => array('imageID' => $image->getID())), array($tag, $inline_count));
 }
 public function generate()
 {
     $author_phid = $this->loadPhabrictorUserPHID();
     $author = id(new PhabricatorUser())->loadOneWhere('phid = %s', $author_phid);
     $mock = PholioMock::initializeNewMock($author);
     $content_source = PhabricatorContentSource::newForSource(PhabricatorContentSource::SOURCE_UNKNOWN, array());
     $template = id(new PholioTransaction())->setContentSource($content_source);
     // Accumulate Transactions
     $changes = array();
     $changes[PholioTransaction::TYPE_NAME] = $this->generateTitle();
     $changes[PholioTransaction::TYPE_DESCRIPTION] = $this->generateDescription();
     $changes[PhabricatorTransactions::TYPE_VIEW_POLICY] = PhabricatorPolicies::POLICY_PUBLIC;
     $changes[PhabricatorTransactions::TYPE_SUBSCRIBERS] = array('=' => $this->getCCPHIDs());
     // Get Files and make Images
     $file_phids = $this->generateImages();
     $files = id(new PhabricatorFileQuery())->setViewer($author)->withPHIDs($file_phids)->execute();
     $mock->setCoverPHID(head($files)->getPHID());
     $sequence = 0;
     $images = array();
     foreach ($files as $file) {
         $image = new PholioImage();
         $image->setFilePHID($file->getPHID());
         $image->setSequence($sequence++);
         $image->attachMock($mock);
         $images[] = $image;
     }
     // Apply Transactions
     $transactions = array();
     foreach ($changes as $type => $value) {
         $transaction = clone $template;
         $transaction->setTransactionType($type);
         $transaction->setNewValue($value);
         $transactions[] = $transaction;
     }
     $mock->openTransaction();
     $editor = id(new PholioMockEditor())->setContentSource($content_source)->setContinueOnNoEffect(true)->setActor($author)->applyTransactions($mock, $transactions);
     foreach ($images as $image) {
         $image->setMockID($mock->getID());
         $image->save();
     }
     $mock->saveTransaction();
     return $mock->save();
 }
Exemplo n.º 5
0
 private function getImagePageURI(PholioImage $image, PholioMock $mock)
 {
     $uri = '/M' . $mock->getID() . '/' . $image->getID() . '/';
     return $uri;
 }
<?php

echo 'Giving pholio images PHIDs';
$table = new PholioImage();
$table->openTransaction();
foreach (new LiskMigrationIterator($table) as $image) {
    if ($image->getPHID()) {
        continue;
    }
    echo '.';
    queryfx($image->establishConnection('w'), 'UPDATE %T SET phid = %s WHERE id = %d', $image->getTableName(), $image->generatePHID(), $image->getID());
}
$table->saveTransaction();
echo "\nDone.\n";