From: Hugo P. L. <hu...@us...> - 2004-09-04 19:39:08
|
Update of /cvsroot/muspa/muspa/modules/noticia In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6652 Modified Files: noticia.php Log Message: muitos bugfixes e suporte ao modulo newsletter. Index: noticia.php =================================================================== RCS file: /cvsroot/muspa/muspa/modules/noticia/noticia.php,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** noticia.php 10 Jul 2004 08:40:15 -0000 1.16 --- noticia.php 4 Sep 2004 19:38:58 -0000 1.17 *************** *** 31,35 **** define('NOTICIA_UPLOADDIR', 'modules/noticia/imagens/'); - /** * Modulo Noticia --- 31,34 ---- *************** *** 58,67 **** array('olho', 'olho', FRM_OPCIONAL), array('titulo', 'título', FRM_OBRIGATORIO), array('fonte', 'fonte', FRM_OPCIONAL), ! array('minitexto', 'mini texto', FRM_OBRIGATORIO), array('capaimg', 'imagem da capa', FRM_OPCIONAL), array('datahora', 'data', FRM_DATA | FRM_OBRIGATORIO), ! array('fixed', 'fixar notícia', FRM_OPCIONAL, "/^1$/"), ! array('visible', 'notícia visível', FRM_OPCIONAL, "/^1$/"), array('conteudo', 'conteudo', FRM_OBRIGATORIO), ); --- 57,70 ---- array('olho', 'olho', FRM_OPCIONAL), array('titulo', 'título', FRM_OBRIGATORIO), + array('titulocor', 'cor do título', FRM_OPCIONAL), array('fonte', 'fonte', FRM_OPCIONAL), ! // array('minitexto', 'mini texto', FRM_OBRIGATORIO), ! array('minitexto', 'mini texto', FRM_OPCIONAL), ! array('chamada', 'chamada', FRM_OBRIGATORIO), array('capaimg', 'imagem da capa', FRM_OPCIONAL), array('datahora', 'data', FRM_DATA | FRM_OBRIGATORIO), ! array('fixed', 'fixar notícia', FRM_OPCIONAL, "/^Y$/"), ! array('visible', 'notícia visível', FRM_OPCIONAL, "/^Y$/"), ! array('newsletter', 'disponível para newsletter', FRM_OPCIONAL, "/^Y$/"), array('conteudo', 'conteudo', FRM_OBRIGATORIO), ); *************** *** 94,97 **** --- 97,101 ---- $aParam['datahora'] = date('d\/m\/Y H:i'); $aParam['visible'] = 1; + $aParam['chamada'] = 'Leia mais'; $this->displayForm($aParam); break; *************** *** 349,353 **** { $aInfo = GetImageSize('modules/noticia/imagens/'.$row['url']); ! $aImagens['URL'][] = $row['url'].'|'.$aInfo[0].'|'.$aInfo[1]; } else --- 353,357 ---- { $aInfo = GetImageSize('modules/noticia/imagens/'.$row['url']); ! $aImagens['URL'][] = './modules/noticia/imagens/'.$row['url'].'|'.$aInfo[0].'|'.$aInfo[1]; } else *************** *** 433,486 **** function displayForm( &$aValues ) { - - /// Lista os modelos disponíveis - $this->db->query('SELECT id, nome, html FROM '.PRE_TABLE.'noticia_modelos '); - - // Verifica se existe algum modelo criado [x] - if (!$this->db->numRows()) - SemiFatalError($this->aUser['privs'] == PRIV_ADMIN ? - 'É necessário criar pelo menos um modelo e uma seção, nesta ordem, para poder habilitar o formulário de cadastro de notícias.' : 'Não existem modelos cadastrados, avise ao Administrador.', - $this->aUser['privs'] == PRIV_ADMIN ? '?m=noticia&action=shownovomodelo' : '?m=entrada'); - // Carrega os templates $this->tmpl->readTemplatesFromFile('modules/noticia/templates/formulario.htm'); $this->tmpl->readTemplatesFromFile('sys/templates/editor.htm'); - /** Monta JS Array de todos os Modelos */ - $modelos = "[\n"; - // Monta a array do JavaScript - while ($row = $this->db->fetchAssoc()) - { - if (isset($aValues['modelo'])) - $selected = $aValues['modelo'] ? 'true' : 'false'; - else - $selected = ''; - $modelos .= "\t[ ".$row['id'].", '".$row['nome']."', ".$selected." ],\n"; - } - $modelos = rtrim($modelos, ",\n")."\n]"; - $this->tmpl->addVar('formulario', 'MODELOSARRAY', $modelos); - /** --- **/ - - if (isset($aValues['fixed'])) $aValues['fixed'] = ($aValues['fixed']) ? 'checked="checked"' : ''; if (isset($aValues['visible'])) $aValues['visible'] = ($aValues['visible']) ? 'checked="checked"' : ''; $this->tmpl->addVars('formulario', $aValues); ! /// Lista as seções disponiveis $this->db->query('SELECT id, nome, modelos ' .' FROM '.PRE_TABLE.'noticia_secoes ' .' WHERE INSTR(users, "'.$this->aUser['id'].'")', __FILE__, __LINE__); - // Verifica se existe alguma seção criada [x] - if (!$this->db->numRows()) - SemiFatalError( $this->aUser['privs'] == PRIV_ADMIN ? - 'É necessário que seja criada pelo menos uma seção para habilitar o cadastro de notícias.' : - 'Seu usuário não esta habilitado a cadastrar notícias em nenhuma seção, fale com o administrador.' - , $this->aUser['privs'] == PRIV_ADMIN ? '?m=noticia&action=shownovasecao' : '?m=entrada'); - - // Monta JS Array e patTemplate Var $aSecoes = array(); --- 437,458 ---- function displayForm( &$aValues ) { // Carrega os templates $this->tmpl->readTemplatesFromFile('modules/noticia/templates/formulario.htm'); $this->tmpl->readTemplatesFromFile('sys/templates/editor.htm'); if (isset($aValues['fixed'])) $aValues['fixed'] = ($aValues['fixed']) ? 'checked="checked"' : ''; if (isset($aValues['visible'])) $aValues['visible'] = ($aValues['visible']) ? 'checked="checked"' : ''; + if (isset($aValues['newsletter'])) + $aValues['newsletter'] = ($aValues['newsletter']) ? 'checked="checked"' : ''; $this->tmpl->addVars('formulario', $aValues); ! /// Lista de seções disponiveis $this->db->query('SELECT id, nome, modelos ' .' FROM '.PRE_TABLE.'noticia_secoes ' .' WHERE INSTR(users, "'.$this->aUser['id'].'")', __FILE__, __LINE__); // Monta JS Array e patTemplate Var $aSecoes = array(); *************** *** 502,505 **** --- 474,494 ---- /** --- **/ + + /** Monta JS Array de todos os Modelos */ + $this->db->query('SELECT id, nome, html FROM '.PRE_TABLE.'noticia_modelos '); + $modelos = "[\n"; + // Monta a array do JavaScript + while ($row = $this->db->fetchAssoc()) + { + if (isset($aValues['modelo'])) + $selected = $aValues['modelo'] ? 'true' : 'false'; + else + $selected = ''; + $modelos .= "\t[ ".$row['id'].", '".$row['nome']."', ".$selected." ],\n"; + } + $modelos = rtrim($modelos, ",\n")."\n]"; + $this->tmpl->addVar('formulario', 'MODELOSARRAY', $modelos); + /** --- **/ + /** Adiciona lista de CSS's disponiveis */ $this->db->query('SELECT nome FROM '.PRE_TABLE.'noticia_csss ORDER BY nome'); *************** *** 516,519 **** --- 505,509 ---- /** --- **/ + // Adiciona as imagens que podem ser usadas na Capa $imgid = isset($aValues['capaimg']) ? $aValues['capaimg'] : null; *************** *** 641,646 **** $url = $this->copyImage(TEMPDIR.$basename); // Pega o nome fantasia da imagen ! $pseudoname = str_replace('sess'.session_id().'_', '', ! $basename); // Insere as imagens no DB $this->db->query('INSERT INTO '.PRE_TABLE.'noticia_imagens ' --- 631,635 ---- $url = $this->copyImage(TEMPDIR.$basename); // Pega o nome fantasia da imagen ! $pseudoname = preg_replace('/^sess'.session_id().'_[0-9]+_/', '', $basename); // Insere as imagens no DB $this->db->query('INSERT INTO '.PRE_TABLE.'noticia_imagens ' *************** *** 655,662 **** } // Adiciona a noticia $this->db->query('INSERT INTO '.PRE_TABLE.'noticia_noticias ' ! .'(user, secao, modelo, olho, titulo, fonte, minitexto, ' ! .' capaimg, conteudo, datahora, fixed, visible) VALUES( ' .'"'.$this->aUser['id'].'", ' .'"'.$_POST['secao'].'", ' --- 644,654 ---- } + + $titulocor = $_POST['titulocor'] ? '"'.hexdec($this->db->escapeString($_POST['titulocor'])).'"' : 'NULL'; // Adiciona a noticia $this->db->query('INSERT INTO '.PRE_TABLE.'noticia_noticias ' ! .'(user, secao, modelo, olho, titulo, titulocor, fonte,' ! .'minitexto, chamada,' ! .' capaimg, conteudo, datahora, fixed, visible, newsletter) VALUES( ' .'"'.$this->aUser['id'].'", ' .'"'.$_POST['secao'].'", ' *************** *** 664,674 **** .'"'.$this->db->escapeHTMLString($_POST['olho']).'", ' .'"'.$this->db->escapeHTMLString($_POST['titulo']).'", ' .'"'.$this->db->escapeHTMLString($_POST['fonte']).'", ' .'"'.$this->db->escapeHTMLString($_POST['minitexto']).'", ' .$capaimg.', ' .'"'.$this->db->escapeString($_POST['conteudo'], true).'", ' .'"'.$_POST['sql_datahora'].'", ' ! .'"'.($_POST['fixed'] ? 'Y' : 'N').'", ' ! .'"'.($_POST['visible'] ? 'Y' : 'N').'" ' .');', __FILE__, __LINE__); --- 656,669 ---- .'"'.$this->db->escapeHTMLString($_POST['olho']).'", ' .'"'.$this->db->escapeHTMLString($_POST['titulo']).'", ' + .$titulocor.', ' .'"'.$this->db->escapeHTMLString($_POST['fonte']).'", ' .'"'.$this->db->escapeHTMLString($_POST['minitexto']).'", ' + .'"'.$this->db->escapeHTMLString($_POST['chamada']).'", ' .$capaimg.', ' .'"'.$this->db->escapeString($_POST['conteudo'], true).'", ' .'"'.$_POST['sql_datahora'].'", ' ! .'"'.(isset($_POST['fixed']) ? 'Y' : 'N').'", ' ! .'"'.(isset($_POST['visible']) ? 'Y' : 'N').'", ' ! .'"'.(isset($_POST['newsletter']) ? 'Y' : 'N').'" ' .');', __FILE__, __LINE__); *************** *** 716,726 **** // Pega a noticia do DB... $this->db->query('SELECT N.id, N.secao, ' ! .' N.modelo, N.titulo, N.olho, N.titulo, N.fonte, ' ! .' N.minitexto, N.conteudo, N.fixed, N.visible, N.capaimg, ' .' DATE_FORMAT(N.datahora, "'.SQL_DATETIMEFORMAT.'") AS datahora' .' FROM '.PRE_TABLE.'noticia_noticias N, '.PRE_TABLE.'noticia_secoes S' .' WHERE N.secao = S.id AND '.$this->restriction .' AND N.id = '.$id ! .' ORDER BY N.fixed DESC, N.datahora DESC' .' LIMIT 1' ,__FILE__, __LINE__); --- 711,721 ---- // Pega a noticia do DB... $this->db->query('SELECT N.id, N.secao, ' ! .' N.modelo, N.titulo, N.titulocor, N.olho, N.titulo, N.fonte, ' ! .' N.minitexto, N.chamada, N.conteudo, N.fixed, N.visible, N.newsletter, N.capaimg, ' .' DATE_FORMAT(N.datahora, "'.SQL_DATETIMEFORMAT.'") AS datahora' .' FROM '.PRE_TABLE.'noticia_noticias N, '.PRE_TABLE.'noticia_secoes S' .' WHERE N.secao = S.id AND '.$this->restriction .' AND N.id = '.$id ! .' ORDER BY N.fixed, N.datahora DESC' .' LIMIT 1' ,__FILE__, __LINE__); *************** *** 738,741 **** --- 733,742 ---- if ($aNoticia['visible'] == 'N') unset($aNoticia['visible']); + if ($aNoticia['newsletter'] == 'N') + unset($aNoticia['newsletter']); + if ($aNoticia['titulocor'] != '') + $aNoticia['titulocor'] = sprintf('#%06X', $aNoticia['titulocor']); + else + unset($aNoticia['titulocor']); $this->tmpl->readTemplatesFromFile('modules/noticia/templates/editar.htm'); *************** *** 764,768 **** if ($res === true) // Tudo Ok... Salve! { ! $aImgIds = $this->readImages($_POST['conteudo'], $id); // Adiciona a noticia $this->db->query('UPDATE '.PRE_TABLE.'noticia_noticias SET ' --- 765,813 ---- if ($res === true) // Tudo Ok... Salve! { ! $aTransTable = $this->readImages($_POST['conteudo'], $id); ! // Se o cara quer uma imagem na capa... ! $capaimg = 'NULL'; ! if ($_POST['capaimg']) ! { ! $basename = basename($_POST['capaimg']); ! ! // Verifica se eh uma imagem nova ! if (preg_match('/^sess'.session_id().'_[0-9]+_/', $basename)) ! { ! // Verifica se a img da capa já foi parseada pelo readImages() ! if (isset($aTransTable[$basename])) ! $capaimg = '"'.$aTransTable[$basename].'"'; ! else ! { ! // Copia a imagem ! $url = $this->copyImage(TEMPDIR.$basename); ! // Pega o nome fantasia da imagen ! $pseudoname = preg_replace('/^sess'.session_id().'_[0-9]+_/', '', $basename); ! // Insere as imagens no DB ! $this->db->query('INSERT INTO '.PRE_TABLE.'noticia_imagens ' ! .'(noticia, nome, url) VALUES(' ! .'"'.$id.'", ' ! .'"'.$pseudoname.'", ' ! .'"'.$url.'" ' ! .');', __FILE__, __LINE__); ! $capaimg = "'".$this->db->insertedId()."'"; ! $aTransTable[$basename] = $this->db->insertedId(); ! } ! } ! else ! { ! $this->db->query('SELECT id FROM '.PRE_TABLE.'noticia_imagens WHERE ' ! .' noticia='.$id ! .' AND url="'.$basename.'"'); ! $imgid = (int)$this->db->result(0); ! if ($imgid) ! $capaimg = $imgid; ! } ! } ! ! $fixed = isset($_POST['fixed']) ? ($_POST['fixed'] == 'Y' ? 'Y' : 'N') : 'N'; ! $visible = isset($_POST['visible']) ? ($_POST['visible'] == 'Y' ? 'Y' : 'N') : 'N'; ! $newsletter = isset($_POST['newsletter']) ? ($_POST['newsletter'] == 'Y' ? 'Y' : 'N') : 'N'; ! // Adiciona a noticia $this->db->query('UPDATE '.PRE_TABLE.'noticia_noticias SET ' *************** *** 775,781 **** .'minitexto = "'.$this->db->escapeHTMLString($_POST['minitexto']).'", ' .'conteudo = "'.$this->db->escapeString($_POST['conteudo'], true).'", ' .'datahora = "'.$_POST['sql_datahora'].'", ' ! .'fixed = "'.($_POST['fixed'] ? 'Y' : 'N').'", ' ! .'visible = "'.($_POST['visible'] ? 'Y' : 'N').'" ' .'WHERE id='.$id, __FILE__, __LINE__); header('Location: ?m=noticia&action=editarok'); --- 820,828 ---- .'minitexto = "'.$this->db->escapeHTMLString($_POST['minitexto']).'", ' .'conteudo = "'.$this->db->escapeString($_POST['conteudo'], true).'", ' + .'capaimg = '.$capaimg.', ' .'datahora = "'.$_POST['sql_datahora'].'", ' ! .'fixed = "'.$fixed.'", ' ! .'visible = "'.$visible.'", ' ! .'newsletter = "'.$newsletter.'" ' .'WHERE id='.$id, __FILE__, __LINE__); header('Location: ?m=noticia&action=editarok'); |