String.prototype.repeat = function(numTimes) {
var ret = '';
for(var a = 0; a < numTimes;a++) {
ret += this;
}
return ret;
}
sexta-feira, 12 de junho de 2009
Atribuindo métodos a tipos do js, adicionando um método .repeat() a todas as strings.
quarta-feira, 13 de maio de 2009
Usando classes do Zend Framework no Symfony
1 - incluir as classes em plugins/Zend/lib
2 - configurar o caminho no settings.yml
# Zend Framework
zend_autoload: on
zend_lib_dir: "%SF_PLUGINS_DIR%/Zend/lib"
3 - inicializar o autoload no frontendConfiguration:
/**
* @package system
* @subpackage configuration
*/
class frontendConfiguration extends sfApplicationConfiguration
{
public function configure()
{
}
public function initialize()
{
parent::initialize();
/**
* Zend Framework Autoloading
*/
if(sfConfig::get('sf_zend_autoload', true) && ($sf_zend_lib_dir = sfConfig::get('sf_zend_lib_dir'))) {
set_include_path($sf_zend_lib_dir.PATH_SEPARATOR.get_include_path());
require_once($sf_zend_lib_dir.DIRECTORY_SEPARATOR.'Zend'.DIRECTORY_SEPARATOR .'Loader.php');
spl_autoload_register(array('Zend_Loader', 'loadClass'));
}
/**
* DOMPdf Autoloading
*/
if(sfConfig::get('sf_dompdf_autoload', true) && ($sf_dompdf_lib_dir = sfConfig::get('sf_dompdf_lib_dir'))) {
set_include_path($sf_dompdf_lib_dir.PATH_SEPARATOR.get_include_path());
// require_once($sf_dompdf_lib_dir.DIRECTORY_SEPARATOR.'dompdf_config.inc.php');
// spl_autoload_register('DOMPDF_autoload');
}
}
}
2 - configurar o caminho no settings.yml
# Zend Framework
zend_autoload: on
zend_lib_dir: "%SF_PLUGINS_DIR%/Zend/lib"
3 - inicializar o autoload no frontendConfiguration:
/**
* @package system
* @subpackage configuration
*/
class frontendConfiguration extends sfApplicationConfiguration
{
public function configure()
{
}
public function initialize()
{
parent::initialize();
/**
* Zend Framework Autoloading
*/
if(sfConfig::get('sf_zend_autoload', true) && ($sf_zend_lib_dir = sfConfig::get('sf_zend_lib_dir'))) {
set_include_path($sf_zend_lib_dir.PATH_SEPARATOR.get_include_path());
require_once($sf_zend_lib_dir.DIRECTORY_SEPARATOR.'Zend'.DIRECTORY_SEPARATOR .'Loader.php');
spl_autoload_register(array('Zend_Loader', 'loadClass'));
}
/**
* DOMPdf Autoloading
*/
if(sfConfig::get('sf_dompdf_autoload', true) && ($sf_dompdf_lib_dir = sfConfig::get('sf_dompdf_lib_dir'))) {
set_include_path($sf_dompdf_lib_dir.PATH_SEPARATOR.get_include_path());
// require_once($sf_dompdf_lib_dir.DIRECTORY_SEPARATOR.'dompdf_config.inc.php');
// spl_autoload_register('DOMPDF_autoload');
}
}
}
Marcadores:
autoload,
symfony,
Zend Framework,
ZF
terça-feira, 14 de abril de 2009
Lendo um diretório com SPL
$r = new RecursiveIteratorIterator(
new RecursiveDirectoryIterator(dirname(__FILE__)),
RecursiveIteratorIterator::LEAVES_ONLY
);
foreach ($r as $file) {
echo $file.'
';
}
terça-feira, 7 de abril de 2009
Pequenos ajustes no mysql.... (bin/my.cnf)
Para configurar o log das querys:
log="C:/tmp/mysqllog/mysqld.log"
Para definir o charset padrão
character_set_server=UTF8
log="C:/tmp/mysqllog/mysqld.log"
Para definir o charset padrão
character_set_server=UTF8
terça-feira, 31 de março de 2009
[snippet] Adicionando inputs ao pressionar enter
Inserindo mais inputs no enter:
adminEssays.form = {};
adminEssays.form.addInput = function(target) {
var nextInput;
inputs = $("#category-subs").children('input');
if(inputs.length == 0) {
nextInput = 0;
}
else {
nextInput = 0;
for (var a = 0; a < inputs.length; a++) {
id = parseInt(inputs[a].id.substr(21));
if (id >= nextInput) {
nextInput = id + 1;
}
}
}
id = "category-subcategory-" + nextInput;
html = "< input type='text' size='70' id='" + id + "' class='category-subcategory' name='subcategory[]' style='display:block'/>";
if(nextInput == 0) {
$('#category-subs').html(html);
}
else {
$(target).after(html);
}
$(".category-subcategory").bind("keypress",adminEssays.form.inputEnter);
}
adminEssays.form.submitForm = function(id) {
JsonC.submitForSfAction('adminEssays/insertSubcategories',{},'form-insert-subcategories','form-insert-subcategories-loading');
}
adminEssays.form.inputEnter = function(evt) {
if(evt.keyCode == 8 || evt.keyCode == 46) {
var tgt = $(evt.currentTarget);
if(tgt.val() == '') {
if( $('#category-subs').children().length > 1 ) {
var inputToFocus;
if(tgt.next().length > 0) {
inputToFocus = tgt.next()[0];
}
else {
inputToFocus = tgt.prev()[0];
}
tgt.remove();
inputToFocus.focus();
}
return false;
}
}
if(evt.keyCode == 13) {
prox = $(evt.currentTarget).next().length;
if(prox > 0) {
$($(evt.currentTarget).next()[0]).focus();
}
else {
adminEssays.form.addInput(evt.currentTarget);
$($(evt.currentTarget).next()[0]).focus();
}
}
};
quinta-feira, 5 de março de 2009
Criando uma estrutura de arvore para o jsTree
public function createTreeStructure($dir) {
$ar = array(
'attributes'=>array('id'=>'node-root'),
'data'=>'TESTS',
'children'=>$this->createChildren($dir)
);
return $ar;
}
public function createChildren($dir) {
static $n=0;
$it = new RecursiveDirectoryIterator($dir);
$arAll = array();
foreach($it as $file) {
if(strpos($file,'.svn') !== false) continue;
$ar = array(
'attributes'=>array('id'=>'node-'.$n),
'data'=>$file->getFilename()
);
if($file->isDir()) {
$ar['children'] = $this->createChildren($file);
}
$arAll[] = $ar;
}
return $arAll;
}
O valor de longo prazo de um software é diretamente proporcional a qualidade do código.
Já imaginou se todo gerente e toda organização tivessem esta consciência? Seria bem mais fácil de fazer um bom trabalho. Pena que de maneira geral o brasileiro ainda não tem visão de médio e longo prazo.
O que acontece é que o custo de desenvolvimento de um software, se for bem feito, pode reduzir muito o custo do próximo pelas bibliotecas geradas. E também a manutenção em bom código é muito mais fácil.
O que acontece é que o custo de desenvolvimento de um software, se for bem feito, pode reduzir muito o custo do próximo pelas bibliotecas geradas. E também a manutenção em bom código é muito mais fácil.
Marcadores:
citação,
código,
gerência,
gerenciamento,
qualidade de código
Assinar:
Postagens (Atom)