BilderDB

Info

Die Klasse liegt, etwas unpassend, unter modules/bilder. Sollte man gelegentlich nach tools verschieben.

Funktionen

getGalfromId

Liefert die Galerie-Id anhand einer Bild-Id.

Parameter:

  • $schema: Das aktuelle Schema
  • $id: Die Bild-Id

Rückgabe:

  • (integer) Die Galerie-Id

Code:

 	public static function getGalFromId($schema,$id){
 		if(!is_null($schema)) DB::setSchema($schema);
 	
 		$galRes = DB::getItem('bilder',$id,array('album'));
 		return $galRes['album'];
 	}

getGalTagsFromPicId

Liefert die verwendeten Tags einer Galerie anhand einer Bild-Id.

Parameter

  • $schema Das aktuelle Schema
  • $id Die Bild-Id

Rückgabe

  • (array) Ein Array aus Arrays, die jeweils die Id (id) und die Bezeichnung (tag) einer Kategorie enthalten:
array (
  [0] => array(
      'id' => 0,
      'tag' => 'foo'
  ),
  [1] => array(
      'id' => 1,
      'tag' => 'bar'
  ),
  ...
)

Code

 	public static function getGalTagsFromPicId($schema, $id){
 		$album = self::getGalFromId($schema, $id);
 		return self::gettagwordsByGalId($schema, $album);
 		
 	}

getMaxPos

Holt den Maximalwert der Spalte pos einer Galerie

Parameter

  • $schema: Das aktuelle Schema,
  • $id: Die Galerie-Id

Rückgabe

  • (integer) Der Maximalwert der Spalte pos

Code

 	public static function getMaxPos($schema,$id){
 		if(!is_null($schema)) DB::setSchema($schema);
 		
 		$res = DB::getSelectedItem('bilder',array('album'=>$id),array('MAX(pos)'));
 		
 		return $res['max'];
 	}

getMaxPosFromId

Liefert den Maximalwert der Spalte pos einer Galerie anhand einer Bilder-Id.

Parameter

  • $schema: Das aktuelle Schema
  • $id: Die Bild-Id

Rückgabe

  • (integer) Der Maximalwert der Spalte pos

Code

 	public static function getMaxPosFromId($schema,$id){
 		return self::getMaxPos($schema, self::getGalFromId($schema, $id));
 	}

getFullLocalPath

Liefert den kompletten Pfad zu einem Bild anhand der Bild-Id.

Parameter

  • $schema: Das aktuelle Schema
  • $id: Die Bild-Id

Rückgabe

  • (string) Der Pfad auf dem Server. Es ist sehr wahrscheinlich, dass dieser String mehrfache Slashes enthält. TODO: realpath anwenden.

Code

 	public static function getFullLocalPath($schema,$id){
 		if(!is_null($schema)) DB::setSchema($schema);
 	
 	
 		$res = DB::getItem('bilder',$id);
 		$galRes = DB::getSelectedItem('gallerien',array('id'=>$res['album']),array('dir'));
 		return $galRes['dir'].'/'.$res['file'];
 	}

getFullLocalThumbPath

Liefert den lokalen Pfad auf dem Server zum Thumbnail anhand einer Bild-Id

Parameter

  • $schema: Das Schema
  • $id: Die Bild-Id

Rückgabe

  • (string) Der Pfad
 	public static function getFullLocalThumbPath($schema,$id){
 		if(!is_null($schema)) DB::setSchema($schema);
 	
 		$res = DB::getItem('bilder',$id);
 		$galRes = DB::getSelectedItem('gallerien',array('id'=>$res['album']),array('dir'));
 		return $galRes['dir'].'/_thumb_'.$res['file'];
 	}

getGalTagsAndNumberOfUses

Liefert die Kategorien und die Häufigkeit ihrer Benutztung.

Parameter

  • $schema: Das aktuelle Schema
  • [$includeEmpty] Wenn true werden auch unbenutzte Kategorien zurückgeliefert

Rückgabe

  • (array) Ein Array aus Arrays. Primärer Schlüssel ist die Kategorie-Id:
