Isto é uma pré-visualização de um tema em Hitskin.com
Instalar o tema • Voltar para a ficha do tema
Formulário de pedidos
5 participantes
Fórum dos Fóruns :: Ajuda e atendimento ao utilizador :: Questões sobre códigos :: Questões resolvidas sobre HTML e BBCode
Página 1 de 1
Formulário de pedidos
não sei se essa é a area certa, se não for me avisem
gostaria de fazer um formulario de pedido pro meu forum, tipo assim:
Quando eu cliko no botão de novo topico na area de criação grafica aparece um formulario de pedido, gostaria de por esse formulario de pedido no meu forum, assim no meu forum tem a seção de balcão de pedidos dentro da area de shopping, gostaria de quem estivessem na area de balcão de pedidos e clikassem em novo topico queria que apareçesse o formulario de pedido, só que seria formulario para Avatares e Signs
gostaria de fazer um formulario de pedido pro meu forum, tipo assim:
Quando eu cliko no botão de novo topico na area de criação grafica aparece um formulario de pedido, gostaria de por esse formulario de pedido no meu forum, assim no meu forum tem a seção de balcão de pedidos dentro da area de shopping, gostaria de quem estivessem na area de balcão de pedidos e clikassem em novo topico queria que apareçesse o formulario de pedido, só que seria formulario para Avatares e Signs
Re: Formulário de pedidos
Olá fojogo,
De fato esta não é a secção mais apropriada para este tipo de dúvidas.
No entanto tratarei de mover o tópico para a secção correta.
Até mais.
Tópico movido de 'Questões diversas' para 'Questões sobre códigos'
De fato esta não é a secção mais apropriada para este tipo de dúvidas.
No entanto tratarei de mover o tópico para a secção correta.
Até mais.
Tópico movido de 'Questões diversas' para 'Questões sobre códigos'
Callie- Membro Entusiasta
- Membro desde : 20/12/2009
Mensagens : 5007
Pontos : 7285
Re: Formulário de pedidos
Você pode ver este tutorial, pois os membros da staff não fazem mais formularios.
[Tutorial] Formulario de postagens
Até mais
[Tutorial] Formulario de postagens
Até mais
Re: Formulário de pedidos
gente eu fiz o tuto que o muryllodantas me mandou, mais quando eu cliko em novo topico apareçe:
qualquer coisa de uma passa no forum:
http://pokemonazures.first-forum.com/h2-
porque aconteçe isso ?
qualquer coisa de uma passa no forum:
http://pokemonazures.first-forum.com/h2-
porque aconteçe isso ?
Re: Formulário de pedidos
Boa noite querido,
Verifique se o editor de html está ativado, se sim o desative (na própria página html).
Forte abraço e até mais.
Verifique se o editor de html está ativado, se sim o desative (na própria página html).
Forte abraço e até mais.
Convidad- Convidado
Re: Formulário de pedidos
eu desativei e desapareceu aquilo, mais olha oque apareceu:Mr. Supero escreveu:Boa noite querido,
Verifique se o editor de html está ativado, se sim o desative (na própria página html).
Forte abraço e até mais.
caso a imagem não apareça: https://2img.net/r/ihimizer/img43/1205/tutog.png
eu gostaria do codigo da forumeiros de quando clika no botão de novo topico na seção de criações graficas,
malz pelo msn ali do lado da imagem \zzz
Re: Formulário de pedidos
isso mesmo, só que quando clika em novo topico na seção de criações graficas apareçe pra você escolher o tipo da imagem, eu gostaria que os tipos da imagem sejão:ddik escreveu:Olá,
Quer o formulário da criação gráfica é isso?
Ate mais,
ddik
Avatar
Sing
UserBar
Kit
Sprite
Re: Formulário de pedidos
Olá,
Diga-me o link do forum onde quer por para eu adaptar o formulário....
Ate mais,
ddik
Diga-me o link do forum onde quer por para eu adaptar o formulário....
Ate mais,
ddik
Re: Formulário de pedidos
o link é esse:
http://pokemonazures.first-forum.com/
e o forum que eu quero que ele fique fica dentro do forum "shopping" lá dentro terá: Balcão de Pedidos, gostaria que o codigo ficasse lá
http://pokemonazures.first-forum.com/
e o forum que eu quero que ele fique fica dentro do forum "shopping" lá dentro terá: Balcão de Pedidos, gostaria que o codigo ficasse lá
Re: Formulário de pedidos
Olá,
Desculpe mas Não pode dar o link direito a esse tal de Balcão de Pedidos?
Ate mais,
ddik
Desculpe mas Não pode dar o link direito a esse tal de Balcão de Pedidos?
Ate mais,
ddik
Re: Formulário de pedidos
Olá,
Aqui esta:
Agora deve criar uma pagina como isto html:
Adora onde este: LINK_DO_FORMULÁRIO troque por o link do formulário....
Agora menta isto na descrição do fórum:
Agora troque LINK_DA_ANTERIOR por o link da pagina anterior
Ate mais,
ddik
Aqui esta:
- Código:
<style>
.previsu {
background: url('http://sd-1.archive-host.com/membres/images/142586199450897653/LFD/vide.png');
border: 1px solid #1675BC;
display: none;
position: absolute;
top: 350px;
margin: auto;
margin-left: 150px !important;
}
.previsuimg {
position: relative;
}
.previsuimg div {
position: absolute; top: 30px; left: -10px; border: 3px double #E0E0E0; background: rgba(250, 250, 250, 0.9);
}
#addimage .part { background: url(http://i46.tinypic.com/2wrdc42.jpg) no-repeat -235px -600px; width: 60px; height: 20px;}
#addimage .more { background: url(http://i46.tinypic.com/2wrdc42.jpg) no-repeat 0px 2px; width: 12px; height: 20px; cursor:pointer;}
.image .part { background: url(http://i46.tinypic.com/2wrdc42.jpg) no-repeat -235px -548px; width: 60px; height: 20px;}
.image .remove { float: left;background: url(http://i46.tinypic.com/2wrdc42.jpg) no-repeat 0px -286px;padding-left: 16px;width: 12px; height: 20px; cursor:pointer;position: relative;top:3px;}
.image .previsualise { float: left;background: url(http://i46.tinypic.com/2wrdc42.jpg) no-repeat -50px -436px; margin-left: 5px; padding-left: 16px;width: 12px; height: 20px; cursor:pointer;position: relative;top:3px;}
.image { width: 300px; }
</style>
<script type="text/javascript" src="http://jscolor.com/jscolor/jscolor.js"></script>
<script>
function gerartitulo() {
var tipo = document.getElementById("tipo").value;
var cor = document.getElementById("cor").value;
var tamanho = document.getElementById("tamanho").value;
var texto = document.getElementById("texto").value;
var textotonalidade = document.getElementById("textotonalidade").value;
var cortonalidade = document.getElementById("cortonalidade").value;
jQuery("input[name=subject]").attr('value', tipo+cor+cortonalidade+tamanho+texto+textotonalidade);
jQuery("#titlecode").html(tipo+cor+cortonalidade+tamanho+texto+textotonalidade);
if(tipo == "[Avatar] " || tipo == "[Assinatura] " || tipo == "[Userbar] " || tipo == "[Banner] " || tipo == "[Logo] ") {
jQuery('#size_extra optgroup').css('display','block');
jQuery('#size_extra optgroup[label!=' + tipob + ']').css('display','none');
jQuery('#size_extra_span').css('display','block');
}
else {
jQuery('#size_extra_span').css('display','none');
}
}
imagensdopedido = '';
function gerarpedido() {
gerartitulo();
var cordofundo = document.getElementById("fundo").value;
var cordafonte = document.getElementById("fontecor").value;
var nomedafonte = (document.getElementById("fonte").value == '') ? document.getElementById("fonteNome").value : document.getElementById("fonte").value;
var tipodeanimacao = (document.getElementById("animacao").value == '') ? document.getElementById("animacaoNome").value : document.getElementById("animacao").value;
var tipodemoldura = (document.getElementById("moldura").value == '') ? document.getElementById("molduraNome").value : document.getElementById("moldura").value;
var descricaodopedido = document.getElementById("adicionais").innerHTML;
var descricaodopedido = document.getElementById("adicionais").value;
var dimensaoA = document.getElementById("dimensoesA").value;
var dimensaoL = document.getElementById("dimensoesL").value;
var dimensaof = (document.getElementById("size_extra").value == '') ? dimensaoA + ' x ' + dimensaoL + ' px' : document.getElementById("size_extra").value;
var urlforum = document.getElementById("urlforum").value;
finalmessage = '[b]Endereço do fórum :[/b] [url]'+ urlforum + '[/url]\n[b]Imagens a serem usadas :[/b] ' + imagensdopedido + '\n [b]Dimensões :[/b] ' + dimensaof +' \n[b]Cor do fundo :[/b] #' + cordofundo + '\n[b]Cor da fonte :[/b] #' + cordafonte + '\n[b]Fonte :[/b] ' + nomedafonte + '\n[b]Animação :[/b] ' + tipodeanimacao + '\n[b]Moldura :[/b] ' + tipodemoldura + '\n[b]Descrição do trabalho :[/b] ' + descricaodopedido;
jQuery("input[name=message]").attr('value', finalmessage);
}
function outra(id) {
var inputID = id+"Nome";
(document.getElementById(id).value == '') ? document.getElementById(inputID).style.display = 'inline' : document.getElementById(inputID).style.display = 'none';
document.getElementById(inputID).focus();
}
function removeimg(obj) {
obj.parent().parent().remove();
update_img();
}
function addimg() {
$('#addimage').before('<tr class=image><td class=part></td><td><input style="float:left; display: inline; background-color: #ffffff;border: 1px solid #BCBCBC;color: #666666;padding: 2px;cursor: text;" type=text name=images onchange="update_img_list()" /> <div class="previsualise"></div> <div class="remove" onClick="removeimg($(this))"></div><div class="previsuimg"><div></div></div></td></tr>');
$('#addimage').prev().find('.previsualise').hover(
function () {
$(this).parent().find('.previsuimg').html('<div><img src="'+encodeURI($(this).parent().find('input').attr('value'))+'" /></div>').find('div').css('display','block');
},
function () {
$(this).parent().find('.previsuimg div').css('display','none');
}
);
update_img();
}
function update_img() {
if($('.image').length<2) $('.image .remove').hide();
else $('.image .remove').show();
update_img_list();
}
function update_img_list() {
imagensdopedido = '';
jQuery('input[name=images]').each( function(index) {
if($(this).val() != '') {
imagensdopedido = imagensdopedido + $(this).val() + ' ; ';
}
});
gerarpedido();
}
gerartitulo();
gerarpedido();
</script>
<h1 class="page-title">Formulário de pedidos gráficos</h1>
<div class="panel row2"><div class="inner"><span class="corners-top"><span></span></span>
<div class="h3" style="margin-top: 7px;">Sobre o formulário</div>
<p style="font-size: 12px;">O presente formulário foi criado com o objetivo de promover uma maior organização dos pedidos feitos na seção gráfica deste fórum. Em cada uma das divisões abaixo poderá encontrar uma parte do código, a primeira caixa - "Informações gerais" - vale para o título e a segunda para o corpo da mensagem. Assim que tudo estiver feito, poderá enviar o pedido, que será postado automaticamente. Se necessitar de alguma modificação, poderá fazer editando a sua mensagem. Lembre-se somente que antes de fazer um pedido, é recomendado ver a <a href="http://mundonovo.cinebb.com/-t6.htm#7">Regras da seção de criações gráficas!</a>.
</p><span class="corners-bottom"><span></span></span>
</div>
</div>
<div class="clear" style="height: 6px;"></div>
<div class="panel"><div class="inner"><span class="corners-top"><span></span></span><div class="h3" style="margin-top: 7px;">Informações gerais</div>
<form action="/post" method="post" enctype="multipart/form-data" id="fa_form" onSubmit="fa_cookie();">
<fieldset class="fields1">
<dl><dt>
<label>Tipo de pedido :</label></dt><dd><select id="tipo" tabindex="1" onChange="gerartitulo();" />
<option value=""></option>
<option value="[Avatar] ">Avatar</option>
<option value="[Sing]">Sing</option>
<option value="[UserBar] ">Userbar</option>
<option value="[Kit] ">Kit</option>
<option value="[Sprite] ">Sprite</option>
</select></dd></dl>
<dl><dt>
<label>Cor geral :</label></dt><dd><select id="cor" tabindex="2" onChange="gerartitulo();" />
<option value=" "></option>
<option value="Vermelho">Vermelho</option>
<option value="Verde">Verde</option>
<option value="Amarelo">Amarelo</option>
<option value="Azul">Azul</option>
<option value="Roxo">Roxo</option>
<option value="Rosa">Rosa</option>
<option value="Laranja">Laranja</option>
<option value="Branco">Branco</option>
<option value="Preto">Preto</option>
<option value="Cinza">Cinza</option>
<option value="Marrom">Marrom</option>
<option value="Transparente">Transparente</option>
<option value="">Nenhuma da lista</option></select> <select id="cortonalidade" onChange="gerartitulo();" />
<option value=""></option>
<option value="">Normal</option>
<option value=" claro">Claro</option>
<option value=" escuro">Escuro</option></select></dd></dl>
<dl><dt>
<label>Tamanho geral :</label></dt><dd><select id="tamanho" tabindex="3" onChange="gerartitulo();" />
<option value=" "></option>
<option value=" - Pequeno ">Pequeno</option>
<option value=" - Médio ">Médio</option>
<option value=" - Grande ">Grande</option></select></dd></dl>
<dl><dt>
<label>Cor geral do texto :</label></dt><dd><select id="texto" tabindex="4" onChange="gerartitulo();" />
<option value=" "></option>
<option value="- Texto vermelho ">Vermelho</option>
<option value="- Texto verde ">Verde</option>
<option value="- Texto amarelo ">Amarelo</option>
<option value="- Texto azul ">Azul</option>
<option value="- Texto roxo ">Roxo</option>
<option value="- Texto rosa ">Rosa</option>
<option value="- Texto laranja ">Laranja</option>
<option value="- Texto branco ">Branco</option>
<option value="- Texto preto ">Preto</option>
<option value="- Texto cinza ">Cinza</option>
<option value="- Texto marrom ">Marrom</option>
<option value="">Nenhuma da lista</option></select> <select id="textotonalidade" onChange="gerartitulo();" />
<option value=""></option>
<option value="">Normal</option>
<option value=" claro">Claro</option>
<option value=" escuro">Escuro</option></select></dd></dl>
</fieldset>
<span class="corners-bottom"><span></span></span></div></div>
<div class="clear" style="height: 6px;"></div>
<div class="panel"><div class="inner"><span class="corners-top"><span></span></span>
<div class="h3" style="margin-top: 7px;">Informações específicas</div>
<fieldset class="fields1">
<dl><dt>
<label>Imagens a serem usadas :</label></dt>
<dd>Indique o endereço da imagem a usar. Caso necessite de mais imagens, carregue em +, para que o endereço seja validado. Este irá desaparecer, e poderá então adicionar outro endereço.
<table>
<tr id="addimage">
<td class="part"></td>
<td>
<div class="more" onClick="addimg()"></div>
</td>
</tr>
</table>
<script type="text/javascript">addimg()</script>
</dd></dl>
<dl><dt>
<label>Dimensões :</label></dt>
<dd> <input class="inputbox" type="text" id="dimensoesL" tabindex="6" onChange="gerarpedido();" style="width: 30px; clear: both;" />
px (largura) X
<input class="inputbox" type="text" id="dimensoesA" tabindex="7" onChange="gerarpedido();" style="width: 30px;" /> px (altura) </dd><dd> <span id="size_extra_span" style="display: none;"> Tamanhos padrões do tipo de pedido escolhido : <select id="size_extra">
<option value=""></option>
<optgroup label="Avatar">
<option value="120 x 120 px">120 x 120 px</option>
<option value="100 x 120 px">100 x 120 px</option>
<option value="120 x 160 px">120 x 160 px</option>
<option value="140 x 180 px">140 x 180 px</option>
<option value="140 x 200 px">140 x 200 px</option>
<option value="150 x 180 px">150 x 180 px</option>
<option value="150 x 200 px">150 x 200 px</option>
</optgroup>
<optgroup label="Assinatura">
<option value="400 x 120 px">400 x 120 px</option>
<option value="400 x 150 px">400 x 150 px</option>
<option value="450 x 150 px">450 x 150 px</option>
</optgroup>
<optgroup label="Userbar">
<option value="350 x 19 px">350 x 19 px</option>
</optgroup>
<optgroup label="Banner">
<option value="70 x 30 px">70 x 30 px</option>
<option value="90 x 15 px">90 x 15 px</option>
<option value="120 x 60 px">120 x 60 px</option>
<option value="150 x 50 px">150 x 50 px</option>
<option value="468 x 60 px">468 x 60 px</option>
</optgroup>
<optgroup label="Logo">
<option value="600 x 200 px">600 x 200 px</option>
<option value="750 x 200 px">750 x 200 px</option>
<option value="800 x 220 px">800 x 220 px</option>
<option value="150 x 50 px">830 x 200 px</option>
</optgroup>
</select></span>
</dd></dl>
<dl><dt>
<label>Endreço do seu fórum :</label></dt>
<dd>Lembre-se que se se não possuir um endereço válido, seu pedido será recusado!<br>
<input class="inputbox" type="text" id="urlforum" tabindex="8" onChange="gerarpedido();" style="width: 300px; clear: both;" />
</dd></dl>
<dl><dt>
<label>Cor do fundo :</label></dt>
<dd>Código hexadecimal da cor que deverá ser usada :<br>
<input type="text" tabindex="9" onChange="gerarpedido();" class="inputbox color champ" value="FFFFFF" id="fundo" name="couleur_fond" maxlength="7" onblur="this.style.borderColor='#FFFFFF'" onfocus="this.style.borderColor='#FFFFFF'" style="width: 70px; background: url('http://2img.net/i/fa/wysiwyg/color_swatch.png') no-repeat right;" />
</dd></dl>
<dl><dt>
<label>Cor da fonte :</label></dt>
<dd>Código hexadecimal da cor que deverá ser usada :<br>
<input type="text" tabindex="10" onChange="gerarpedido();" class="inputbox color champ" value="FFFFFF" id="fontecor" name="couleur_fond" maxlength="7" onblur="this.style.borderColor='#FFFFFF'" onfocus="this.style.borderColor='#FFFFFF'" style="width: 70px; background: url('http://2img.net/i/fa/wysiwyg/color_swatch.png') no-repeat right;" />
</dd></dl>
<dl><dt>
<label>Fonte :</label></dt><dd><select id="fonte" tabindex="11" onChange="outra('fonte'); gerarpedido();" />
<option value=" "></option>
<option value="Arial" style="font-family: Arial;">Arial</option>
<option value="Arial Black" style="font-family: Arial Black;">Arial Black</option>
<option value="Comic Sans MS" style="font-family: Comic Sans MS;">Comic Sans MS</option>
<option value="Courier New" style="font-family: Courier New;">Courier New</option>
<option value="Georgia" style="font-family: Georgia;">Georgia</option>
<option value="Times New Roman" style="font-family: Times New Roman;">Times New Roman</option>
<option value="Calibri" style="font-family: Calibri;">Calibri</option>
<option value="Trebuchet MS" style="font-family: Trebuchet MS;">Trebuchet MS</option>
<option value="Verdana" style="font-family: Verdana;">Verdana</option>
<option value="Visitor TTK 2" style="font-family: Visitor TTK 2;">Visitor TTK 2 (usada em Userbars)</option>
<option value="">Outra</option>
</select> <input id="fonteNome" style="display: none; width: 400px;" class="inputbox" value="Qual?" onclick="if (this.value == 'Qual?') this.value = '';" onblur="if (this.value == '') this.value = 'Qual?';" onChange="gerarpedido();" onfocus="if (this.value == 'Qual?') this.value = '';" onblur="if (this.value == '') this.value = 'Qual?';"></dd></dl>
<dl><dt>
<label>Animação :</label></dt><dd><select id="animacao" tabindex="12" onChange="outra('animacao'); gerarpedido();" />
<option value=" "></option>
<option value="Não">Não</option>
<option value="">Sim</option>
</select> <input id="animacaoNome" style="display: none; width: 400px;" class="inputbox" value="Como?" onclick="if (this.value == 'Como?') this.value = '';" onblur="if (this.value == '') this.value = 'Como?';" onChange="gerarpedido();" onfocus="if (this.value == 'Como?') this.value = '';" onblur="if (this.value == '') this.value = 'Como?';"></dd></dl>
<dl><dt>
<label>Moldura :</label></dt><dd><select id="moldura" tabindex="13" onChange="outra('moldura'); gerarpedido();" />
<option value=" "></option>
<option value="Não">Não</option>
<option value="">Sim</option>
</select> <input id="molduraNome" style="display: none; width: 400px;" class="inputbox" value="Como?" onclick="if (this.value == 'Como?') this.value = '';" onblur="if (this.value == '') this.value = 'Como?';" onChange="gerarpedido();" onfocus="if (this.value == 'Como?') this.value = '';" onblur="if (this.value == '') this.value = 'Como?';" /></dd></dl>
<dl><dt>
<label>Descrição do trabalho :</label></dt>
<dd><textarea class="inputbox" id="adicionais" tabindex="14" onChange="gerarpedido();" style="clear: both; height: 100px; width: 500px;"></textarea></dd></dl>
</fieldset>
<input type="hidden" name="message" />
<input type="hidden" name="subject" />
<input type="hidden" name="mode" value="newtopic" />
<input type="hidden" name="f" value="34" />
<input type="hidden" name="lt" value="0" />
<span class="corners-bottom"><span></span></span></div></div>
<div class="panel"><div class="inner"><span class="corners-top"><span></span></span>
<fieldset class="submit-buttons"><input value="Enviar seu pedido gráfico" type="submit" class="button1" name="post" /></fieldset>
<span class="corners-bottom"><span></span></span></div>
</form>
<script>gerartitulo();</script>
Agora deve criar uma pagina como isto html:
CÓDIGO: |
jQuery('a[href^="/post?f=34&mode=newtopic"]').attr('href', 'LINK_DO_FORMULÁRIO'); |
Agora menta isto na descrição do fórum:
CÓDIGO: |
<script scr='LINK_DA_ANTERIOR'> |
Ate mais,
ddik
Re: Formulário de pedidos
os dois primeiros codigos eu crio em uma pagina HTML separadas e o ultimo coloco na descrisão ?
EDIT: Oque seria esse link do formulario, seria aquele ID de quando cria pagina HTML ?
EDIT: Oque seria esse link do formulario, seria aquele ID de quando cria pagina HTML ?
Re: Formulário de pedidos
Oque seria esse link do formulario, seria aquele ID de quando cria pagina HTML ?
e outra coisa eu tentei fazer como você disse e não foi, dai sumiu os buttons da barra de navegacão
e outra coisa eu tentei fazer como você disse e não foi, dai sumiu os buttons da barra de navegacão
Re: Formulário de pedidos
fojogo escreveu:Oque seria esse link do formulario, seria aquele ID de quando cria pagina HTML ?
e outra coisa eu tentei fazer como você disse e não foi, dai sumiu os buttons da barra de navegacão
Se está assim é porque o código não funcionou.
Re: Formulário de pedidos
a ta,
mais oque seria esse link do formulario, seria aquele ID de quando cria pagina HTML ?
e pq ficou assim:
mais oque seria esse link do formulario, seria aquele ID de quando cria pagina HTML ?
e pq ficou assim:
Re: Formulário de pedidos
Coloque este código na descrição do seu fórum
- Código:
<script src=LINK DA PAGINA DO FORMULÁRIO></script>
Re: Formulário de pedidos
eu coloquei os codigos que você me disse pra mim colocarddik escreveu:Olá,
Diga-me como pôs os códigos e mostre os códigos.
Ate mais,
ddik
Re: Formulário de pedidos
Olá,
Desculpe.. Vi agora o seu forum. você pôs mal o código da descrição deve por este: <script src='/h3-'></script>
Ate mais,
ddik
Desculpe.. Vi agora o seu forum. você pôs mal o código da descrição deve por este: <script src='/h3-'></script>
Ate mais,
ddik
Re: Formulário de pedidos
fojogo escreveu:muito obrigado muryllodantas
podem trancar o topico
De nada fojogo, qualquer coisa me mande uma MP!!
Até mais
Tópicos semelhantes
» Problema no formulário de pedidos
» Formulário para pedidos
» Formulário de pedidos gráficos
» Formulario de pedidos nao funciona
» Formulário de pedidos gráficos
» Formulário para pedidos
» Formulário de pedidos gráficos
» Formulario de pedidos nao funciona
» Formulário de pedidos gráficos
Fórum dos Fóruns :: Ajuda e atendimento ao utilizador :: Questões sobre códigos :: Questões resolvidas sobre HTML e BBCode
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos