772 lines
20 KiB
PHP
772 lines
20 KiB
PHP
<?php
|
||
/**
|
||
* Klasa obsługi tablicy linkow
|
||
*
|
||
*/
|
||
class MfLinkDAL extends DefaultDAL {
|
||
|
||
|
||
protected static $objClassName;
|
||
protected static $objClassTable;
|
||
protected static $objClassTablePK;
|
||
private static $optClass;
|
||
|
||
public static function Save( $obj) {
|
||
|
||
if($obj->GetId()==-1) {
|
||
return self::Insert($obj);
|
||
|
||
} else {
|
||
return self::Update($obj);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* @param Feed $obj
|
||
*
|
||
*/
|
||
public static function Insert($obj) {
|
||
|
||
$dalData = new DalData();
|
||
$dalData->setObjClassTable(self::GetObjClassTable());
|
||
$dalData->setObj($obj);
|
||
$id = self::DefaultInsert($dalData);
|
||
|
||
return $id;
|
||
}
|
||
/**
|
||
* @param Text $obj
|
||
*
|
||
*/
|
||
public static function Update($obj) {
|
||
$dalData = new DalData();
|
||
$dalData->setObjClassTable(self::GetObjClassTable());
|
||
$dalData->setObjClassTablePK(self::GetObjClassTablePK());
|
||
$dalData->setObj($obj);
|
||
return self::DefaultUpdate($dalData);
|
||
}
|
||
|
||
/**
|
||
*
|
||
* @param integer $id
|
||
*
|
||
*/
|
||
public static function Delete($obj) {
|
||
$dalData = new DalData();
|
||
$dalData->setObjClassTable(self::GetObjClassTable());
|
||
$dalData->setObjClassTablePK(self::GetObjClassTablePK());
|
||
$dalData->setObj($obj);
|
||
return self::DefaultDelete($dalData);
|
||
}
|
||
|
||
public static function UpdateSourceId($idNew,$id,$type) {
|
||
$db = Registry::Get('db');
|
||
|
||
$sql = "UPDATE mf_link SET id_source=$idNew WHERE id_source=$id AND source_type='$type'";
|
||
|
||
$stmt=$db->prepare($sql);
|
||
$stmt->execute();
|
||
}
|
||
|
||
|
||
public static function GetById($id) {
|
||
return self::DefaultGetById(self::GetOptClass(), self::GetObjClassTable(), self::GetObjClassName(), self::GetObjClassTablePK(), $id);
|
||
}
|
||
|
||
|
||
public static function GetArrayObjAll() {
|
||
|
||
}
|
||
|
||
|
||
public static function GetResult($data,$queryFields = array(),$limit = 0, $sortBy = null,$count = null,$groupBy = null) {
|
||
|
||
if(!is_array($data)){
|
||
$data = array();
|
||
}
|
||
|
||
$db = Registry::Get('db');
|
||
|
||
$queryCacheName = __CLASS__. "_" .__FUNCTION__. "_" .md5(implode($queryFields));
|
||
if($count == true)
|
||
$queryCacheName.="_count";
|
||
if(isset(QueryCacheTemp::$cacheQuery[$queryCacheName]))
|
||
{
|
||
$sql = QueryCacheTemp::$cacheQuery[$queryCacheName];
|
||
}
|
||
else
|
||
{
|
||
if($count == true)
|
||
$select = "count(*) as count";
|
||
else
|
||
$select =" " . SQL::ToSelect(self::GetOptClass(),$queryFields) . " ";
|
||
|
||
$sql = " SELECT $select FROM " . self::GetObjClassTable() . " WHERE 1=1 ";
|
||
$q = new QueryCache($queryCacheName,$sql);
|
||
}
|
||
|
||
foreach ($data as $key => $value)
|
||
{
|
||
if($key == "id")
|
||
$key = $objId ;
|
||
|
||
if(is_array($value))
|
||
$sql .= ( is_numeric($value['value']) || $value ? " AND ".$key." ".$value['condition']." ". $value['value'] : "");
|
||
else
|
||
$sql .= ( is_numeric($value) || $value ? " AND ".$key." = ". $value : "");
|
||
}
|
||
|
||
$sql .= ( $sortBy ? " ORDER BY $sortBy " : "").
|
||
//( $groupBy ? " GROUP BY $groupBy " : "").
|
||
( $limit ? " LIMIT " . $limit : "").
|
||
" ";
|
||
$stmt = $db->prepare($sql)
|
||
->execute();
|
||
|
||
|
||
$array = $stmt->fetchAllAssoc();
|
||
|
||
if($count == true)
|
||
return $array[0]['count'];
|
||
|
||
$done = array();
|
||
|
||
for($i=0;$i<count($array);$i++)
|
||
{
|
||
$className=self::GetObjClassName();
|
||
$obj = new $className();
|
||
$obj->FromArray($array[$i],1);
|
||
$done[] = $obj;
|
||
}
|
||
return $done;
|
||
|
||
}
|
||
|
||
/**
|
||
* Pobiera z tabeli liste slowek i cacheuje
|
||
*
|
||
* @param integer $cacheTime
|
||
* @return Array
|
||
*/
|
||
public static function GetAllVariables($lang, $cacheTime) {
|
||
$db = Registry::Get('db');
|
||
$sql = "SELECT keyword, replacement FROM ".self::$objClassTable." WHERE lang='".$lang."'";
|
||
|
||
$stmt=$db->execute($sql);
|
||
$stmt->CacheStart($cacheTime);
|
||
$array = $stmt->FetchAllAssoc();
|
||
|
||
$returnArray = array();
|
||
foreach ($array as $keyword => $value) {
|
||
|
||
$returnArray[$keyword] = $value;
|
||
}
|
||
return $returnArray;
|
||
|
||
}
|
||
|
||
public static function DeleteFromLink($idSource = null, $sourceType = null, $idDestination = null, $destinationType = null) {
|
||
|
||
$db = Registry::Get('db');
|
||
$sql = "DELETE FROM `mf_link` WHERE 1=1 ";
|
||
|
||
if($idSource!= null )
|
||
$sql.= " AND id_source = :01 ";
|
||
|
||
if($sourceType!= null)
|
||
$sql.= " AND source_type = :02 ";
|
||
|
||
if($idDestination!= null)
|
||
$sql.= " AND id_destination = :03 ";
|
||
|
||
if($destinationType!= null)
|
||
$sql.= " AND destination_type = :04 ";
|
||
|
||
$stmt=$db->prepare($sql);
|
||
|
||
if($idSource!= null )
|
||
$stmt->bindParam('01', $idSource);
|
||
|
||
if($sourceType!= null)
|
||
$stmt->bindParam('02', $sourceType);
|
||
|
||
if($idDestination!= null)
|
||
$stmt->bindParam('03', $idDestination);
|
||
if($destinationType!= null)
|
||
$stmt->bindParam('04', $destinationType);
|
||
$stmt->execute();
|
||
//Utils::ArrayDisplay($stmt);
|
||
}
|
||
|
||
public static function SortLink($idSource,$sortedLinks,$sourceType,$destinationType)
|
||
{
|
||
$db = Registry::Get('db');
|
||
|
||
foreach ($sortedLinks as $weight => $idDestination)
|
||
{
|
||
$sql = "UPDATE mf_link SET weight = $weight WHERE id_source=:01 AND id_destination =:02 AND source_type=:03 AND destination_type=:04";
|
||
|
||
$stmt=$db->prepare($sql)
|
||
->bindParam("01", $idSource)
|
||
->bindParam("02", $idDestination)
|
||
->bindParam("03", $sourceType)
|
||
->bindParam("04", $destinationType)
|
||
->execute();
|
||
}
|
||
}
|
||
|
||
public static function SortLink2($sortedLinks)
|
||
{
|
||
$db = Registry::Get('db');
|
||
|
||
foreach ($sortedLinks as $weight => $idDestination)
|
||
{
|
||
$sql = "UPDATE mf_link SET weight = $weight WHERE id_mf_link=:01";
|
||
|
||
$stmt=$db->prepare($sql)
|
||
->bindParam("01", $idDestination)
|
||
->execute();
|
||
}
|
||
}
|
||
|
||
public function GetMaxWeight($idSource,$sourceType)
|
||
{
|
||
$db = Registry::Get('db');
|
||
|
||
$sql = "SELECT MAX(weight) as max FROM mf_link WHERE id_source=:01 AND source_type=:02";
|
||
|
||
$stmt = $db->prepare($sql)
|
||
->bindParam("01",$idSource)
|
||
->bindParam("02",$sourceType)
|
||
->execute();
|
||
|
||
$array = $stmt->fetchAllAssoc();
|
||
|
||
return $array[0]['max'];
|
||
}
|
||
|
||
public static function UpdateType(MfLink $obj)
|
||
{
|
||
$db = Registry::Get('db');
|
||
$sql = "UPDATE mf_link SET link_type='" . $obj->GetLinkType() . "' WHERE source_type='" . $obj->GetSourceType(). "' AND id_source='" . $obj->GetIdSource() . "' AND id_destination='" . $obj->GetIdDestination() . "' AND destination_type='" . $obj->GetdestinationType() . "'";
|
||
$stmt = $db->prepare($sql)
|
||
->execute();
|
||
}
|
||
|
||
public function GetCount($idSource,$sourceType,$destinationType)
|
||
{
|
||
$db = Registry::Get('db');
|
||
|
||
$sql = "SELECT count(weight) as max FROM mf_link WHERE id_source=:01 AND source_type=:02 AND destination_type=:03";
|
||
|
||
$stmt = $db->prepare($sql)
|
||
->bindParam("01",$idSource)
|
||
->bindParam("02",$sourceType)
|
||
->bindParam("03",$destinationType)
|
||
->execute();
|
||
|
||
$array = $stmt->fetchAllAssoc();
|
||
|
||
return $array[0]['max'];
|
||
}
|
||
|
||
public static function GetCountDestination($sourceType,$destinationType)
|
||
{
|
||
|
||
$db = Registry::Get('db');
|
||
|
||
$sql="SELECT count( id_destination ) as countDestination, id_source as id_source
|
||
FROM `mf_link`
|
||
WHERE `source_type` = :01
|
||
AND `destination_type` = :02
|
||
GROUP BY id_source
|
||
";
|
||
|
||
$stmt = $db->prepare($sql)
|
||
->bindParam("01",$sourceType)
|
||
->bindParam("02",$destinationType)
|
||
->execute();
|
||
|
||
$array = $stmt->fetchAllAssoc();
|
||
|
||
$returnArray = array();
|
||
foreach($array as $key => $value)
|
||
{
|
||
$returnArray[$value['id_source']] = $value['countDestination'];
|
||
}
|
||
return $returnArray;
|
||
}
|
||
|
||
public function ReCountWeight($idSource,$sourceType,$destinationType)
|
||
{
|
||
$db = Registry::Get('db');
|
||
$mfLinkArray = self::GetResult(array("id_source" => $idSource, "source_type" => "'" . $sourceType . "'", "destination_type" => "'" . $destinationType. "'"),array(),null,"weight");
|
||
$weight = 0;
|
||
foreach ($mfLinkArray as $key => $value)
|
||
{
|
||
$value->SetWeight($weight);
|
||
MfLinkDAL::Update($value);
|
||
$weight++;
|
||
}
|
||
}
|
||
|
||
|
||
public static function GetQuerySourceIds($sourceType,$destinationType,$idDestination = array(),$limit = null,$cacheTime = 360)
|
||
{
|
||
$db = Registry::Get('db');
|
||
$arrayReturn = array();
|
||
$idDestnationSql = "";
|
||
if(count($idDestination) > 1)
|
||
{
|
||
foreach($idDestination as $key => $value)
|
||
{
|
||
$idDestnationSql.=$value . ",";
|
||
}
|
||
$idDestnationSql = substr($idDestnationSql, 0,strlen($idDestnationSql)-1);
|
||
$idDestnationSql = " IN (" . $idDestnationSql . ")";
|
||
}
|
||
else if(isset($idDestination[0]) && is_numeric($idDestination[0]))
|
||
{
|
||
$idDestnationSql="=" . $idDestination[0];
|
||
}
|
||
|
||
$sql = "";
|
||
if($idDestnationSql != "")
|
||
{
|
||
$sql = "SELECT id_source from mf_link WHERE source_type='$sourceType'
|
||
AND destination_type='$destinationType' AND id_destination$idDestnationSql ORDER BY id_source DESC";
|
||
if($limit != null)
|
||
$sql .=" LIMIT $limit";
|
||
$stmt = $db->prepare($sql);
|
||
$stmt->CacheStart($cacheTime);
|
||
$stmt->execute();
|
||
$array = $stmt->FetchAllAssoc();
|
||
if(count($array) == 1)
|
||
return array($array[0]['id_source']);
|
||
else if( count($array) > 1)
|
||
{
|
||
foreach ($array as $key => $value)
|
||
{
|
||
$arrayReturn[]=$value['id_source'];
|
||
}
|
||
}
|
||
}
|
||
return $arrayReturn;
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
public function GetArrayId($source , $destination, $idDestination) {
|
||
$db = Registry::Get('db');
|
||
$sql = "SELECT id_source FROM `mf_link` WHERE `source_type` = '$source' AND `destination_type` = '$destination' AND `id_destination` = $idDestination";
|
||
//Utils::ArrayDisplay($sql);
|
||
$stmt=$db->prepare($sql)
|
||
->execute();
|
||
//$stmt->CacheStart($cacheTime);
|
||
$returnArray = array();
|
||
while(($row = $stmt->FetchArray())) {
|
||
$returnArray[] = $row['id_source'];
|
||
}
|
||
return $returnArray;
|
||
}
|
||
|
||
public static function GetIdString($source , $destination, $idDestination, $idDestinationNotIN = null) {
|
||
$db = Registry::Get('db');
|
||
$sql = "SELECT id_source FROM `mf_link` WHERE `source_type` = '$source' AND `destination_type` = '$destination' ".
|
||
($idDestination ? " AND `id_destination` = $idDestination " : "").
|
||
($idDestinationNotIN ? " AND `id_destination` NOT IN ($idDestinationNotIN) " : "").
|
||
" GROUP BY id_source ";
|
||
$stmt=$db->prepare($sql)->execute();
|
||
|
||
//Utils::ArrayDisplay($sql);
|
||
if ($stmt->NumRows() > 0) {
|
||
|
||
}
|
||
//$stmt->CacheStart($cacheTime);
|
||
$ids = '( ';
|
||
$returnArray = array();
|
||
while(($row = $stmt->FetchArray())) {
|
||
$returnArray[] = $row['id_source'];
|
||
}
|
||
if (count($returnArray) > 0) {
|
||
$ids .= implode(',', $returnArray);
|
||
} else {
|
||
$ids .= '-1';
|
||
}
|
||
$ids .= ' )';
|
||
return $ids;
|
||
}
|
||
|
||
public function GetIdStringClear($source , $destination, $idDestination) {
|
||
$db = Registry::Get('db');
|
||
$sql = "SELECT id_source FROM `mf_link` WHERE `source_type` = '$source' AND `destination_type` = '$destination' AND `id_destination` IN ( $idDestination ) GROUP BY id_source";
|
||
$stmt=$db->prepare($sql)->execute();
|
||
|
||
//Utils::ArrayDisplay($sql);
|
||
if ($stmt->NumRows() > 0) {
|
||
|
||
}
|
||
//$stmt->CacheStart($cacheTime);
|
||
$ids = '';
|
||
$returnArray = array();
|
||
while(($row = $stmt->FetchArray())) {
|
||
$returnArray[] = $row['id_source'];
|
||
}
|
||
if (count($returnArray) > 0) {
|
||
$ids .= implode(',', $returnArray);
|
||
} else {
|
||
$ids .= '-1';
|
||
}
|
||
//$ids .= ' )';
|
||
return $ids;
|
||
}
|
||
|
||
public function GetIdStringForDestinationArray($source , $destination, $destinationIds, $excludedSourceIds = "(-1)") {
|
||
$db = Registry::Get('db');
|
||
$sql = "SELECT id_source FROM `mf_link` WHERE `source_type` = '$source' AND `destination_type` = '$destination' AND `id_destination` IN $destinationIds AND id_source NOT IN $excludedSourceIds GROUP BY id_source";
|
||
$stmt=$db->prepare($sql)->execute();
|
||
|
||
//Utils::ArrayDisplay($sql);
|
||
if ($stmt->NumRows() > 0) {
|
||
|
||
}
|
||
//$stmt->CacheStart($cacheTime);
|
||
$ids = '( ';
|
||
$returnArray = array();
|
||
while(($row = $stmt->FetchArray())) {
|
||
$returnArray[] = $row['id_source'];
|
||
}
|
||
if (count($returnArray) > 0) {
|
||
$ids .= implode(',', $returnArray);
|
||
} else {
|
||
$ids .= '-1';
|
||
}
|
||
$ids .= ' )';
|
||
return $ids;
|
||
}
|
||
|
||
public function GetArrayIdDestinaion($source , $destination, $idSource) {
|
||
$db = Registry::Get('db');
|
||
$sql = "SELECT `id_destination` FROM `mf_link` WHERE `source_type` = '$source' AND `destination_type` = '$destination' AND `id_source` = $idSource";
|
||
//Utils::ArrayDisplay($sql);
|
||
$stmt=$db->prepare($sql)
|
||
->execute();
|
||
//$stmt->CacheStart($cacheTime);
|
||
$returnArray = array();
|
||
while(($row = $stmt->FetchArray())) {
|
||
$returnArray[$row['id_destination']] = $row['id_destination'];
|
||
}
|
||
return $returnArray;
|
||
}
|
||
|
||
public function GetIdStringDestinaion($source , $destination, $idSource) {
|
||
$ids = '(-1)';
|
||
$db = Registry::Get('db');
|
||
$sql = "SELECT id_destination FROM `mf_link` WHERE `source_type` = :01 AND `destination_type` = :02 AND `id_source` = :03";
|
||
$stmt=$db->prepare($sql)
|
||
->bindParam ('01', $source)
|
||
->bindParam ('02', $destination)
|
||
->bindParam ('03', $idSource)
|
||
->execute();
|
||
|
||
if ($stmt->NumRows() > 0) {
|
||
//$stmt->CacheStart($cacheTime);
|
||
$ids = '(';
|
||
$returnArray = array();
|
||
while(($row = $stmt->FetchArray())) {
|
||
$returnArray[] = $row['id_destination'];
|
||
}
|
||
if (count($returnArray) > 0) {
|
||
$ids .= implode(' ,', $returnArray);
|
||
} else {
|
||
$ids .= '-1';
|
||
}
|
||
$ids .= ' )';
|
||
return $ids;
|
||
|
||
}
|
||
return $ids;
|
||
}
|
||
|
||
public static function DeleteAllLink($idSource, $sourceType, $destinationType) {
|
||
$db = Registry::Get('db');
|
||
$sql = "DELETE FROM `mf_link` WHERE id_source = :01 AND source_type = :02 AND destination_type = :04 ";
|
||
|
||
$stmt=$db->prepare($sql)
|
||
->bindParam ('01', $idSource)
|
||
->bindParam ('02', $sourceType)
|
||
->bindParam ('04', $destinationType)
|
||
->execute();
|
||
|
||
}
|
||
|
||
public static function GetArrayList($table, $column, $destination, $lang, $source, $idSource, $where = '', $tableJoin = '', $limit = 0) {
|
||
$array = array();
|
||
$db = Registry::Get('db');
|
||
|
||
$sql = " CHECK TABLE $table FAST QUICK";
|
||
$stmt = $db->prepare($sql)->execute();
|
||
$row = $stmt->FetchArray();
|
||
|
||
if (isset($row['Msg_type']) && strtolower($row['Msg_type']) != 'error') {
|
||
if (isset($row[0]['Msg_type']) && $row[0]['Msg_type'] != 'error') {
|
||
|
||
$sql = 'SELECT '.$table.'.id_'.$destination.', '.$column.
|
||
' FROM '.$table. ( $tableJoin ? " ,$tableJoin " : " ").
|
||
' WHERE 1=1 '.
|
||
$where . " " .
|
||
( $limit ? " LIMIT " . $limit : "");
|
||
//echo $sql;
|
||
$stmt = $db->prepare($sql)->execute();
|
||
//Utils::ArrayDisplay($sql);
|
||
|
||
$ids = '';
|
||
while(($row = $stmt->FetchArray())) {
|
||
$array[$row['id_'.$destination.'']] = array( 'name' => $row[$column], 'checked' => '', 'description' => '', 'icon' => null);
|
||
$icon = null;
|
||
foreach(SimpleArticle_MfArticleCategory::$exts as $ext) {
|
||
$path = PATH_STATIC_CONTENT."image".DS."Admin".DS."Categories".DS."Icons".DS.$row['id_'.$destination.''].".".$ext;
|
||
$url = URL_STATIC_CONTENT."/image/Admin/Categories/Icons/".$row['id_'.$destination.''].".".$ext;
|
||
if(file_exists($path)) {
|
||
$icon = $url;
|
||
}
|
||
$array[$row['id_'.$destination.'']]['icon'] = $icon;
|
||
}
|
||
$ids .= $row['id_'.$destination.''].",";
|
||
}
|
||
|
||
$ids = substr($ids, 0, -1);
|
||
$ids = !$ids ? "-1" : $ids;
|
||
|
||
// stary sql
|
||
$sql = "SELECT a.id_destination FROM mf_link a WHERE source_type = '$source' AND destination_type = '$destination' ".
|
||
" AND id_destination IN ($ids) AND id_source = '$idSource' ";
|
||
//$sql = "SELECT id_desti//$sql =nation FROM mf_link a WHERE source_type = '$source' AND destination_type = '$destination' AND id_source = '$idSource'";
|
||
|
||
$stmt2 = $db->execute($sql);
|
||
while(($row = $stmt2->FetchArray())) {
|
||
$array[$row['id_destination']]['checked'] = 'checked';
|
||
}
|
||
}
|
||
}
|
||
//echo $where;
|
||
return $array;
|
||
}
|
||
|
||
public static function GetLinkedArticles($id, $data = array(), $queryFields = array(),$limit = 0, $sortBy = null,$count = null) {
|
||
$data['mf_article.publication'] = array('value' => -1, 'condition' => '>');
|
||
$data['mf_link.id_source'] = $id;
|
||
$data['mf_link.destination_type'] = '\'mf_article\'';
|
||
$data['mf_link.source_type'] = '\'mf_article\'';
|
||
|
||
if(!is_array($data)) {
|
||
$data = array();
|
||
}
|
||
|
||
$db = Registry::Get('db');
|
||
|
||
$queryCacheName = __CLASS__. "_" .__FUNCTION__. "_" .md5(implode($queryFields));
|
||
if($count == true)
|
||
$queryCacheName .="_count";
|
||
|
||
if(isset(QueryCacheTemp::$cacheQuery[$queryCacheName])) {
|
||
$sql = QueryCacheTemp::$cacheQuery[$queryCacheName];
|
||
}
|
||
else {
|
||
if($count == true)
|
||
$select = "count(*) as count";
|
||
else
|
||
$select =" " . SQL::ToSelect(self::GetOptClass(),$queryFields) . ", " . SQL::ToSelect('MfArticle') . ", " . SQL::ToSelect('MfArticleDescription') . " ";
|
||
|
||
$sql = " SELECT $select FROM " . self::GetObjClassTable() . " LEFT JOIN mf_article ON mf_article.id_mf_article=mf_link.id_destination LEFT JOIN mf_article_description ON mf_article.id_mf_article=mf_article_description.id_mf_article WHERE 1=1 ";
|
||
$q = new QueryCache($queryCacheName,$sql);
|
||
}
|
||
|
||
foreach ($data as $key => $value) {
|
||
if($key == "id")
|
||
$key = $objId ;
|
||
|
||
if(is_array($value))
|
||
$sql .= ( is_numeric($value['value']) || $value ? " AND ".$key." ".$value['condition']." ". $value['value'] : "");
|
||
else
|
||
$sql .= ( is_numeric($value) || $value ? " AND ".$key." = ". $value : "");
|
||
}
|
||
|
||
$sql .= ( $sortBy ? " ORDER BY $sortBy " : "").
|
||
( $limit ? " LIMIT " . $limit : "").
|
||
" ";
|
||
|
||
$stmt = $db->prepare($sql)
|
||
->execute();
|
||
|
||
//Utils::ArrayDisplay($sql);
|
||
$array = $stmt->fetchAllAssoc();
|
||
|
||
//Utils::ArrayDisplay($sql);
|
||
|
||
if($count == true)
|
||
return $array[0]['count'];
|
||
|
||
$done = array();
|
||
|
||
for($i=0;$i<count($array);$i++) {
|
||
$className = 'MfArticle';
|
||
$obj = new $className();
|
||
$obj->FromArray($array[$i], 1);
|
||
|
||
$objDesc = new MfArticleDescription();
|
||
$objDesc->FromArray($array[$i], 1);
|
||
$obj->SetArticleDescriptionObj($objDesc);
|
||
$done[] = $obj;
|
||
}
|
||
return $done;
|
||
}
|
||
|
||
public function IsLinked($idSource = null, $sourceType = null, $idDestination = null, $destinationType = null, $published = '-1', $idSourceSql = '=') {
|
||
|
||
$db = Registry::Get('db');
|
||
$sql = "SELECT count(id_mf_link) as count FROM `mf_link` WHERE 1=1 AND published NOT IN (".$published.") ";
|
||
|
||
if($idSource!= null )
|
||
$sql.= " AND id_source ".$idSourceSql." $idSource ";
|
||
|
||
if($sourceType!= null)
|
||
$sql.= " AND source_type = :02 ";
|
||
|
||
if($idDestination!= null)
|
||
$sql.= " AND id_destination ".$idSourceSql." $idDestination ";
|
||
|
||
if($destinationType!= null)
|
||
$sql.= " AND destination_type = :04 ";
|
||
|
||
$stmt=$db->prepare($sql);
|
||
|
||
if($idSource!= null )
|
||
$stmt->bindParam('01', $idSource);
|
||
|
||
if($sourceType!= null)
|
||
$stmt->bindParam('02', $sourceType);
|
||
|
||
if($idDestination!= null)
|
||
$stmt->bindParam('03', $idDestination);
|
||
if($destinationType!= null)
|
||
$stmt->bindParam('04', $destinationType);
|
||
$stmt->execute();
|
||
|
||
$array = $stmt->fetchAllAssoc();
|
||
|
||
|
||
|
||
return $array[0]['count'];
|
||
|
||
|
||
}
|
||
|
||
|
||
public static function GetObjClassName() {
|
||
if(self::$objClassName != '') {
|
||
$class = self::$objClassName;
|
||
} else {
|
||
$class = str_replace('DAL', '', __CLASS__);
|
||
}
|
||
|
||
return $class;
|
||
}
|
||
|
||
public static function GetOptClass() {
|
||
if(self::$optClass!=null) {
|
||
return self::$optClass;
|
||
} else {
|
||
return self::GetObjClassName();
|
||
}
|
||
}
|
||
|
||
public static function GetObjClassTablePK() {
|
||
if(self::$objClassTablePK != '') {
|
||
$return = self::$objClassTablePK;
|
||
} else {
|
||
$class = self::GetObjClassName();
|
||
$classObj = new $class();
|
||
$return = $classObj->GetClassTablePK();
|
||
}
|
||
return $return;
|
||
}
|
||
|
||
public static function GetObjClassTable() {
|
||
if(self::$objClassTable!='') {
|
||
$return = self::$objClassTable;
|
||
} else {
|
||
$class = self::GetObjClassName();
|
||
$classObj = new $class();
|
||
$return = $classObj->GetTableName();
|
||
}
|
||
|
||
return $return;
|
||
}
|
||
|
||
public static function GetDalDataObj() {
|
||
|
||
$dalData = new DalData();
|
||
$dalData->setObjClassName(self::GetObjClassName());
|
||
$dalData->setObjClassTable(self::GetObjClassTable());
|
||
$dalData->setObjClassTablePK(self::GetObjClassTablePK());
|
||
$dalData->setOptClass(self::GetOptClass());
|
||
//$dalData->setDatabaseType('dbTemp');
|
||
|
||
return $dalData;
|
||
}
|
||
|
||
|
||
public static function UpdateDestinationId($idNew,$id,$source, $destination) {
|
||
$db = Registry::Get('db');
|
||
|
||
$sql = "UPDATE mf_link SET id_destination=$idNew WHERE id_destination=$id AND source_type='$source' AND destination_type = '$destination'";
|
||
|
||
$stmt=$db->prepare($sql);
|
||
$stmt->execute();
|
||
|
||
//Utils::ArrayDisplay($sql);
|
||
}
|
||
|
||
public static function UpdatePublished($published = 1, $idSource = null, $sourceType = null, $destinationType = null, $idDestination = null, $idSourceSql = '=') {
|
||
|
||
$db = Registry::Get('db');
|
||
$sql = "UPDATE `mf_link` ";
|
||
|
||
$sql.= " SET published = :05 ";
|
||
|
||
$sql.= "WHERE 1=1 ";
|
||
|
||
if($idSource!= null )
|
||
$sql.= " AND id_source ".$idSourceSql." ".$idSource." ";
|
||
|
||
if($sourceType!= null)
|
||
$sql.= " AND source_type = :02 ";
|
||
|
||
if($idDestination!= null)
|
||
$sql.= " AND id_destination = :03 ";
|
||
|
||
if($destinationType!= null)
|
||
$sql.= " AND destination_type = :04 ";
|
||
|
||
|
||
$stmt=$db->prepare($sql);
|
||
|
||
//if($idSource!= null )
|
||
//$stmt->bindParam('01', $idSource);
|
||
|
||
if($sourceType!= null)
|
||
$stmt->bindParam('02', $sourceType);
|
||
|
||
if($idDestination!= null)
|
||
$stmt->bindParam('03', $idDestination);
|
||
if($destinationType!= null)
|
||
$stmt->bindParam('04', $destinationType);
|
||
$stmt->bindParam('05', $published);
|
||
$stmt->execute();
|
||
//Utils::ArrayDisplay($stmt);
|
||
}
|
||
}
|
||
?>
|