public function validate($value, Constraint $constraint) { $value = StringHandler::slugify($value); /* * If value is already the node name * do nothing. */ if (null !== $constraint->currentValue && $value == $constraint->currentValue) { return; } if (null !== $constraint->entityManager) { if (true === $this->tagNameExists($value, $constraint->entityManager)) { $this->context->addViolation($constraint->message); } } else { $this->context->addViolation('UniqueTagNameValidator constraint requires a valid EntityManager'); } }
/** * Update nodeName when title is available. * * @param string $title * @param NodesSources $nodeSource */ protected function updateNodeName(NodesSources $nodeSource) { $title = $nodeSource->getTitle(); /* * update node name if dynamic option enabled and * default translation */ if ("" != $title && true === $nodeSource->getNode()->isDynamicNodeName() && $nodeSource->getTranslation()->isDefaultTranslation()) { $testingNodeName = StringHandler::slugify($title); /* * node name wont be updated if name already taken */ if ($testingNodeName != $nodeSource->getNode()->getNodeName() && false === (bool) $this->getService('em')->getRepository('RZ\\Roadiz\\Core\\Entities\\UrlAlias')->exists($testingNodeName) && false === (bool) $this->getService('em')->getRepository('RZ\\Roadiz\\Core\\Entities\\Node')->exists($testingNodeName)) { $nodeSource->getNode()->setNodeName($title); $this->getService('em')->flush(); /* * Dispatch event */ $event = new FilterNodeEvent($nodeSource->getNode()); $this->getService('dispatcher')->dispatch(NodeEvents::NODE_UPDATED, $event); } } }
public function searchAction(Request $request) { /* * Validate */ if (true !== ($notValid = $this->validateRequest($request, 'GET'))) { return new Response(json_encode($notValid), Response::HTTP_OK, ['content-type' => 'application/javascript']); } $this->validateAccessForRole('ROLE_ACCESS_TAGS'); $responseArray = ['statusCode' => Response::HTTP_NOT_FOUND, 'status' => 'danger', 'responseText' => 'No tags found']; if ($request->get('search') != "") { $responseArray = []; $pattern = strip_tags($request->get('search')); $tags = $this->getService('em')->getRepository('RZ\\Roadiz\\Core\\Entities\\Tag')->searchBy($pattern, [], [], 10); if (0 === count($tags)) { /* * Try again using tag slug */ $pattern = StringHandler::slugify($pattern); $tags = $this->getService('em')->getRepository('RZ\\Roadiz\\Core\\Entities\\Tag')->searchBy($pattern, [], [], 10); } foreach ($tags as $tag) { $responseArray[] = $tag->getHandler()->getFullPath(); } } return new Response(json_encode($responseArray), Response::HTTP_OK, ['content-type' => 'application/javascript']); }
/** * @param array $data * @param RZ\Roadiz\Core\Entities\UrlAlias $ua * * @return boolean */ private function editUrlAlias($data, UrlAlias $ua) { $testingAlias = StringHandler::slugify($data['alias']); if ($testingAlias != $ua->getAlias() && ($this->nodeNameExists($testingAlias) || $this->urlAliasExists($testingAlias))) { $msg = $this->getTranslator()->trans('url_alias.%alias%.no_update.already_exists', ['%alias%' => $data['alias']]); throw new EntityAlreadyExistsException($msg, 1); } if ($data['urlaliasId'] == $ua->getId()) { try { $ua->setAlias($data['alias']); $this->getService('em')->flush(); return true; } catch (\Exception $e) { return false; } } return false; }
/** * Return a ZipArchive of requested font. * * @param Symfony\Component\HttpFoundation\Request $request * @param int $fontId * * @return Symfony\Component\HttpFoundation\Response */ public function downloadAction(Request $request, $fontId) { $this->validateAccessForRole('ROLE_ACCESS_FONTS'); $font = $this->getService('em')->find('RZ\\Roadiz\\Core\\Entities\\Font', (int) $fontId); if ($font !== null) { // Prepare File $file = tempnam("tmp", "zip"); $zip = new \ZipArchive(); $zip->open($file, \ZipArchive::OVERWRITE); if ("" != $font->getEOTFilename()) { $zip->addFile($font->getEOTAbsolutePath(), $font->getEOTFilename()); } if ("" != $font->getSVGFilename()) { $zip->addFile($font->getSVGAbsolutePath(), $font->getSVGFilename()); } if ("" != $font->getWOFFFilename()) { $zip->addFile($font->getWOFFAbsolutePath(), $font->getWOFFFilename()); } if ("" != $font->getWOFF2Filename()) { $zip->addFile($font->getWOFF2AbsolutePath(), $font->getWOFF2Filename()); } if ("" != $font->getOTFFilename()) { $zip->addFile($font->getOTFAbsolutePath(), $font->getOTFFilename()); } // Close and send to users $zip->close(); $filename = StringHandler::slugify($font->getName() . ' ' . $font->getReadableVariant()) . '.zip'; $response = new Response(file_get_contents($file), Response::HTTP_OK, ['content-control' => 'private', 'content-type' => 'application/zip', 'content-length' => filesize($file), 'content-disposition' => 'attachment; filename=' . $filename]); unlink($file); return $response; } else { return $this->throw404(); } }
/** * @param string $name * * @return $this */ public function setName($name) { $this->name = StringHandler::slugify($name); return $this; }
/** * @param string $tagName * * @return $this */ public function setTagName($tagName) { $this->dirtyTagName = $tagName; $this->tagName = StringHandler::slugify($tagName); return $this; }
/** * Return a ZipArchive of requested folder. * * @param Symfony\Component\HttpFoundation\Request $request * @param int $folderId * * @return Symfony\Component\HttpFoundation\Response */ public function downloadAction(Request $request, $folderId) { $this->validateAccessForRole('ROLE_ACCESS_DOCUMENTS'); $folder = $this->getService('em')->find('RZ\\Roadiz\\Core\\Entities\\Folder', (int) $folderId); if ($folder !== null) { // Prepare File $file = tempnam("tmp", "zip"); $zip = new \ZipArchive(); $zip->open($file, \ZipArchive::OVERWRITE); $documents = $this->getService('em')->getRepository('RZ\\Roadiz\\Core\\Entities\\Document')->findBy(['folders' => [$folder]]); foreach ($documents as $document) { $zip->addFile($document->getAbsolutePath(), $document->getFilename()); } // Close and send to users $zip->close(); $filename = StringHandler::slugify($folder->getName()) . '.zip'; $response = new Response(file_get_contents($file), Response::HTTP_OK, ['content-type' => 'application/zip', 'content-length' => filesize($file), 'content-disposition' => 'attachment; filename=' . $filename]); unlink($file); return $response; } else { return $this->throw404(); } }
/** * @dataProvider slugifyProvider */ public function testSlugify($input, $expected) { // Assert $this->assertEquals($expected, StringHandler::slugify($input)); }
/** * Sets the value of overrideLocale. * * @param string $overrideLocale the override locale * * @return self */ public function setOverrideLocale($overrideLocale) { $this->overrideLocale = StringHandler::slugify($overrideLocale); return $this; }
/** * @param string $alias * * @return $this */ public function setAlias($alias) { $this->alias = StringHandler::slugify($alias); return $this; }