Adding translations list function so that we can comparte what files are missing from a specific language.

Up at :
https://actividadeswp.carpa.com/v5/translations/pt/index.html
https://actividadeswp.carpa.com/v5/translations/en/index.html
https://actividadeswp.carpa.com/v5/translations/fr/index.html
This commit is contained in:
Julio Ruiz 2025-12-26 23:15:56 -05:00
parent a256f20b5e
commit 8291a9a106
2 changed files with 214 additions and 11 deletions

View File

@ -68,7 +68,7 @@ class Actividad{
} }
function translation_list( $year, $month, $last_update, $text, $locale, $termid="ultimas", $all=false, $history=false, $limit=16 ){ //Default last updated function translation_list( $year, $month, $last_update, $text, $locale, $termid="ultimas", $all=false, $history=false, $limit=16, $from='' ){ //Default last updated
//Check locale and change accordingly to the right DB prefix for that locale //Check locale and change accordingly to the right DB prefix for that locale
$sql = "SELECT $sql = "SELECT
P.ID, P.ID,
@ -103,6 +103,10 @@ class Actividad{
AND PMA.meta_value != ''"; AND PMA.meta_value != ''";
} }
if($from != ''){
$sql .= " AND P.post_date >= '$from'";
}
if($year!=''){ if($year!=''){
$sql .= " AND YEAR(P.post_date) = '$year'"; $sql .= " AND YEAR(P.post_date) = '$year'";
if($month!=''){ if($month!=''){
@ -223,6 +227,42 @@ LEFT JOIN wp_postmeta PML ON P.ID = PML.post_id AND PML.meta_key = 'lugar'
return $this->execute_sql( $sql ); return $this->execute_sql( $sql );
} }
/**
* Summary function
*/
function activity_summary($id,$locale){
$sql = "SELECT
P.ID,
P.post_title AS title,
P.post_date AS creation_date,
P.post_name AS slug,
P.post_modified AS last_updated,
PMA.meta_value AS activity,
PML.meta_value AS lugar,
PMC.meta_value AS city,
PMS.meta_value AS state,
PMCO.meta_value AS country,
PMN.meta_value AS bible_study,
CASE
WHEN PMT.meta_value IS NOT NULL AND PMT.meta_value <> '' THEN 1 -- Or 'True'
ELSE 0 -- Or 'False'
END AS has_text
FROM wp_posts P
LEFT JOIN wp_postmeta PMA ON PMA.post_id = P.ID AND PMA.meta_key = 'actividad'
LEFT JOIN wp_postmeta PML ON PML.post_id = P.ID AND PML.meta_key = 'lugar'
LEFT JOIN wp_postmeta PMC ON PMC.post_id = P.ID AND PMC.meta_key = 'city'
LEFT JOIN wp_postmeta PMS ON PMS.post_id = P.ID AND PMS.meta_key = 'state'
LEFT JOIN wp_postmeta PMCO ON PMCO.post_id = P.ID AND PMCO.meta_key = 'country'
LEFT JOIN wp_postmeta PMN ON PMN.post_id = P.ID AND PMN.meta_key = 'numero_de_estudio_biblico'
LEFT JOIN wp_postmeta PMT ON PMT.post_id = P.ID AND PMT.meta_key = 'intervenciones_0_texto'
WHERE P.ID = $id
AND P.post_status = 'publish'
AND P.post_type = 'actividades'";
return $this->execute_sql( $sql );
}
/** /**
* Summary function * Summary function
*/ */

View File

@ -74,6 +74,12 @@
https://actividadeswp.carpa.com/v3/actividades/?cache=false&f=list&limit=8&locale=es https://actividadeswp.carpa.com/v3/actividades/?cache=false&f=list&limit=8&locale=es
switch ( $func ){ switch ( $func ){
case "translations":
listActivitiesTranslations();
break;
case "thumbnail":
activity_thumbnail($id);
break;
case "sqlite": case "sqlite":
exportToSQLite($year, $month, $limit=10); exportToSQLite($year, $month, $limit=10);
break; break;
@ -641,7 +647,9 @@ https://actividadeswp.carpa.com/v3/actividades/?cache=false&f=list&limit=8&local
$response_item=array( $response_item=array(
"id" => $ID, "id" => $ID,
"locale" => LOCALE, "locale" => LOCALE,
"type" => "activity" "type" => "activity",
"slug" => $slug,
"title" => $title
); );
$confmeta = $activity->activity_meta( $ID ); $confmeta = $activity->activity_meta( $ID );
@ -657,7 +665,12 @@ https://actividadeswp.carpa.com/v3/actividades/?cache=false&f=list&limit=8&local
$response_item['rm'] = false; $response_item['rm'] = false;
$response_item['biblestudy'] = $numero_de_estudio_biblico; $response_item['biblestudy'] = $numero_de_estudio_biblico;
$response_item['duration'] = ''; $response_item['duration'] = '';
$response_item['thumbnail'] = $thumbnail;
if($thumbnail != ''){
$response_item['thumbnail'] = 'https://actividadeswp.carpa.com/wp-content/uploads/' . $thumbnail;
} else {
$response_item['thumbnail'] = 'https://ik.imagekit.io/lgccc/tr:w-1920,f-auto/youtube_thumbnail_46396.png';
}
// $response_item['youtube'] = $youtube; // $response_item['youtube'] = $youtube;
@ -799,8 +812,48 @@ https://actividadeswp.carpa.com/v3/actividades/?cache=false&f=list&limit=8&local
$db = $database->closeConnection(); $db = $database->closeConnection();
} }
function activity_summary( $id ){ function activity_thumbnail( $id ){
$database = new Database();
$db = $database->getConnection();
$activity = new Actividad($db);
$stmt = $activity->detail($id,LOCALE);
$num = $stmt->rowCount();
if($num>0){
$conferences_arr = [];
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)){
extract($row);
$confmeta = $activity->activity_meta( $ID );
extract($confmeta);
$response_item=array(
"id" => $ID,
);
if($thumbnail != ''){
$response_item['thumbnail'] = 'https://actividadeswp.carpa.com/wp-content/uploads/' . $thumbnail;
} else {
$response_item['thumbnail'] = 'https://ik.imagekit.io/lgccc/tr:w-1920,f-auto/youtube_thumbnail_46396.png';
}
array_push($conferences_arr, $response_item);
}
}
$data = $conferences_arr;
send_response( $conferences_arr[0]['thumbnail'] );
$db = $database->closeConnection();
}
function activity_summary( $id ){
$database = new Database(); $database = new Database();
$db = $database->getConnection(); $db = $database->getConnection();
@ -819,6 +872,8 @@ https://actividadeswp.carpa.com/v3/actividades/?cache=false&f=list&limit=8&local
"id" => $ID, "id" => $ID,
"locale" => LOCALE, "locale" => LOCALE,
"type" => "activity", "type" => "activity",
"slug" => $slug,
"title" => $title,
"date" => $creation_date, "date" => $creation_date,
"activity" => $activity, "activity" => $activity,
"place" => $lugar, "place" => $lugar,
@ -866,7 +921,8 @@ https://actividadeswp.carpa.com/v3/actividades/?cache=false&f=list&limit=8&local
$response_item=array( $response_item=array(
"id" => $ID, "id" => $ID,
"locale" => LOCALE, "locale" => LOCALE,
"type" => "activity" "type" => "activity",
"slug" => $slug
); );
$confmeta = $activity->activity_meta( $ID ); $confmeta = $activity->activity_meta( $ID );
@ -882,7 +938,12 @@ https://actividadeswp.carpa.com/v3/actividades/?cache=false&f=list&limit=8&local
$response_item['rm'] = false; $response_item['rm'] = false;
$response_item['biblestudy'] = $numero_de_estudio_biblico; $response_item['biblestudy'] = $numero_de_estudio_biblico;
$response_item['duration'] = ''; $response_item['duration'] = '';
$response_item['thumbnail'] = $thumbnail;
if($thumbnail != ''){
$response_item['thumbnail'] = 'https://actividadeswp.carpa.com/wp-content/uploads/' . $thumbnail;
} else {
$response_item['thumbnail'] = 'https://ik.imagekit.io/lgccc/tr:w-1920,f-auto/youtube_thumbnail_46396.png';
}
// $response_item['youtube'] = $youtube; // $response_item['youtube'] = $youtube;
@ -1528,3 +1589,105 @@ https://actividadeswp.carpa.com/v3/actividades/?cache=false&f=list&limit=8&local
// Output the 36 character UUID. // Output the 36 character UUID.
return vsprintf('%s%s-%s-%s-%s-%s%s%s', str_split(bin2hex($data), 4)); return vsprintf('%s%s-%s-%s-%s-%s%s%s', str_split(bin2hex($data), 4));
} }
function listActivitiesTranslations(){
header('Content-Type: application/json; charset=utf-8');
$database = new Database();
$db = $database->getConnection();
$activity = new Actividad($db);
$stmt = $activity->translation_list( $year, $month, null, false, 'es', null, false, $history, 10000, '2021-12-24' );
$num = $stmt->rowCount();
$data = [];
if($num>0){
$activities_array=array();
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)){
extract($row);
$response_item=array(
"id" => $ID,
"locale" => 'es',
"type" => "activity",
"slug" => $slug,
"title" => $title
);
$confmeta = $activity->activity_meta( $ID );
extract($confmeta);
$response_item['date'] = substr($date,0,10);
$response_item['activity'] = $actividad;
$response_item['place'] = $lugar;
$response_item['city'] = $city;
$response_item['state'] = $state;
$response_item['country'] = $country;
$response_item['rm'] = false;
$response_item['biblestudy'] = $numero_de_estudio_biblico;
$response_item['duration'] = '';
$response_item['slug'] = 'https://www.carpa.com/es/actividades/'.substr($date,0,4).'/'.substr($date,5,2).'/'.$slug;
$translations = unserialize($translationmeta);
$newtranslations = [];
$t['files'] = [];
foreach($translations as $translation_locale=>$translation_id){
if($translation_locale == LOCALE){
$t = [];
$t['locale'] = $translation_locale;
$t['id'] = $translation_id;
$a3 = new Actividad($db);
$summary = $activity->activity_summary($translation_id, $translation_locale);
$s = $summary->fetch(PDO::FETCH_ASSOC);
$t['title'] = $s['title'];
$t['hasText'] = $s['has_text'];
$t['slug'] = 'https://www.carpa.com/'.$translation_locale.'/actividades/'.substr($date,0,4).'/'.substr($date,5,2).'/'.$s['slug'];
$t['files'] = [];
$tempFiles = [];
// // //Get filedata
$a2 = new Actividad($db);
$fileData = $a2->get_activity_files( $translation_id );
$files = $fileData->fetch(PDO::FETCH_ASSOC);
$fileTypes = ['videos','audios','textos','enlaces'];
if($files['use_files']){
foreach($fileTypes as $type){
if(!is_array($tempFiles[$type])){
$tempFiles[$type] = [];
}
if($files[$type] > 0){
$t1 = $activity->get_files( $translation_id, $type, $files[$type]);
array_push($tempFiles[$type],$t1);
}
}
}
$t['files'] = $tempFiles;
array_push($newtranslations,$t);
}
}
$response_item['translations'] = $newtranslations;
$response_item['timestamp'] = (new DateTime($date, new DateTimeZone('America/Bogota')))->getTimestamp();
array_push($data,$response_item);
}
}
send_response( $data );
$db = $database->closeConnection();
}