/**
  * List media files in the media dir
  * @return Array - array of file objects
  */
 function listMedia()
 {
     $icfConfig = new IcfConfig();
     $objectMapper = new ObjectMapper();
     $objectArray = $objectMapper->findByClassId($icfConfig->cfg_media_class_id);
     return $this->listFiles($objectArray, "MEDIA", $icfConfig->cfg_site_mediaPathFs);
 }
 /**
  * Gets the object associated to this ObjectFolder
  * @return Object - an instance of Object class
  */
 function getObject()
 {
     if ($this->object == null) {
         $objectMapper = new ObjectMapper();
         $this->object = $objectMapper->get($this->objectID);
     }
     return $this->object;
 }
 /**
  * Gets the Object child
  * @return Object - object instance
  */
 function getChild()
 {
     if (is_null($this->child) == true) {
         $objectMapper = new ObjectMapper();
         $this->child = $objectMapper->get($this->getChildID());
     }
     return $this->child;
 }
 public function eagerFetching(DbFetcher $oQuery, ObjectMapper $oParentMapper, $sPrefix, $aParams = array(), $aLocalParams = array())
 {
     if (isset($this->aParams['ToModuleAlias'])) {
         Core::import('Modules.' . $this->aParams['ToModuleAlias']);
     }
     $oMapper = Manager::getInstance()->getMapper($this->aParams['ToMapperAlias']);
     //echo '<pre>', print_r($oMapper, true), '</pre>'; die();
     $aContainer = $oMapper->getContainer();
     if ($oMapper) {
         $oParentFields = $oParentMapper->getFields();
         $oQuery->addJoinTable($aContainer['TableName'], $sPrefix . '_' . $this->getAlias(), DbFetcher::JOIN_LEFT, $sPrefix . '.' . $oParentFields->get($this->getField())->getField() . ' = ' . $sPrefix . '_' . $this->getAlias() . '.id');
         $oFields = $oMapper->getFields();
         foreach ($oFields as $alias => $field) {
             if ($field->getType() != 'Object' && $field->getField()) {
                 $oQuery->addSelectField($sPrefix . '_' . $this->getAlias() . '.' . $field->getField(), $sPrefix . '_' . $this->getAlias() . '_' . $field->getField());
             }
         }
         // Условия выборки
         if (isset($aLocalParams['Criteria']) && is_object($aLocalParams['Criteria'])) {
             $oQuery->addCriteria(call_user_func(array($aLocalParams['Criteria'], 'renderWhere')));
         }
         if (isset($aLocalParams['Criteria']) && is_array($aLocalParams['Criteria']) && count($aLocalParams['Criteria']) > 0) {
             $oCriteria = new CriteriaGroup(Criteria::TYPE_AND);
             foreach ($aLocalParams['Criteria'] as $k => $itm) {
                 if (is_object($itm)) {
                     $oCriteria->addElement($itm);
                 } else {
                     if (is_array($itm)) {
                         $oCriteria->addElement(new CriteriaElement($k, $itm['Type'], $itm['Value']));
                     } else {
                         $oCriteria->addElement(new CriteriaElement($k, '=', $itm));
                     }
                 }
             }
             $oQuery->addCriteria($oMapper->parseFindCriteria($oCriteria->renderWhere(), $sPrefix . '_' . $this->getAlias()));
         }
         if (isset($aLocalParams['Criteria']) && is_string($aLocalParams['Criteria'])) {
             $oQuery->addCriteria($oMapper->parseFindCriteria($aLocalParams['Criteria'], $sPrefix . '_' . $this->getAlias()));
         }
         // Сортировка
         if (isset($aLocalParams['Order']) && is_array($aLocalParams['Order']) && count($aLocalParams['Order']) > 0) {
             foreach ($aLocalParams['Order'] as $k => $itm) {
                 $oQuery->addOrder($oMapper->parseFindField($k, $sPrefix . '_' . $this->getAlias()), $itm);
             }
         }
         if (isset($aLocalParams['With']) && is_array($aLocalParams['With']) && count($aLocalParams['With'])) {
             // TODO: Вложенные JOINы
         }
     }
     return $oQuery;
 }
Example #5
0
 public function beforeSave($object)
 {
     if ($object->isNew() && !$object->getPostDate()) {
         $object->setPostDate(date("Y-m-d H:i:s"));
     }
     return parent::beforeSave($object);
 }
 /**
  * Constructs HomeController, executing the method given as parameter
  *
  * @param $method Name of the method to execute
  * @param &tpl Template method implementation
  */
 function HomeController($method = null, $icfTemplating)
 {
     $this->tpl = $icfTemplating->getTpl();
     $this->text = $icfTemplating->getText();
     // Title of the page
     $this->tpl->assign('pageTitle', $this->text['home']);
     // Pending contents
     $objectMapper = new ObjectMapper();
     $objects = $objectMapper->findPending();
     $objectsCount = count($objects);
     $this->controllerData["pending"] = $objectsCount;
     // Allowed classes to add
     $session = new Session();
     $baseClassMapper = new BaseClassMapper();
     $classArray = $baseClassMapper->findByPermission(Action::ADD_OBJECTS_ACTION(), $session->getSessionUser());
     $this->tpl->assign("classArray", $classArray);
     switch ($method) {
         default:
             $this->show_view();
     }
 }
 /**
  * Shows the home view
  */
 function show_view()
 {
     // Sets the title
     $this->tpl->assign('pageTitle', $this->text['pending']);
     // Add items to toolbar
     $toolbar =& $this->icfTemplating->getToolbar();
     $ti = new icfToolbarItem();
     $ti->setName("publishButton");
     $ti->setTitle($this->text["publish"]);
     $ti->setUrl("#");
     $ti->setImage("/images/publish.png");
     $ti->setImage2("/images/publish_f2.png");
     $ti->setOnclick("publishButton_onClick()");
     $toolbar->addToolbarItem($ti);
     // Set toolbar
     $this->icfTemplating->setToolbar($toolbar);
     // Get the pending objects
     $objectMapper = new ObjectMapper();
     $objects = $objectMapper->findPending();
     $this->controllerData["objects"] = $objects;
     $this->tpl->assign("controllerData", $this->controllerData);
     $this->tpl->display("pending.tpl.php");
 }
  function testDelete()
  {
    $mapper = new ObjectMapper();
    $object = new Object();
    $object->__class_name = 'Object';

    $this->db->insert('sys_class', array('id' => $class_id = 5,
                                         'name' => $object->__class_name));

    $this->db->insert('sys_object', array('oid' => $id1 = 1,
                                         'class_id' => $class_id));

    $this->db->insert('sys_object', array('oid' => $id2 = 2,
                                         'class_id' => $class_id));


    $object->set('oid', $id1);
    $object->set('class_id', $class_id);

    $mapper->delete($object);

    $rs =& $this->db->select('sys_class');
    $classes = $rs->getArray();
    $this->assertEqual(sizeof($classes), 1);

    $rs =& $this->db->select('sys_object');
    $objects = $rs->getArray();
    $this->assertEqual(sizeof($objects), 1);

    $this->assertEqual($objects[0]['oid'], $id2);
    $this->assertEqual($objects[0]['class_id'], $class_id);
  }
Example #9
0
 /**
  * Gets the objects in this folder
  */
 function getObjects()
 {
     if ($this->objects == null) {
         $objectMapper = new ObjectMapper();
         $this->objects = $objectMapper->findByFolder($this->getId());
     }
     return $this->objects;
 }
 /**
  * Updates an object
  * @param $object Object to update, must have its ID set
  */
 function update(&$object)
 {
     // Fill object Fulltext index
     $fullTextIndex = $this->generateFullTextIndex($object);
     $object->setFullTextIndex($fullTextIndex);
     // Coordinate transaction
     $icfDatabase = new IcfDatabase();
     $conn = $icfDatabase->dbOpen();
     $conn->StartTrans();
     // Update object
     $objectMapper = new ObjectMapper();
     $objectMapper->setConnection($conn);
     $objectMapper->update($object);
     // Recreate attributes
     $objectAttributeMapper = new ObjectAttributeMapper();
     $objectAttributeMapper->setConnection($conn);
     $objectAttributeMapper->deleteByObjectId($object->getId());
     $objectAttributeArray =& $object->getAttributes();
     foreach ($objectAttributeArray as $objectAttribute) {
         $objectAttribute->setObjectID($object->getId());
         $objectAttributeMapper->save($objectAttribute);
     }
     // Recreate folders
     $objectFolderMapper = new ObjectFolderMapper();
     $objectFolderMapper->setConnection($conn);
     $objectFolderMapper->deleteByObjectId($object->getId());
     $objectFolderArray =& $object->getObjectFolders();
     foreach ($objectFolderArray as $objectFolder) {
         $objectFolder->setObjectID($object->getId());
         $objectFolderMapper->save($objectFolder);
     }
     // Recreate relationships
     $objectRelationMapper = new ObjectRelationMapper();
     $objectRelationMapper->setConnection($conn);
     $objectRelationMapper->deleteByParentId($object->getId());
     $objectRelationArray =& $object->getObjectRelations();
     foreach ($objectRelationArray as $objectRelation) {
         /* @var $objectRelation ObjectRelation */
         $objectRelation->setParentID($object->getId());
         $objectRelationMapper->save($objectRelation);
     }
     // Close transaction
     $conn->completeTrans();
     $icfDatabase->dbClose($conn);
 }
 /**
  * Updates the object sent by HTTP
  */
 function update()
 {
     $save = false;
     $object = $this->collectObject($this->object);
     // If there was an error, do not try to save
     if ($object == null) {
         $this->showUpdateView(true);
         return;
     }
     $saveIt = true;
     $om = new ObjectMapper();
     $prevObject = $om->get($object->getId());
     if ($object->getIsPublished() != $prevObject->getIsPublished()) {
         //check publishing permissions
         $canPublish = $object->canDoAction(null, Action::PUBLISH_OBJECTS_ACTION());
         if (!$canPublish) {
             $saveIt = false;
         }
     }
     if ($saveIt) {
         // Update !!
         $objectService = ObjectServiceFactory::newInstance($object->getClass());
         $objectService->update($object);
         // Everything went all right, display view
         $this->redirectToReferer();
     } else {
         //send error message
         $controllerMessage = new ControllerMessage($this->text["notenoughpermissionstopublish"], ControllerMessage::getErrorType());
         array_push($this->controllerMessageArray, $controllerMessage);
         $this->showView(true);
         return;
     }
 }
Example #12
0
 protected function getMappedResult()
 {
     $objectMapper = new ObjectMapper();
     $result = $this->getDirectResult();
     return $objectMapper->mapDataToEntity($this->entity, $result);
 }
Example #13
0
 /**
  * Gets the objects associated to this class. Be careful with this method, you
  * should only use it if the number of objects is minimmum.
  * @return Array - instances of Object class
  */
 function getObjects()
 {
     if (is_null($this->objects)) {
         $objectMapper = new ObjectMapper();
         $this->objects = $objectMapper->findByClassId($this->getId(), true);
     }
     return $this->objects;
 }
Example #14
0
        $folderClassMapper = new FolderClassMapper();
        $objectMapper = new ObjectMapper();
        // Gets all folders for selected class for the folder combo
        $foldersClasses = $folderClassMapper->findByClassId($id);
        $folders = array();
        $titles = array();
        foreach ($foldersClasses as $folderClass) {
            $folder = $folderClass->getFolder();
            $text = $folder->getId() . "|" . $folder->getPathway();
            array_push($folders, $text);
            array_push($titles, $folder->getPathway());
        }
        $folders = $objectMapper->quicksortObjectByTitle($folders, $titles);
        $json = new JSON();
        echo $json->encode($folders);
    }
}
if ($_GET['action'] == 'hasPublishingPermissions') {
    $id = $_GET['id'];
    if (is_numeric($id)) {
        $objectMapper = new ObjectMapper();
        $object = $objectMapper->get($id);
        $rv = $object->canDoAction(null, Action::PUBLISH_OBJECTS_ACTION());
        $json = new JSON();
        echo $json->encode($rv);
    }
}
?>