Esempio n. 1
0
 protected function createComponentFormTranslate($name)
 {
     $form = new Form($this, $name);
     $form->addTextArea('translate', $this->translator->trans('translate.grid.translate'));
     $form->addSubmit('send', $this->translator->trans('translate.menu.translate'));
     $form->onSuccess[] = [$this, 'submitFormTranslate'];
     $translatesLocale = $this->row->related('translate_locale')->where('language_id', $this->webLanguage)->fetch();
     if ($translatesLocale) {
         $form->setDefaults(array('translate' => $translatesLocale['translate']));
     }
     return $form;
 }
Esempio n. 2
0
 protected function createComponentFormSet($name)
 {
     $form = new Form($this, $name);
     foreach ($this->resource->related('resource_privilege') as $resourcePrivilege) {
         $form->addCheckbox('privilege_' . $resourcePrivilege->privilege->id, $resourcePrivilege->privilege->name);
     }
     $form->addSubmit('send', $this->translator->translate('admin.form.set'));
     $form->onSuccess[] = [$this, 'submitFormSet'];
     $defaults = array();
     foreach ($this->permissions->where('role_id = ?', $this->row['id'])->where('resource_id = ?', $this->resource['id']) as $permission) {
         $defaults['privilege_' . $permission['privilege_id']] = true;
     }
     $form->setDefaults($defaults);
     return $form;
 }
 private function updateAddon(ActiveRow $addon)
 {
     $this->writeln('Updating: ' . $addon->name);
     $github = $this->normalizeGithubUrl($addon->repository);
     if ($github) {
         $guzzle = new \Guzzle\Http\Client();
         try {
             $guzzle->get($github)->send();
             $this->db->table('addons_resources')->insert(array('addonId' => $addon->id, 'type' => 'github', 'resource' => $github));
         } catch (\Guzzle\Http\Exception\RequestException $e) {
             $this->writeln((string) $e);
         }
     }
     if ($addon->type === 'composer') {
         $version = $addon->related('versions')->order('id', 'DESC')->fetch();
         $composerData = Json::decode($version->composerJson);
         $packagist = $this->generatePackagistUrl($composerData->name);
         $guzzle = new \Guzzle\Http\Client();
         try {
             $guzzle->get($packagist . '.json')->send();
             $this->db->table('addons_resources')->insert(array('addonId' => $addon->id, 'type' => 'packagist', 'resource' => $packagist));
         } catch (\Guzzle\Http\Exception\RequestException $e) {
             $this->writeln((string) $e);
         }
     }
     if ($addon->demo) {
         $guzzle = new \Guzzle\Http\Client();
         try {
             $guzzle->get($addon->demo)->send();
             $this->db->table('addons_resources')->insert(array('addonId' => $addon->id, 'type' => 'demo', 'resource' => $addon->demo));
         } catch (\Guzzle\Http\Exception\RequestException $e) {
             $this->writeln((string) $e);
         }
     }
 }
 public static function fromActiveRow(ActiveRow $row)
 {
     $version = new static();
     $version->id = $row->id;
     $version->version = $row->version;
     $version->license = $row->license;
     $version->distType = $row->distType;
     $version->distUrl = $row->distUrl;
     $version->sourceType = $row->sourceType;
     $version->sourceUrl = $row->sourceUrl;
     $version->sourceReference = $row->sourceReference;
     $version->composerJson = Json::decode($row->composerJson);
     // this may fail
     $version->updatedAt = $row->updatedAt;
     $linkTypes = self::getLinkTypes();
     $linkTypes = array_flip($linkTypes);
     foreach ($row->related('dependencies') as $dependencyRow) {
         $type = $dependencyRow->type;
         $type = $linkTypes[$type];
         $version->{$type}[$dependencyRow->packageName] = $dependencyRow->version;
         if ($dependencyRow->dependencyId) {
             $version->relatedAddons[$dependencyRow->packageName] = $dependencyRow->dependencyId;
         }
     }
     return $version;
 }
