Exemplo n.º 1
0
function copy_imageFN($children_ha, $im_dest, $max_X, $max_Y, $user_level)
{
    $background_R = $GLOBALS['background_R'];
    $background_G = $GLOBALS['background_G'];
    $background_B = $GLOBALS['background_B'];
    $foreground_R = $GLOBALS['foreground_R '];
    $foreground_G = $GLOBALS['foreground_R'];
    $foreground_B = $GLOBALS['foreground_R '];
    $root_dir = $GLOBALS['root_dir'];
    $layout_template = $GLOBALS['layout_template'];
    $duplicate_dir_structure = $GLOBALS['duplicate_dir_structure'];
    $family = $GLOBALS['family'];
    $debug = $GLOBALS['debug'];
    $src_x = 0;
    $src_y = 0;
    $position_node = array();
    $function_group = "browsing";
    //
    // $duplicate_dir_structure =  $GLOBALS['duplicate_dir_structure'];
    if (!isset($duplicate_dir_structure)) {
        $duplicate_dir_structure = 0;
    }
    //default
    if (!$family) {
        $family = ADA_TEMPLATE_FAMILY;
    }
    //default
    if (!$duplicate_dir_structure) {
        //0
        $templates_dir = "{$function_group}/templates/" . $family;
    } else {
        $templates_dir = "templates/{$function_group}/" . $family;
    }
    // $templates_dir = "browsing/templates";
    //echo $templates_dir;
    //$temp = split('[/\]',$layout_template);
    //$template_family = $temp[1];
    //$template_img_dir = "$templates_dir/$template_family/img";
    $template_img_dir = "{$templates_dir}/img";
    $template_img_dir = 'layout/standard/img';
    # $background_color = ImageColorAllocate ($im, 0, 0, 0);
    # $text_color = ImageColorAllocate ($im_dest, 233, 14, 91);
    // $text_color = ImageColorAllocate ($im_dest, 255, 255, 255);
    $text_color = ImageColorAllocate($im_dest, $foreground_R, $foreground_G, $foreground_B);
    //mydebug(__LINE__,__FILE__,$im_dest);
    foreach ($children_ha as $child) {
        //mydebug(__LINE__,__FILE__,$child);
        $node_type = $child['type_child'];
        $position_child_ar = $child['position_child'];
        $name_child = $child['name_child'];
        $node_level = $child['level_child'];
        $id_child = $child['id_child'];
        $tmp_icon_child = $child['icon_child'];
        //	mydebug(__LINE__,__FILE__,$tmp_icon_child);
        if ($user_level < $node_level) {
            $icon_child = "{$root_dir}/{$template_img_dir}/_nododis.png";
        } elseif ($node_type == ADA_NOTE_TYPE) {
            // notes aren't shown in maps !
            $icon_child = "{$root_dir}/{$template_img_dir}/_nota.png";
        } else {
            if (stristr($tmp_icon_child, '/')) {
                if (file_exists($tmp_icon_child)) {
                    $icon_child = $tmp_icon_child;
                    // icon has an absolute path attached
                } elseif (file_exists($root_dir . $tmp_icon_child)) {
                    $icon_child = $root_dir . $tmp_icon_child;
                    // icon has a relative path attached
                } else {
                    $icon_child = "{$root_dir}/{$template_img_dir}/{$tmp_icon_child}";
                }
            } else {
                $icon_child = "{$root_dir}/{$template_img_dir}/{$tmp_icon_child}";
            }
        }
        //mydebug(__LINE__,__FILE__,$icon_child);
        //echo "<img src=$icon_child>";
        if (!empty($icon_child)) {
            $id = new ImageDevice();
            if (empty($id->error) and file_exists($icon_child)) {
                // Get image dimensions
                $size_src = $id->GetImageSizeX($icon_child);
                // mydebug(__LINE__,__FILE__,$size_src);
                $height_src = $size_src[1];
                $width_src = $size_src[0];
                $dest_x = $position_child_ar[0];
                $dest_y = $position_child_ar[1];
                // Necessari per ridimensionamento immagine
                $height_dest = $position_child_ar[3] - $position_child_ar[1];
                $width_dest = $position_child_ar[2] - $position_child_ar[0];
                // mydebug(__LINE__,__FILE__,$position_child_ar);
                //
                // $extension = $id->type;
                $im_src = $id->imagecreateFromX($icon_child);
                mydebug(__LINE__, __FILE__, $id->error);
                // Versione immagini ridimensionate.
                //                      $im_result =  ImageCopyResized ($im_dest, $im_src, $dest_x, $dest_y, $src_x, $src_y, $width_dest, $height_dest, $width_src, $height_src);
                // Versione che non ridimensiona
                $im_result = ImageCopy($im_dest, $im_src, $dest_x, $dest_y, $src_x, $src_y, $width_src, $height_src);
                ImageDestroy($im_src);
            }
            $bounds = $dest_x . "," . $dest_y . "," . ($dest_x + $width_src) . "," . ($dest_y + $height_src + 10);
            $bounds_ar = explode(",", $bounds);
            $control = array_push($position_node, array('id_node' => $id_child, 'bounds' => $bounds));
            ImageString($im_dest, 1, $dest_x, $dest_y + $height_src + 10, $name_child, $text_color);
        }
    }
    // mydebug(__LINE__,__FILE__,$position_node);
    return $position_node;
    # restituisce un array contenente le posizioni dei nodi figli
}