protected function process($data)
 {
     $newId = $this->idMap[$data[0]];
     $block = new MatrixBlockModel();
     $block->fieldId = 14;
     $block->ownerId = $newId;
     $block->typeId = 1;
     $insertData = ['date' => $data[1], 'type' => $data[2], 'units' => $data[3], 'amount' => $data[4]];
     echo PHP_EOL . 'Add data for ' . $newId;
     print_r($insertData);
     $block->setContentFromPost($insertData);
     craft()->matrix->saveBlock($block);
 }
 public function loadEntries($lastRun = false)
 {
     $retVal = true;
     // Use SimpleXML to fetch an XML export of channel data from an ExpressionEngine site
     $xml = simplexml_load_file($this->settings['feedURL']);
     $importTags = false;
     foreach ($xml->channel[0]->item as $importEntry) {
         $success = false;
         $entry = new EntryModel();
         $postData = strip_tags(html_entity_decode($importEntry->description));
         $parts = explode(' ', $postData);
         if (count($parts) > $this->settings['wordMax']) {
             $parts = array_slice($parts, 0, $this->settings['wordMax']);
         }
         $postData = implode(' ', $parts);
         $pubDate = strtotime((string) $importEntry->pubDate);
         if ($pubDate && $lastRun && $pubDate < $lastRun) {
             continue;
         }
         // Find these in craft/app/models/EntryModel
         $entry->sectionId = $this->settings['sectionID'];
         $entry->typeId = $this->settings['typeID'];
         $entry->authorId = 1;
         // 1 for Admin
         $entry->enabled = true;
         $entry->postDate = $importEntry->pubDate;
         $entry->getContent()->setAttributes(array('title' => $importEntry->title, 'summary' => $postData, 'category' => $this->settings['categoryID']));
         $entry->getContent()->setAttributes(array('storyCategories' => array($this->settings['categoryID'])));
         $success = craft()->entries->saveEntry($entry);
         $block = new MatrixBlockModel();
         $block->fieldId = $this->settings['matrixFieldID'];
         $block->ownerId = $entry->id;
         $block->typeId = $this->settings['matrixTypeID'];
         $target = '';
         if ($this->settings['targetNewWindow']) {
             $target = ' target="_blank"';
         }
         $block->getContent()->cbText = sprintf('<a href="%s"%s>%s</a>', (string) $importEntry->link, $target, (string) $importEntry->title);
         craft()->matrix->saveBlock($block, false);
     }
     return $retVal;
 }
 private function _getBlockTypeInfoForInput($fieldType, $name)
 {
     $blockTypes = array();
     // Set a temporary namespace for these
     $originalNamespace = craft()->templates->getNamespace();
     $namespace = craft()->templates->namespaceInputName($name . '[__BLOCK2__][fields]', $originalNamespace);
     craft()->templates->setNamespace($namespace);
     foreach ($fieldType->getSettings()->getBlockTypes() as $blockType) {
         // Create a fake MatrixBlockModel so the field types have a way to get at the owner element, if there is one
         $block = new MatrixBlockModel();
         $block->fieldId = $fieldType->model->id;
         $block->typeId = $blockType->id;
         if ($fieldType->element) {
             $block->setOwner($fieldType->element);
         }
         $fieldLayoutFields = $blockType->getFieldLayout()->getFields();
         foreach ($fieldLayoutFields as $fieldLayoutField) {
             $fieldType = $fieldLayoutField->getField()->getFieldType();
             if ($fieldType) {
                 $fieldType->element = $block;
                 $fieldType->setIsFresh(true);
             }
         }
         craft()->templates->startJsBuffer();
         $bodyHtml = craft()->templates->namespaceInputs(craft()->templates->render('_includes/fields', array('namespace' => null, 'fields' => $fieldLayoutFields)));
         // Reset $_isFresh's
         foreach ($fieldLayoutFields as $fieldLayoutField) {
             $fieldType = $fieldLayoutField->getField()->getFieldType();
             if ($fieldType) {
                 $fieldType->setIsFresh(null);
             }
         }
         $footHtml = craft()->templates->clearJsBuffer();
         $blockTypes[] = array('handle' => $blockType->handle, 'name' => Craft::t($blockType->name), 'bodyHtml' => $bodyHtml, 'footHtml' => $footHtml);
     }
     craft()->templates->setNamespace($originalNamespace);
     return $blockTypes;
 }
