Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Reinaldo Matias

[Resolvido] evento em PHP

Recommended Posts

eh o seguinte, gostaria da ajuda da comunidade para um help aqui...

 

mantenho um site em joomla para o meu pai, www.drogariafamilia.com.

Na minha cidade tem o revesamento de platão de farmácias, e meu pai me pediu para colocar no site uma mensagem do tipo "Farmácia de plantão do dia FARMACIA DO ZÉ" .

o plantão segue uma seguência, de modo que as farmácias seguem em sequência no plantão. gostaria de um script que gerasse essa mensagem automaticamente, trocando dia a dia.

 

uso joomla então me serviria um script em PHP ou uma extensão para joomla, alguem pode me ajudar nisso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

To de volta... fiz o que me disseram... funcionou... mas em partes... XD

 

to iniciando em PHP. e pra falar a verdade to iniciando em programação tbm... entaum to com dificuldades...

 

meu codigo ficou assim...

 

<?php

function Event()
            {
            $SAUDACAO         = array('','Bom dia','Boa tarde','Boa noite');
            $DIA_EXTENSSO     = array('','segunda-feira','terça-feira','quarta-feira','quinta-feira','sexta-feira','sábado','domingo');
            $MES_EXTENSSO     = array('','janeiro','fevereiro','março','abril','maio','junho','julho','agosto','setembro','outubro','novembro','dezembro');

            if (date('H') <= '12') { $saudacao = $SAUDACAO[1]; } else if (date('H') <= '18') { $saudacao = $SAUDACAO[2]; } else if (date('H') <= '24') { $saudacao = $SAUDACAO[3]; }

            return $saudacao . ", hoje é " . $DIA_EXTENSSO[date('w')] . ", " . date('d') . " de " . $MES_EXTENSSO[date('n')] . " de " . date('Y') . ".";

            }
			
function plantao()
			{
			$INI			  = (' Hoje estarão de plantao ');
			$FARMACIAS		  = array('','Droganova e Drogaria Coqueiro','Drogaria Lopes e Farmácia do Fernando','Central Farma e Drovagavap');
			$HOJE			  = date("j/n");

			if ($hoje == 1/2){
				return $INI . $FARMACIAS[1] . ".";
			}
			
			if ($hoje == 2/2){
				return $INI . $FARMACIAS[2] . ".";
			}
			
			if ($hoje == 3/2){
				return $INI . $FARMACIAS[3] . ".";
			}
			
			else {
				return "Desculpe, nenhuma farmácia cadastrada em nosso sistema para plantão hoje - $HOJE";
			}
	  }
		
echo Event();
echo plantao();

?>

 

Funcionou... mas com erros nos IF's linha's 21,25,29

 

e outra coisa... supondo que fossem apenas essas tres mensagens, haveria um modo de eu colocá-las em loop automático??? pq tipo... cadastrar todos os dias eh #tenso!

 

aguardo contato... vlw!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quais erros?

 

Desculpa, esqueci que PHP eh case sensitive Hoje é diferente de HOJE. esse era o erro. fica agora somente a dúvida, tem como facilitar a inserção das farmacia?? pois elas seguem uma sequência. com uma espécie de loop.

Compartilhar este post


Link para o post
Compartilhar em outros sites

pois é. depois de algum tempo disponível o script ficou assim... Mas gostaria de saber se alguem conhece um método de facilidar isso, pq cada IF tem 2 duas linhas e saum 365 dias no anos que me daum 730 linas de código. Alguem poderia me dar uma luz? pensei em um loop, mas naum sei como fazer um que funcione corretamente.

 

<div class="contentheading" align="center">
<?php

