function save_book_structure($response, $book) { $units = isset($response['libros']['libro']['unidades']['unidad']) ? $response['libros']['libro']['unidades']['unidad'] : false; // Guarda los datos del libro $book->structureforaccess = count($units) > 0 ? 1 : 0; $bookid = rcommon_book::add_update($book); if (!$bookid) { return; } if ($units) { $docleaning = true; // If we have no errors, we will clean old units and activities $timemodified = time(); // Time to do the cleaning // If is not associtive, it will have only one unit if (is_associative_array($units)) { $units = array($units); } foreach ($units as $unit) { $actividades = isset($unit['actividades']['actividad']) ? $unit['actividades']['actividad'] : false; // Unit with no code detected! if (!isset($unit['id']) || empty($unit['id'])) { $docleaning = false; continue; } $unitinstance = new stdClass(); $unitinstance->bookid = $bookid; $unitinstance->code = $unit['id']; $unitinstance->name = isset($unit['titulo']) ? $unit['titulo'] : ""; $unitinstance->summary = $unitinstance->name; $unitinstance->sortorder = isset($unit['orden']) ? $unit['orden'] : ""; // echo "<li>Unit: {$unitinstance->name}"; $unitid = rcommon_unit::add_update($unitinstance); if (!$unitid) { // Cannot Add/Update Unit $docleaning = false; continue; } if ($actividades) { // If is not associtive, it will have only one activity if (is_associative_array($actividades)) { $actividades = array($actividades); } foreach ($actividades as $act) { // Activity with no code detected! if (!isset($act['id']) || empty($act['id'])) { $docleaning = false; continue; } $activityinstance = new stdClass(); $activityinstance->bookid = $bookid; $activityinstance->unitid = $unitid; $activityinstance->code = $act['id']; $activityinstance->name = isset($act['titulo']) ? $act['titulo'] : ""; $activityinstance->summary = $activityinstance->name; $activityinstance->sortorder = isset($act['orden']) ? $act['orden'] : ""; $activid = rcommon_activity::add_update($activityinstance); if (!$activid) { // Cannot Add/Update Activity $docleaning = false; } } } } if ($docleaning) { rcommon_book::clean($bookid, $timemodified); } } }