Exemple #4
0
 /**
  * Validates a block.
  *
  * If the block doesn’t validate, any validation errors will be stored on the block.
  *
  * @param MatrixBlockModel $block The Matrix block to validate.
  *
  * @return bool Whether the block validated.
  */
 public function validateBlock(MatrixBlockModel $block)
 {
     $block->clearErrors();
     $blockRecord = $this->_getBlockRecord($block);
     $blockRecord->fieldId = $block->fieldId;
     $blockRecord->ownerId = $block->ownerId;
     $blockRecord->typeId = $block->typeId;
     $blockRecord->sortOrder = $block->sortOrder;
     $blockRecord->validate();
     $block->addErrors($blockRecord->getErrors());
     $originalFieldContext = craft()->content->fieldContext;
     craft()->content->fieldContext = 'matrixBlockType:' . $block->typeId;
     if (!craft()->content->validateContent($block)) {
         $block->addErrors($block->getContent()->getErrors());
     }
     craft()->content->fieldContext = $originalFieldContext;
     return !$block->hasErrors();
 }
 /**
  * Get attributes for a Model.
  *
  * @param EntryModel/MatrixBlockModel $model
  *
  * @return array
  */
 private function _getAttributesForModel($model)
 {
     $attributes = array();
     $content = $model->getContent()->getAttributes();
     $fieldLayout = $model->getFieldLayout();
     foreach ($fieldLayout->getFields() as $fieldLayoutField) {
         $field = $fieldLayoutField->getField();
         if ($model->{$field->handle} instanceof ElementCriteriaModel) {
             if ($field->type == 'Matrix') {
                 $blocks = array();
                 foreach ($model->{$field->handle}->find() as $matrixBlock) {
                     // Create Matrix Block
                     $newMatrixBlock = new MatrixBlockModel();
                     $newMatrixBlock->fieldId = $matrixBlock->fieldId;
                     $newMatrixBlock->typeId = $matrixBlock->typeId;
                     $newMatrixBlock->ownerId = null;
                     $newMatrixBlock->locale = $model->locale;
                     // Set content
                     $blockData = $this->_getAttributesForModel($matrixBlock);
                     $newMatrixBlock->setContentFromPost($blockData);
                     // Add block to Matrix Field
                     $blocks[] = $newMatrixBlock;
                 }
                 $attributes[$field->handle] = $blocks;
             } else {
                 $attributes[$field->handle] = $model->{$field->handle}->ids();
             }
         } else {
             if (isset($content[$field->handle])) {
                 $attributes[$field->handle] = $content[$field->handle];
             }
         }
     }
     return $attributes;
 }
 /**
  * @inheritDoc IElementType::populateElementModel()
  *
  * @param array $row
  *
  * @return array
  */
 public function populateElementModel($row)
 {
     return MatrixBlockModel::populateModel($row);
 }
 public function loadEntries()
 {
     $totalPosts = 0;
     $retVal = $totalPosts;
     /* REFERENCE MATERIALS */
     // Use SimpleXML to fetch an XML export of channel data from an ExpressionEngine site
     $categoriesXml = simplexml_load_file('http://40act.ee/export/categories');
     //echo 'XML loaded<br />';
     $tagSetId = 1;
     $sectionId = 0;
     // Visit settings for your Section and check the URL
     $typeId = 0;
     // Visit Entry Types for your Section and check the URL for the Entry Type
     $referenceUrlTypeId = 0;
     $categoryFieldId = 0;
     // Field in entry type for category relation
     $debug = true;
     $debugCategories = false;
     $debugReference = false;
     $debugSubjects = false;
     $debugHowTo = false;
     $debugStatute = false;
     $debugRules = false;
     $debugOtherRules = false;
     $debugNews = false;
     $save = true;
     $run_categories = false;
     $run_reference_materials = false;
     $run_subjects = false;
     $run_howto = false;
     $run_statute = false;
     $run_rules = false;
     $run_other_rules = false;
     $run_subjects_redline = false;
     $run_subjects_blueline = false;
     $run_subjects_orangeline = false;
     $run_howto_redline = false;
     $run_howto_greenline = false;
     $run_howto_orangeline = false;
     $run_statute_redline = false;
     $run_statute_greenline = false;
     $run_statute_blueline = false;
     $run_rules_redline = false;
     $run_rules_greenline = false;
     $run_rules_blueline = false;
     $run_other_rules_redline = false;
     $run_other_rules_greenline = false;
     $run_other_rules_blueline = false;
     $run_news = false;
     $run_reference_default_investment_advisers = false;
     if ($run_reference_default_investment_advisers) {
         $entries = craft()->elements->getCriteria(ElementType::Entry);
         $entries->section = 'referenceMaterials';
         //$entries->limit = 1;
         $existingEntries = $entries->find();
         foreach ($existingEntries as $existingEntry) {
             echo 'id: ' . $existingEntry->id . '<br />';
             $entryToSave = new EntryModel();
             $entryToSave = $existingEntry;
             // Setting these in case they're required to be set for saveEntry()
             $entryToSave->sectionId = 9;
             $entryToSave->typeId = 9;
             $entryToSave->authorId = 1;
             $entryToSave->enabled = true;
             $entryToSave->getContent()->title = $existingEntry->title;
             $entryToSave->getContent()->showInInvestmentAdvisersReference = 1;
             if (craft()->entries->saveEntry($entryToSave)) {
                 echo 'saved<br />';
             } else {
                 echo 'not saved<br />';
                 var_dump($entryToSave->getAllErrors());
                 //echo implode(', ', $entryToSave()->getAllErrors() );
                 // RESTORE REQUIRED STATUS on Document ID, Reference Item Name, Files
             }
         }
     }
     if ($run_categories) {
         // Let's import all the Reference Material categories FIRST, and capture their legacy ID
         foreach ($categoriesXml->reference_categories[0]->category as $importCategory) {
             //var_dump($importCategory);
             if ($debugCategories) {
                 // Imported/feed category details display
                 echo 'id: ' . $importCategory->id . '<br />';
                 echo 'parent id: ' . $importCategory->parent_id . '<br />';
                 echo 'url title/slug: ' . $importCategory->category_url_title . '<br />';
                 echo $importCategory->name . '<br />';
             }
             // Let's see if this category exists or not...
             $categories = craft()->elements->getCriteria(ElementType::Category);
             $categories->groupId = 1;
             $categories->legacyId = $importCategory->id;
             $categories->limit = 1;
             $category = $categories->find();
             $categoryToSave = new CategoryModel();
             $categoryToSave->groupId = 1;
             $categoryToSave->enabled = true;
             // Did we find a match?
             if (count($category) == 1) {
                 foreach ($category as $existingCategory) {
                     // Use the existing category instead of saving a new category
                     $categoryToSave = $existingCategory;
                     if ($debugCategories) {
                         'We have an existing category to update.<br />';
                     }
                 }
             }
             // If parent_id == 0, omit setting parent
             if ($importCategory->parent_id != 0) {
                 if ($debugCategories) {
                     echo 'We have a parent category!<br />';
                 }
                 $parentCategories = craft()->elements->getCriteria(ElementType::Category);
                 $parentCategories->groupId = 1;
                 $parentCategories->legacyId = $importCategory->parent_id;
                 $parentCategories->limit = 1;
                 $parentCategory = $parentCategories->find();
                 // We are assuming that the source feed outputs the nested categories in order, so the
                 // parent category should already exist. I.e., we don't need to create it if not found.
                 if (count($parentCategory) == 1) {
                     foreach ($parentCategory as $existingParentCategory) {
                         if ($debugCategories) {
                             echo 'Craft parent ID: ' . $existingParentCategory->id . '<br />';
                         }
                         $categoryToSave->newParentId = $existingParentCategory->id;
                         $categoryToSave->setParent($existingParentCategory);
                     }
                 }
             }
             $categoryToSave->slug = $importCategory->category_url_title;
             $categoryToSave->getContent()->title = $importCategory->name;
             $categoryToSave->getContent()->legacyId = $importCategory->id;
             // This will automatically save the category if it does not already exist
             // We've either set the attributes of a new categories, or updated the attributes of a found category
             craft()->categories->saveCategory($categoryToSave);
             //$saveCategory = true;
             if ($debugCategories) {
                 echo '<br />';
             }
         }
     }
     // Then we can just synch each Reference Material entry's applied categories by ID, without dealing with parent categories and matches in this sitepoint
     if ($run_reference_materials) {
         // Use SimpleXML to fetch an XML export of channel data from an ExpressionEngine site
         $referenceMaterialsXml = simplexml_load_file('http://40act.craft.dev:8888/reference-materials.xml');
         // Replace with Reference Materials feed
         $sectionId = 9;
         // Visit settings for your Section and check the URL
         $typeId = 9;
         // Visit Entry Types for your Section and check the URL for the Entry Type
         $referenceUrlTypeId = 10;
         $categoryFieldId = 0;
         // Field in entry type for category relation
         foreach ($referenceMaterialsXml->reference_materials[0]->item as $importItem) {
             // Note that the URL field has not been used on the EE site, so we're not going to import the URL entry type (10)
             $referenceItem = array();
             $referenceItem['entry_id'] = (string) $importItem->id;
             // x $entryUrlTitle
             $referenceItem['slug'] = (string) $importItem->slug;
             // x $entryDate
             $referenceItem['entryDate'] = $importItem->entry_date;
             // x $entryStatus
             $referenceItem['entryStatus'] = (string) $importItem->status;
             // x $entryTitle
             $referenceItem['entryTitle'] = (string) $importItem->title;
             // x $entryDocumentId
             $referenceItem['entryDocumentId'] = (string) $importItem->document_id;
             // x $entryItemName
             $referenceItem['entryItemName'] = (string) $importItem->item_name;
             // x $entryPubDate
             $referenceItem['pubDate'] = $importItem->pub_date;
             // x $entryFiles – Need to loop through and look up assets
             //               Also need to load asset fields – Title, caption, others?
             $filesArray = array();
             $assetsToSave = array();
             foreach ($importItem->files->file as $referenceFile) {
                 $assets = craft()->elements->getCriteria(ElementType::Asset);
                 $assets->filename = $referenceFile->filename;
                 $assets->limit = 1;
                 $assetId = 0;
                 foreach ($assets as $assetMatched) {
                     $assetId = $assetMatched->id;
                 }
                 $filesArray[] = array($referenceFile->title, $referenceFile->filename, $assetId);
                 $assetsToSave[] = $assetId;
             }
             $saveAssets = false;
             if (count($assetsToSave) > 0) {
                 $saveAssets = true;
             }
             $referenceItem['entryFiles'] = $filesArray;
             // x $entrySource – Simply load text value into plaintext field
             $referenceItem['entrySource'] = $importItem->source;
             // x $entryDescription – Rich text
             $referenceItem['entryDescription'] = $importItem->description;
             // x $entryContent – Rich text
             $referenceItem['entryContent'] = $importItem->content;
             // x $entryCategories – For each category's legacy ID, create/save a category link to an already imported entry based on legacy ID
             $categoriesLegacyArray = array();
             $categoriesToSave = array();
             foreach ($importItem->categories->category_id as $categoryId) {
                 $categoriesLegacyArray[] = $categoryId;
                 $categories = craft()->elements->getCriteria(ElementType::Category);
                 $categories->groupId = 1;
                 $categories->legacyId = (string) $categoryId;
                 $categories->limit = 1;
                 $category = $categories->first();
                 // There should always be a match
                 if (count($category) > 0) {
                     $categoriesToSave[] = $category->id;
                 }
             }
             $referenceItem['categoryLegacyIds'] = $categoriesLegacyArray;
             $referenceItem['categoryCraftIds'] = $categoriesToSave;
             // But we don't want to set an empty array in our entry save.
             $saveCategory = false;
             if (count($categoriesToSave) > 0) {
                 $saveCategory = true;
             }
             // x $entryTags
             $tagsArray = array();
             $tagsToSave = array();
             foreach ($importItem->tags->tag as $tag) {
                 // Need to look up / create tag if it does not exist
                 $tagToFind = craft()->elements->getCriteria(ElementType::Tag);
                 $tagToFind->title = (string) $tag;
                 $tagToFind->limit = 1;
                 $tagToFind->groupId = $tagSetId;
                 $existingTag = $tagToFind->find();
                 if (count($existingTag) == 0) {
                     $tagToSave = new TagModel();
                     $tagToSave->groupId = $tagSetId;
                     $tagToSave->getContent()->setAttributes(array('title' => (string) $tag));
                     craft()->tags->saveTag($tagToSave);
                 }
                 $tagToSave = $tagToFind->first();
                 $tagsArray[] = array($tag, $tagToSave->id);
                 $tagsToSave[] = $tagToSave->id;
             }
             $referenceItem['tags'] = $tagsToSave;
             $saveTags = false;
             if (count($tagsToSave) > 0) {
                 $saveTags = true;
             }
             if ($debugReference) {
                 echo '<br />***<br /><br />';
                 foreach ($referenceItem as $key => $value) {
                     echo $key . ': ';
                     if (is_array($referenceItem[$key])) {
                         echo '<br />';
                         foreach ($referenceItem[$key] as $arrayItem) {
                             if (is_array($arrayItem)) {
                                 foreach ($arrayItem as $subArrayItem) {
                                     echo '&nbsp;&nbsp;&nbsp;&nbsp;' . $subArrayItem . '<br />';
                                 }
                             } else {
                                 echo '&nbsp;&nbsp;&nbsp;&nbsp;' . $arrayItem . '<br />';
                             }
                         }
                     } else {
                         echo $referenceItem[$key] . '<br />';
                     }
                 }
             }
             // Default page protected to Yes
             // Save the entry
             if (!$save) {
                 continue;
             }
             $entry = craft()->elements->getCriteria(ElementType::Entry);
             $entry->section = 'referenceMaterials';
             $entry->limit = 1;
             $entry->slug = (string) $referenceItem['slug'];
             $existingEntry = $entry->find();
             $entryToSave = new EntryModel();
             if (count($existingEntry > 0)) {
                 foreach ($existingEntry as $existingEntry) {
                     $entryToSave = $existingEntry;
                 }
             }
             $entryToSave->sectionId = $sectionId;
             $entryToSave->typeId = $typeId;
             $entryToSave->authorId = 1;
             $entryToSave->enabled = true;
             if ($referenceItem['entryStatus'] == 'closed') {
                 $entryToSave->enabled = false;
             }
             $entryToSave->postDate = date('Y-m-d h:m:s', (double) $referenceItem['entryDate']);
             $entryToSave->slug = $referenceItem['slug'];
             $entryToSave->getContent()->setAttributes(array('title' => $referenceItem['entryTitle'], 'referenceItemDocumentId' => $referenceItem['entryDocumentId'], 'referenceItemName' => $referenceItem['entryItemName'], 'referenceItemSource' => $referenceItem['entrySource'], 'referenceItemPubDate' => date('Y-m-d h:m:s', (double) $referenceItem['pubDate']), 'referenceItemDescription' => $referenceItem['entryDescription'], 'referenceItemContent' => $referenceItem['entryContent'], 'isProtected' => 1, 'legacyId' => $referenceItem['entry_id']));
             if ($saveAssets) {
                 $entryToSave->getContent()->referenceItemFiles = $assetsToSave;
             }
             if ($saveCategory) {
                 $entryToSave->getContent()->referenceItemCategories = $categoriesToSave;
             }
             if ($saveTags) {
                 $entryToSave->getContent()->referenceItemTags = $tagsToSave;
             }
             if (craft()->entries->saveEntry($entryToSave)) {
                 $totalPosts++;
                 $retVal = $totalPosts;
                 continue;
             } else {
                 $retVal = false;
             }
         }
     }
     if ($run_subjects) {
         // Use SimpleXML to fetch an XML export of channel data from an ExpressionEngine site
         $subjectsXml = simplexml_load_file('http://40act.craft.dev:8888/subjects.xml');
         $sectionId = 3;
         // Visit settings for your Section and check the URL
         $typeId = 3;
         // Visit Entry Types for your Section and check the URL for the Entry Type
         foreach ($subjectsXml->subjects[0]->item as $importItem) {
             $subjectItem = array();
             // Need to load as legacy ID for parent ID lookups, re-import (though reference re-import was based on slug)
             $subjectItem['entry_id'] = (string) $importItem->id;
             // $entryUrlTitle
             $subjectItem['slug'] = (string) $importItem->slug;
             // $entryDate
             $subjectItem['entryDate'] = $importItem->entry_date;
             // $entryStatus
             $subjectItem['entryStatus'] = (string) $importItem->status;
             // $entryTitle
             $subjectItem['entryTitle'] = (string) $importItem->title;
             // $entryContent – Rich text
             $subjectItem['entryContent'] = $importItem->content;
             // tags
             $tagsToSave = array();
             foreach ($importItem->tags->tag as $tag) {
                 // Need to look up / create tag if it does not exist
                 $tagToFind = craft()->elements->getCriteria(ElementType::Tag);
                 $tagToFind->title = (string) $tag;
                 $tagToFind->limit = 1;
                 $tagToFind->groupId = $tagSetId;
                 $existingTag = $tagToFind->find();
                 if (count($existingTag) == 0) {
                     $tagToSave = new TagModel();
                     $tagToSave->groupId = $tagSetId;
                     $tagToSave->getContent()->setAttributes(array('title' => (string) $tag));
                     craft()->tags->saveTag($tagToSave);
                 }
                 $tagToSave = $tagToFind->first();
                 $tagsArray[] = array($tag, $tagToSave->id);
                 $tagsToSave[] = $tagToSave->id;
             }
             $subjectItem['tags'] = $tagsToSave;
             $saveTags = false;
             if (count($tagsToSave) > 0) {
                 $saveTags = true;
             }
             if ($debugSubjects) {
                 echo '<br />***<br /><br />';
                 foreach ($subjectItem as $key => $value) {
                     echo $key . ': ';
                     if (is_array($subjectItem[$key])) {
                         echo '<br />';
                         foreach ($subjectItem[$key] as $arrayItem) {
                             if (is_array($arrayItem)) {
                                 foreach ($arrayItem as $subArrayItem) {
                                     echo '&nbsp;&nbsp;&nbsp;&nbsp;' . $subArrayItem . '<br />';
                                 }
                             } else {
                                 echo '&nbsp;&nbsp;&nbsp;&nbsp;' . $arrayItem . '<br />';
                             }
                         }
                     } else {
                         echo $subjectItem[$key] . '<br />';
                     }
                 }
             }
             // Save the entry
             if (!$save) {
                 continue;
             }
             $entry = craft()->elements->getCriteria(ElementType::Entry);
             $entry->section = 'investmentAdvisersSubjects';
             $entry->limit = 1;
             $entry->slug = (string) $subjectItem['slug'];
             $existingEntry = $entry->find();
             $entryToSave = new EntryModel();
             if (count($existingEntry > 0)) {
                 foreach ($existingEntry as $existingEntry) {
                     $entryToSave = $existingEntry;
                 }
             }
             // If parent_id == 0, omit setting parent
             if ($importItem->parent_id != 276) {
                 if ($debugSubjects) {
                     echo 'We have a parent entry!<br />';
                 }
                 $parentEntries = craft()->elements->getCriteria(ElementType::Entry);
                 $parentEntries->section = 'investmentAdvisersSubjects';
                 $parentEntries->legacyId = $importItem->parent_id;
                 $parentEntries->limit = 1;
                 $parentEntry = $parentEntries->find();
                 // We are assuming that the source feed outputs the nested categories in order, so the
                 // parent category should already exist. I.e., we don't need to create it if not found.
                 if (count($parentEntry) == 1) {
                     foreach ($parentEntry as $existingParentEntry) {
                         if ($debugSubjects) {
                             echo 'Craft parent ID: ' . $existingParentEntry->id . '<br />';
                         }
                         $entryToSave->parentId = $existingParentEntry->id;
                         $entryToSave->setParent($existingParentEntry);
                     }
                 }
             }
             $entryToSave->sectionId = $sectionId;
             $entryToSave->typeId = $typeId;
             $entryToSave->authorId = 1;
             $entryToSave->enabled = true;
             if ($subjectItem['entryStatus'] == 'closed') {
                 $entryToSave->enabled = false;
             }
             $entryToSave->postDate = date('Y-m-d h:m:s', (double) $subjectItem['entryDate']);
             $entryToSave->slug = $subjectItem['slug'];
             $entryToSave->getContent()->setAttributes(array('title' => $subjectItem['entryTitle'], 'legacyId' => $subjectItem['entry_id'], 'pageContent' => $subjectItem['entryContent'], 'isProtected' => 1));
             if ($saveTags) {
                 $entryToSave->getContent()->pageTags = $tagsToSave;
             }
             if (craft()->entries->saveEntry($entryToSave)) {
                 $totalPosts++;
                 $retVal = $totalPosts;
                 continue;
             } else {
                 $retVal = false;
             }
         }
         if ($run_subjects_redline) {
             foreach ($subjectsXml->subjects[0]->item as $importItem) {
                 $entry = craft()->elements->getCriteria(ElementType::Entry);
                 $entry->section = 'investmentAdvisersSubjects';
                 $entry->limit = 1;
                 $entry->legacyId = (string) $importItem->id;
                 //$entry->slug = $importItem->slug;
                 /*$entry->getContent()->setAttributes(array(
                       'legacyId' => (string)$importItem->id,
                   ));*/
                 echo '<br /><br />*****<br />';
                 $entries = $entry->find();
                 if (count($entries) == 0) {
                     echo 'Treatise entry not found! / EE ID: ' . $importItem->id . '<br />';
                     continue;
                 }
                 echo (string) $importItem->id . '<br />';
                 $existingEntry = $entry->first();
                 echo 'Matrix: Entry ID: ' . $existingEntry->id . '<br />';
                 foreach ($importItem->redline->redline_item as $item) {
                     $referenceEntry = craft()->elements->getCriteria(ElementType::Entry);
                     $referenceEntry->limit = 1;
                     $referenceEntry->legacyId = (string) $item->reference_item->reference_item_legacy_id;
                     /*$referenceEntry->getContent()->setAttributes(array(
                           'legacyId' => (string)$item->reference_item->reference_item_legacy_id,
                       ));*/
                     $entries = $referenceEntry->find();
                     if (count($entries) == 0) {
                         echo 'Reference Item entry not found! / EE ID: ' . (string) $item->reference_item->reference_item_legacy_id . '<br />';
                         continue;
                     }
                     $existingReferenceEntry = $referenceEntry->first();
                     echo 'Matrix: Reference Entry ID: ' . $existingReferenceEntry->id . '<br />';
                     $block = new MatrixBlockModel();
                     $block->fieldId = 48;
                     $block->ownerId = $existingEntry->id;
                     $block->typeId = 1;
                     $block->getContent()->setAttributes(array('entry' => [$existingReferenceEntry->id], 'annotation' => (string) $item->annotation));
                     craft()->matrix->saveBlock($block);
                 }
             }
         }
         if ($run_subjects_blueline) {
             foreach ($subjectsXml->subjects[0]->item as $importItem) {
                 $entry = craft()->elements->getCriteria(ElementType::Entry);
                 $entry->section = 'investmentAdvisersSubjects';
                 $entry->limit = 1;
                 $entry->legacyId = (string) $importItem->id;
                 echo '<br /><br />*****<br />';
                 $entries = $entry->find();
                 if (count($entries) == 0) {
                     echo 'Treatise entry not found! / EE ID: ' . $importItem->id . '<br />';
                     continue;
                 }
                 echo (string) $importItem->id . '<br />';
                 $existingEntry = $entry->first();
                 echo 'Matrix: Entry ID: ' . $existingEntry->id . '<br />';
                 foreach ($importItem->blueline->blueline_item as $item) {
                     $howtoEntry = craft()->elements->getCriteria(ElementType::Entry);
                     $howtoEntry->limit = 1;
                     $howtoEntry->legacyId = (string) $item->legacy_id;
                     $entries = $howtoEntry->find();
                     if (count($entries) == 0) {
                         echo 'How-To entry not found! / EE ID: ' . (string) $item->legacy_id . '<br />';
                         continue;
                     }
                     $existingHowToEntry = $howtoEntry->first();
                     echo 'Matrix: How-To Entry ID: ' . $existingHowToEntry->id . '<br />';
                     $block = new MatrixBlockModel();
                     $block->fieldId = 54;
                     $block->ownerId = $existingEntry->id;
                     $block->typeId = 3;
                     $block->getContent()->setAttributes(array('entry' => [$existingHowToEntry->id], 'annotation' => (string) $item->annotation));
                     craft()->matrix->saveBlock($block);
                 }
             }
         }
         if ($run_subjects_orangeline) {
             foreach ($subjectsXml->subjects[0]->item as $importItem) {
                 $entry = craft()->elements->getCriteria(ElementType::Entry);
                 $entry->section = 'investmentAdvisersSubjects';
                 $entry->limit = 1;
                 $entry->legacyId = (string) $importItem->id;
                 echo '<br /><br />*****<br />';
                 $entries = $entry->find();
                 if (count($entries) == 0) {
                     echo 'Treatise entry not found! / EE ID: ' . $importItem->id . '<br />';
                     continue;
                 }
                 echo (string) $importItem->id . '<br />';
                 $existingEntry = $entry->first();
                 echo 'Matrix: Entry ID: ' . $existingEntry->id . '<br />';
                 foreach ($importItem->orangeline->orangeline_item as $item) {
                     $lawsrulesEntry = craft()->elements->getCriteria(ElementType::Entry);
                     $lawsrulesEntry->limit = 1;
                     $lawsrulesEntry->legacyId = (string) $item->legacy_id;
                     $entries = $lawsrulesEntry->find();
                     if (count($entries) == 0) {
                         echo 'Laws & Rules entry not found! / EE ID: ' . (string) $item->legacy_id . '<br />';
                         continue;
                     }
                     $existingLawsRulesEntry = $lawsrulesEntry->first();
                     echo 'Matrix: Laws & Rules Entry ID: ' . $existingLawsRulesEntry->id . '<br />';
                     $block = new MatrixBlockModel();
                     $block->fieldId = 57;
                     $block->ownerId = $existingEntry->id;
                     $block->typeId = 4;
                     $block->getContent()->setAttributes(array('entry' => [$existingLawsRulesEntry->id], 'annotation' => (string) $item->annotation));
                     craft()->matrix->saveBlock($block);
                 }
             }
         }
     }
     if ($run_howto) {
         // Use SimpleXML to fetch an XML export of channel data from an ExpressionEngine site
         $howtoXml = simplexml_load_file('http://40act.craft.dev:8888/how-to.xml');
         $sectionId = 4;
         // Visit settings for your Section and check the URL
         $typeId = 4;
         // Visit Entry Types for your Section and check the URL for the Entry Type
         foreach ($howtoXml->entries[0]->item as $importItem) {
             $howtoItem = array();
             // Need to load as legacy ID for parent ID lookups, re-import (though reference re-import was based on slug)
             $howtoItem['entry_id'] = (string) $importItem->id;
             // $entryUrlTitle
             $howtoItem['slug'] = (string) $importItem->slug;
             // $entryDate
             $howtoItem['entryDate'] = $importItem->entry_date;
             // $entryStatus
             $howtoItem['entryStatus'] = (string) $importItem->status;
             // $entryTitle
             $howtoItem['entryTitle'] = (string) $importItem->title;
             // $entryContent – Rich text
             $howtoItem['entryContent'] = $importItem->content;
             // tags
             $tagsToSave = array();
             foreach ($importItem->tags->tag as $tag) {
                 // Need to look up / create tag if it does not exist
                 $tagToFind = craft()->elements->getCriteria(ElementType::Tag);
                 $tagToFind->title = (string) $tag;
                 $tagToFind->limit = 1;
                 $tagToFind->groupId = $tagSetId;
                 $existingTag = $tagToFind->find();
                 if (count($existingTag) == 0) {
                     $tagToSave = new TagModel();
                     $tagToSave->groupId = $tagSetId;
                     $tagToSave->getContent()->setAttributes(array('title' => (string) $tag));
                     craft()->tags->saveTag($tagToSave);
                 }
                 $tagToSave = $tagToFind->first();
                 $tagsArray[] = array($tag, $tagToSave->id);
                 $tagsToSave[] = $tagToSave->id;
             }
             $howtoItem['tags'] = $tagsToSave;
             $saveTags = false;
             if (count($tagsToSave) > 0) {
                 $saveTags = true;
             }
             if ($debugHowTo) {
                 echo '<br />***<br /><br />';
                 foreach ($howtoItem as $key => $value) {
                     echo $key . ': ';
                     if (is_array($howtoItem[$key])) {
                         echo '<br />';
                         foreach ($howtoItem[$key] as $arrayItem) {
                             if (is_array($arrayItem)) {
                                 foreach ($arrayItem as $subArrayItem) {
                                     echo '&nbsp;&nbsp;&nbsp;&nbsp;' . $subArrayItem . '<br />';
                                 }
                             } else {
                                 echo '&nbsp;&nbsp;&nbsp;&nbsp;' . $arrayItem . '<br />';
                             }
                         }
                     } else {
                         echo $howtoItem[$key] . '<br />';
                     }
                 }
             }
             // Save the entry
             if (!$save) {
                 continue;
             }
             $entry = craft()->elements->getCriteria(ElementType::Entry);
             $entry->section = 'investmentAdvisersHowTo';
             $entry->limit = 1;
             $entry->slug = (string) $howtoItem['slug'];
             $existingEntry = $entry->find();
             $entryToSave = new EntryModel();
             if (count($existingEntry > 0)) {
                 foreach ($existingEntry as $existingEntry) {
                     $entryToSave = $existingEntry;
                 }
             }
             // If parent_id == 0, omit setting parent
             if ($importItem->parent_id != 277) {
                 if ($debugHowTo) {
                     echo 'We have a parent entry!<br />';
                 }
                 $parentEntries = craft()->elements->getCriteria(ElementType::Entry);
                 $parentEntries->section = 'investmentAdvisersHowTo';
                 $parentEntries->legacyId = $importItem->parent_id;
                 $parentEntries->limit = 1;
                 $parentEntry = $parentEntries->find();
                 // We are assuming that the source feed outputs the nested categories in order, so the
                 // parent category should already exist. I.e., we don't need to create it if not found.
                 if (count($parentEntry) == 1) {
                     foreach ($parentEntry as $existingParentEntry) {
                         if ($debugHowTo) {
                             echo 'Craft parent ID: ' . $existingParentEntry->id . '<br />';
                         }
                         $entryToSave->parentId = $existingParentEntry->id;
                         $entryToSave->setParent($existingParentEntry);
                     }
                 }
             }
             $entryToSave->sectionId = $sectionId;
             $entryToSave->typeId = $typeId;
             $entryToSave->authorId = 1;
             $entryToSave->enabled = true;
             if ($howtoItem['entryStatus'] == 'closed') {
                 $entryToSave->enabled = false;
             }
             $entryToSave->postDate = date('Y-m-d h:m:s', (double) $howtoItem['entryDate']);
             $entryToSave->slug = $howtoItem['slug'];
             $entryToSave->getContent()->setAttributes(array('title' => $howtoItem['entryTitle'], 'legacyId' => $howtoItem['entry_id'], 'pageContent' => $howtoItem['entryContent'], 'isProtected' => 1));
             if ($saveTags) {
                 $entryToSave->getContent()->pageTags = $tagsToSave;
             }
             if (craft()->entries->saveEntry($entryToSave)) {
                 $totalPosts++;
                 $retVal = $totalPosts;
                 continue;
             } else {
                 $retVal = false;
             }
         }
         if ($run_howto_redline) {
             foreach ($howtoXml->entries[0]->item as $importItem) {
                 $entry = craft()->elements->getCriteria(ElementType::Entry);
                 $entry->section = 'investmentAdvisersHowTo';
                 $entry->limit = 1;
                 $entry->legacyId = (string) $importItem->id;
                 //$entry->slug = $importItem->slug;
                 /*$entry->getContent()->setAttributes(array(
                       'legacyId' => (string)$importItem->id,
                   ));*/
                 echo '<br /><br />*****<br />';
                 $entries = $entry->find();
                 if (count($entries) == 0) {
                     echo 'How-To entry not found! / EE ID: ' . $importItem->id . '<br />';
                     continue;
                 }
                 echo (string) $importItem->id . '<br />';
                 $existingEntry = $entry->first();
                 echo 'Matrix: Entry ID: ' . $existingEntry->id . '<br />';
                 foreach ($importItem->redline->redline_item as $item) {
                     $referenceEntry = craft()->elements->getCriteria(ElementType::Entry);
                     $referenceEntry->limit = 1;
                     $referenceEntry->legacyId = (string) $item->reference_item->reference_item_legacy_id;
                     /*$referenceEntry->getContent()->setAttributes(array(
                           'legacyId' => (string)$item->reference_item->reference_item_legacy_id,
                       ));*/
                     $entries = $referenceEntry->find();
                     if (count($entries) == 0) {
                         echo 'Reference Item entry not found! / EE ID: ' . (string) $item->reference_item->reference_item_legacy_id . '<br />';
                         continue;
                     }
                     $existingReferenceEntry = $referenceEntry->first();
                     echo 'Matrix: Reference Entry ID: ' . $existingReferenceEntry->id . '<br />';
                     $block = new MatrixBlockModel();
                     $block->fieldId = 48;
                     $block->ownerId = $existingEntry->id;
                     $block->typeId = 1;
                     $block->getContent()->setAttributes(array('entry' => [$existingReferenceEntry->id], 'annotation' => (string) $item->annotation));
                     craft()->matrix->saveBlock($block);
                 }
             }
         }
         if ($run_howto_greenline) {
             foreach ($howtoXml->entries[0]->item as $importItem) {
                 $entry = craft()->elements->getCriteria(ElementType::Entry);
                 $entry->section = 'investmentAdvisersHowTo';
                 $entry->limit = 1;
                 $entry->legacyId = (string) $importItem->id;
                 echo '<br /><br />*****<br />';
                 $entries = $entry->find();
                 if (count($entries) == 0) {
                     echo 'How-To entry not found! / EE ID: ' . $importItem->id . '<br />';
                     continue;
                 }
                 echo (string) $importItem->id . '<br />';
                 $existingEntry = $entry->first();
                 echo 'Matrix: Entry ID: ' . $existingEntry->id . '<br />';
                 foreach ($importItem->greenline->greenline_item as $item) {
                     $subjectsEntry = craft()->elements->getCriteria(ElementType::Entry);
                     $subjectsEntry->limit = 1;
                     $subjectsEntry->legacyId = (string) $item->legacy_id;
                     $entries = $subjectsEntry->find();
                     if (count($entries) == 0) {
                         echo 'Treatise entry not found! / EE ID: ' . (string) $item->legacy_id . '<br />';
                         continue;
                     }
                     $existingSubjectsEntry = $subjectsEntry->first();
                     echo 'Matrix: Treatise Entry ID: ' . $existingSubjectsEntry->id . '<br />';
                     $block = new MatrixBlockModel();
                     $block->fieldId = 51;
                     $block->ownerId = $existingEntry->id;
                     $block->typeId = 2;
                     $block->getContent()->setAttributes(array('entry' => [$existingSubjectsEntry->id], 'annotation' => (string) $item->annotation));
                     craft()->matrix->saveBlock($block);
                 }
             }
         }
         if ($run_howto_orangeline) {
             foreach ($howtoXml->entries[0]->item as $importItem) {
                 $entry = craft()->elements->getCriteria(ElementType::Entry);
                 $entry->section = 'investmentAdvisersHowTo';
                 $entry->limit = 1;
                 $entry->legacyId = (string) $importItem->id;
                 echo '<br /><br />*****<br />';
                 $entries = $entry->find();
                 if (count($entries) == 0) {
                     echo 'How-To entry not found! / EE ID: ' . $importItem->id . '<br />';
                     continue;
                 }
                 echo (string) $importItem->id . '<br />';
                 $existingEntry = $entry->first();
                 echo 'Matrix: Entry ID: ' . $existingEntry->id . '<br />';
                 foreach ($importItem->orangeline->orangeline_item as $item) {
                     $lawsrulesEntry = craft()->elements->getCriteria(ElementType::Entry);
                     $lawsrulesEntry->limit = 1;
                     $lawsrulesEntry->legacyId = (string) $item->legacy_id;
                     $entries = $lawsrulesEntry->find();
                     if (count($entries) == 0) {
                         echo 'Laws & Rules entry not found! / EE ID: ' . (string) $item->legacy_id . '<br />';
                         continue;
                     }
                     $existingLawsRulesEntry = $lawsrulesEntry->first();
                     echo 'Matrix: Laws & Rules Entry ID: ' . $existingLawsRulesEntry->id . '<br />';
                     $block = new MatrixBlockModel();
                     $block->fieldId = 57;
                     $block->ownerId = $existingEntry->id;
                     $block->typeId = 4;
                     $block->getContent()->setAttributes(array('entry' => [$existingLawsRulesEntry->id], 'annotation' => (string) $item->annotation));
                     craft()->matrix->saveBlock($block);
                 }
             }
         }
     }
     if ($run_statute) {
         // Use SimpleXML to fetch an XML export of channel data from an ExpressionEngine site
         $statuteXml = simplexml_load_file('http://40act.craft.dev:8888/statute.xml');
         $sectionId = 6;
         // Visit settings for your Section and check the URL
         $typeId = 6;
         // Visit Entry Types for your Section and check the URL for the Entry Type
         foreach ($statuteXml->entries[0]->item as $importItem) {
             $statuteItem = array();
             // Need to load as legacy ID for parent ID lookups, re-import (though reference re-import was based on slug)
             $statuteItem['entry_id'] = (string) $importItem->id;
             // $entryUrlTitle
             $statuteItem['slug'] = (string) $importItem->slug;
             // $entryDate
             $statuteItem['entryDate'] = $importItem->entry_date;
             // $entryStatus
             $statuteItem['entryStatus'] = (string) $importItem->status;
             // $entryTitle
             $statuteItem['entryTitle'] = (string) $importItem->title;
             // $entryContent – Rich text
             $statuteItem['entryContent'] = $importItem->content;
             // tags
             $tagsToSave = array();
             foreach ($importItem->tags->tag as $tag) {
                 // Need to look up / create tag if it does not exist
                 $tagToFind = craft()->elements->getCriteria(ElementType::Tag);
                 $tagToFind->title = (string) $tag;
                 $tagToFind->limit = 1;
                 $tagToFind->groupId = $tagSetId;
                 $existingTag = $tagToFind->find();
                 if (count($existingTag) == 0) {
                     $tagToSave = new TagModel();
                     $tagToSave->groupId = $tagSetId;
                     $tagToSave->getContent()->setAttributes(array('title' => (string) $tag));
                     craft()->tags->saveTag($tagToSave);
                 }
                 $tagToSave = $tagToFind->first();
                 $tagsArray[] = array($tag, $tagToSave->id);
                 $tagsToSave[] = $tagToSave->id;
             }
             $statuteItem['tags'] = $tagsToSave;
             $saveTags = false;
             if (count($tagsToSave) > 0) {
                 $saveTags = true;
             }
             if ($debugStatute) {
                 echo '<br />***<br /><br />';
                 foreach ($statuteItem as $key => $value) {
                     echo $key . ': ';
                     if (is_array($statuteItem[$key])) {
                         echo '<br />';
                         foreach ($statuteItem[$key] as $arrayItem) {
                             if (is_array($arrayItem)) {
                                 foreach ($arrayItem as $subArrayItem) {
                                     echo '&nbsp;&nbsp;&nbsp;&nbsp;' . $subArrayItem . '<br />';
                                 }
                             } else {
                                 echo '&nbsp;&nbsp;&nbsp;&nbsp;' . $arrayItem . '<br />';
                             }
                         }
                     } else {
                         echo $statuteItem[$key] . '<br />';
                     }
                 }
             }
             // Save the entry
             if (!$save) {
                 continue;
             }
             $entry = craft()->elements->getCriteria(ElementType::Entry);
             $entry->section = 'investmentAdvisersActOf1940Statute';
             $entry->limit = 1;
             $entry->slug = (string) $statuteItem['slug'];
             $existingEntry = $entry->find();
             $entryToSave = new EntryModel();
             if (count($existingEntry > 0)) {
                 foreach ($existingEntry as $existingEntry) {
                     $entryToSave = $existingEntry;
                 }
             }
             // If parent_id == 0, omit setting parent
             if ($importItem->parent_id != 399) {
                 if ($debugStatute) {
                     echo 'We have a parent entry!<br />';
                 }
                 $parentEntries = craft()->elements->getCriteria(ElementType::Entry);
                 $parentEntries->section = 'investmentAdvisersActOf1940Statute';
                 $parentEntries->legacyId = $importItem->parent_id;
                 $parentEntries->limit = 1;
                 $parentEntry = $parentEntries->find();
                 // We are assuming that the source feed outputs the nested categories in order, so the
                 // parent category should already exist. I.e., we don't need to create it if not found.
                 if (count($parentEntry) == 1) {
                     foreach ($parentEntry as $existingParentEntry) {
                         if ($debugStatute) {
                             echo 'Craft parent ID: ' . $existingParentEntry->id . '<br />';
                         }
                         $entryToSave->parentId = $existingParentEntry->id;
                         $entryToSave->setParent($existingParentEntry);
                     }
                 }
             }
             $entryToSave->sectionId = $sectionId;
             $entryToSave->typeId = $typeId;
             $entryToSave->authorId = 1;
             $entryToSave->enabled = true;
             if ($statuteItem['entryStatus'] == 'closed') {
                 $entryToSave->enabled = false;
             }
             $entryToSave->postDate = date('Y-m-d h:m:s', (double) $statuteItem['entryDate']);
             $entryToSave->slug = $statuteItem['slug'];
             $entryToSave->getContent()->setAttributes(array('title' => $statuteItem['entryTitle'], 'legacyId' => $statuteItem['entry_id'], 'pageContent' => $statuteItem['entryContent'], 'isProtected' => 0));
             if ($saveTags) {
                 $entryToSave->getContent()->pageTags = $tagsToSave;
             }
             if (craft()->entries->saveEntry($entryToSave)) {
                 $totalPosts++;
                 $retVal = $totalPosts;
                 continue;
             } else {
                 $retVal = false;
             }
         }
         if ($run_statute_redline) {
             foreach ($statuteXml->entries[0]->item as $importItem) {
                 $entry = craft()->elements->getCriteria(ElementType::Entry);
                 $entry->section = 'investmentAdvisersActOf1940Statute';
                 $entry->limit = 1;
                 $entry->legacyId = (string) $importItem->id;
                 //$entry->slug = $importItem->slug;
                 /*$entry->getContent()->setAttributes(array(
                       'legacyId' => (string)$importItem->id,
                   ));*/
                 echo '<br /><br />*****<br />';
                 $entries = $entry->find();
                 if (count($entries) == 0) {
                     echo 'Statute entry not found! / EE ID: ' . $importItem->id . '<br />';
                     continue;
                 }
                 echo (string) $importItem->id . '<br />';
                 $existingEntry = $entry->first();
                 echo 'Matrix: Entry ID: ' . $existingEntry->id . '<br />';
                 foreach ($importItem->redline->redline_item as $item) {
                     $referenceEntry = craft()->elements->getCriteria(ElementType::Entry);
                     $referenceEntry->limit = 1;
                     $referenceEntry->legacyId = (string) $item->reference_item->reference_item_legacy_id;
                     /*$referenceEntry->getContent()->setAttributes(array(
                           'legacyId' => (string)$item->reference_item->reference_item_legacy_id,
                       ));*/
                     $entries = $referenceEntry->find();
                     if (count($entries) == 0) {
                         echo 'Reference Item entry not found! / EE ID: ' . (string) $item->reference_item->reference_item_legacy_id . '<br />';
                         continue;
                     }
                     $existingReferenceEntry = $referenceEntry->first();
                     echo 'Matrix: Reference Entry ID: ' . $existingReferenceEntry->id . '<br />';
                     $block = new MatrixBlockModel();
                     $block->fieldId = 48;
                     $block->ownerId = $existingEntry->id;
                     $block->typeId = 1;
                     $block->getContent()->setAttributes(array('entry' => [$existingReferenceEntry->id], 'annotation' => (string) $item->annotation));
                     //craft()->matrix->saveBlock($block);
                 }
             }
         }
         if ($run_statute_greenline) {
             foreach ($statuteXml->entries[0]->item as $importItem) {
                 $entry = craft()->elements->getCriteria(ElementType::Entry);
                 $entry->section = 'investmentAdvisersActOf1940Statute';
                 $entry->limit = 1;
                 $entry->legacyId = (string) $importItem->id;
                 echo '<br /><br />*****<br />';
                 $entries = $entry->find();
                 if (count($entries) == 0) {
                     echo 'Statute entry not found! / EE ID: ' . $importItem->id . '<br />';
                     continue;
                 }
                 echo (string) $importItem->id . '<br />';
                 $existingEntry = $entry->first();
                 echo 'Matrix: Entry ID: ' . $existingEntry->id . '<br />';
                 foreach ($importItem->greenline->greenline_item as $item) {
                     $subjectsEntry = craft()->elements->getCriteria(ElementType::Entry);
                     $subjectsEntry->limit = 1;
                     $subjectsEntry->legacyId = (string) $item->legacy_id;
                     $entries = $subjectsEntry->find();
                     if (count($entries) == 0) {
                         echo 'Treatise entry not found! / EE ID: ' . (string) $item->legacy_id . '<br />';
                         continue;
                     }
                     $existingSubjectsEntry = $subjectsEntry->first();
                     echo 'Matrix: Treatise Entry ID: ' . $existingSubjectsEntry->id . '<br />';
                     $block = new MatrixBlockModel();
                     $block->fieldId = 51;
                     $block->ownerId = $existingEntry->id;
                     $block->typeId = 2;
                     $block->getContent()->setAttributes(array('entry' => [$existingSubjectsEntry->id], 'annotation' => (string) $item->annotation));
                     //craft()->matrix->saveBlock($block);
                 }
             }
         }
         if ($run_statute_blueline) {
             foreach ($statuteXml->entries[0]->item as $importItem) {
                 $entry = craft()->elements->getCriteria(ElementType::Entry);
                 $entry->section = 'investmentAdvisersActOf1940Statute';
                 $entry->limit = 1;
                 $entry->legacyId = (string) $importItem->id;
                 echo '<br /><br />*****<br />';
                 $entries = $entry->find();
                 if (count($entries) == 0) {
                     echo 'Statute entry not found! / EE ID: ' . $importItem->id . '<br />';
                     continue;
                 }
                 echo (string) $importItem->id . '<br />';
                 $existingEntry = $entry->first();
                 echo 'Matrix: Entry ID: ' . $existingEntry->id . '<br />';
                 foreach ($importItem->blueline->blueline_item as $item) {
                     $howtoEntry = craft()->elements->getCriteria(ElementType::Entry);
                     $howtoEntry->limit = 1;
                     $howtoEntry->legacyId = (string) $item->legacy_id;
                     $entries = $howtoEntry->find();
                     if (count($entries) == 0) {
                         echo 'How-To entry not found! / EE ID: ' . (string) $item->legacy_id . '<br />';
                         continue;
                     }
                     $existingHowToEntry = $howtoEntry->first();
                     echo 'Matrix: How-To Entry ID: ' . $existingHowToEntry->id . '<br />';
                     $block = new MatrixBlockModel();
                     $block->fieldId = 54;
                     $block->ownerId = $existingEntry->id;
                     $block->typeId = 3;
                     $block->getContent()->setAttributes(array('entry' => [$existingHowToEntry->id], 'annotation' => (string) $item->annotation));
                     //craft()->matrix->saveBlock($block);
                 }
             }
         }
     }
     if ($run_rules) {
         // Use SimpleXML to fetch an XML export of channel data from an ExpressionEngine site
         $rulesXml = simplexml_load_file('http://40act.craft.dev:8888/rules.xml');
         $sectionId = 7;
         // Visit settings for your Section and check the URL
         $typeId = 7;
         // Visit Entry Types for your Section and check the URL for the Entry Type
         foreach ($rulesXml->entries[0]->item as $importItem) {
             $rulesItem = array();
             // Need to load as legacy ID for parent ID lookups, re-import (though reference re-import was based on slug)
             $rulesItem['entry_id'] = (string) $importItem->id;
             // $entryUrlTitle
             $rulesItem['slug'] = (string) $importItem->slug;
             // $entryDate
             $rulesItem['entryDate'] = $importItem->entry_date;
             // $entryStatus
             $rulesItem['entryStatus'] = (string) $importItem->status;
             // $entryTitle
             $rulesItem['entryTitle'] = (string) $importItem->title;
             // $entryContent – Rich text
             $rulesItem['entryContent'] = $importItem->content;
             // tags
             $tagsToSave = array();
             foreach ($importItem->tags->tag as $tag) {
                 // Need to look up / create tag if it does not exist
                 $tagToFind = craft()->elements->getCriteria(ElementType::Tag);
                 $tagToFind->title = (string) $tag;
                 $tagToFind->limit = 1;
                 $tagToFind->groupId = $tagSetId;
                 $existingTag = $tagToFind->find();
                 if (count($existingTag) == 0) {
                     $tagToSave = new TagModel();
                     $tagToSave->groupId = $tagSetId;
                     $tagToSave->getContent()->setAttributes(array('title' => (string) $tag));
                     craft()->tags->saveTag($tagToSave);
                 }
                 $tagToSave = $tagToFind->first();
                 $tagsArray[] = array($tag, $tagToSave->id);
                 $tagsToSave[] = $tagToSave->id;
             }
             $rulesItem['tags'] = $tagsToSave;
             $saveTags = false;
             if (count($tagsToSave) > 0) {
                 $saveTags = true;
             }
             if ($debugRules) {
                 echo '<br />***<br /><br />';
                 foreach ($rulesItem as $key => $value) {
                     echo $key . ': ';
                     if (is_array($rulesItem[$key])) {
                         echo '<br />';
                         foreach ($rulesItem[$key] as $arrayItem) {
                             if (is_array($arrayItem)) {
                                 foreach ($arrayItem as $subArrayItem) {
                                     echo '&nbsp;&nbsp;&nbsp;&nbsp;' . $subArrayItem . '<br />';
                                 }
                             } else {
                                 echo '&nbsp;&nbsp;&nbsp;&nbsp;' . $arrayItem . '<br />';
                             }
                         }
                     } else {
                         echo $rulesItem[$key] . '<br />';
                     }
                 }
             }
             // Save the entry
             if (!$save) {
                 continue;
             }
             $entry = craft()->elements->getCriteria(ElementType::Entry);
             $entry->section = 'investmentAdvisersActOf1940Rules';
             $entry->limit = 1;
             $entry->slug = (string) $rulesItem['slug'];
             $existingEntry = $entry->find();
             $entryToSave = new EntryModel();
             if (count($existingEntry > 0)) {
                 foreach ($existingEntry as $existingEntry) {
                     $entryToSave = $existingEntry;
                 }
             }
             // If parent_id == 0, omit setting parent
             if ($importItem->parent_id != 401) {
                 if ($debugRules) {
                     echo 'We have a parent entry!<br />';
                 }
                 $parentEntries = craft()->elements->getCriteria(ElementType::Entry);
                 $parentEntries->section = 'investmentAdvisersActOf1940Rules';
                 $parentEntries->legacyId = $importItem->parent_id;
                 $parentEntries->limit = 1;
                 $parentEntry = $parentEntries->find();
                 // We are assuming that the source feed outputs the nested categories in order, so the
                 // parent category should already exist. I.e., we don't need to create it if not found.
                 if (count($parentEntry) == 1) {
                     foreach ($parentEntry as $existingParentEntry) {
                         if ($debugRules) {
                             echo 'Craft parent ID: ' . $existingParentEntry->id . '<br />';
                         }
                         $entryToSave->parentId = $existingParentEntry->id;
                         $entryToSave->setParent($existingParentEntry);
                     }
                 }
             }
             $entryToSave->sectionId = $sectionId;
             $entryToSave->typeId = $typeId;
             $entryToSave->authorId = 1;
             $entryToSave->enabled = true;
             if ($rulesItem['entryStatus'] == 'closed') {
                 $entryToSave->enabled = false;
             }
             $entryToSave->postDate = date('Y-m-d h:m:s', (double) $rulesItem['entryDate']);
             $entryToSave->slug = $rulesItem['slug'];
             $entryToSave->getContent()->setAttributes(array('title' => $rulesItem['entryTitle'], 'legacyId' => $rulesItem['entry_id'], 'pageContent' => $rulesItem['entryContent'], 'isProtected' => 0));
             if ($saveTags) {
                 $entryToSave->getContent()->pageTags = $tagsToSave;
             }
             if (craft()->entries->saveEntry($entryToSave)) {
                 $totalPosts++;
                 $retVal = $totalPosts;
                 continue;
             } else {
                 $retVal = false;
             }
         }
         if ($run_rules_redline) {
             foreach ($rulesXml->entries[0]->item as $importItem) {
                 $entry = craft()->elements->getCriteria(ElementType::Entry);
                 $entry->section = 'investmentAdvisersActOf1940Rules';
                 $entry->limit = 1;
                 $entry->legacyId = (string) $importItem->id;
                 //$entry->slug = $importItem->slug;
                 /*$entry->getContent()->setAttributes(array(
                       'legacyId' => (string)$importItem->id,
                   ));*/
                 echo '<br /><br />*****<br />';
                 $entries = $entry->find();
                 if (count($entries) == 0) {
                     echo 'Rules entry not found! / EE ID: ' . $importItem->id . '<br />';
                     continue;
                 }
                 echo (string) $importItem->id . '<br />';
                 $existingEntry = $entry->first();
                 echo 'Matrix: Entry ID: ' . $existingEntry->id . '<br />';
                 foreach ($importItem->redline->redline_item as $item) {
                     $referenceEntry = craft()->elements->getCriteria(ElementType::Entry);
                     $referenceEntry->limit = 1;
                     $referenceEntry->legacyId = (string) $item->reference_item->reference_item_legacy_id;
                     /*$referenceEntry->getContent()->setAttributes(array(
                           'legacyId' => (string)$item->reference_item->reference_item_legacy_id,
                       ));*/
                     $entries = $referenceEntry->find();
                     if (count($entries) == 0) {
                         echo 'Reference Item entry not found! / EE ID: ' . (string) $item->reference_item->reference_item_legacy_id . '<br />';
                         continue;
                     }
                     $existingReferenceEntry = $referenceEntry->first();
                     echo 'Matrix: Reference Entry ID: ' . $existingReferenceEntry->id . '<br />';
                     $block = new MatrixBlockModel();
                     $block->fieldId = 48;
                     $block->ownerId = $existingEntry->id;
                     $block->typeId = 1;
                     $block->getContent()->setAttributes(array('entry' => [$existingReferenceEntry->id], 'annotation' => (string) $item->annotation));
                     //craft()->matrix->saveBlock($block);
                 }
             }
         }
         if ($run_rules_greenline) {
             foreach ($rulesXml->entries[0]->item as $importItem) {
                 $entry = craft()->elements->getCriteria(ElementType::Entry);
                 $entry->section = 'investmentAdvisersActOf1940Rules';
                 $entry->limit = 1;
                 $entry->legacyId = (string) $importItem->id;
                 echo '<br /><br />*****<br />';
                 $entries = $entry->find();
                 if (count($entries) == 0) {
                     echo 'Rules entry not found! / EE ID: ' . $importItem->id . '<br />';
                     continue;
                 }
                 echo (string) $importItem->id . '<br />';
                 $existingEntry = $entry->first();
                 echo 'Matrix: Entry ID: ' . $existingEntry->id . '<br />';
                 foreach ($importItem->greenline->greenline_item as $item) {
                     $subjectsEntry = craft()->elements->getCriteria(ElementType::Entry);
                     $subjectsEntry->limit = 1;
                     $subjectsEntry->legacyId = (string) $item->legacy_id;
                     $entries = $subjectsEntry->find();
                     if (count($entries) == 0) {
                         echo 'Treatise entry not found! / EE ID: ' . (string) $item->legacy_id . '<br />';
                         continue;
                     }
                     $existingSubjectsEntry = $subjectsEntry->first();
                     echo 'Matrix: Treatise Entry ID: ' . $existingSubjectsEntry->id . '<br />';
                     $block = new MatrixBlockModel();
                     $block->fieldId = 51;
                     $block->ownerId = $existingEntry->id;
                     $block->typeId = 2;
                     $block->getContent()->setAttributes(array('entry' => [$existingSubjectsEntry->id], 'annotation' => (string) $item->annotation));
                     //craft()->matrix->saveBlock($block);
                 }
             }
         }
         if ($run_rules_blueline) {
             foreach ($rulesXml->entries[0]->item as $importItem) {
                 $entry = craft()->elements->getCriteria(ElementType::Entry);
                 $entry->section = 'investmentAdvisersActOf1940Rules';
                 $entry->limit = 1;
                 $entry->legacyId = (string) $importItem->id;
                 echo '<br /><br />*****<br />';
                 $entries = $entry->find();
                 if (count($entries) == 0) {
                     echo 'Rules entry not found! / EE ID: ' . $importItem->id . '<br />';
                     continue;
                 }
                 echo (string) $importItem->id . '<br />';
                 $existingEntry = $entry->first();
                 echo 'Matrix: Entry ID: ' . $existingEntry->id . '<br />';
                 foreach ($importItem->blueline->blueline_item as $item) {
                     $howtoEntry = craft()->elements->getCriteria(ElementType::Entry);
                     $howtoEntry->limit = 1;
                     $howtoEntry->legacyId = (string) $item->legacy_id;
                     $entries = $howtoEntry->find();
                     if (count($entries) == 0) {
                         echo 'How-To entry not found! / EE ID: ' . (string) $item->legacy_id . '<br />';
                         continue;
                     }
                     $existingHowToEntry = $howtoEntry->first();
                     echo 'Matrix: How-To Entry ID: ' . $existingHowToEntry->id . '<br />';
                     $block = new MatrixBlockModel();
                     $block->fieldId = 54;
                     $block->ownerId = $existingEntry->id;
                     $block->typeId = 3;
                     $block->getContent()->setAttributes(array('entry' => [$existingHowToEntry->id], 'annotation' => (string) $item->annotation));
                     //craft()->matrix->saveBlock($block);
                 }
             }
         }
     }
     if ($run_other_rules) {
         // Use SimpleXML to fetch an XML export of channel data from an ExpressionEngine site
         $otherRulesXml = simplexml_load_file('http://40act.craft.dev:8888/other-rules.xml');
         $sectionId = 8;
         // Visit settings for your Section and check the URL
         $typeId = 8;
         // Visit Entry Types for your Section and check the URL for the Entry Type
         foreach ($otherRulesXml->entries[0]->item as $importItem) {
             $rulesItem = array();
             // Need to load as legacy ID for parent ID lookups, re-import (though reference re-import was based on slug)
             $rulesItem['entry_id'] = (string) $importItem->id;
             // $entryUrlTitle
             $rulesItem['slug'] = (string) $importItem->slug;
             // $entryDate
             $rulesItem['entryDate'] = $importItem->entry_date;
             // $entryStatus
             $rulesItem['entryStatus'] = (string) $importItem->status;
             // $entryTitle
             $rulesItem['entryTitle'] = (string) $importItem->title;
             // $entryContent – Rich text
             $rulesItem['entryContent'] = $importItem->content;
             // tags
             $tagsToSave = array();
             foreach ($importItem->tags->tag as $tag) {
                 // Need to look up / create tag if it does not exist
                 $tagToFind = craft()->elements->getCriteria(ElementType::Tag);
                 $tagToFind->title = (string) $tag;
                 $tagToFind->limit = 1;
                 $tagToFind->groupId = $tagSetId;
                 $existingTag = $tagToFind->find();
                 if (count($existingTag) == 0) {
                     $tagToSave = new TagModel();
                     $tagToSave->groupId = $tagSetId;
                     $tagToSave->getContent()->setAttributes(array('title' => (string) $tag));
                     craft()->tags->saveTag($tagToSave);
                 }
                 $tagToSave = $tagToFind->first();
                 $tagsArray[] = array($tag, $tagToSave->id);
                 $tagsToSave[] = $tagToSave->id;
             }
             $rulesItem['tags'] = $tagsToSave;
             $saveTags = false;
             if (count($tagsToSave) > 0) {
                 $saveTags = true;
             }
             if ($debugOtherRules) {
                 echo '<br />***<br /><br />';
                 foreach ($rulesItem as $key => $value) {
                     echo $key . ': ';
                     if (is_array($rulesItem[$key])) {
                         echo '<br />';
                         foreach ($rulesItem[$key] as $arrayItem) {
                             if (is_array($arrayItem)) {
                                 foreach ($arrayItem as $subArrayItem) {
                                     echo '&nbsp;&nbsp;&nbsp;&nbsp;' . $subArrayItem . '<br />';
                                 }
                             } else {
                                 echo '&nbsp;&nbsp;&nbsp;&nbsp;' . $arrayItem . '<br />';
                             }
                         }
                     } else {
                         echo $rulesItem[$key] . '<br />';
                     }
                 }
             }
             // Save the entry
             if (!$save) {
                 continue;
             }
             $entry = craft()->elements->getCriteria(ElementType::Entry);
             $entry->section = 'otherLawsRules';
             $entry->limit = 1;
             $entry->slug = (string) $rulesItem['slug'];
             $existingEntry = $entry->find();
             $entryToSave = new EntryModel();
             if (count($existingEntry > 0)) {
                 foreach ($existingEntry as $existingEntry) {
                     $entryToSave = $existingEntry;
                 }
             }
             // If parent_id == 0, omit setting parent
             if ($importItem->parent_id != 401) {
                 if ($debugOtherRules) {
                     echo 'We have a parent entry!<br />';
                 }
                 $parentEntries = craft()->elements->getCriteria(ElementType::Entry);
                 $parentEntries->section = 'otherLawsRules';
                 $parentEntries->legacyId = $importItem->parent_id;
                 $parentEntries->limit = 1;
                 $parentEntry = $parentEntries->find();
                 // We are assuming that the source feed outputs the nested categories in order, so the
                 // parent category should already exist. I.e., we don't need to create it if not found.
                 if (count($parentEntry) == 1) {
                     foreach ($parentEntry as $existingParentEntry) {
                         if ($debugOtherRules) {
                             echo 'Craft parent ID: ' . $existingParentEntry->id . '<br />';
                         }
                         $entryToSave->parentId = $existingParentEntry->id;
                         $entryToSave->setParent($existingParentEntry);
                     }
                 }
             }
             $entryToSave->sectionId = $sectionId;
             $entryToSave->typeId = $typeId;
             $entryToSave->authorId = 1;
             $entryToSave->enabled = true;
             if ($rulesItem['entryStatus'] == 'closed') {
                 $entryToSave->enabled = false;
             }
             $entryToSave->postDate = date('Y-m-d h:m:s', (double) $rulesItem['entryDate']);
             $entryToSave->slug = $rulesItem['slug'];
             $entryToSave->getContent()->setAttributes(array('title' => $rulesItem['entryTitle'], 'legacyId' => $rulesItem['entry_id'], 'pageContent' => $rulesItem['entryContent'], 'isProtected' => 0));
             if ($saveTags) {
                 $entryToSave->getContent()->pageTags = $tagsToSave;
             }
             if (craft()->entries->saveEntry($entryToSave)) {
                 $totalPosts++;
                 $retVal = $totalPosts;
                 continue;
             } else {
                 $retVal = false;
             }
         }
         if ($run_other_rules_redline) {
             foreach ($otherRulesXml->entries[0]->item as $importItem) {
                 $entry = craft()->elements->getCriteria(ElementType::Entry);
                 $entry->section = 'otherLawsRules';
                 $entry->limit = 1;
                 $entry->legacyId = (string) $importItem->id;
                 //$entry->slug = $importItem->slug;
                 /*$entry->getContent()->setAttributes(array(
                       'legacyId' => (string)$importItem->id,
                   ));*/
                 echo '<br /><br />*****<br />';
                 $entries = $entry->find();
                 if (count($entries) == 0) {
                     echo 'Other Rules entry not found! / EE ID: ' . $importItem->id . '<br />';
                     continue;
                 }
                 echo (string) $importItem->id . '<br />';
                 $existingEntry = $entry->first();
                 echo 'Matrix: Entry ID: ' . $existingEntry->id . '<br />';
                 foreach ($importItem->redline->redline_item as $item) {
                     $referenceEntry = craft()->elements->getCriteria(ElementType::Entry);
                     $referenceEntry->limit = 1;
                     $referenceEntry->legacyId = (string) $item->reference_item->reference_item_legacy_id;
                     /*$referenceEntry->getContent()->setAttributes(array(
                           'legacyId' => (string)$item->reference_item->reference_item_legacy_id,
                       ));*/
                     $entries = $referenceEntry->find();
                     if (count($entries) == 0) {
                         echo 'Reference Item entry not found! / EE ID: ' . (string) $item->reference_item->reference_item_legacy_id . '<br />';
                         continue;
                     }
                     $existingReferenceEntry = $referenceEntry->first();
                     echo 'Matrix: Reference Entry ID: ' . $existingReferenceEntry->id . '<br />';
                     $block = new MatrixBlockModel();
                     $block->fieldId = 48;
                     $block->ownerId = $existingEntry->id;
                     $block->typeId = 1;
                     $block->getContent()->setAttributes(array('entry' => [$existingReferenceEntry->id], 'annotation' => (string) $item->annotation));
                     //craft()->matrix->saveBlock($block);
                 }
             }
         }
         if ($run_other_rules_greenline) {
             foreach ($otherRulesXml->entries[0]->item as $importItem) {
                 $entry = craft()->elements->getCriteria(ElementType::Entry);
                 $entry->section = 'otherLawsRules';
                 $entry->limit = 1;
                 $entry->legacyId = (string) $importItem->id;
                 echo '<br /><br />*****<br />';
                 $entries = $entry->find();
                 if (count($entries) == 0) {
                     echo 'Other Rules entry not found! / EE ID: ' . $importItem->id . '<br />';
                     continue;
                 }
                 echo (string) $importItem->id . '<br />';
                 $existingEntry = $entry->first();
                 echo 'Matrix: Entry ID: ' . $existingEntry->id . '<br />';
                 foreach ($importItem->greenline->greenline_item as $item) {
                     $subjectsEntry = craft()->elements->getCriteria(ElementType::Entry);
                     $subjectsEntry->limit = 1;
                     $subjectsEntry->legacyId = (string) $item->legacy_id;
                     $entries = $subjectsEntry->find();
                     if (count($entries) == 0) {
                         echo 'Treatise entry not found! / EE ID: ' . (string) $item->legacy_id . '<br />';
                         continue;
                     }
                     $existingSubjectsEntry = $subjectsEntry->first();
                     echo 'Matrix: Treatise Entry ID: ' . $existingSubjectsEntry->id . '<br />';
                     $block = new MatrixBlockModel();
                     $block->fieldId = 51;
                     $block->ownerId = $existingEntry->id;
                     $block->typeId = 2;
                     $block->getContent()->setAttributes(array('entry' => [$existingSubjectsEntry->id], 'annotation' => (string) $item->annotation));
                     //craft()->matrix->saveBlock($block);
                 }
             }
         }
         if ($run_other_rules_blueline) {
             foreach ($otherRulesXml->entries[0]->item as $importItem) {
                 $entry = craft()->elements->getCriteria(ElementType::Entry);
                 $entry->section = 'otherLawsRules';
                 $entry->limit = 1;
                 $entry->legacyId = (string) $importItem->id;
                 echo '<br /><br />*****<br />';
                 $entries = $entry->find();
                 if (count($entries) == 0) {
                     echo 'Other Rules entry not found! / EE ID: ' . $importItem->id . '<br />';
                     continue;
                 }
                 echo (string) $importItem->id . '<br />';
                 $existingEntry = $entry->first();
                 echo 'Matrix: Entry ID: ' . $existingEntry->id . '<br />';
                 foreach ($importItem->blueline->blueline_item as $item) {
                     $howtoEntry = craft()->elements->getCriteria(ElementType::Entry);
                     $howtoEntry->limit = 1;
                     $howtoEntry->legacyId = (string) $item->legacy_id;
                     $entries = $howtoEntry->find();
                     if (count($entries) == 0) {
                         echo 'How-To entry not found! / EE ID: ' . (string) $item->legacy_id . '<br />';
                         continue;
                     }
                     $existingHowToEntry = $howtoEntry->first();
                     echo 'Matrix: How-To Entry ID: ' . $existingHowToEntry->id . '<br />';
                     $block = new MatrixBlockModel();
                     $block->fieldId = 54;
                     $block->ownerId = $existingEntry->id;
                     $block->typeId = 3;
                     $block->getContent()->setAttributes(array('entry' => [$existingHowToEntry->id], 'annotation' => (string) $item->annotation));
                     //craft()->matrix->saveBlock($block);
                 }
             }
         }
     }
     if ($run_news) {
         // Use SimpleXML to fetch an XML export of channel data from an ExpressionEngine site
         $newsXml = simplexml_load_file('http://40act.craft.dev:8888/news.xml');
         // Replace with Reference Materials feed
         $sectionId = 2;
         // Visit settings for your Section and check the URL
         $typeId = 2;
         // Visit Entry Types for your Section and check the URL for the Entry Type
         foreach ($newsXml->news[0]->article as $importItem) {
             // Note that the URL field has not been used on the EE site, so we're not going to import the URL entry type (10)
             $newsItem = array();
             $newsItem['entry_id'] = (string) $importItem->id;
             $newsItem['slug'] = (string) $importItem->slug;
             $newsItem['entryDate'] = $importItem->entry_date;
             $newsItem['entryStatus'] = (string) $importItem->status;
             $newsItem['entryTitle'] = (string) $importItem->title;
             $newsItem['newsUrl'] = (string) $importItem->url;
             $newsItem['newsBlurb'] = (string) $importItem->blurb;
             $newsItem['newsArticle'] = (string) $importItem->article;
             $tagsArray = array();
             $tagsToSave = array();
             foreach ($importItem->tags->tag as $tag) {
                 // Need to look up / create tag if it does not exist
                 $tagToFind = craft()->elements->getCriteria(ElementType::Tag);
                 $tagToFind->title = (string) $tag;
                 $tagToFind->limit = 1;
                 $tagToFind->groupId = $tagSetId;
                 $existingTag = $tagToFind->find();
                 if (count($existingTag) == 0) {
                     $tagToSave = new TagModel();
                     $tagToSave->groupId = $tagSetId;
                     $tagToSave->getContent()->setAttributes(array('title' => (string) $tag));
                     craft()->tags->saveTag($tagToSave);
                 }
                 $tagToSave = $tagToFind->first();
                 $tagsArray[] = array($tag, $tagToSave->id);
                 $tagsToSave[] = $tagToSave->id;
             }
             $newsItem['tags'] = $tagsToSave;
             $saveTags = false;
             if (count($tagsToSave) > 0) {
                 $saveTags = true;
             }
             if ($debugNews) {
                 echo '<br />***<br /><br />';
                 foreach ($newsItem as $key => $value) {
                     echo $key . ': ';
                     if (is_array($newsItem[$key])) {
                         echo '<br />';
                         foreach ($newsItem[$key] as $arrayItem) {
                             if (is_array($arrayItem)) {
                                 foreach ($arrayItem as $subArrayItem) {
                                     echo '&nbsp;&nbsp;&nbsp;&nbsp;' . $subArrayItem . '<br />';
                                 }
                             } else {
                                 echo '&nbsp;&nbsp;&nbsp;&nbsp;' . $arrayItem . '<br />';
                             }
                         }
                     } else {
                         echo $newsItem[$key] . '<br />';
                     }
                 }
             }
             // Default page protected to Yes
             // Save the entry
             if (!$save) {
                 continue;
             }
             $entry = craft()->elements->getCriteria(ElementType::Entry);
             $entry->section = 'news';
             $entry->limit = 1;
             $entry->slug = (string) $newsItem['slug'];
             $existingEntry = $entry->find();
             $entryToSave = new EntryModel();
             if (count($existingEntry > 0)) {
                 foreach ($existingEntry as $existingEntry) {
                     $entryToSave = $existingEntry;
                 }
             }
             $entryToSave->sectionId = $sectionId;
             $entryToSave->typeId = $typeId;
             $entryToSave->authorId = 1;
             $entryToSave->enabled = true;
             if ($newsItem['entryStatus'] == 'closed') {
                 $entryToSave->enabled = false;
             }
             $entryToSave->postDate = date('Y-m-d h:m:s', (double) $newsItem['entryDate']);
             $entryToSave->slug = $newsItem['slug'];
             $entryToSave->getContent()->setAttributes(array('title' => $newsItem['entryTitle'], 'newsBlurb' => $newsItem['newsBlurb'], 'newsUrl' => $newsItem['newsUrl'], 'newsArticle' => $newsItem['newsArticle'], 'legacyId' => $newsItem['entry_id']));
             if ($saveTags) {
                 $entryToSave->getContent()->tags = $tagsToSave;
             }
             if (craft()->entries->saveEntry($entryToSave)) {
                 $totalPosts++;
                 $retVal = $totalPosts;
                 continue;
             } else {
                 $retVal = false;
             }
         }
     }
     if ($debug) {
         exit;
     }
     return $retVal;
 }