add clarion interfacing scripts
This commit is contained in:
parent
bcc2315a51
commit
63e857aa29
|
@ -0,0 +1,27 @@
|
|||
<?php
|
||||
if( php_sapi_name() !== 'cli' ) {
|
||||
die("Meant to be run from command line");
|
||||
}
|
||||
|
||||
function find_wordpress_base_path() {
|
||||
$dir = dirname(__FILE__);
|
||||
do {
|
||||
//it is possible to check for other files here
|
||||
if( file_exists($dir."/wp-config.php") ) {
|
||||
return $dir;
|
||||
}
|
||||
} while( $dir = realpath("$dir/..") );
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
|
||||
define( 'BASE_PATH', find_wordpress_base_path()."/" );
|
||||
define('WP_USE_THEMES', false);
|
||||
global $wp, $wp_query, $wp_the_query, $wp_rewrite, $wp_did_header, $pgconn;
|
||||
require(BASE_PATH . '/wp-content/themes/initfest/pgconn.php');
|
||||
$_SERVER['HTTP_HOST'] = "www.openfest.org";
|
||||
require(BASE_PATH . 'wp-load.php');
|
||||
require_once(BASE_PATH . 'wp-admin/includes/media.php');
|
||||
require_once(BASE_PATH . 'wp-admin/includes/file.php');
|
||||
require_once(BASE_PATH . 'wp-admin/includes/image.php');
|
|
@ -0,0 +1,146 @@
|
|||
<?php
|
||||
|
||||
require("cli-header.php");
|
||||
|
||||
/* fugly hardcoding */
|
||||
$sched_en=3263;
|
||||
$sched_bg=10;
|
||||
|
||||
$en = $bg = '<style type="text/css"><!--
|
||||
.lecture-description {
|
||||
display: none;
|
||||
}
|
||||
--></style><script type="text/javascript">// <![CDATA[
|
||||
jQuery( document ).ready(function($) {
|
||||
$( \'.program\' ).on( \'click\', \'.lecture-title\', function() {
|
||||
$(this).nextAll( \'.lecture-description\' ).toggle( \'slow\' );
|
||||
});
|
||||
});
|
||||
// ]]></script><div class="program">';
|
||||
|
||||
$prg = pg_query("select
|
||||
h.name as hallname,
|
||||
to_char(starts_at, 'DD FMMonth - FMDay') as dt,
|
||||
to_char(s.starts_at,'HH24:MI') as start, to_char(s.ends_at,'HH24:MI') as end,
|
||||
e.title, e.language,
|
||||
e.abstract,
|
||||
t.name as tname, t.color as tcolor,
|
||||
sp.first_name || ' ' || sp.last_name as spname
|
||||
from
|
||||
slots s join halls h on h.id=s.hall_id
|
||||
join events e on s.event_id = e.id
|
||||
join tracks t on t.id=e.track_id
|
||||
join users u on u.id=e.user_id
|
||||
join speaker_profiles sp on sp.user_id=u.id
|
||||
where
|
||||
not s.event_id is null
|
||||
order by date(s.starts_at),s.hall_id, s.starts_at
|
||||
");
|
||||
|
||||
$bgpost = array();
|
||||
$enpost = array();
|
||||
|
||||
$bgpost['ID'] = $sched_bg;
|
||||
$enpost['ID'] = $sched_en;
|
||||
|
||||
$bgpost['post_title'] = "Програма";
|
||||
$enpost['post_title'] = "Schedule";
|
||||
|
||||
$bgpost['post_name'] = "schedule";
|
||||
$enpost['post_name'] = "schedule";
|
||||
|
||||
$cdate='';
|
||||
$chall='';
|
||||
|
||||
while ($row = pg_fetch_object($prg)) {
|
||||
|
||||
if ($chall!=$row->hallname && strlen($chall)>1) {
|
||||
$bg.= "</table>\n";
|
||||
$en.= "</table>\n";
|
||||
}
|
||||
|
||||
if ($cdate!=$row->dt) {
|
||||
$cdate = $row->dt;
|
||||
$bg.= "<h2>$cdate</h2>\n";
|
||||
$en.= "<h2>$cdate</h2>\n";
|
||||
}
|
||||
|
||||
if ($chall!=$row->hallname) {
|
||||
$chall = $row->hallname;
|
||||
echo pll_translate_string($chall, 'en_US')."\n";
|
||||
$en.= "<table><caption>".pll_translate_string($chall, 'en')." Hall</caption><tbody>";
|
||||
$bg.= "<table><caption>Зала ".pll_translate_string($chall,'bg')."</caption><tbody>";
|
||||
}
|
||||
|
||||
|
||||
|
||||
$bg .= '<tr><td class="time">'.$row->start.' - '.$row->end.'</td>';
|
||||
$bg .= '<td><span class="lecture-title"><a href="javascript: void0">'.htmlentities($row->title).'</a></span><br/>';
|
||||
$bg .= '<a class="vt-p" href="/bg/schedule-3/speakers/#'.htmlentities($row->spname).'">'.htmlentities($row->spname).'</a><br/>';
|
||||
$bg .= '<font color="#'.$row->tcolor.'">'.$row->tname.'</font>';
|
||||
$bg .= '<div class="lecture-description">'.htmlentities($row->abstract).'</div></td></tr>';
|
||||
|
||||
$en .= '<tr><td class="time">'.$row->start.' - '.$row->end.'</td>';
|
||||
$en .= '<td><span class="lecture-title"><a href="javascript: void0">'.htmlentities($row->title).'</a></span><br/>';
|
||||
$en .= '<a class="vt-p" href="/en/schedule/speakers/#'.htmlentities($row->spname).'">'.htmlentities($row->spname).'</a><br/>';
|
||||
$en .= '<font color="#'.$row->tcolor.'">'.$row->tname.'</font>';
|
||||
$en .= '<div class="lecture-description">'.htmlentities($row->abstract).'</div></td></tr>';
|
||||
/*
|
||||
<tr>
|
||||
<td class="time">10:15 – 11:00</td>
|
||||
<td><span class="lecture-title"><a href="javascript: void0">Open-source hardware от България</a></span>
|
||||
<a class="vt-p" href="/lecturers/#tzvetan">Цветан Узунов</a>
|
||||
<div class="lecture-description">Какво е OSHW (Open Source Hardware)?
|
||||
Какви са приликите и разликите между OSHW и FOSS?
|
||||
Може ли да се прави бизнес с OSHW?
|
||||
Кога да правим и кога да не правим OSHW?
|
||||
OLinuXino boards roadmap.
|
||||
Olimex's Arduino boards roadmap.</div></td>
|
||||
</tr>
|
||||
*/
|
||||
|
||||
}
|
||||
$bg.= "</table></div>\n";
|
||||
$en.= "</table></div>\n";
|
||||
|
||||
|
||||
$bgpost['post_content'] = $bg;
|
||||
$enpost['post_content'] = $en;
|
||||
|
||||
$bgpost['post_content_filtered'] = $bg;
|
||||
$enpost['post_content_filtered'] = $en;
|
||||
|
||||
$bgpost['post_status'] = 'publish';
|
||||
$enpost['post_status'] = 'publish';
|
||||
|
||||
$bgpost['post_type'] = 'page';
|
||||
$enpost['post_type'] = 'page';
|
||||
|
||||
$bgpost['filter'] = true;
|
||||
$enpost['filter'] = true;
|
||||
|
||||
kses_remove_filters();
|
||||
|
||||
wp_insert_post($bgpost);
|
||||
wp_insert_post($enpost);
|
||||
|
||||
/*
|
||||
$newpost = array();
|
||||
$newpost['post_type'] = 'speakers';
|
||||
$newpost['post_status'] = 'publish';
|
||||
$newpost['post_title'] = $row->first_name." ".$row->last_name;
|
||||
$newpost['post_content'] = $row->biography;
|
||||
$newpost['post_excerpt'] = $row->biography;
|
||||
|
||||
$postid=wp_insert_post($newpost);
|
||||
$url = 'https://cfp.openfest.org/uploads/speaker_profile/picture/'.$row->id.'/schedule_'.$row->picture;
|
||||
echo $url."\n";
|
||||
$att = media_sideload_image($url, $postid, "photo_spk_".$row->user_id);
|
||||
preg_match("%src='(http://[^']*)'%", $att, $matches);
|
||||
var_dump($matches);
|
||||
$wpurl = $matches[1];
|
||||
$attid = pn_get_attachment_id_from_url($wpurl);
|
||||
add_post_meta($postid, '_thumbnail_id', $attid);
|
||||
pll_set_post_language($postid, 'bg');
|
||||
}*/
|
||||
|
|
@ -0,0 +1,188 @@
|
|||
<?php
|
||||
|
||||
require("cli-header.php");
|
||||
|
||||
/* fugly hardcoding */
|
||||
$sched_en=3263;
|
||||
$sched_bg=10;
|
||||
/*
|
||||
$sched_en=3942;
|
||||
$sched_bg=3940;*/
|
||||
|
||||
$bg = '<section class="content"> <table cellpadding="0" cellspacing="0" class="schedule"><tr><th> </th><th>Зала София</th><th>Зала Варна</th><th>Зала G1</th></tr>';
|
||||
$en = '<section class="content"> <table cellpadding="0" cellspacing="0" class="schedule"><tr><th> </th><th>Sofia Hall</th><th>Varna Hall</th><th>Hall G1</th></tr>';
|
||||
|
||||
$tracks=array(8 => 'open-biz', 9 => 'open-art', 2 => 'technical', 6 => 'civic', 5 => 'social', 3 => 'advanced-technical');
|
||||
|
||||
$prg = pg_query("select
|
||||
h.name as hallname,h.id as hallid,
|
||||
to_char(starts_at, 'DD FMMonth - FMDay') as dt,
|
||||
to_char(s.starts_at,'HH24:MI')|| ' - ' || to_char(s.ends_at,'HH24:MI') as slot,
|
||||
e.title, e.subtitle, e.language, e.id as eventid,
|
||||
e.abstract, e.description,
|
||||
t.name as tname,t.id as trackid,
|
||||
array_agg(sp.first_name || ' ' || sp.last_name)::text as spname
|
||||
from
|
||||
slots s join halls h on h.id=s.hall_id
|
||||
join events e on s.event_id = e.id
|
||||
join tracks t on t.id=e.track_id
|
||||
join events_speaker_profiles esp on esp.event_id=e.id
|
||||
join speaker_profiles sp on esp.speaker_profile_id=sp.id
|
||||
where
|
||||
not s.event_id is null
|
||||
group by h.name, h.id, starts_at, ends_at, t.id, e.title, e.subtitle, e.language, e.id, s.hall_id
|
||||
order by date(s.starts_at),s.starts_at, s.hall_id;
|
||||
");
|
||||
|
||||
|
||||
$dtrans = array('01 November - Saturday' => '01 ноември - събота', '02 November - Sunday' => '02 ноември - неделя');
|
||||
|
||||
$p = array();
|
||||
while ($row = pg_fetch_object($prg)) {
|
||||
$p[$row->dt][$row->slot][$row->hallname]=$row;
|
||||
}
|
||||
|
||||
|
||||
$bgpost = array();
|
||||
$enpost = array();
|
||||
|
||||
$bgpost['ID'] = $sched_bg;
|
||||
$enpost['ID'] = $sched_en;
|
||||
|
||||
$bgpost['post_title'] = "Програма";
|
||||
$enpost['post_title'] = "Schedule";
|
||||
|
||||
$bgpost['post_name'] = "programa";
|
||||
$enpost['post_name'] = "schedule";
|
||||
|
||||
$bgpost['post_author'] = 2;
|
||||
$enpost['post_author'] = 2;
|
||||
|
||||
$bgpost['post_date'] = "2014-10-13 00:01:02";
|
||||
$enpost['post_date'] = "2014-10-13 00:01:02";
|
||||
|
||||
$cdate='';
|
||||
$chall='';
|
||||
|
||||
|
||||
$clearsmb=array('{', '}', '"');
|
||||
|
||||
$events = array();
|
||||
|
||||
foreach ($p as $day => $dayv) {
|
||||
$bg .='<tr><td class="schedule-day">'.$dtrans[$day].'</td><td colspan="4" class="schedule-empty"></td></tr>'."\n";
|
||||
$en .='<tr><td class="schedule-day">'.$day.'</td><td colspan="4" class="schedule-empty"></td></tr>'."\n";
|
||||
foreach ($dayv as $slot => $slotv) {
|
||||
$bg .= '<tr><td>'.$slot.'</td>'."\n";
|
||||
$en .= '<tr><td>'.$slot.'</td>'."\n";
|
||||
$h=0;
|
||||
foreach ($slotv as $hall => $event){
|
||||
$h++;
|
||||
while ($h < $event->hallid) {
|
||||
$h++;
|
||||
$bg .= "<td></td>\n";
|
||||
$en .= "<td></td>\n";
|
||||
}
|
||||
|
||||
$spkarr = explode(',', str_replace($clearsmb, '' ,$event->spname));
|
||||
$spkbgarr = array();
|
||||
$spkenarr = array();
|
||||
foreach ($spkarr as $val){
|
||||
$spkbgarr[] = '<a class="vt-p" href="/bg/programa/speakers/#'.htmlentities($val).'">'.htmlentities($val).'</a>';
|
||||
$spkenarr[] = '<a class="vt-p" href="/en/schedule/speakers/#'.htmlentities($val).'">'.htmlentities($val).'</a>';
|
||||
}
|
||||
$spkbg = implode(", ", $spkbgarr);
|
||||
$spken = implode(", ", $spkenarr);
|
||||
|
||||
$event->spken = $spken;
|
||||
$event->spkbg = $spkbg;
|
||||
|
||||
$events[] = $event;
|
||||
|
||||
$bg .= '<td class="schedule-'.$tracks[$event->trackid].' schedule-'.$event->language.'"><a href="#lecture-'.$event->eventid.'">'.htmlentities($event->title).'</a>';
|
||||
$bg .='<br>'.$spkbg.'</td>'."\n";
|
||||
|
||||
$en .= '<td class="schedule-'.$tracks[$event->trackid].' schedule-'.$event->language.'"><a href="#lecture-'.$event->eventid.'">'.htmlentities($event->title).'</a>';
|
||||
$en .='<br>'.$spken.'</td>'."\n";
|
||||
|
||||
#var_dump($event);
|
||||
|
||||
}
|
||||
while ($h < 3) {
|
||||
$h++;
|
||||
$bg .= "<td></td>\n";
|
||||
$en .= "<td></td>\n";
|
||||
}
|
||||
$bg .= '</tr>'."\n";
|
||||
$en .= '</tr>'."\n";
|
||||
}
|
||||
}
|
||||
|
||||
$bg .= '</table>';
|
||||
$en .= '</table>';
|
||||
$legend = '<!-- legend -->
|
||||
<table cllpadding="0" cellspacing="0" class="schedule schedule-legend">
|
||||
<tr><td class="schedule-technical">Technical</td></tr>
|
||||
<tr><td class="schedule-advanced-technical">Advanced technical</td></tr>
|
||||
<tr><td class="schedule-social">Social</td></tr>
|
||||
<tr><td class="schedule-open-art">Open art</td></tr>
|
||||
<tr><td class="schedule-open-biz">Open biz</td></tr>
|
||||
<tr><td class="schedule-civic">Civic hacking</td></tr>
|
||||
<tr><td class="schedule-misc">Misc</td></tr>
|
||||
<tr><td class="schedule-en">English</td></tr>
|
||||
<tr><td class="schedule-bg">Български</td></tr>
|
||||
</table>';
|
||||
$bg .= $legend;
|
||||
$en .= $legend;
|
||||
|
||||
|
||||
$bg .= '<div class="separator"></div>';
|
||||
$en .= '<div class="separator"></div>';
|
||||
|
||||
|
||||
|
||||
foreach ($events as $k => $event) {
|
||||
$bg .= '<section id="lecture-'.$event->eventid.'">';
|
||||
$bg .= '<p><strong> '.$event->title.' ('.$event->spkbg.')</strong><p>';
|
||||
if (strlen($event->subtitle)>2) $bg .= '<p><small>'.htmlentities($event->subtitle).'</small></p>';
|
||||
$bg .= '<p>'.htmlentities($event->abstract).'</p>';
|
||||
# $bg .= '<p>'.htmlentities($event->description).'</p>';
|
||||
$bg .= "</section>";
|
||||
|
||||
$bg .= '<div class="separator"></div>';
|
||||
|
||||
$en .= '<section id="lecture-'.$event->eventid.'">';
|
||||
$en .= '<p><strong> '.$event->title.' ('.$event->spken.')</strong><p>';
|
||||
if (strlen($event->subtitle)>2) $en .= '<p><small>'.htmlentities($event->subtitle).'</small></p>';
|
||||
$en .= '<p>'.htmlentities($event->abstract).'</p>';
|
||||
# $en .= '<p>'.htmlentities($event->description).'</p>';
|
||||
$en .= "</section>";
|
||||
|
||||
$en .= '<div class="separator"></div>';
|
||||
|
||||
};
|
||||
$bg .= '</section>';
|
||||
$en .= '</section>';
|
||||
|
||||
|
||||
$bgpost['post_content'] = $bg;
|
||||
$enpost['post_content'] = $en;
|
||||
|
||||
$bgpost['post_content_filtered'] = $bg;
|
||||
$enpost['post_content_filtered'] = $en;
|
||||
|
||||
$bgpost['post_status'] = 'publish';
|
||||
$enpost['post_status'] = 'publish';
|
||||
|
||||
$bgpost['post_type'] = 'page';
|
||||
$enpost['post_type'] = 'page';
|
||||
|
||||
$bgpost['filter'] = true;
|
||||
$enpost['filter'] = true;
|
||||
|
||||
kses_remove_filters();
|
||||
|
||||
wp_insert_post($bgpost);
|
||||
wp_insert_post($enpost);
|
||||
|
||||
|
|
@ -0,0 +1,68 @@
|
|||
<?php
|
||||
|
||||
require("cli-header.php");
|
||||
|
||||
foreach ( array('en', 'bg') as $lang) {
|
||||
$speakers_args = array( 'post_type' => 'speakers','lang' => $lang, 'nopaging' => 'true');
|
||||
$speakers = new WP_Query( $speakers_args );
|
||||
|
||||
$result = $speakers->get_posts();
|
||||
# var_dump($result);
|
||||
|
||||
foreach ($result as $k=>$v) {
|
||||
$args = array(
|
||||
'post_parent' => $v->id,
|
||||
'post_type' => 'attachment',
|
||||
'posts_per_page' => -1,
|
||||
'post_status' => 'any' );
|
||||
|
||||
$chld = get_children($args);
|
||||
foreach ($chld as $k => $att) {
|
||||
if (preg_match('/^photo_spk/', $att->post_name))
|
||||
var_dump(wp_delete_post($att->ID, true));
|
||||
}
|
||||
var_dump(wp_delete_post($v->ID, true));
|
||||
}
|
||||
}
|
||||
|
||||
$spk = pg_query("select
|
||||
distinct sp.user_id, sp.id, sp.first_name, sp.last_name, e.language, picture, biography, github, twitter
|
||||
from
|
||||
speaker_profiles sp join events_speaker_profiles esp on sp.id=esp.speaker_profile_id
|
||||
join events e on esp.event_id=e.id
|
||||
where e.state=1
|
||||
order by sp.first_name, sp.last_name;
|
||||
");
|
||||
|
||||
while ($row = pg_fetch_object($spk)) {
|
||||
$newpost = array();
|
||||
$newpost['post_type'] = 'speakers';
|
||||
$newpost['post_status'] = 'publish';
|
||||
$newpost['post_title'] = $row->first_name." ".$row->last_name;
|
||||
$newpost['post_content'] = $row->biography;
|
||||
$newpost['post_excerpt'] = $row->biography;
|
||||
|
||||
$postid=wp_insert_post($newpost);
|
||||
$url = 'https://cfp.openfest.org/uploads/speaker_profile/picture/'.$row->id.'/schedule_'.$row->picture;
|
||||
echo $url."\n";
|
||||
$att = media_sideload_image($url, $postid, "photo_spk_bg_".$row->user_id);
|
||||
preg_match("%src='(http://[^']*)'%", $att, $matches);
|
||||
$wpurl = $matches[1];
|
||||
$attid = pn_get_attachment_id_from_url($wpurl);
|
||||
add_post_meta($postid, '_thumbnail_id', $attid);
|
||||
pll_set_post_language($postid, 'bg');
|
||||
|
||||
$postid_en=wp_insert_post($newpost);
|
||||
$url = 'https://cfp.openfest.org/uploads/speaker_profile/picture/'.$row->id.'/schedule_'.$row->picture;
|
||||
echo $url."\n";
|
||||
$att = media_sideload_image($url, $postid_en, "photo_spk_en_".$row->user_id);
|
||||
preg_match("%src='(http://[^']*)'%", $att, $matches);
|
||||
$wpurl = $matches[1];
|
||||
$attid = pn_get_attachment_id_from_url($wpurl);
|
||||
add_post_meta($postid_en, '_thumbnail_id', $attid);
|
||||
pll_set_post_language($postid_en, 'en');
|
||||
|
||||
pll_save_post_translations(array($postid => 'bg', $postid_en => '$en'));
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
<?php
|
||||
# move this to pgconn.php
|
||||
global $pgconn;
|
||||
|
||||
$pgconn = pg_connect("host=localhost dbname=DBNAME user=USERNAME password=PASSWORD");
|
||||
|
Loading…
Reference in New Issue