/** * Returns PayPal's cart items in Nette\ArrayHash or false if there are no items. * * @param $data Data from PayPal response * @return Nette\ArrayHash or boolean */ public function getCartItems() { $patternKeys = ''; $iterator = new CachingIterator($this->CART_ITEM_KEYS); for ($iterator->rewind(); $iterator->valid(); $iterator->next()) { if ($iterator->isFirst()) { $patternKeys .= '('; } $patternKeys .= $iterator->current(); if ($iterator->hasNext()) { $patternKeys .= '|'; } if ($iterator->isLast()) { $patternKeys .= ')'; } } $pattern = '/^' . $patternKeys . '[0-9]+$/'; $itemsData = Utils::array_keys_by_ereg($this->responseData, $pattern); $items = array(); $itemsCount = count($items); if (!empty($itemsData)) { $itemsCount = count($itemsData) / count($this->CART_ITEM_KEYS); } // We must control if the result of division is integer. // Because if not, it means the count of keys in PayPal cart item changed. assert(is_int($itemsCount)); for ($i = 0; $i < $itemsCount; ++$i) { $keys = array(); foreach ($this->CART_ITEM_KEYS as $key) { $keys[] = $key . $i; } if (Utils::array_keys_exist($itemsData, $keys)) { $items[] = array('name' => $itemsData['l_name' . $i], 'quantity' => $itemsData['l_qty' . $i], 'taxAmount' => $itemsData['l_taxamt' . $i], 'amount' => $itemsData['l_amt' . $i], 'description' => $itemsData['l_desc' . $i], 'weightValue' => $itemsData['l_itemweightvalue' . $i], 'lengthValue' => $itemsData['l_itemlengthvalue' . $i], 'widthValue' => $itemsData['l_itemwidthvalue' . $i], 'heightValue' => $itemsData['l_itemheightvalue' . $i]); } } return ArrayHash::from($items); }
/** * Rewinds the Iterator. * @return void */ public function rewind() { parent::rewind(); $this->counter = parent::valid() ? 1 : 0; }
/** * Renders data grid body. * @return string */ public function renderBody() { $container = $this->getWrapper('datagrid container'); // headers $header = Html::el($container->getName() == 'table' ? 'thead' : NULL); $header->add($this->generateHeaderRow()); if ($this->dataGrid->hasFilters()) { $header->add($this->generateFilterRow()); } // footer $footer = Html::el($container->getName() == 'table' ? 'tfoot' : NULL); $footer->add($this->generateFooterRow()); // body $body = Html::el($container->getName() == 'table' ? 'tbody' : NULL); if ($this->dataGrid->paginator->itemCount) { $iterator = new Nette\Iterators\CachingIterator($this->dataGrid->getRows()); foreach ($iterator as $data) { $row = $this->generateContentRow($data); $row->addClass($iterator->isEven() ? $this->getValue('row.content .even') : NULL); $body->add($row); } } else { $size = count($this->dataGrid->getColumns()); $row = $this->getWrapper('row.content container'); $cell = $this->getWrapper('row.content cell container'); $cell->colspan = $size; $cell->style = 'text-align:center'; $cell->add(Html::el('div')->setText($this->dataGrid->translate('No data were found'))); $row->add($cell); $body->add($row); } if ($container->getName() == 'table') { $container->add($header); $container->add($footer); $container->add($body); } else { $container->add($header); $container->add($body); $container->add($footer); } return $container->render(0); }
/** * @param $id * * @throws \PHPExcel_Reader_Exception */ public function handleDownloadExcel($id) { if ($id and $event = $this->eventFacade->findEventById($id)) { $performances = []; $performances[1] = ["A" => "#", "B" => "Autor skladby", "C" => "Název skladby", "D" => "Poznámka", "E" => "Žáci", "F" => "Nástroj", "G" => "Ročník"]; /** @var Entity\Performance $performance */ foreach ($event->performances as $performance) { foreach ($iterator = new CachingIterator($performance->children) as $child) { $tmpRow = []; if ($iterator->isFirst()) { $tmpRow["A"] = $iterator->counter; $tmpRow["B"] = $performance->songAuthor; $tmpRow["C"] = $performance->songName; $tmpRow["D"] = $performance->note; } $tmpRow["E"] = $child->name; $tmpRow["F"] = $child->instrument; $tmpRow["G"] = $child->class; $tmpRow["H"] = $child->teacher->name; $performances[] = $tmpRow; } } $excel = new \PHPExcel(); $sheet = $excel->getActiveSheet(); foreach ($performances as $row => $invitation) { foreach ($invitation as $cell => $value) { $sheet->setCellValue($cell . $row, trim($value)); } } $writer = \PHPExcel_IOFactory::createWriter($excel, "Excel2007"); $name = $this->context->getParameters()["tempDir"] . "/export/" . Random::generate(); if (!file_exists(dirname($name))) { mkdir(dirname($name)); } $writer->save($name); $this->sendResponse(new FileResponse($name, "udalost-" . $event->id . ".xlsx")); } }
next(){parent::next();if(parent::valid()){$this->counter++;}}function rewind(){parent::rewind();$this->counter=parent::valid()?1:0;}function