Esempio n. 5
0
 private static function loadTagsFromDb(DbEntry $photo)
 {
     $tags = new TagCollection();
     foreach ($photo->related("photo_tag") as $tag) {
         $tags->addItem(TagService::loadFromDb($tag->tag));
     }
     return $tags;
 }
Esempio n. 6
0
 /**
  * Adds all annexes for this directive.
  * @param object $dirRow annex data Nette\Database\Table\ActiveRow
  * @return void
  */
 public function addAnnex(ActiveRow $dirRow)
 {
     $annexData = $dirRow->related('annex.id')->order('order');
     foreach ($annexData as $annexRow) {
         $annex = new Annex($annexRow);
         $this->addComponent($annex, "annex" . $annexRow->order);
     }
 }
Esempio n. 7
0
 public function output(\Nette\Database\Table\ActiveRow $query)
 {
     $output = array();
     foreach ($query->related('permission')->where('role_id', $this->roleId) as $permission) {
         $output[] = $permission->privilege['name'];
     }
     return implode(', ', $output);
 }
Esempio n. 8
0
 public function output(\Nette\Database\Table\ActiveRow $query)
 {
     $translateLocale = $query->related('translate_locale')->where('language_id', $this->languageId)->fetch();
     if ($translateLocale) {
         parent::output($translateLocale);
     } else {
         return '';
     }
 }
 /**
  * Returns referencing rows.
  * @param string $collectionClass
  * @param string|null $throughColumn
  * @return StoredCollection|ArrayAccess
  */
 public function related($collectionClass, $throughColumn = null)
 {
     self::mustBeChildOf($collectionClass, StoredCollection::class);
     if ($this->isNewEntity()) {
         return null;
     } else {
         $entityClass = $collectionClass::getEntityClassName($this->annotationReader);
         $key = $entityClass::getTableName($this->annotationReader);
         return $collectionClass::create($this, $this->row->related($key, $throughColumn));
     }
 }
Esempio n. 10
0
 protected function createComponentFormEdit($name)
 {
     $form = new Form($this, $name);
     $form->addGroup();
     $form->addText('name', $this->translator->translate('admin.form.name'))->addRule(Form::FILLED, $this->translator->translate('admin.form.isRequired'));
     $form->addText('system_name', $this->translator->translate('admin.form.systemName'))->addRule(Form::FILLED, $this->translator->translate('admin.form.name'))->addRule([$this, 'valideFormEditSystemName'], $this->translator->translate('admin.form.systemNameExist'));
     $form->addGroup($this->translator->translate('admin.resource.setPrivileges'));
     foreach ($this->privilege->order('name') as $privilege) {
         $form->addCheckbox('privilege_' . $privilege['id'], $privilege['name']);
     }
     $form->addGroup();
     $form->addSubmit('send', $this->translator->translate('admin.form.edit'));
     $form->onSuccess[] = [$this, 'submitFormEdit'];
     $defaults = array('name' => $this->resource->name, 'system_name' => $this->resource->system_name);
     foreach ($this->resource->related('resource_privilege') as $resourcePrivilege) {
         $defaults['privilege_' . $resourcePrivilege['privilege_id']] = true;
     }
     $form->setDefaults($defaults);
     return $form;
 }
Esempio n. 11
0
 /**
  * Creates Addon entity from Nette\Database row.
  *
  * @todo   Consider lazy loading for versions and tags.
  *
  * @param \Nette\Database\Table\ActiveRow
  * @param AddonVotes
  * @return Addon
  */
 public static function fromActiveRow(ActiveRow $row, AddonVotes $addonVotes = NULL)
 {
     $addon = new static();
     $addon->id = (int) $row->id;
     $addon->name = $row->name;
     $addon->composerVendor = $row->composerVendor;
     $addon->composerName = $row->composerName;
     $addon->userId = (int) $row->user->id;
     $addon->shortDescription = $row->shortDescription;
     $addon->description = $row->description;
     $addon->descriptionFormat = $row->descriptionFormat;
     $addon->defaultLicense = $row->defaultLicense;
     $addon->repository = $row->repository;
     $addon->repositoryHosting = $row->repositoryHosting;
     $addon->demo = $row->demo;
     $addon->updatedAt = $row->updatedAt ? DateTime::from($row->updatedAt) : NULL;
     $addon->deletedAt = $row->deletedAt;
     $addon->deletedBy = $row->ref('deletedBy');
     $addon->type = $row->type;
     $addon->stars = $row->stars;
     foreach ($row->related('versions') as $versionRow) {
         $version = AddonVersion::fromActiveRow($versionRow);
         $version->addon = $addon;
         $addon->versions[$version->version] = $version;
     }
     foreach ($row->related('tags') as $tagRow) {
         $addon->tags[$tagRow->tag->id] = Tag::fromActiveRow($tagRow->tag);
     }
     foreach ($row->related('addons_resources') as $resourceRow) {
         $addon->resources[$resourceRow->type] = $resourceRow->resource;
     }
     if ($addonVotes) {
         $addon->votes = $addonVotes->calculatePopularity($row);
     }
     return $addon;
 }
Esempio n. 12
0
 /**
  * Returns referencing rows
  *
  * @param string $key Other table name
  * @param string $throughColumn Other table column name
  * @return HyperSelection
  * @throws Nette\MemberAccessException
  */
 public function related($key, $throughColumn = NULL)
 {
     $groupedSelection = $this->activeRow->related($key, $throughColumn);
     return $this->factory->createSelection($groupedSelection);
 }
Esempio n. 13
0
 private function finishAndAccount(Nette\Database\Table\ActiveRow $keg, $datetime)
 {
     $consumption = $keg->related('consumption.keg')->select('user, SUM(volume) AS volume')->group('user');
     $price_per_ml = $keg->price / $consumption->sum('volume');
     $updateQuery = 'UPDATE `user` SET `balance` = `balance` - ? WHERE `id` = ?';
     foreach ($consumption as $consumer) {
         $bill = round($price_per_ml * $consumer['volume'], 2);
         $this->db->query($updateQuery, $bill, $consumer['user']);
         $this->db->table('credit')->insert(array('user' => $consumer['user'], 'date_add' => $datetime, 'amount' => $bill * -1, 'keg' => $keg->id));
     }
 }
Esempio n. 14
0
 private static function loadCommentsFromDb(DbEntry $article)
 {
     $comments = new CommentCollection();
     foreach ($article->related("comment", "article_id") as $comment) {
         $comments->addItem(CommentService::loadFromDb($comment));
     }
     return $comments;
 }
Esempio n. 15
0
 /**
  * @param  string $key
  * @param  string $throughColumn
  * @return NGroupedSelection
  */
 public function related($key, $throughColumn = NULL)
 {
     $this->checkRow();
     return $this->row->related($key, $throughColumn);
 }
Esempio n. 16
0
 /**
  * Vrací úkoly spadající pod danný list.
  * @return Nette\Database\Table\Selection
  */
 public function tasksOf(Nette\Database\Table\ActiveRow $list)
 {
     return $list->related('task')->order('created');
 }
Esempio n. 17
0
 /**
  * Appends referencing database table data to result set according to $this->deepListing
  * @param array $dest reference to data destination
  * @param \Nette\Database\Table\ActiveRow $row
  * @param array $map
  */
 protected function getDeepData(array &$dest, ActiveRow $row, array $map)
 {
     foreach ($map as $key => $val) {
         if (is_array($val)) {
             if ($this->isValidId($dest[$key]) === FALSE) {
                 continue;
             }
             $dest[$key] = $row->ref($key)->toArray();
             $this->getDeepData($dest[$key], $row->ref($key), $val);
         } else {
             $oneToMany = strpos($val, '.');
             if ($oneToMany) {
                 $dest[substr($val, 0, $oneToMany)] = iterator_to_array($row->related($val), false);
             } else {
                 $dest[$val] = $row->ref($val)->toArray();
             }
         }
     }
 }