/**
  * get the person box stylesheet class for the given person
  *
  * @param Individual $person
  *
  * @return string returns 'person_box', 'person_boxF', or 'person_boxNN'
  */
 public function getPersonStyle($person)
 {
     switch ($person->getSex()) {
         case 'M':
             $class = 'person_box';
             break;
         case 'F':
             $class = 'person_boxF';
             break;
         default:
             $class = 'person_boxNN';
             break;
     }
     if ($person->isPendingDeletion()) {
         $class .= ' old';
     } elseif ($person->isPendingAddtion()) {
         $class .= ' new';
     }
     return $class;
 }
Esempio n. 2
0
 /**
  * print the parents table for a family
  *
  * @param Family $family family gedcom ID
  * @param int $sosa child sosa number
  * @param string $label indi label (descendancy booklet)
  * @param string $parid parent ID (descendancy booklet)
  * @param string $gparid gd-parent ID (descendancy booklet)
  * @param int $show_full large or small box
  */
 public static function printFamilyParents(Family $family, $sosa = 0, $label = '', $parid = '', $gparid = '', $show_full = 1)
 {
     if ($show_full) {
         $pbheight = Theme::theme()->parameter('chart-box-y') + 14;
     } else {
         $pbheight = Theme::theme()->parameter('compact-chart-box-y') + 14;
     }
     $husb = $family->getHusband();
     if ($husb) {
         echo '<a name="', $husb->getXref(), '"></a>';
     } else {
         $husb = new Individual('M', "0 @M@ INDI\n1 SEX M", null, $family->getTree());
     }
     $wife = $family->getWife();
     if ($wife) {
         echo '<a name="', $wife->getXref(), '"></a>';
     } else {
         $wife = new Individual('F', "0 @F@ INDI\n1 SEX F", null, $family->getTree());
     }
     if ($sosa) {
         echo '<p class="name_head">', $family->getFullName(), '</p>';
     }
     /**
      * husband side
      */
     echo "<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\"><tr><td rowspan=\"2\">";
     echo "<table border='0'><tr>";
     if ($parid) {
         if ($husb->getXref() == $parid) {
             self::printSosaNumber($label);
         } else {
             self::printSosaNumber($label, "", "blank");
         }
     } elseif ($sosa) {
         self::printSosaNumber($sosa * 2);
     }
     if ($husb->isPendingAddtion()) {
         echo '<td valign="top" class="facts_value new">';
     } elseif ($husb->isPendingDeletion()) {
         echo '<td valign="top" class="facts_value old">';
     } else {
         echo '<td valign="top">';
     }
     FunctionsPrint::printPedigreePerson($husb, $show_full);
     echo "</td></tr></table>";
     echo "</td>";
     // husband’s parents
     $hfam = $husb->getPrimaryChildFamily();
     if ($hfam) {
         // remove the|| test for $sosa
         echo "<td rowspan=\"2\"><img src=\"" . Theme::theme()->parameter('image-hline') . "\" alt=\"\"></td><td rowspan=\"2\"><img src=\"" . Theme::theme()->parameter('image-vline') . "\" width=\"3\" height=\"" . ($pbheight + 9) . "\" alt=\"\"></td>";
         echo "<td><img class=\"line5\" src=\"" . Theme::theme()->parameter('image-hline') . "\" alt=\"\"></td><td>";
         // husband’s father
         if ($hfam && $hfam->getHusband()) {
             echo "<table border='0'><tr>";
             if ($sosa > 0) {
                 self::printSosaNumber($sosa * 4, $hfam->getHusband()->getXref(), "down");
             }
             if (!empty($gparid) && $hfam->getHusband()->getXref() == $gparid) {
                 self::printSosaNumber(trim(substr($label, 0, -3), ".") . ".");
             }
             echo "<td valign=\"top\">";
             FunctionsPrint::printPedigreePerson($hfam->getHusband(), $show_full);
             echo "</td></tr></table>";
         } elseif ($hfam && !$hfam->getHusband()) {
             // Empty box for grandfather
             echo "<table border='0'><tr>";
             echo '<td valign="top">';
             FunctionsPrint::printPedigreePerson($hfam->getHusband(), $show_full);
             echo '</td></tr></table>';
         }
         echo "</td>";
     }
     if ($hfam && $sosa != -1) {
         echo '<td valign="middle" rowspan="2">';
         self::printUrlArrow($sosa == 0 ? '?famid=' . $hfam->getXref() . '&amp;ged=' . $hfam->getTree()->getNameUrl() : '#' . $hfam->getXref(), $hfam->getXref(), 1);
         echo '</td>';
     }
     if ($hfam) {
         // husband’s mother
         echo "</tr><tr><td><img src=\"" . Theme::theme()->parameter('image-hline') . "\" alt=\"\"></td><td>";
         if ($hfam && $hfam->getWife()) {
             echo "<table border='0'><tr>";
             if ($sosa > 0) {
                 self::printSosaNumber($sosa * 4 + 1, $hfam->getWife()->getXref(), "down");
             }
             if (!empty($gparid) && $hfam->getWife()->getXref() == $gparid) {
                 self::printSosaNumber(trim(substr($label, 0, -3), ".") . ".");
             }
             echo '<td valign="top">';
             FunctionsPrint::printPedigreePerson($hfam->getWife(), $show_full);
             echo '</td></tr></table>';
         } elseif ($hfam && !$hfam->getWife()) {
             // Empty box for grandmother
             echo "<table border='0'><tr>";
             echo '<td valign="top">';
             FunctionsPrint::printPedigreePerson($hfam->getWife(), $show_full);
             echo '</td></tr></table>';
         }
         echo '</td>';
     }
     echo '</tr></table>';
     if ($sosa && $family->canShow()) {
         foreach ($family->getFacts(WT_EVENTS_MARR) as $fact) {
             echo '<a href="', $family->getHtmlUrl(), '" class="details1">';
             echo str_repeat('&nbsp;', 10);
             echo $fact->summary();
             echo '</a>';
         }
     } else {
         echo '<br>';
     }
     /**
      * wife side
      */
     echo "<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\"><tr><td rowspan=\"2\">";
     echo "<table><tr>";
     if ($parid) {
         if ($wife->getXref() == $parid) {
             self::printSosaNumber($label);
         } else {
             self::printSosaNumber($label, "", "blank");
         }
     } elseif ($sosa) {
         self::printSosaNumber($sosa * 2 + 1);
     }
     if ($wife->isPendingAddtion()) {
         echo '<td valign="top" class="facts_value new">';
     } elseif ($wife->isPendingDeletion()) {
         echo '<td valign="top" class="facts_value old">';
     } else {
         echo '<td valign="top">';
     }
     FunctionsPrint::printPedigreePerson($wife, $show_full);
     echo "</td></tr></table>";
     echo "</td>";
     // wife’s parents
     $hfam = $wife->getPrimaryChildFamily();
     if ($hfam) {
         echo "<td rowspan=\"2\"><img src=\"" . Theme::theme()->parameter('image-hline') . "\" alt=\"\"></td><td rowspan=\"2\"><img src=\"" . Theme::theme()->parameter('image-vline') . "\" width=\"3\" height=\"" . ($pbheight + 9) . "\" alt=\"\"></td>";
         echo "<td><img class=\"line5\" src=\"" . Theme::theme()->parameter('image-hline') . "\" alt=\"\"></td><td>";
         // wife’s father
         if ($hfam && $hfam->getHusband()) {
             echo "<table><tr>";
             if ($sosa > 0) {
                 self::printSosaNumber($sosa * 4 + 2, $hfam->getHusband()->getXref(), "down");
             }
             if (!empty($gparid) && $hfam->getHusband()->getXref() == $gparid) {
                 self::printSosaNumber(trim(substr($label, 0, -3), ".") . ".");
             }
             echo "<td valign=\"top\">";
             FunctionsPrint::printPedigreePerson($hfam->getHusband(), $show_full);
             echo "</td></tr></table>";
         } elseif ($hfam && !$hfam->getHusband()) {
             // Empty box for grandfather
             echo "<table border='0'><tr>";
             echo '<td valign="top">';
             FunctionsPrint::printPedigreePerson($hfam->getHusband(), $show_full);
             echo '</td></tr></table>';
         }
         echo "</td>";
     }
     if ($hfam && $sosa != -1) {
         echo '<td valign="middle" rowspan="2">';
         self::printUrlArrow($sosa == 0 ? '?famid=' . $hfam->getXref() . '&amp;ged=' . $hfam->getTree()->getNameUrl() : '#' . $hfam->getXref(), $hfam->getXref(), 1);
         echo '</td>';
     }
     if ($hfam) {
         // wife’s mother
         echo "</tr><tr><td><img src=\"" . Theme::theme()->parameter('image-hline') . "\" alt=\"\"></td><td>";
         if ($hfam && $hfam->getWife()) {
             echo "<table><tr>";
             if ($sosa > 0) {
                 self::printSosaNumber($sosa * 4 + 3, $hfam->getWife()->getXref(), "down");
             }
             if (!empty($gparid) && $hfam->getWife()->getXref() == $gparid) {
                 self::printSosaNumber(trim(substr($label, 0, -3), ".") . ".");
             }
             echo "<td valign=\"top\">";
             FunctionsPrint::printPedigreePerson($hfam->getWife(), $show_full);
             echo "</td></tr></table>";
         } elseif ($hfam && !$hfam->getWife()) {
             // Empty box for grandmother
             echo "<table border='0'><tr>";
             echo '<td valign="top">';
             FunctionsPrint::printPedigreePerson($hfam->getWife(), $show_full);
             echo '</td></tr></table>';
         }
         echo '</td>';
     }
     echo "</tr></table>";
 }