From 232aa1924c8c0f10d87b210b46c9f061af5c844c Mon Sep 17 00:00:00 2001
From: Antonio Gallo <tonicucoz@gmail.com>
Date: Sun, 17 Oct 2010 13:29:57 +0000
Subject: added files

---
 .../Application/Controllers/DownloadController.php | 199 +++++++++++++++++++++
 1 file changed, 199 insertions(+)
 create mode 100644 h-source/Application/Controllers/DownloadController.php

(limited to 'h-source/Application/Controllers/DownloadController.php')

diff --git a/h-source/Application/Controllers/DownloadController.php b/h-source/Application/Controllers/DownloadController.php
new file mode 100644
index 0000000..4952456
--- /dev/null
+++ b/h-source/Application/Controllers/DownloadController.php
@@ -0,0 +1,199 @@
+<?php 
+
+// h-source, a web software to build a community of people that want to share their hardware information.
+// Copyright (C) 2010  Antonio Gallo (h-source-copyright.txt)
+// 
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+// 
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+// 
+// You should have received a copy of the GNU General Public License
+// along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+if (!defined('EG')) die('Direct access not allowed!');
+
+class DownloadController extends BaseController
+{
+
+	public function __construct($model, $controller, $queryString)
+	{
+		
+		$this->_topMenuClasses['download'] = " class='currentitem'";
+		
+		parent::__construct($model, $controller, $queryString);
+		
+		$this->model('HardwareModel');
+		
+		$data['title'] = 'download - '.Website::$generalName;
+		$this->append($data);
+	}
+	
+	public function index($lang = 'en')
+	{		
+		$this->cleverLoad('index');
+		$this->right($lang);
+	}
+
+	//get the xml of the archive
+	private function getXml($res)
+	{
+		$xml = null;
+		$xml = "<?xml version='1.0' encoding='UTF-8'?>\n";
+		$xml .= "<hardware>\n";
+		$xml .= "\t<general_informations>\n";
+		$xml .= "\t\t<credits>h-node project</credits>\n";
+		$xml .= "\t\t<link>www.h-node.com</link>\n";
+		$xml .= "\t\t<date>".date("Y-m-d h:m:s")."</date>\n";
+		$xml .= "\t\t<license>The contents of this page are in the Public Domain (see the CC0 page at http://creativecommons.org/publicdomain/zero/1.0/ for detailed information). Anyone is free to copy, modify, publish, use, sell, or distribute the text for any purpose, commercial or non-commercial, and by any means.</license>\n";
+		$xml .= "\t</general_informations>\n";
+		
+		foreach ($res as $row)
+		{			
+			$type = $row['hardware']['type'];
+			$xml .= "\t<device>\n";
+			
+			$xml .= "\t\t<id>".$row['hardware']['id_hard']."</id>\n";
+			$xml .= "\t\t<type>".$row['hardware']['type']."</type>\n";
+			
+			if ($type === 'notebook')
+			{
+				$xml .= "\t\t<subtype>".$row['hardware']['subtype']."</subtype>\n";
+			}
+			
+			$xml .= "\t\t<model_name>".$row['hardware']['model']."</model_name>\n";
+			
+			if ($type !== 'notebook')
+			{
+				$xml .= "\t\t<vendorid_productid>".$row['hardware']['pci_id']."</vendorid_productid>\n";
+			}
+			
+			$xml .= "\t\t<vendor>".$row['hardware']['vendor']."</vendor>\n";
+			$xml .= "\t\t<kernel_libre>".$row['hardware']['kernel']."</kernel_libre>\n";
+			$xml .= "\t\t<distribution>".$row['hardware']['distribution']."</distribution>\n";
+			$xml .= "\t\t<year>".$row['hardware']['comm_year']."</year>\n";
+			if ($type !== 'notebook')
+			{
+				$xml .= "\t\t<interface>".$row['hardware']['interface']."</interface>\n";
+			}
+			
+			if ($type === 'notebook' or $type === 'printer' or $type === 'scanner')
+			{
+				$xml .= "\t\t<compatibility>".$row['hardware']['compatibility']."</compatibility>\n";
+			}
+			
+			if ($type === 'notebook')
+			{
+				$xml .= "\t\t<wifi_card>".$row['hardware']['wifi_type']."</wifi_card>\n";
+				$xml .= "\t\t<videocard>".$row['hardware']['video_card_type']."</videocard>\n";
+			}
+			
+			if ($type === 'notebook' or $type === 'wifi')
+			{
+				$xml .= "\t\t<wifi_works>".$row['hardware']['wifi_works']."</wifi_works>\n";
+			}
+			
+			if ($type === 'notebook' or $type === 'videocard')
+			{
+				$xml .= "\t\t<videocard_works>".$row['hardware']['video_card_works']."</videocard_works>\n";
+			}
+			if ($type === 'printer' or $type === 'scanner')
+			{
+				$xml .= "\t\t<driver>".$row['hardware']['driver']."</driver>\n";
+			}
+			$xml .= "\t\t<description><![CDATA[".$row['hardware']['description']."]]></description>\n";
+			
+			$xml .= "\t\t<link>".$this->baseUrl."/".MyStrings::$reverse[$type]."/view/".$this->lang."/".$row['hardware']['id_hard']."/".encodeUrl($row['hardware']['model'])."</link>\n";
+			$xml .= "\t\t<created_by>".$this->baseUrl."/".MyStrings::$reverse[$type]."/history/".$this->lang."/".$row['hardware']['id_hard']."</created_by>\n";
+			
+			$xml .= "\t</device>\n";
+		}
+		
+		$xml .= "</hardware>\n";
+		
+		return $xml;
+	}
+
+	public function all($lang = 'en')
+	{
+		header ("Content-Type:text/xml");
+		
+		$res = $this->m['HardwareModel']->clear()->select()->where(array('-deleted'=>'no'))->orderBy("type,hardware.id_hard")->send();
+
+		$data['xml'] = $this->getXml($res);
+		
+		$this->append($data);
+		$this->clean();
+		$this->load('xml');
+	}
+
+	public function notebooks($lang = 'en')
+	{
+		header ("Content-Type:text/xml");
+
+		$res = $this->m['HardwareModel']->clear()->select()->where(array('type'=>'notebook','-deleted'=>'no'))->orderBy("type,hardware.id_hard")->send();
+
+		$data['xml'] = $this->getXml($res);
+		
+		$this->append($data);
+		$this->clean();
+		$this->load('xml');
+	}
+	
+	public function wifi($lang = 'en')
+	{
+		header ("Content-Type:text/xml");
+
+		$res = $this->m['HardwareModel']->clear()->select()->where(array('type'=>'wifi','-deleted'=>'no'))->orderBy("type,hardware.id_hard")->send();
+
+		$data['xml'] = $this->getXml($res);
+		
+		$this->append($data);
+		$this->clean();
+		$this->load('xml');
+	}
+	
+	public function videocards($lang = 'en')
+	{
+		header ("Content-Type:text/xml");
+
+		$res = $this->m['HardwareModel']->clear()->select()->where(array('type'=>'videocard','-deleted'=>'no'))->orderBy("type,hardware.id_hard")->send();
+
+		$data['xml'] = $this->getXml($res);
+		
+		$this->append($data);
+		$this->clean();
+		$this->load('xml');
+	}
+
+	public function printers($lang = 'en')
+	{
+		header ("Content-Type:text/xml");
+
+		$res = $this->m['HardwareModel']->clear()->select()->where(array('type'=>'printer','-deleted'=>'no'))->orderBy("type,hardware.id_hard")->send();
+
+		$data['xml'] = $this->getXml($res);
+		
+		$this->append($data);
+		$this->clean();
+		$this->load('xml');
+	}
+	
+	public function scanners($lang = 'en')
+	{
+		header ("Content-Type:text/xml");
+
+		$res = $this->m['HardwareModel']->clear()->select()->where(array('type'=>'scanner','-deleted'=>'no'))->orderBy("type,hardware.id_hard")->send();
+
+		$data['xml'] = $this->getXml($res);
+		
+		$this->append($data);
+		$this->clean();
+		$this->load('xml');
+	}
+}
\ No newline at end of file
-- 
cgit v1.2.3