function select($where = "", $group_by = "", $order_by = "", $limit = "")
 {
     global $client;
     if ($where != "") {
         $where = $where . " AND idclient = '" . Contenido_Security::escapeDB($client, NULL) . "'";
     }
     return parent::select($where, $group_by, $order_by, $limit);
 }
 function testForProjectIdReturnsCollectionOfItems()
 {
     $http_response = dummyObject(['status' => '200', 'body' => '{"data":[{"id":2,"name":"Item","overdue":false,"parent_id":1,"position":0,"project_id":2,"template_id":3}]}']);
     $request = $this->getMockBuilder('\\Test\\Request')->getMock();
     $request->method('get')->with($this->equalTo('items'), $this->equalTo(['project_id' => '2']))->willReturn(new \GatherContent\Response($http_response));
     $subject = new ItemCollection($request);
     $items = $subject->forProjectId('2');
     $this->assertCount(1, $items);
     $item = $items[0];
     $this->assertInstanceOf('\\GatherContent\\Model\\Item', $item);
     $this->assertSame(2, $item->id);
     $this->assertSame(1, $item->parent_id);
     $this->assertSame(0, $item->position);
     $this->assertSame(2, $item->project_id);
     $this->assertSame(3, $item->template_id);
     $this->assertEquals('Item', $item->name);
     $this->assertFalse($item->overdue);
 }
 function create($idartlang)
 {
     global $cfg;
     $sql = "SELECT idartlang FROM " . $cfg["tab"]["art_lang"] . " WHERE idartlang = '" . Contenido_Security::escapeDB($idartlang, $this->db) . "'";
     $this->db->query($sql);
     if (!$this->db->next_record()) {
         $this->lasterror = i18n("Article doesn't exist", "workflow");
         return false;
     }
     $this->select("idartlang = '{$idartlang}'");
     if ($this->next() !== false) {
         $this->lasterror = i18n("Article is already assigned to a usersequence step.", "workflow");
         return false;
     }
     $newitem = parent::create();
     $newitem->setField("idartlang", $idartlang);
     $newitem->store();
     return $newitem;
 }
 /**
  * Overridden delete method to remove job details (logs) from newsletter logs table
  * before deleting newsletter job
  *
  * @param $iItemID int specifies the frontend user group
  */
 public function delete($iItemID)
 {
     $oLogs = new cNewsletterLogCollection();
     $oLogs->delete($iItemID);
     parent::delete($iItemID);
 }
 /**
  * Overriden delete function to update recipient count if removing recipient from the list
  * @param integer $idnewslog ID
  */
 public function delete($idnewslog)
 {
     $idnewslog = Contenido_Security::toInteger($idnewslog);
     $oLog = new cNewsletterLog($idnewslog);
     $iIDNewsJob = $oLog->get("idnewsjob");
     unset($oLog);
     $oJob = new cNewsletterJob($iIDNewsJob);
     $oJob->set("rcpcount", $oJob->get("rcpcount") - 1);
     $oJob->store();
     unset($oJob);
     parent::delete($idnewslog);
 }
 function select($where = "", $group_by = "", $order_by = "", $limit = "")
 {
     global $client;
     return parent::select($where, $group_by, $order_by, $limit);
 }
 /**
  * Duplicates the newsletter specified by $itemID
  * @param $itemID integer specifies the newsletter id
  */
 public function duplicate($iItemID)
 {
     global $client, $lang, $auth;
     $client = Contenido_Security::toInteger($client);
     $lang = Contenido_Security::toInteger($lang);
     cInclude("includes", "functions.con.php");
     $oBaseItem = new Newsletter();
     $oBaseItem->loadByPrimaryKey($iItemID);
     $oItem = parent::create();
     $oItem->set("name", $oBaseItem->get("name") . "_" . substr(md5(rand()), 0, 10));
     $iIDArt = 0;
     if ($oBaseItem->get("type") == "html" && $oBaseItem->get("idart") > 0 && $oBaseItem->get("template_idart") > 0) {
         $oClientLang = new cApiClientLanguage(false, $client, $lang);
         if ($oClientLang->getProperty("newsletter", "html_newsletter") == "true") {
             $iIDArt = conCopyArticle($oBaseItem->get("idart"), $oClientLang->getProperty("newsletter", "html_newsletter_idcat"), sprintf(i18n("Newsletter: %s", $plugin_name), $oItem->get("name")));
             conMakeOnline($iIDArt, $lang);
             // Article has to be online for sending...
         }
         unset($oClientLang);
     }
     $oItem->set("idart", $iIDArt);
     $oItem->set("template_idart", $oBaseItem->get("template_idart"));
     $oItem->set("idclient", $client);
     $oItem->set("idlang", $lang);
     $oItem->set("welcome", 0);
     $oItem->set("type", $oBaseItem->get("type"));
     $oItem->set("subject", $oBaseItem->get("subject"));
     $oItem->set("message", $oBaseItem->get("message"));
     $oItem->set("newsfrom", $oBaseItem->get("newsfrom"));
     $oItem->set("newsfromname", $oBaseItem->get("newsfromname"));
     $oItem->set("newsdate", date("Y-m-d H:i:s"), false);
     // But more or less deprecated
     $oItem->set("use_cronjob", $oBaseItem->get("use_cronjob"));
     $oItem->set("send_to", $oBaseItem->get("send_to"));
     $oItem->set("send_ids", $oBaseItem->get("send_ids"));
     $oItem->set("dispatch", $oBaseItem->get("dispatch"));
     $oItem->set("dispatch_count", $oBaseItem->get("dispatch_count"));
     $oItem->set("dispatch_delay", $oBaseItem->get("dispatch_delay"));
     $oItem->set("author", $auth->auth["uid"]);
     $oItem->set("created", date("Y-m-d H:i:s"), false);
     // Copy properties, runtime on-demand allocation of the properties object
     if (!is_object($this->properties)) {
         $this->properties = new PropertyCollection();
     }
     $this->properties->setWhere("idclient", $client);
     $this->properties->setWhere("itemtype", $this->primaryKey);
     $this->properties->setWhere("itemid", $iItemID);
     $this->properties->query();
     while ($oPropertyItem = $this->properties->next()) {
         $oItem->setProperty($oPropertyItem->get("type"), $oPropertyItem->get("name"), $oPropertyItem->get("value"));
     }
     $oItem->store();
     return $oItem;
 }
 /**
  * Deletes all corresponding informations to this workflow and delegate call to parent
  * @param integer $idWorkflow - id of workflow to delete
  */
 function delete($idWorkflow)
 {
     global $cfg;
     $oDb = new DB_Contenido();
     $aItemIdsDelete = array();
     $sSql = 'SELECT idworkflowitem FROM ' . $cfg["tab"]["workflow_items"] . ' WHERE idworkflow = ' . Contenido_Security::toInteger($idWorkflow) . ';';
     $oDb->query($sSql);
     while ($oDb->next_record()) {
         array_push($aItemIdsDelete, Contenido_Security::escapeDB($oDb->f('idworkflowitem'), $oDb));
     }
     $aUserSequencesDelete = array();
     $sSql = 'SELECT idusersequence FROM ' . $cfg["tab"]["workflow_user_sequences"] . ' WHERE idworkflowitem in (' . implode(',', $aItemIdsDelete) . ');';
     $oDb->query($sSql);
     while ($oDb->next_record()) {
         array_push($aUserSequencesDelete, Contenido_Security::escapeDB($oDb->f('idusersequence'), $oDb));
     }
     $sSql = 'DELETE FROM ' . $cfg["tab"]["workflow_user_sequences"] . ' WHERE idworkflowitem in (' . implode(',', $aItemIdsDelete) . ');';
     $oDb->query($sSql);
     $sSql = 'DELETE FROM ' . $cfg["tab"]["workflow_actions"] . ' WHERE idworkflowitem in (' . implode(',', $aItemIdsDelete) . ');';
     $oDb->query($sSql);
     $sSql = 'DELETE FROM ' . $cfg["tab"]["workflow_items"] . ' WHERE idworkflow = ' . Contenido_Security::toInteger($idWorkflow) . ';';
     $oDb->query($sSql);
     $sSql = 'DELETE FROM ' . $cfg["tab"]["workflow_allocation"] . ' WHERE idworkflow = ' . Contenido_Security::toInteger($idWorkflow) . ';';
     $oDb->query($sSql);
     $sSql = 'DELETE FROM ' . $cfg["tab"]["workflow_art_allocation"] . ' WHERE idusersequence in (' . implode(',', $aUserSequencesDelete) . ');';
     $oDb->query($sSql);
     parent::delete($idWorkflow);
 }
Пример #9
0
 /**
  * Create a new group from a mixed data set
  *
  * @param array $data Data set
  * @return ItemCollection
  */
 public static function create($data)
 {
     $group = new ItemCollection();
     return $group->add($data);
 }
 /**
  * Creates a new association
  * @param $idrecipientgroup int specifies the newsletter group
  * @param $idrecipient  int specifies the newsletter user
  */
 public function create($idrecipientgroup, $idrecipient)
 {
     $idrecipientgroup = Contenido_Security::toInteger($idrecipientgroup);
     $idrecipient = Contenido_Security::toInteger($idrecipient);
     $this->setWhere("idnewsgroup", $idrecipientgroup);
     $this->setWhere("idnewsrcp", $idrecipient);
     $this->query();
     if ($this->next()) {
         return false;
     }
     $oItem = parent::create();
     $oItem->set("idnewsrcp", $idrecipient);
     $oItem->set("idnewsgroup", $idrecipientgroup);
     $oItem->store();
     return $oItem;
 }
 function create($idworkflow, $idcatlang)
 {
     $this->select("idcatlang = '{$idcatlang}'");
     if ($this->next() !== false) {
         $this->lasterror = i18n("Category already has a workflow assigned", "workflow");
         return false;
     }
     $workflows = new Workflows();
     $workflows->select("idworkflow = '{$idworkflow}'");
     if ($workflows->next() === false) {
         $this->lasterror = i18n("Workflow doesn't exist", "workflow");
         return false;
     }
     $newitem = parent::create();
     if (!$newitem->setWorkflow($idworkflow)) {
         $this->lasterror = $newitem->lasterror;
         $workflows->delete($newitem->getField("idallocation"));
         return false;
     }
     if (!$newitem->setCatLang($idcatlang)) {
         $this->lasterror = $newitem->lasterror;
         $workflows->delete($newitem->getField("idallocation"));
         return false;
     }
     $newitem->store();
     return $newitem;
 }
 function create($idworkflow)
 {
     $workflows = new Workflows();
     $workflows->select("idworkflow = '{$idworkflow}'");
     if ($workflows->next() === false) {
         $this->lasterror = i18n("Can't add item to workflow: Workflow doesn't exist", "workflow");
         return false;
     }
     $this->select("idworkflow = '{$idworkflow}'", "", "position DESC", "1");
     $item = $this->next();
     if ($item === false) {
         $lastPos = 1;
     } else {
         $lastPos = $item->getField("position") + 1;
     }
     $newItem = parent::create();
     if ($newItem->init($idworkflow, $lastPos) === false) {
         $this->delete($newItem->getField("idworkflowitem"));
         $this->lasterror = $newItem->lasterror;
         return false;
     }
     if ($item === false) {
         $this->updateArtAllocation(0);
     }
     return $newItem;
 }
 /**
  * Overridden delete method to remove recipient from groupmember table
  * before deleting recipient
  *
  * @param $itemID int specifies the recipient
  */
 public function delete($itemID)
 {
     $oAssociations = new RecipientGroupMemberCollection();
     $oAssociations->setWhere("idnewsrcp", $itemID);
     $oAssociations->query();
     while ($oItem = $oAssociations->next()) {
         $oAssociations->delete($oItem->get("idnewsgroupmember"));
     }
     parent::delete($itemID);
 }