middle mahler
@@ -12,10 +12,10 @@
|
|||||||
chat_channel => 'Grullas@radio.chat.chaos.foundation',
|
chat_channel => 'Grullas@radio.chat.chaos.foundation',
|
||||||
|
|
||||||
#Radio =====================================================
|
#Radio =====================================================
|
||||||
radio_server_name=>"http://chaos.foundation:8000/q",
|
radio_server_name=>"http://radio.chaos.foundation:8000/q",
|
||||||
radio_server =>"https://radio.chaos.foundation",
|
radio_server =>"https://radio.chaos.foundation",
|
||||||
radio_channel => "/q",
|
radio_channel => "/q",
|
||||||
radio_listen_url =>"https://chaos.foundation/q",
|
radio_listen_url =>"http://radio.chaos.foundation:8000/q",
|
||||||
|
|
||||||
#RTPM =======================================================
|
#RTPM =======================================================
|
||||||
rtmp_server =>"rtmp://chaos.foundation/steam",
|
rtmp_server =>"rtmp://chaos.foundation/steam",
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ use Dojo::Model::Users;
|
|||||||
# =============================================================================
|
# =============================================================================
|
||||||
|
|
||||||
# json ========================================================================
|
# json ========================================================================
|
||||||
$r->any('/json/:dreq')->to('data#simple');
|
$r->any('/json/*dreq')->to('data#simple');
|
||||||
# =============================================================================
|
# =============================================================================
|
||||||
|
|
||||||
# candy =======================================================================
|
# candy =======================================================================
|
||||||
|
|||||||
@@ -1,16 +1,21 @@
|
|||||||
package Dojo::Controller::Data;
|
package Dojo::Controller::Data;
|
||||||
|
use Mojo::File 'path';
|
||||||
|
use Mojo::JSON qw(decode_json encode_json);
|
||||||
use Mojo::Base 'Mojolicious::Controller';
|
use Mojo::Base 'Mojolicious::Controller';
|
||||||
use Dojo::Support qw{ dmph merge_hash load_module };
|
use Dojo::Support qw{ dmph merge_hash load_module };
|
||||||
use Net::Telnet;
|
use Net::Telnet;
|
||||||
|
|
||||||
my $server_name = "";
|
my $server_name = "";
|
||||||
our $t; #telnet server object
|
our $t; #telnet server object
|
||||||
|
my $data_path = path('lib/Dojo/Model/Data')->make_path;
|
||||||
sub simple{
|
sub simple{
|
||||||
my $c=shift;
|
my $c=shift;
|
||||||
my $n=$c->param("dreq")//"";
|
my $n=$c->param("dreq")//"";
|
||||||
my $json = {status => "304"};
|
my $json = {status => "304"};
|
||||||
$json = { srv =>$c->config->{radio_server} } if $n =~m/^radio$/ ;
|
$json = { srv =>$c->config->{radio_server} } if $n =~m/^radio$/ ;
|
||||||
$json = candy() if $n =~m/^candy$/ ;
|
$json = candy() if $n =~m/^candy$/ ;
|
||||||
|
$json = decode_json($data_path->child("$n")->slurp)
|
||||||
|
if $n=~m/^podcast\/podcast.json$/;
|
||||||
$c->render(json=>$json);
|
$c->render(json=>$json);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,24 +1,13 @@
|
|||||||
package Dojo::Controller::Home;
|
package Dojo::Controller::Home;
|
||||||
use Mojo::Base 'Mojolicious::Controller';
|
use Mojo::Base 'Mojolicious::Controller';
|
||||||
use Mojo::Template;
|
use Mojo::Template;
|
||||||
use Dojo::Support qw{ log dmph merge_hash load_module get_names};
|
#use Dojo::Support qw{ log dmph merge_hash load_module get_names};
|
||||||
|
use Dojo::Support qw{ log get_names};
|
||||||
sub tst{
|
sub tst{
|
||||||
my $c=shift;
|
my $c=shift;
|
||||||
# $c->stash( merge_hash(
|
|
||||||
# (load_module("home/tst"))[0],
|
|
||||||
# (load_module("home/contact"))[0]
|
|
||||||
#));
|
|
||||||
# $c->stash(apend => ["home/contact"]);
|
|
||||||
#$c->stash( (load_module("home/tst"))[0] );
|
|
||||||
#$c->stash(layout=> "defaultContact");
|
|
||||||
#my $x = [get_names("public/home/cal/img/")];
|
|
||||||
#log("@$x");
|
|
||||||
#$c->stash( ilist => $x);
|
|
||||||
#$c->dbv->tst;
|
|
||||||
$c->render(text=> $c->config->{radio}{'channel'});
|
$c->render(text=> $c->config->{radio}{'channel'});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# User ========================================================================
|
# User ========================================================================
|
||||||
sub home_ {
|
sub home_ {
|
||||||
my $c = shift;
|
my $c = shift;
|
||||||
@@ -27,32 +16,32 @@ sub tst{
|
|||||||
|
|
||||||
sub home {
|
sub home {
|
||||||
my $c = shift;
|
my $c = shift;
|
||||||
$c->stash((load_module("home/home"))[0]);
|
|
||||||
$c->stash( $c->dbv->mod) ;
|
$c->stash( $c->dbv->mod) ;
|
||||||
|
$c->stash(layout=>'default');
|
||||||
}
|
}
|
||||||
|
|
||||||
sub pang {
|
sub pang {
|
||||||
my $c = shift;
|
my $c = shift;
|
||||||
my ($v,$w)=load_module("home/pang");
|
my $h=$c->dbv->pang_md;
|
||||||
$c->stash($v);
|
map { $c->stash( $_ => $h->{$_}) } keys %$h;
|
||||||
$c->stash( $c->dbv->md_to_hash(@{$w->{'md'}}) );
|
$c->stash(layout=>'default');
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
sub cal {
|
sub cal {
|
||||||
my $c = shift;
|
my $c = shift;
|
||||||
$c->stash((load_module("home/cal"))[0]);
|
|
||||||
my $data=$c->dbv->calendar_events;
|
my $data=$c->dbv->calendar_events;
|
||||||
my $block=$c->dbv->calendar_monthblock;
|
my $block=$c->dbv->calendar_monthblock;
|
||||||
my %hdata;
|
my %h;
|
||||||
map{ push @{ $hdata{$_->{bid}} },$_; }(@$data);
|
map{ push @{ $h{$_->{bid}} },$_; }(@$data);
|
||||||
$c->stash( r=>\%hdata, b=>$block);
|
$c->stash( r=>\%h, b=>$block);
|
||||||
|
$c->stash(layout=>'default');
|
||||||
}
|
}
|
||||||
|
|
||||||
sub event{
|
sub event{
|
||||||
my $c = shift;
|
my $c = shift;
|
||||||
$c->stash((load_module("home/event"))[0]);
|
|
||||||
$c->stash(layout=> "defaultContact");
|
|
||||||
$c->stash($c->dbv->event($c->param("id")));
|
$c->stash($c->dbv->event($c->param("id")));
|
||||||
|
$c->stash(layout=> "defaultContact");
|
||||||
}
|
}
|
||||||
|
|
||||||
sub contact{
|
sub contact{
|
||||||
@@ -67,7 +56,7 @@ sub tst{
|
|||||||
);
|
);
|
||||||
$c->redirect_to('contact2');
|
$c->redirect_to('contact2');
|
||||||
}else{
|
}else{
|
||||||
$c->stash((load_module("home/contact"))[0]);
|
$c->stash(layout=>'default');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -75,42 +64,34 @@ sub tst{
|
|||||||
my $c = shift;
|
my $c = shift;
|
||||||
$c->redirect_to("home") unless $c->flash('mname');
|
$c->redirect_to("home") unless $c->flash('mname');
|
||||||
$c->stash( mname=>$c->flash('mname'));
|
$c->stash( mname=>$c->flash('mname'));
|
||||||
$c->stash((load_module("home/contact2"))[0]);
|
$c->stash(layout=>'default');
|
||||||
}
|
}
|
||||||
|
|
||||||
sub store{
|
sub store{
|
||||||
my $c = shift;
|
my $c = shift;
|
||||||
$c->stash((load_module("home/store"))[0]);
|
|
||||||
$c->stash( r=>$c->dbv->store);
|
$c->stash( r=>$c->dbv->store);
|
||||||
$c->stash(layout=> "defaultContact");
|
$c->stash(layout=> "defaultContact");
|
||||||
}
|
}
|
||||||
|
|
||||||
sub tv{
|
sub tv{
|
||||||
my $c = shift;
|
my $c = shift;
|
||||||
$c->stash( merge_hash(
|
|
||||||
(load_module("home/tv"))[0],
|
|
||||||
(load_module("home/tv/trans"))[0]
|
|
||||||
));
|
|
||||||
$c->stash( videos=>$c->dbv->tv_videos, table=>$c->dbv->tv_series);
|
$c->stash( videos=>$c->dbv->tv_videos, table=>$c->dbv->tv_series);
|
||||||
$c->stash(layout=> "defaultContact");
|
$c->stash(layout=> "defaultContact");
|
||||||
}
|
}
|
||||||
|
|
||||||
sub podcast{
|
sub podcast{
|
||||||
my $c = shift;
|
my $c = shift;
|
||||||
$c->stash((load_module("home/podcast"))[0]);
|
|
||||||
$c->stash(layout=> "defaultContact");
|
$c->stash(layout=> "defaultContact");
|
||||||
$c->stash( t=>$c->dbv->podcast_txt, pod=>$c->dbv->podcast_infoHash);
|
$c->stash( t=>$c->dbv->podcast_txt, pod=>$c->dbv->podcast_infoHash);
|
||||||
}
|
}
|
||||||
|
|
||||||
sub bcast{
|
sub bcast{
|
||||||
my $c = shift;
|
my $c = shift;
|
||||||
$c->stash((load_module("home/bcast"))[0]);
|
$c->stash(layout=> "defaultContact");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
sub radio{
|
sub radio{
|
||||||
my $c=shift;
|
my $c=shift;
|
||||||
$c->stash((load_module("home/radio"))[0]);
|
|
||||||
$c->stash(layout=> "defaultContact");
|
$c->stash(layout=> "defaultContact");
|
||||||
$c->stash($c->dbv->mod);
|
$c->stash($c->dbv->mod);
|
||||||
$c->stash(nick=>$c->session("nick"));
|
$c->stash(nick=>$c->session("nick"));
|
||||||
@@ -137,7 +118,6 @@ sub tst{
|
|||||||
my $c=shift;
|
my $c=shift;
|
||||||
$c->dbv->umod($c->param('link'),$c->param('update'))
|
$c->dbv->umod($c->param('link'),$c->param('update'))
|
||||||
if (($c->param("hup") // " " )=~/Cambiar/);
|
if (($c->param("hup") // " " )=~/Cambiar/);
|
||||||
$c->stash((load_module("home/admin/home"))[0]);
|
|
||||||
$c->stash(template=>"home/admin/home");
|
$c->stash(template=>"home/admin/home");
|
||||||
$c->stash(layout=>"admin");
|
$c->stash(layout=>"admin");
|
||||||
$c->stash( $c->dbv->mod);
|
$c->stash( $c->dbv->mod);
|
||||||
@@ -151,10 +131,6 @@ sub tst{
|
|||||||
if (($c->param("pup") // " " )=~/Cambiar/);
|
if (($c->param("pup") // " " )=~/Cambiar/);
|
||||||
$c->stash($c->dbv->mod);
|
$c->stash($c->dbv->mod);
|
||||||
$c->stash($c->dbg->grulla_pass);
|
$c->stash($c->dbg->grulla_pass);
|
||||||
$c->stash( merge_hash(
|
|
||||||
(load_module("home/admin/radio"))[0],
|
|
||||||
(load_module("home/admin/candySwitch"))[0],
|
|
||||||
));
|
|
||||||
$c->stash(apend => ["home/admin/candySwitch"]);
|
$c->stash(apend => ["home/admin/candySwitch"]);
|
||||||
$c->stash(template=>"home/admin/radio");
|
$c->stash(template=>"home/admin/radio");
|
||||||
$c->stash(layout=>"admin");
|
$c->stash(layout=>"admin");
|
||||||
@@ -162,7 +138,6 @@ sub tst{
|
|||||||
|
|
||||||
sub admin_mensajes{
|
sub admin_mensajes{
|
||||||
my $c=shift;
|
my $c=shift;
|
||||||
$c->stash((load_module("home/admin/mensajes"))[0]);
|
|
||||||
$c->stash( h=>$c->dbv->msg_heads);
|
$c->stash( h=>$c->dbv->msg_heads);
|
||||||
$c->stash(template=>"home/admin/mensajes");
|
$c->stash(template=>"home/admin/mensajes");
|
||||||
$c->stash(layout=>"admin");
|
$c->stash(layout=>"admin");
|
||||||
@@ -194,15 +169,10 @@ sub tst{
|
|||||||
$c->dbv->place_up(@list) if ($id ==0);
|
$c->dbv->place_up(@list) if ($id ==0);
|
||||||
$c->dbv->place_ch(@list) if ($id >0);
|
$c->dbv->place_ch(@list) if ($id >0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$c->redirect_to("/admin/eventos");
|
$c->redirect_to("/admin/eventos");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
$c->stash(
|
$c->stash(
|
||||||
courses=>$c->dbv->courses,
|
courses=>$c->dbv->courses,
|
||||||
places=>$c->dbv->places,
|
places=>$c->dbv->places,
|
||||||
@@ -210,7 +180,6 @@ sub tst{
|
|||||||
events=>$c->dbv->events,
|
events=>$c->dbv->events,
|
||||||
img=>$c->dbv->eimgList,
|
img=>$c->dbv->eimgList,
|
||||||
);
|
);
|
||||||
$c->stash((load_module("home/admin/event"))[0]);
|
|
||||||
$c->stash(template=>"home/admin/event");
|
$c->stash(template=>"home/admin/event");
|
||||||
$c->stash(layout=>"admin");
|
$c->stash(layout=>"admin");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
package Dojo::Model::Vuelo;
|
package Dojo::Model::Vuelo; use Mojo::File 'path';
|
||||||
use Mojo::File 'path';
|
|
||||||
use Mojo::JSON qw(decode_json encode_json);
|
use Mojo::JSON qw(decode_json encode_json);
|
||||||
use Dojo::Support qw{ log dmph merge_hash load_module get_names};
|
use Dojo::Support qw{ log dmph merge_hash load_module get_names};
|
||||||
use Mojo::Base 'Mojolicious::Controller';
|
use Mojo::Base 'Mojolicious::Controller';
|
||||||
@@ -12,46 +11,50 @@ use DBI;
|
|||||||
use Dojo::Conf;
|
use Dojo::Conf;
|
||||||
|
|
||||||
sub new { bless {}, shift };
|
sub new { bless {}, shift };
|
||||||
|
my $data_path = path('lib/Dojo/Model/Data')->make_path;
|
||||||
#just for fun
|
#just for fun
|
||||||
|
|
||||||
# Read vdg user ===============================================================
|
# Read vdg user ===============================================================
|
||||||
|
# mensaje del día:mod,rmod,yt,fb,sc
|
||||||
sub mod{
|
sub mod{
|
||||||
my $q="select nombre,contenido from casa;";
|
my $q="select nombre,contenido from casa;";
|
||||||
my %h=map{ $_->{nombre} => $_->{contenido}}@{_read($q)};
|
my %h=map{ $_->{nombre} => $_->{contenido}}@{_read($q)};
|
||||||
return %h;
|
return %h;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub md_to_hash{
|
sub pang_md{
|
||||||
my ($self,@filelist)=@_;
|
my $c=shift;
|
||||||
return {map { basename($_,".md") => load_md("public/$_")}@filelist};
|
my %h = map {
|
||||||
|
$_=> markdown(decode_utf8($data_path->child('pang/'.$_.'.md')->slurp))
|
||||||
|
} ("pang","helen","benjamin");
|
||||||
|
return \%h;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub calendar_monthblock {
|
sub calendar_monthblock {
|
||||||
return _read (path("public/home/cal/q1Block.q")->slurp);
|
return _read ($data_path->child("cal/q1Block.q")->slurp);
|
||||||
}
|
}
|
||||||
sub calendar_events {
|
sub calendar_events {
|
||||||
return _read (path("public/home/cal/q3Event.q")->slurp);
|
return _read ($data_path->child("cal/q3Event.q")->slurp);
|
||||||
}
|
}
|
||||||
|
|
||||||
sub event{
|
sub event{
|
||||||
my ($self,$id)=@_;
|
my ($c,$id)=@_;
|
||||||
return shift @{ _read (path("public/home/event/qEvent.q")->slurp,$id)};
|
return shift @{ _read ($data_path->child("event/qEvent.q")->slurp,$id)};
|
||||||
}
|
}
|
||||||
sub store{
|
sub store{
|
||||||
return _read (path("public/home/store/qStore.q")->slurp);
|
return _read ($data_path->child("/store/qStore.q")->slurp);
|
||||||
}
|
}
|
||||||
sub tv_videos{
|
sub tv_videos{
|
||||||
return _read (path("public/home/tv/qSeries.q")->slurp); #group,name
|
return _read ($data_path->child("/tv/qSeries.q")->slurp); #group,name
|
||||||
}
|
}
|
||||||
sub tv_series{
|
sub tv_series{
|
||||||
return _read (path("public/home/tv/qTable.q")->slurp); #name,order,group
|
return _read ($data_path->child("/tv/qTable.q")->slurp); #name,order,group
|
||||||
}
|
}
|
||||||
sub podcast_txt{
|
sub podcast_txt{
|
||||||
# return "Hemos desarrollado con mucho cariño ejercicios gratuitos y descargables que pueden ser practicados por cualquier persona aún antes de asistir a uno de los cursos de instrucción.";
|
return decode_utf8($data_path->child("/podcast/text.txt")->slurp);
|
||||||
return decode_utf8(path("public/home/podcast/text.txt")->slurp);
|
|
||||||
}
|
}
|
||||||
sub podcast_infoHash{
|
sub podcast_infoHash{
|
||||||
return decode_json path("public/home/podcast/jsonPod.json")->slurp;
|
return decode_json $data_path->child("/podcast/podcast.json")->slurp;
|
||||||
}
|
}
|
||||||
|
|
||||||
#==============================================================================
|
#==============================================================================
|
||||||
@@ -60,7 +63,7 @@ sub new { bless {}, shift };
|
|||||||
sub msg_heads{
|
sub msg_heads{
|
||||||
my ($self,@bind)=@_;
|
my ($self,@bind)=@_;
|
||||||
my @empty;
|
my @empty;
|
||||||
my $q= path("public/home/admin/mensajes/qEntries.q")->slurp;
|
my $q= $data_path->child("/admin/mensajes/qEntries.q")->slurp;
|
||||||
my $dbh = DBI->connect("DBI:mysql:".Dojo::Conf::MSGDB.":".Dojo::Conf::MSGDB_H,Dojo::Conf::MSGDB_UR,Dojo::Conf::MSGDB_URP,{mysql_enable_utf8 => 1});
|
my $dbh = DBI->connect("DBI:mysql:".Dojo::Conf::MSGDB.":".Dojo::Conf::MSGDB_H,Dojo::Conf::MSGDB_UR,Dojo::Conf::MSGDB_URP,{mysql_enable_utf8 => 1});
|
||||||
return \@empty unless($dbh);
|
return \@empty unless($dbh);
|
||||||
my $h=$dbh->selectall_arrayref($q,{ Slice => {} },@bind)//"error";
|
my $h=$dbh->selectall_arrayref($q,{ Slice => {} },@bind)//"error";
|
||||||
@@ -72,7 +75,7 @@ sub new { bless {}, shift };
|
|||||||
sub msg{
|
sub msg{
|
||||||
my ($c,@bind)=@_;
|
my ($c,@bind)=@_;
|
||||||
my @empty;
|
my @empty;
|
||||||
my $q= path("public/home/admin/mensajes/json/qGetInfo.q")->slurp;
|
my $q= $data_path->child("/admin/mensajes/json/qGetInfo.q")->slurp;
|
||||||
my $dbh = DBI->connect("DBI:mysql:".Dojo::Conf::MSGDB.":".Dojo::Conf::MSGDB_H,Dojo::Conf::MSGDB_UR,Dojo::Conf::MSGDB_URP,{mysql_enable_utf8 => 1});
|
my $dbh = DBI->connect("DBI:mysql:".Dojo::Conf::MSGDB.":".Dojo::Conf::MSGDB_H,Dojo::Conf::MSGDB_UR,Dojo::Conf::MSGDB_URP,{mysql_enable_utf8 => 1});
|
||||||
return \@empty unless($dbh);
|
return \@empty unless($dbh);
|
||||||
my $h=$dbh->selectall_arrayref($q,{ Slice => {} },@bind)//\@empty;
|
my $h=$dbh->selectall_arrayref($q,{ Slice => {} },@bind)//\@empty;
|
||||||
@@ -81,13 +84,19 @@ sub new { bless {}, shift };
|
|||||||
return shift @$h;
|
return shift @$h;
|
||||||
}
|
}
|
||||||
sub courses{ return _read("select nombre as name, id from curso;")}
|
sub courses{ return _read("select nombre as name, id from curso;")}
|
||||||
sub course { return shift @{_read(path("public/home/admin/event/json/qCourse.q")->slurp,pop)}}
|
sub course { return shift @{_read($data_path->child("/admin/event/json/qCourse.q")->slurp,pop)}}
|
||||||
sub places { return _read("select nombre as name, id from lugar;")}
|
sub places { return _read("select nombre as name, id from lugar;")}
|
||||||
sub place { return shift @{_read(path("public/home/admin/event/json/qPlace.q")->slurp,pop)}}
|
sub place { return shift @{_read($data_path->child("/admin/event/json/qPlace.q")->slurp,pop)}}
|
||||||
sub months { return _read("select nombre as name, id from mes;")};
|
sub months { return _read("select nombre as name, id from mes;")};
|
||||||
sub events { return _read(path("public/home/admin/event/qEprev.q")->slurp)}
|
sub events { return _read($data_path->child("/admin/event/qEprev.q")->slurp)}
|
||||||
sub eventa { return shift @{_read(path("public/home/admin/event/json/qEvent.q")->slurp,pop)}}
|
sub eventa { return shift @{_read($data_path->child("/admin/event/json/qEvent.q")->slurp,pop)}}
|
||||||
sub eimgList{ return [get_names("public/home/cal/img/")] }
|
# sub eimgList{ return [get_names("public/home/cal/img/")] }
|
||||||
|
sub eimgList{
|
||||||
|
my $dp = path('public/home/cal/img')->make_path;
|
||||||
|
return [ map{ $_->basename} grep{/(jpg|png)$/i}@{$dp->list} ];
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
#==============================================================================
|
#==============================================================================
|
||||||
# Write vdg user ==============================================================
|
# Write vdg user ==============================================================
|
||||||
sub contact{
|
sub contact{
|
||||||
@@ -112,27 +121,27 @@ sub new { bless {}, shift };
|
|||||||
|
|
||||||
sub event_up{
|
sub event_up{
|
||||||
my ($self,@bind)=@_;
|
my ($self,@bind)=@_;
|
||||||
return _write(path("public/home/admin/event/add/qEup.q")->slurp,@bind);
|
return _write($data_path->child("/admin/event/add/qEup.q")->slurp,@bind);
|
||||||
}
|
}
|
||||||
sub course_up{
|
sub course_up{
|
||||||
my ($self,@bind)=@_;
|
my ($self,@bind)=@_;
|
||||||
return _write(path("public/home/admin/event/add/qCup.q")->slurp,@bind);
|
return _write($data_path->child("/admin/event/add/qCup.q")->slurp,@bind);
|
||||||
}
|
}
|
||||||
sub place_up{
|
sub place_up{
|
||||||
my ($self,@bind)=@_;
|
my ($self,@bind)=@_;
|
||||||
return _write(path("public/home/admin/event/add/qPup.q")->slurp,@bind);
|
return _write($data_path->child("/admin/event/add/qPup.q")->slurp,@bind);
|
||||||
}
|
}
|
||||||
sub event_ch{
|
sub event_ch{
|
||||||
my ($self,@bind)=@_;
|
my ($self,@bind)=@_;
|
||||||
return _write(path("public/home/admin/event/change/qEup.q")->slurp,@bind);
|
return _write($data_path->child("/admin/event/change/qEup.q")->slurp,@bind);
|
||||||
}
|
}
|
||||||
sub course_ch{
|
sub course_ch{
|
||||||
my ($self,@bind)=@_;
|
my ($self,@bind)=@_;
|
||||||
return _write(path("public/home/admin/event/change/qCup.q")->slurp,@bind);
|
return _write($data_path->child("/admin/event/change/qCup.q")->slurp,@bind);
|
||||||
}
|
}
|
||||||
sub place_ch{
|
sub place_ch{
|
||||||
my ($self,@bind)=@_;
|
my ($self,@bind)=@_;
|
||||||
return _write(path("public/home/admin/event/change/qPup.q")->slurp,@bind);
|
return _write($data_path->child("/admin/event/change/qPup.q")->slurp,@bind);
|
||||||
}
|
}
|
||||||
|
|
||||||
#==============================================================================
|
#==============================================================================
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ article.edit input[name=cost]{
|
|||||||
width:100px;
|
width:100px;
|
||||||
}
|
}
|
||||||
article.edit input[type=number]{
|
article.edit input[type=number]{
|
||||||
width:60px;
|
width:70px;
|
||||||
}
|
}
|
||||||
article.edit textarea{
|
article.edit textarea{
|
||||||
flex:3;
|
flex:3;
|
||||||
@@ -1,25 +0,0 @@
|
|||||||
#!/usr/bin/perl
|
|
||||||
use warnings;
|
|
||||||
use strict;
|
|
||||||
use JSON;
|
|
||||||
use Cwd 'abs_path';
|
|
||||||
use lib abs_path("../../")."/sibelius2/conf";
|
|
||||||
use Paths;
|
|
||||||
#-------------------------
|
|
||||||
print getNames( Paths::MOD ."/cal/img");
|
|
||||||
sub getNames{
|
|
||||||
my $dir = shift;
|
|
||||||
my @file_name;
|
|
||||||
opendir(DIR, $dir) or die "error opening dir: $dir \n$!";
|
|
||||||
while (my $file = readdir(DIR)) {
|
|
||||||
next unless ( $file =~m/^[\w\d]/);
|
|
||||||
next unless (-f "$dir/$file");
|
|
||||||
push(@file_name,{name=>$file,tag=>"ilist"});
|
|
||||||
}
|
|
||||||
closedir(DIR);
|
|
||||||
return encode_json( \@file_name );
|
|
||||||
}
|
|
||||||
|
|
||||||
1;
|
|
||||||
__END__
|
|
||||||
|
|
||||||
@@ -1,48 +0,0 @@
|
|||||||
#!/usr/bin/perl -s
|
|
||||||
use warnings;
|
|
||||||
use strict;
|
|
||||||
#---
|
|
||||||
use Cwd 'abs_path';
|
|
||||||
use lib abs_path("../../")."/sibelius2/conf";
|
|
||||||
use Paths;
|
|
||||||
use Init;
|
|
||||||
use ServerVars;
|
|
||||||
use Net::Telnet;
|
|
||||||
use MIME::Lite;
|
|
||||||
use JSON;
|
|
||||||
#-------------
|
|
||||||
### MimeLite necesita sendmail, para arch, sendmail esta sin atender,
|
|
||||||
### puedes usar msmtp msmtp-mta para simular sendmail. este ultimo
|
|
||||||
### necesita configurarse con un correo.
|
|
||||||
|
|
||||||
my ($mod_name,$sid) = @ARGV;
|
|
||||||
my %var = (Init::modInit($sid),%ServerVars::sk);
|
|
||||||
my $server_name = $var{'chat_srv'};
|
|
||||||
|
|
||||||
my @arr;
|
|
||||||
push (@arr,{name=>"one",tag=>"notag"});
|
|
||||||
|
|
||||||
|
|
||||||
my $to = 'benjamuga@gmail.com';
|
|
||||||
my $from = 'mensajes@vuelodegrulla.com';
|
|
||||||
my $subject = "Mensaje de $var{'mname'}";
|
|
||||||
my $message = "Enviado por:
|
|
||||||
<h1>$var{'mname'}</h1>
|
|
||||||
<h2>correo:</br>$var{'mail'}<h2>
|
|
||||||
<p>$var{'msg'}</p>
|
|
||||||
";
|
|
||||||
|
|
||||||
my $msg = MIME::Lite->new(
|
|
||||||
From => $from,
|
|
||||||
To => $to,
|
|
||||||
Subject => $subject,
|
|
||||||
Data => $message
|
|
||||||
);
|
|
||||||
|
|
||||||
$msg->attr("content-type" => "text/html");
|
|
||||||
$msg->send;
|
|
||||||
|
|
||||||
print encode_json( \@arr ) ."\n";
|
|
||||||
|
|
||||||
1
|
|
||||||
__END__
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
|
|
||||||
/* c#host localhost*/
|
|
||||||
/* c#database #dbmsg */
|
|
||||||
/* c#user #dbmsg_w */
|
|
||||||
/* c#password #dbmsg_wp */
|
|
||||||
/* c#write write*/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
insert into entrada
|
|
||||||
(nombre,correo,pagina,texto,fecha)
|
|
||||||
values
|
|
||||||
( q#mname , q#mail , q#wp , q#msg ,now() );
|
|
||||||
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
|
|
||||||
|
|
||||||
/* c#host localhost*/
|
|
||||||
/* c#database #dbdata */
|
|
||||||
/* c#user #dbdata_user */
|
|
||||||
/* c#password #dbdata_pass */
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
select
|
|
||||||
nombre as "tag",
|
|
||||||
contenido as "uContent"
|
|
||||||
from casa;
|
|
||||||
|
Before Width: | Height: | Size: 278 KiB After Width: | Height: | Size: 278 KiB |
|
Before Width: | Height: | Size: 589 KiB After Width: | Height: | Size: 589 KiB |
|
Before Width: | Height: | Size: 364 KiB After Width: | Height: | Size: 364 KiB |
@@ -1,31 +0,0 @@
|
|||||||
<section class="spacer"></section>
|
|
||||||
|
|
||||||
<section id="trs" class="trans header">
|
|
||||||
<h2 class="textHead"> Nuestro querido maestro Pang He Ming </h3>
|
|
||||||
</section>
|
|
||||||
<section class=" trans content flex">
|
|
||||||
<article id="apang" class="imageHead"></article>
|
|
||||||
<article class="text">
|
|
||||||
<!-- ##pang.txt -->
|
|
||||||
</article>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<section id="trs" class="trans header">
|
|
||||||
<h2 class="textHead"> Los maestros Zhang Qing (Helen) y Qiu Fu Chun (Karl). </h3>
|
|
||||||
</section>
|
|
||||||
<section class=" trans content flex">
|
|
||||||
<article id="ahel" class="imageHead"></article>
|
|
||||||
<article class="text">
|
|
||||||
<!-- ##helen.txt -->
|
|
||||||
</article>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<section id="trs" class="trans header">
|
|
||||||
<h2 class="textHead"> Instructor Benjamín Munñóz </h3>
|
|
||||||
</section>
|
|
||||||
<section class=" trans content flex">
|
|
||||||
<article id="aben" class="imageHead"></article>
|
|
||||||
<article class="text">
|
|
||||||
<!-- ##benjamin.txt -->
|
|
||||||
</article>
|
|
||||||
</section>
|
|
||||||
|
Before Width: | Height: | Size: 343 KiB After Width: | Height: | Size: 343 KiB |
@@ -2,7 +2,7 @@ body{
|
|||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
background-attachment: fixed;
|
background-attachment: fixed;
|
||||||
background-size:cover;
|
background-size:cover;
|
||||||
background-image:url("grulla_21.jpg");
|
background-image:url("bkg_grulla_21.jpg");
|
||||||
background-position: right top;
|
background-position: right top;
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -40,9 +40,9 @@ article.imageHead{
|
|||||||
margin:20px;
|
margin:20px;
|
||||||
min-height:300px
|
min-height:300px
|
||||||
}
|
}
|
||||||
article#apang{ background-image:url("img/maestro.png");}
|
article#apang{ background-image:url("maestro.png");}
|
||||||
article#ahel{ background-image:url("img/helen.png");}
|
article#ahel{ background-image:url("helen.png");}
|
||||||
article#aben{ background-image:url("img/ben.png");}
|
article#aben{ background-image:url("ben.png");}
|
||||||
|
|
||||||
/* text column -------------------*/
|
/* text column -------------------*/
|
||||||
article.text{
|
article.text{
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
var sources;
|
var sources;
|
||||||
d3.json( "home/podcast/jsonPod.json",function(d){
|
d3.json( "/json/podcast/podcast.json",function(d){
|
||||||
d3.select("#audioframe").attr("src",d[0].source);
|
d3.select("#audioframe").attr("src",d[0].source);
|
||||||
sources=d;
|
sources=d;
|
||||||
});
|
});
|
||||||
BIN
public/home/store/img/libro.jpg
Executable file → Normal file
|
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 58 KiB |
BIN
public/home/store/img/libro_old.jpg
Executable file
|
After Width: | Height: | Size: 34 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
@@ -1,3 +1,5 @@
|
|||||||
|
% stash css=>["/home/admin/admin.css","/home/admin/event/event.css"];
|
||||||
|
% stash js=>["/home/admin/event/event.js"];
|
||||||
<section class="name" flex> <article class="user">
|
<section class="name" flex> <article class="user">
|
||||||
<p class="title">Editar Eventos</p>
|
<p class="title">Editar Eventos</p>
|
||||||
</article> </section>
|
</article> </section>
|
||||||
@@ -38,7 +40,7 @@
|
|||||||
<option value="<%= $_->{'id'} %>"><%= $_->{'name'} %></option>
|
<option value="<%= $_->{'id'} %>"><%= $_->{'name'} %></option>
|
||||||
<% } %><% (@{stash('months')}) %><% if defined(stash('months')); %>
|
<% } %><% (@{stash('months')}) %><% if defined(stash('months')); %>
|
||||||
</select>
|
</select>
|
||||||
<input id="yini" type="number" min="2017" max="2050" name="yini" value="2017"/>
|
<input id="yini" type="number" min="2019" max="2050" name="yini" value="2019"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex field">
|
<div class="flex field">
|
||||||
<label>Fecha fin</label>
|
<label>Fecha fin</label>
|
||||||
@@ -48,7 +50,7 @@
|
|||||||
<option value="<%= $_->{'id'} %>"><%= $_->{'name'} %></option>
|
<option value="<%= $_->{'id'} %>"><%= $_->{'name'} %></option>
|
||||||
<% } %><% (@{stash('months')}) %><% if defined(stash('months')); %>
|
<% } %><% (@{stash('months')}) %><% if defined(stash('months')); %>
|
||||||
</select>
|
</select>
|
||||||
<input id="yend" type="number" min="2017" max="2050" name="yend" value="2017"/>
|
<input id="yend" type="number" min="2019" max="2050" name="yend" value="2019"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex field">
|
<div class="flex field">
|
||||||
<label>Costo</label> <input id="cost" type="text" name="cost"/>
|
<label>Costo</label> <input id="cost" type="text" name="cost"/>
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
% stash css=>["/home/admin/admin.css","/home/admin/home/admin.css"];
|
||||||
|
% stash js=>["/home/admin/home/buttons.js","/home/admin/home/fb.js"];
|
||||||
<section class="title flex">
|
<section class="title flex">
|
||||||
<article class="title"> <p>Editar Casa</p> </article>
|
<article class="title"> <p>Editar Casa</p> </article>
|
||||||
</section>
|
</section>
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
% stash css=>["/home/admin/admin.css","/home/admin/mensajes/msg.css"];
|
||||||
|
% stash js=>["/home/admin/mensajes/msg.js"];
|
||||||
<section class="flex messages">
|
<section class="flex messages">
|
||||||
<article class="select">
|
<article class="select">
|
||||||
<select id="sentry" class="entry" size=10>
|
<select id="sentry" class="entry" size=10>
|
||||||
|
|||||||
@@ -1,3 +1,13 @@
|
|||||||
|
% stash css=>[
|
||||||
|
% "/home/admin/admin.css",
|
||||||
|
% "/home/admin/radio/admin.css",
|
||||||
|
% "/home/admin/candySwitch/main.css",
|
||||||
|
% "/home/admin/candySwitch/switch.css"
|
||||||
|
% ];
|
||||||
|
% stash js=>[
|
||||||
|
% "/home/admin/radio/loadInfo.js",
|
||||||
|
% "/home/admin/candySwitch/cSwitch.js"
|
||||||
|
% ];
|
||||||
<section class="title flex">
|
<section class="title flex">
|
||||||
<article class="title"> <p>Radio</p> </article>
|
<article class="title"> <p>Radio</p> </article>
|
||||||
<article class="bcast"> <form action="/admin/radio" method="post">
|
<article class="bcast"> <form action="/admin/radio" method="post">
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
% stash css=>["/home/bcast/cast.css"];
|
||||||
|
|
||||||
<link rel="stylesheet" href="//releases.flowplayer.org/7.2.1/skin/skin.css">
|
<link rel="stylesheet" href="//releases.flowplayer.org/7.2.1/skin/skin.css">
|
||||||
<script src="//releases.flowplayer.org/7.2.1/flowplayer.min.js"></script>
|
<script src="//releases.flowplayer.org/7.2.1/flowplayer.min.js"></script>
|
||||||
<script src="//releases.flowplayer.org/dashjs/flowplayer.dashjs.min.js"></script>
|
<script src="//releases.flowplayer.org/dashjs/flowplayer.dashjs.min.js"></script>
|
||||||
|
|||||||
@@ -1,11 +1,9 @@
|
|||||||
|
% stash css=>["home/cal/cal.css/"];
|
||||||
<section class="title"> <p>Próximos eventos</p></section>
|
<section class="title"> <p>Próximos eventos</p></section>
|
||||||
|
|
||||||
<section class="cal">
|
<section class="cal">
|
||||||
|
|
||||||
% foreach (@$b) {
|
% foreach (@$b) {
|
||||||
<section class="month flex">
|
<section class="month flex"> <div class="spacer"></div>
|
||||||
|
<p class="month">
|
||||||
<div class="spacer"></div> <p class="month">
|
|
||||||
<%= $_->{text} %>
|
<%= $_->{text} %>
|
||||||
</p>
|
</p>
|
||||||
<div class="spacer"></div>
|
<div class="spacer"></div>
|
||||||
@@ -24,11 +22,9 @@
|
|||||||
<img class="small" src= "home/cal/img/<%= $d->{imagen_chica} %>">
|
<img class="small" src= "home/cal/img/<%= $d->{imagen_chica} %>">
|
||||||
<article class="more"> ... </article>
|
<article class="more"> ... </article>
|
||||||
</article>
|
</article>
|
||||||
</article>
|
|
||||||
</section>
|
</section>
|
||||||
</a>
|
</a>
|
||||||
%}
|
%} }
|
||||||
%}
|
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
% stash css=>["/home/contact/contact1.css"];
|
||||||
<section id="msg" class="contact">
|
<section id="msg" class="contact">
|
||||||
|
|
||||||
<section class="cbanner">
|
<section class="cbanner">
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
% stash css=>["/home/contact2/contact2.css"];
|
||||||
<section class="contact">
|
<section class="contact">
|
||||||
|
|
||||||
<section class="cbanner">
|
<section class="cbanner">
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
% stash css=> ["/home/event/event.css"];
|
||||||
<section class="event">
|
<section class="event">
|
||||||
<section class="eimage">
|
<section class="eimage">
|
||||||
</section>
|
</section>
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
%stash css=>[ "/home/home/animation.css", "/home/home/grid.css", "/home/home/head.css", "/home/home/osc.css", "/home/home/trans.css" ];
|
||||||
|
%stash js=>["/home/home/d3_tras.js","/home/home/fb.js","/home/home/bcast.js"];
|
||||||
<section id="ihead">
|
<section id="ihead">
|
||||||
<div id="courtain">
|
<div id="courtain">
|
||||||
<div class="logo"></div>
|
<div class="logo"></div>
|
||||||
@@ -36,14 +38,11 @@
|
|||||||
<iframe id="evideo"
|
<iframe id="evideo"
|
||||||
src="https://www.youtube.com/embed/<%= $yt %> " allowfullscreen>
|
src="https://www.youtube.com/embed/<%= $yt %> " allowfullscreen>
|
||||||
</iframe>
|
</iframe>
|
||||||
|
|
||||||
</article>
|
</article>
|
||||||
<div class="group flex">
|
<div class="group flex">
|
||||||
<article class="box-2 fb">
|
<article class="box-2 fb">
|
||||||
|
|
||||||
<div class="fb-post" id="fbdiv" data-href="<%= $fb %>"
|
<div class="fb-post" id="fbdiv" data-href="<%= $fb %>"
|
||||||
data-width="450" data-show-text="true"></div>
|
data-width="450" data-show-text="true"></div>
|
||||||
|
|
||||||
</article>
|
</article>
|
||||||
<article class="box-1 sc">
|
<article class="box-1 sc">
|
||||||
<%== $sc %>
|
<%== $sc %>
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
% stash css => ["home/pang/pang.css"];
|
||||||
|
% stash js => ["home/pang/d3Tras.js"];
|
||||||
<section class="spacer"></section>
|
<section class="spacer"></section>
|
||||||
|
|
||||||
<section id="trs" class="trans header">
|
<section id="trs" class="trans header">
|
||||||
|
|||||||