function plantao()
			{
			$INI			  = ('Hoje estarão de plantao ');
			$FARMACIAS		  = array('','Droganova e Drogaria Coqueiro','Drogaria Lopes e Farmácia do Fernando','Central Farma e Drovagavap','Pharmacia Manhuassu e Drogaria+Saúde','Farmácia São Lourenço e Drogaria Pharmacológica','Drogacenter e Farmácia do Povo','Minaspharma Centro e Minapharma Coqueiro','Drogaminas e Permebem Baixada','Permebem Centro e Minaspharma Shopping','Farma Mais e Drogaria Farmape','Drogahemil e Drogaria Manipular','Drogasilva e Drogaria União');
			$HOJE			  = date("j/n");

			if ($HOJE == 1/2){
				return $INI . $FARMACIAS[5] . " - $HOJE.";
			}
			
			if ($HOJE == 2/2){
				return $INI . $FARMACIAS[6] . " - $HOJE.";
			}
			
			if ($HOJE == 3/2){
				return $INI . $FARMACIAS[7] . " - $HOJE.";
			}
			
			if ($HOJE == 4/2){
				return $INI . $FARMACIAS[8] . " - $HOJE.";
			}
			
			if ($HOJE == 5/2){
				return $INI . $FARMACIAS[9] . " - $HOJE.";
			}
			
			if ($HOJE == 6/2){
				return $INI . $FARMACIAS[10] . " - $HOJE.";
			}
			
			if ($HOJE == 7/2){
				return $INI . $FARMACIAS[11] . " - $HOJE.";
			}
			
			if ($HOJE == 8/2){
				return $INI . $FARMACIAS[12] . " - $HOJE.";
			}
			
			if ($HOJE == 9/2){
				return $INI . $FARMACIAS[1] . " - $HOJE.";
			}
			
			if ($HOJE == 10/2){
				return $INI . $FARMACIAS[2] . " - $HOJE.";
			}
			
			if ($HOJE == 11/2){
				return $INI . $FARMACIAS[3] . " - $HOJE.";
			}
			
			if ($HOJE == 12/2){
				return $INI . $FARMACIAS[4] . " - $HOJE.";
			}
			
			if ($HOJE == 13/2){
				return $INI . $FARMACIAS[5] . " - $HOJE.";
			}
			
			if ($HOJE == 14/2){
				return $INI . $FARMACIAS[6] . " - $HOJE.";
			}
			
			if ($HOJE == 15/2){
				return $INI . $FARMACIAS[7] . " - $HOJE.";
			}
			
			if ($HOJE == 16/2){
				return $INI . $FARMACIAS[8] . " - $HOJE.";
			}
			
			if ($HOJE == 17/2){
				return $INI . $FARMACIAS[9] . " - $HOJE.";
			}
			
			if ($HOJE == 18/2){
				return $INI . $FARMACIAS[10] . " - $HOJE.";
			}
			
			if ($HOJE == 19/2){
				return $INI . $FARMACIAS[11] . " - $HOJE.";
			}
			
			if ($HOJE == 20/2){
				return $INI . $FARMACIAS[12] . " - $HOJE.";
			}
			
			if ($HOJE == 21/2){
				return $INI . $FARMACIAS[1] . " - $HOJE.";
			}
			
			if ($HOJE == 22/2){
				return $INI . $FARMACIAS[2] . " - $HOJE.";
			}
			
			if ($HOJE == 23/2){
				return $INI . $FARMACIAS[3] . " - $HOJE.";
			}
			
			if ($HOJE == 24/2){
				return $INI . $FARMACIAS[4] . " - $HOJE.";
			}
			
			if ($HOJE == 25/2){
				return $INI . $FARMACIAS[5] . " - $HOJE.";
			}
			
			if ($HOJE == 26/2){
				return $INI . $FARMACIAS[6] . " - $HOJE.";
			}
			
			if ($HOJE == 27/2){
				return $INI . $FARMACIAS[7] . " - $HOJE.";
			}
			
			if ($HOJE == 28/2){
				return $INI . $FARMACIAS[8] . " - $HOJE.";
			}
								
			else {
				return " Desculpe, nenhuma farmácia cadastrada em nosso sistema para plantão hoje - $HOJE";
			}
	  }
		
echo plantao();

?>
</div>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uma idéia seria você remontar seu array de farmácias, onde os índices seriam os dias e os valores outro array com todoas as farmácias.

 

Por não estar trabalhando com um banco de dados para isso, você terá de, algumas vezes, inserir informações duplicadas, mas pelo menos o código fica um pouco menor e mais fácil de manusear.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu ate gostaria de usar um BD. mas infelizmente ainda não sei fazer... como não achei nada parecido pronto na net vou acabar ficando com esse mesmo... vlw pela ajuda comunidade. se alguem tiver alguma ideia me mandem MP ou E-mail.

 

Podem fechar o tópico moderadores.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uma forma mais legal...

<?php
function plantao()
{
	$inicial = mktime(0,0,0,'01','27','2010');//inicio dia 27/01/2010
	$hoje = mktime(0,0,0,date('m'),date('d'),date('Y'));
	
	$dias_passados = ($hoje-$inicial)/86400;
	
	$farmacias = array(
		'Droganova e Drogaria Coqueiro',
		'Drogaria Lopes e Farmácia do Fernando',
		'Central Farma e Drovagavap',
		'Pharmacia Manhuassu e Drogaria+Saúde',
		'Farmácia São Lourenço e Drogaria Pharmacológica',
		'Drogacenter e Farmácia do Povo',
		'Minaspharma Centro e Minapharma Coqueiro',
		'Drogaminas e Permebem Baixada',
		'Permebem Centro e Minaspharma Shopping',
		'Farma Mais e Drogaria Farmape',
		'Drogahemil e Drogaria Manipular',
		'Drogasilva e Drogaria União');
		
		
	$pos = $dias_passados%count( $farmacias );
	
	return $farmacias[ $pos ];
}

echo plantao();

Compartilhar este post


Link para o post
Compartilhar em outros sites

nossa. muito obrigado mesmo William. so falto fecha o codigo PHP ali no final.

 

era exatamente algo assim q eu tava querendo... so não sabia como fazer... depois vou dar uma estudada no código e aprender com ele... muito obrigado memso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tranquilo, qq coisa pergunta ai.. é que sou terrível para explicações.. pensei nesse algorítmo 10 minutos depois de sair do trabalho e ler teu tópico, ai tive que esperar chegar em casa para postar.

 

Eu não fechei o ?> pq não tinha mais nada abaixo dessas linhas no arquivo.. geralmente faço isso com arquivos de classe, ai o fechamento não é necessário.

Compartilhar este post


Link para o post
Compartilhar em outros sites

sei que já foi marcado como resolvido, mas surgiu um novo problema. O horário do meu servidor está duas horas adiantado. Olhei na documentação e vi o e Identificador de Timezone (adicionado no PHP 5.1.0) Exemplos: UTC, GMT, Atlantic/Azores Mas não soube como usá-lo. como implemento ele no código?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta assim:

setlocale(LC_ALL, "pt_BR", "pt_BR.iso-8859-1", "pt_BR.utf-8", "portuguese");
date_default_timezone_set('America/Sao_Paulo');

 

http://br2.php.net/manual/en/function.date-timezone-set.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ooo... vlw mesmo William... Tu ajudo muitooo... se tu fosse mulher eu lhe dava um beju... aiusdiuahsdau

 

mas o script fico assim pra comunidade ver e utilizar se quiser...

 

<?php

setlocale(LC_ALL, "pt_BR", "pt_BR.iso-8859-1", "pt_BR.utf-8", "portuguese");
date_default_timezone_set('America/Sao_Paulo');

function plantao()
{

        $inicial = mktime(0,0,0,'02','01','2010');

        $hoje = mktime(0,0,0,date('m'),date('d'),date('Y'));
        
        $dias_passados = ($hoje-$inicial)/86400;
        
        $farmacias = array(

                'Droganova e Drogaria Coqueiro',
                'Drogaria Lopes e Farmácia do Fernando',
                'Central Farma e Drovagavap',
                'Pharmacia Manhuassu e Drogaria+Saúde',
                'Farmácia São Lourenço e Drogaria Pharmacológica',
                'Drogacenter e Farmácia do Povo',
                'Minaspharma Centro e Minapharma Coqueiro',
                'Drogaminas e Permebem Baixada',
                'Permebem Centro e Minaspharma Shopping',
                'Farma Mais e Drogaria Farmape',
                'Drogahemil e Drogaria Manipular',
                'Drogasilva e Drogaria União');
                
                
        $pos = $dias_passados%count( $farmacias );
        
        return $farmacias[ $pos ];
}

echo 'Hoje  estarão de plantão: <br/ >' . plantao();

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola, eu iria abrir outro tópico mas como o meu ainda está aqui resolvi postar aqui mesmo.

 

O script ele troca de farmácia as 0:00h, eu queria que ele virasse as 8:00h, uma alternativa seria eu trocar o set time por um lugar com 8 horas a mais, mas não queria fazer uma "gambiarra".

 

Teria algum outro meio de eu fazer isso?

 

Tentei entender como está funcinando esse mktime, dei um echo $hoje mas não entendi a lógica do número que foi exibido.

 

O código é o seguinte:

 

<?php

setlocale(LC_ALL, "pt_BR", "pt_BR.iso-8859-1", "pt_BR.utf-8", "portuguese");
date_default_timezone_set('America/Sao_Paulo');

function plantao()
{

        $inicial = mktime(0,0,0,'05','01','2010');

        $hoje = mktime(0,0,0,date('m'),date('d'),date('Y'));
        
        $dias_passados = ($hoje-$inicial)/86400;
        
        $farmacias = array(

                'Farma Mais e Drogaria Sampaio',
                'Drogahemil e Drogaria Central Farma',
                'Drogasilva e Drogaria União',
                'Permebem (Bom Pastor) e Drogaria Pharmacológica',
                'Droganova e Drogaria Coqueiro',
                'Drogaria Lopes e Farmácia do Fernando',
                'Cental Farma e Drogavap',
                'Pharmácia Manhuassú e Drogaria + Saúde',
                'Farmácia São Lourenço',
                'Drogacenter e Farmácia do Povo',
                'Minaspharma (Centro) e Minaspharma(Coqueiro)',
                'Drogaminas e Permebem(Baixada)',
                'Permebem(Centro) e Minaspharma(Shopping)');
                
                
        $pos = $dias_passados%count( $farmacias );
        
        return $farmacias[ $pos ];
}

echo 'Hoje  estarão de plantão em manhuaçu as farmácias: <br/ >' . plantao();

?>

Alguém poderia me auxiliar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Insira o codigo abaixo após $pos = $dias_passados%count($farmacias);

if(date('YmdHis') < date('Ymd080000')){
			if($pos < count($farmacias)-1){
				$pos--;
			}else if($pos == 0){
				$pos = count($farmacias)-1;
			}
		}

Espero que seja isso.

 

No if onde está date('Ymd080000') caso necessite é só trocar o 080000 (para mudar o horario (08:00:00))

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.