object_actions:
_edit: ~
send: { params: { onclick : "if(confirm('Are you sure?')){return true;}else{return false;}" } }
Thursday, April 21, 2011
Display Confirm Message before a Custom Object Action with Admin Generator in Symfony
Labels:
admin-generator,
generator,
symfony
Form Validation Errors At Top of the Page in Symfony
-
<?php foreach($form->getWidgetSchema()->getPositions() as $widgetName): ?>
<?php if($form[$widgetName]->hasError()): ?>
- <?php echo $form[$widgetName]->renderLabelName().': '.__($form[$widgetName]->getError()->getMessageFormat()); ?> <?php endif; ?> <?php endforeach; ?>
Monday, April 18, 2011
Show HTML Tags Instead of Entities in Flash Messages in Symfony
Use this instead:
$sf_user->getFlash('msg', ESC_RAW);
Send Email with Gmail SMTP in Symfony
Put this to the fatories.yml:
mailer:
param:
transport:
class: Swift_SmtpTransport
param:
host: smtp.gmail.com
port: 465
encryption: ssl
username: "...@gmail.com"
password: "..."
Thursday, April 7, 2011
Mime Type Problem when Uploading DOC, DOCX, ODT Files in Symfony
If you create a DOC file with OpenOffice, its mimetype will be application/octet-stream, that can be anything binary data. Of course, you can't allow this mimetype at uploading.
If you try to upload DOCX and ODT files, symfony will recognise them as a ZIP archive. To corrrect this and the OpenOffice DOC mimetype problem, add the 'mime_type_guessers' option to sfValidatorFile:
If you try to upload DOCX and ODT files, symfony will recognise them as a ZIP archive. To corrrect this and the OpenOffice DOC mimetype problem, add the 'mime_type_guessers' option to sfValidatorFile:
$this->setValidator('filename', new sfValidatorFile(array(
'max_size' => ...,
'path' => ...,
'mime_type_guessers' => array('guessFromFileinfo'),
'required' => ...,
...
Convert RTF to TEXT with PHP and Linux
I always use UnRTF to get text from RTF files. The simplest way to convert the rtf file to html, then use the strip_tags method.
exec("unrtf test.rtf", $output);
echo strip_tags(implode('', $output));
However UnRTF is not fully compatible with UTF-8, it has problems with accents, ex. with the Hungarian accents, thus, I had to correct the Hungarian accents this way:$from = array("Û", "û", "õ", "Õ");
$to = array("Ű", "ű", "ő", "Ő");
exec("unrtf test.rtf", $output);
echo strip_tags(str_replace($from, $to, html_entity_decode(implode('', $output), ENT_QUOTES, 'UTF-8')));
Convert ODT to TEXT with PHP
Shorter way (requires odt2txt installed and shell_exec enabled):
echo shell_exec("odt2txt --encoding=utf8 test.odt");
Longer way (requires PHP 5.2+ and ZIP extension enabled):function odt2text($filename) {
return readZippedXML($filename, "content.xml");
}
function readZippedXML($archiveFile, $dataFile) {
// Create new ZIP archive
$zip = new ZipArchive;
// Open received archive file
if (true === $zip->open($archiveFile)) {
// If done, search for the data file in the archive
if (($index = $zip->locateName($dataFile)) !== false) {
// If found, read it to the string
$data = $zip->getFromIndex($index);
// Close archive file
$zip->close();
// Load XML from a string
// Skip errors and warnings
$xml = DOMDocument::loadXML($data, LIBXML_NOENT | LIBXML_XINCLUDE | LIBXML_NOERROR | LIBXML_NOWARNING);
// Return data without XML formatting tags
return strip_tags($xml->saveXML());
}
$zip->close();
}
// In case of failure return empty string
return "";
}
echo odt2text("test.odt");
Convert DOCX to TEXT with PHP
First, you have to use PHP 5.2+ and enable the ZIP (ZipArchive) extension for PHP.
function docx2text($filename) {
return readZippedXML($filename, "word/document.xml");
}
function readZippedXML($archiveFile, $dataFile) {
// Create new ZIP archive
$zip = new ZipArchive;
// Open received archive file
if (true === $zip->open($archiveFile)) {
// If done, search for the data file in the archive
if (($index = $zip->locateName($dataFile)) !== false) {
// If found, read it to the string
$data = $zip->getFromIndex($index);
// Close archive file
$zip->close();
// Load XML from a string
// Skip errors and warnings
$xml = DOMDocument::loadXML($data, LIBXML_NOENT | LIBXML_XINCLUDE | LIBXML_NOERROR | LIBXML_NOWARNING);
// Return data without XML formatting tags
return strip_tags($xml->saveXML());
}
$zip->close();
}
// In case of failure return empty string
return "";
}
echo docx2text("test.docx");
Wednesday, April 6, 2011
Convert DOC to TEXT with PHP and Linux
$file = $directory.'/'.$filename;
$fileinfo = pathinfo($filename);
$content = "";
// doc to text
if($fileinfo['extension'] == 'doc')
{
$content = shell_exec("antiword -m UTF-8.txt -t $file");
}
Convert PDF to TEXT with PHP and Linux
To install pdftotext, use: apt-get install xpdf
$file = $directory.'/'.$filename;
$fileinfo = pathinfo($filename);
$content = "";
// pdt to text
if($fileinfo['extension'] == 'pdf')
{
$outpath = preg_replace("/\.pdf$/", "", $file).".txt";
system("pdftotext -enc UTF-8 ".escapeshellcmd($file), $ret);
if($ret == 0) {
$content = file_get_contents($outpath);
unlink($outpath);
}
}
Monday, April 4, 2011
Correct the Icon Position of sfAdminThemejRollerPlugin Buttons in IE, Chrome, Safari
Use this code in the layout after the CSS definitions....
Labels:
admin-generator,
css,
jroller,
sfAdminThemejRollerPlugin,
symfony
Subscribe to:
Comments (Atom)