array(
  [17] => array( // Der Schlüssel ist die Kategorie-Id
    ['tag'] => 'foo', // Die Kategorie-Bezeichnung
    ['count'] => 42 // Anzahl der Benutzung
)

Code

 	public static function getGalTagsAndNumberOfUses($schema, $includeEmpty = false){
 		if(!is_null($schema)) DB::setSchema($schema);
 		
 		/**
 		 * Ich weiß nicht, wie man folgende Sortierung mit SQL erreicht:
 		 * 2007
 		 * 2006
 		 * 2005
 		 * A-Wort
 		 * B-Wort
 		 * C-Wort
 		 * ...
 		 * Drum zwei Abfragen...
 		 */
 		 
 		$qc = new QC();
 		$qc->where('tag','A',QC::_LOWER);
 		$qc->addOrder('tag', false);
 		$tags = DB::getSelectedList('tagwords',$qc);
 		
 		$qc = new QC();
 		$qc->where('tag','A',QC::_HIGHEREQUAL);
 		$qc->addOrder('tag');
 		
 		$stringTags = DB::getSelectedList('tagwords',$qc);
 		if(is_array($stringTags)){
 			$tags= array_merge($tags,$stringTags);
 		}
 		
 		$ret = array();
 		foreach ($tags as $tag){
 			
 			$qc = new QC();
 			$qc->where('tag',$tag['id']);
 			$count = DB :: getListCount('galtags',$qc);
			if(($count == 0 && $includeEmpty) || $count > 0){
				$ret[$tag['id']]['tag']  = $tag['tag'];
				$ret[$tag['id']]['count'] = $count;
			}
 		}
 		return $ret;
 		
 	}

getGalListFromTagId

Parameter

Rückgabe

Code

 	public static function getGalListFromTagId($schema, $id, $order = null){
 		
 		/* 
 		 * SELECT $schema.gallerien.*  FROM $schema.gallerien, $schema.galtags 
 		 * WHERE $schema.galtags.tag=$id AND $schema.gallerien.id = $schema.galtags.gal;
 		 * oder
 		 * SELECT gallerien.id, gallerien.name FROM gallerien LEFT JOIN galtags ON gallerien.id = galtags.gal AND galtags.gal = 18;
 		 */
 		
 		if(!is_null($schema)) DB::setSchema($schema);
 		
 		$qc = new QC();
 		
 		if (is_null($order) ) {$order='datum';}
 		
 		$qc->addOrder("gallerien.{$order}",false);
 		$qc->where ('galtags.tag',$id);
 		$qc->where ('gallerien.id','galtags.gal',QC::_EQUAL,QC::_NUMBER);
 		
 		 
 		return  DB::getList('gallerien, galtags',array('gallerien.*'), $qc);
 		
 	}

getPicIdsByAlbumId

Parameter

Rückgabe

Code

 	public static function getPicIdsByAlbumId($schema, $id, $offset = null){
 		/*
 		 * SELECT id FROM bilder WHERE album = $id;
 		 */
 		 if(!is_null($schema)) DB::setSchema($schema);
 		 $qc = new QC();
 		 if(!is_null($offset)){
 		 	$qc->addLimit(DataTab::getNumber('bilder','bilder_pro_seite'),$offset);
 		 }
 		 $qc->where('album',$id);
 		 $qc->addOrder('pos');
 		 
 		 return DB::getList('bilder',array('id'),$qc);
 	}

getPicInfo

Parameter

Rückgabe

Code

 	public static function getPicInfo ($schema, $id){
 		
 		 
 		if(!is_null($schema)) DB::setSchema($schema);
 		$pic = DB::getItem('bilder',$id);
 		$picsPath = DataTab::getText('bilder_main','main_dir').'/';
 		
 		$picsPath = Util::combineSuccessive('/',$picsPath);
 		$p = DB::getSelectedItem('gallerien',array('id'=>$pic['album']), array('dir'));
 		
 		$p = Util::combineSuccessive('/',$p['dir']);
 		
 		
 		
 		
 		$pic['srvpath'] = Datatab::getText('bilder_main','main_dir').'/'.substr($p,strlen($picsPath)).'/'.$pic['file'];
 		$pic['srvthumbpath'] = Datatab::getText('bilder_main','main_dir').'/'.substr($p,strlen($picsPath)).'/_thumb_'.$pic['file'];
 		$pic['srvmidpath'] = Datatab::getText('bilder_main','main_dir').'/'.substr($p,strlen($picsPath)).'/_midsize_'.$pic['file'];
 		$pic['relpath'] =  'upl/'.substr($p,strlen($picsPath)).'/'.$pic['file'];
 		
 		$pic['thb_relpath'] =  'upl/'.substr($p,strlen($picsPath)).'/_thumb_'.$pic['file'];
 		$pic['fullwwwpath'] = DataTab::getText('cmsmain','wwwadress').'/'.$pic['relpath'];
		$pic['thb_fullwwwpath'] = DataTab::getText('cmsmain','wwwadress').'/'.$pic['thb_relpath'];
		$pic['midrelpath'] = 'upl/'.substr($p,strlen($picsPath)).'/_midsize_'.$pic['file'];
		return $pic;
 		 
 	}

getTagwordsByGalId

Liefert die Kategorie-Bezeichner anhand einer Galerie-Id

Parameter

  • $schema: Das Schema
  • $id: Die Galerie-Id

Rückgabe

Code

	public static function getTagwordsByGalId($schema, $id){
	       if(!is_null($schema)) DB::setSchema($schema);
	       /*
		* SELECT galtags.tag AS id, tagwords.tag AS tag FROM $schema.galtags,
                * $schema.tagwords WHERE galtags.gal = $id AND tagwords.id = galtags.tag
	        * ORDER BY tag;
	        */
	       $qc = new QC();
 		
	       $qc->addOrder('tag');
	       $qc->where ('galtags.gal',$id);
	       $qc->where ('tagwords.id','galtags.tag',QC::_EQUAL,QC::_NUMBER);
	       
	       return  DB::getList('tagwords, galtags',array('galtags.tag AS id','tagwords.tag AS tag'), $qc);
	}

getAllPicsByAlbumId

Liefert alle Bilder einer Galerie, sortiert nach der Position.

Parameter

  • $schema: Das Schema
  • $id: Die Galerie-Id

Rückgabe

  • (array) Ein Array aus den Einträgen:
array(
  [0] => array(
    ['id'] => 42, //Die Bild-Id
    ['album'] => 23, //Die Album-Id
    ['caption'] => 'Lorem ipsum...', // Die Bildbeschreibung
    ['thb_width'] => 180, // Die Breite des Thumbnails (in Pixeln)
    ['thb_height'] => 135, // Die Höhe des Thumbnails
    ['width'] => 800, // Die Breite des Bilds
    ['height'] => 600, // Die Höhe des Bilds
    ['file'] => '001.jpg', // Der Dateiname (ohne Verzeichnis!)
    ['pos'] => 1 // Die Position innerhalb der Galerie
  ),
  ...
)

Code

	public static function getAllPicsByAlbumId($schema, $id){
	    if(!is_null($schema)) DB::setSchema($schema);
	    /*
	     * SELECT * FROM $schema.bilder WHERE album = $id ORDER BY pos;
	     */
	    
	    $qc = new QC(); 
	    $qc->addOrder('pos');
	    $qc->where('album',$id);
	    return DB::getSelectedList('bilder',$qc);
	}

getIdFromPos

Liefert eine bild-Id anhand einer Bild-Position.

Parameter

  • $schema: Das aktuelle Schema.
  • $gal: Die Galerie-Id
  • $pos: Die Position

Rückgabe

  • (integer) Die Id

Code

	public static function getIdFromPos ($schema, $gal, $pos){
		if(!is_null($schema)) DB::setSchema($schema);
		
		$res = DB::getSelectedItem('bilder',array('pos'=>$pos, 'album'=>$gal));
		return $res['id'];
	}

getGalArray

Parameter

  • $schema: Das Schema

Rückgabe

Code

	public static function getGalArray($schema){
		if(!is_null($schema)) DB::setSchema($schema);
		$res = DB::getList('gallerien');
		//var_dump($res);
		return $res;
	}

getGalTags

Parameter

  • $schema: Das Schema

Rückgabe

Code

	public static function getGalTags($schema = null){
		if(!is_null($schema)) DB::setSchema($schema);
		$qc = new QC();
		$qc->addOrder('tag');
		$res = DB::getList('tagwords',null,$qc);
		return $res;
	}

getAlbumInfo

Liefert die Einträge zu einer Galerie anhand ihrer Id

Parameter

  • $schema: Das aktuelle Schema
  • $id: Die Album-Id

Rückgabe

  • (array) Ein assoziatives Array mit den Einträgen zu einer Galerie:
array(
  ['id'] => 0, // Die Galerie-Id
  ['name'] => 'foo', // Der Name der Galerie
  ['dir'] => '/path/to/gal', // Pfad auf dem Server zur Galerie
  ['comm'] => 'Lorem ipsum dolor...', // Nähere Beschreibung der Galerie
  ['datum'] => '1990-01-01 12:34:56.789012' // Anlegedatum
)

Code

	public static function getAlbumInfo($schema, $id){
		if(!is_null($schema)) DB::setSchema($schema);
		return DB::getItem('gallerien', $id);
	}

getHrefToThumb

Liefert die www-Adresse des Thumbnails anhand einer Bild-Id.

Parameter

  • $schema: Das aktuelle Schema
  • $id: Die Bild-Id

Rückgabe

  • (string) Die Adresse

Code

	public static function getHrefToThumb($schema, $id){
		if(!is_null($schema)) DB::setSchema($schema);
		$info = self::getPicInfo($schema, $id);
		
		return $info['thb_relpath'];
	}

getAlbumIdFromCat

Liefert die Ids der Galerien, die in einer Kategorie enthalten sind, anhand der Id einer Kategorie.

Parameter

  • $schema: Das aktuelle Schema
  • $cat: Die Kategorie-ID

Rückgabe

  • (array) Ein Array mit den entsprechenden Galerie-IDs

Code

	public static function getAlbumIdsFromCat($schema, $cat){
		if(!is_null($schema)) DB::setSchema($schema);
		
		$list = DB::getSelectedList('galtags',array('tag'=>$cat));
		
		$ids = array();
		foreach($list as $item){
			$ids[] = $item['gal'];
		}
		return $ids;
	}
 }
 
klassen/tools/bilderdb.txt · Zuletzt geändert: 2009/06/27 08:45 von patta
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki