[PC-BSD Commits] r1460 - in websites/pbidir.com/bibivu: etc/lang/en etc/lang/es etc/lang/it lib tpl/css tpl/pbidir tpl/pbidir/images

svn at pcbsd.org svn at pcbsd.org
Tue Feb 26 18:32:41 PST 2008


Author: fabry
Date: 2008-02-26 18:32:41 -0800 (Tue, 26 Feb 2008)
New Revision: 1460

Added:
   websites/pbidir.com/bibivu/tpl/pbidir/images/wine.png
Modified:
   websites/pbidir.com/bibivu/etc/lang/en/pbi.lang.php
   websites/pbidir.com/bibivu/etc/lang/es/pbi.lang.php
   websites/pbidir.com/bibivu/etc/lang/it/pbi.lang.php
   websites/pbidir.com/bibivu/lib/pbi.php
   websites/pbidir.com/bibivu/tpl/css/pbidir.css
   websites/pbidir.com/bibivu/tpl/pbidir/pbi.php
Log:
 - Added the ability to flag a PBi if it uses WINE.
 - Added the ability to flag the PBI as an alternative for a different software

refs #102;

Modified: websites/pbidir.com/bibivu/etc/lang/en/pbi.lang.php
===================================================================
--- websites/pbidir.com/bibivu/etc/lang/en/pbi.lang.php	2008-02-27 02:03:16 UTC (rev 1459)
+++ websites/pbidir.com/bibivu/etc/lang/en/pbi.lang.php	2008-02-27 02:32:41 UTC (rev 1460)
@@ -1,28 +1,30 @@
-<?php
-//pbi strings
-$lang['description'] = 'Description';
-$lang['vendor'] = 'Vendor';
-$lang['avg_rate'] = 'Average Rate';
-$lang['your_rate'] = 'Your Rate';
-$lang['downloads'] = 'Downloads';
-$lang['licence'] = 'Licence';
-$lang['maintainer'] = 'Maintainer';
-
-$lang['version'] = 'Version';
-$lang['summary'] = 'Summary';
-$lang['size'] = 'Size';
-$lang['added'] = 'Added';
-
-$lang['login_to_vote'] = 'Please <a href="%s">Login</a> To be able to Vote';
-$lang['cannot_vote'] = 'Sorry, You cannot Vote at this time!';
-
-$lang['login_to_comment'] = 'Please <a href="%s">Login</a> To be able to Add a Comment to this pbi';
-$lang['cannot_comment'] = 'Sorry, You cannot Comment at this time!';
-$lang['leave_comment'] = 'Click Here To Add a Comment To This pbi';
-
-$lang['subscribe'] = 'Subscribe to receive updates for this PBI';
-$lang['unsubscribe'] = 'Unsubscribe from receiving updates for this PBI';
-
-$lang['succesfully_subscribed'] = 'Succesfully subscribed to receive updates for this PBI';
-$lang['succesfully_unsubscribed'] = 'Succesfully unsubscribed from receiving updates for this PBI';
+<?php
+//pbi strings
+$lang['description'] = 'Description';
+$lang['vendor'] = 'Vendor';
+$lang['avg_rate'] = 'Average Rate';
+$lang['your_rate'] = 'Your Rate';
+$lang['downloads'] = 'Downloads';
+$lang['licence'] = 'Licence';
+$lang['maintainer'] = 'Maintainer';
+
+$lang['version'] = 'Version';
+$lang['summary'] = 'Summary';
+$lang['size'] = 'Size';
+$lang['added'] = 'Added';
+
+$lang['login_to_vote'] = 'Please <a href="%s">Login</a> To be able to Vote';
+$lang['cannot_vote'] = 'Sorry, You cannot Vote at this time!';
+
+$lang['login_to_comment'] = 'Please <a href="%s">Login</a> To be able to Add a Comment to this pbi';
+$lang['cannot_comment'] = 'Sorry, You cannot Comment at this time!';
+$lang['leave_comment'] = 'Click Here To Add a Comment To This pbi';
+
+$lang['subscribe'] = 'Subscribe to receive updates for this PBI';
+$lang['unsubscribe'] = 'Unsubscribe from receiving updates for this PBI';
+
+$lang['succesfully_subscribed'] = 'Succesfully subscribed to receive updates for this PBI';
+$lang['succesfully_unsubscribed'] = 'Succesfully unsubscribed from receiving updates for this PBI';
+
+$lang['alternative'] = 'This PBI can be used as an alternative for';
 ?>
\ No newline at end of file

Modified: websites/pbidir.com/bibivu/etc/lang/es/pbi.lang.php
===================================================================
--- websites/pbidir.com/bibivu/etc/lang/es/pbi.lang.php	2008-02-27 02:03:16 UTC (rev 1459)
+++ websites/pbidir.com/bibivu/etc/lang/es/pbi.lang.php	2008-02-27 02:32:41 UTC (rev 1460)
@@ -1,28 +1,30 @@
-<?php
-//pbi strings
-$lang['description'] = 'Descripción';
-$lang['vendor'] = 'Desarrollador';
-$lang['avg_rate'] = 'Puntuación Media';
-$lang['your_rate'] = 'Tu Puntuación';
-$lang['downloads'] = 'Descargas';
-$lang['licence'] = 'Licencia';
-$lang['maintainer'] = 'Mantenimiento';
-
-$lang['version'] = 'Versión';
-$lang['summary'] = 'Sumario';
-$lang['size'] = 'Tamaño';
-$lang['added'] = 'Fecha';
-
-$lang['login_to_vote'] = 'Por favor, <a href="%s">Identifícate</a> para poder registrar tu puntuación';
-$lang['cannot_vote'] = 'Lo siento, no puedes votar en este momento!';
-
-$lang['login_to_comment'] = 'Por favor, <a href="%s">Identifícate</a> para poder añadir un comentario a este pbi';
-$lang['cannot_comment'] = 'Lo siento, no puedes comentar en este momento!';
-$lang['leave_comment'] = 'Cliquea aquí para añadir un comentario a este pbi';
-
-$lang['subscribe_pbi'] = 'Suscríbete para recibir actualizaciones de este PBI';
-$lang['unsubscribe_pbi'] = 'Cancela la suscripción para dejar de recibir actualizaciones de este PBI';
-
-$lang['succesfully_subscribed'] = 'Acaba de ser suscrito a este PBI con satisfacción';
-$lang['succesfully_unsubscribed'] = 'Acaba de cancelar la suscripción a este PBI con satisfacción';
+<?php
+//pbi strings
+$lang['description'] = 'Descripción';
+$lang['vendor'] = 'Desarrollador';
+$lang['avg_rate'] = 'Puntuación Media';
+$lang['your_rate'] = 'Tu Puntuación';
+$lang['downloads'] = 'Descargas';
+$lang['licence'] = 'Licencia';
+$lang['maintainer'] = 'Mantenimiento';
+
+$lang['version'] = 'Versión';
+$lang['summary'] = 'Sumario';
+$lang['size'] = 'Tamaño';
+$lang['added'] = 'Fecha';
+
+$lang['login_to_vote'] = 'Por favor, <a href="%s">Identifícate</a> para poder registrar tu puntuación';
+$lang['cannot_vote'] = 'Lo siento, no puedes votar en este momento!';
+
+$lang['login_to_comment'] = 'Por favor, <a href="%s">Identifícate</a> para poder añadir un comentario a este pbi';
+$lang['cannot_comment'] = 'Lo siento, no puedes comentar en este momento!';
+$lang['leave_comment'] = 'Cliquea aquí para añadir un comentario a este pbi';
+
+$lang['subscribe_pbi'] = 'Suscríbete para recibir actualizaciones de este PBI';
+$lang['unsubscribe_pbi'] = 'Cancela la suscripción para dejar de recibir actualizaciones de este PBI';
+
+$lang['succesfully_subscribed'] = 'Acaba de ser suscrito a este PBI con satisfacción';
+$lang['succesfully_unsubscribed'] = 'Acaba de cancelar la suscripción a este PBI con satisfacción';
+
+$lang['alternative'] = 'This PBI can be used as an alternative for';
 ?>
\ No newline at end of file

Modified: websites/pbidir.com/bibivu/etc/lang/it/pbi.lang.php
===================================================================
--- websites/pbidir.com/bibivu/etc/lang/it/pbi.lang.php	2008-02-27 02:03:16 UTC (rev 1459)
+++ websites/pbidir.com/bibivu/etc/lang/it/pbi.lang.php	2008-02-27 02:32:41 UTC (rev 1460)
@@ -1,28 +1,30 @@
-<?php
-//pbi strings
-$lang['description'] = 'Descrizione';
-$lang['vendor'] = 'Vendor';
-$lang['avg_rate'] = 'Voto Medio';
-$lang['your_rate'] = 'Il Tuo Voto';
-$lang['downloads'] = 'Downloads';
-$lang['licence'] = 'Licenza';
-$lang['maintainer'] = 'Maintainer';
-
-$lang['version'] = 'Versione';
-$lang['summary'] = 'Riepilogo';
-$lang['size'] = 'Grandezza';
-$lang['added'] = 'Aggiunta';
-
-$lang['login_to_vote'] = 'Fare il <a href="%s">Login</a> per poter votare';
-$lang['cannot_vote'] = 'Spiacente, Non puoi votare in questo momento!';
-
-$lang['login_to_comment'] = 'Fare il <a href="%s">Login</a> per poter aggiungere commenti';
-$lang['cannot_comment'] = 'Spiacente, Non puoi aggiungere commenti in questo momento!';
-$lang['leave_comment'] = 'Clicca per aggiungere un commento';
-
-$lang['subscribe_pbi'] = 'Iscriviti per ricevere gli aggiornamenti per questo PBI';
-$lang['unsubscribe_pbi'] = 'Deiscriviti dal ricevere gli aggiornamenti per questo PBI';
-
-$lang['succesfully_subscribed'] = 'Iscrizione per ricevere gli aggiornamenti per questo PBI riuscita con successo';
-$lang['succesfully_unsubscribed'] = 'Deiscrizione dal ricevere gli aggiornamenti per questo PBI riuscita con successo';
+<?php
+//pbi strings
+$lang['description'] = 'Descrizione';
+$lang['vendor'] = 'Vendor';
+$lang['avg_rate'] = 'Voto Medio';
+$lang['your_rate'] = 'Il Tuo Voto';
+$lang['downloads'] = 'Downloads';
+$lang['licence'] = 'Licenza';
+$lang['maintainer'] = 'Maintainer';
+
+$lang['version'] = 'Versione';
+$lang['summary'] = 'Riepilogo';
+$lang['size'] = 'Grandezza';
+$lang['added'] = 'Aggiunta';
+
+$lang['login_to_vote'] = 'Fare il <a href="%s">Login</a> per poter votare';
+$lang['cannot_vote'] = 'Spiacente, Non puoi votare in questo momento!';
+
+$lang['login_to_comment'] = 'Fare il <a href="%s">Login</a> per poter aggiungere commenti';
+$lang['cannot_comment'] = 'Spiacente, Non puoi aggiungere commenti in questo momento!';
+$lang['leave_comment'] = 'Clicca per aggiungere un commento';
+
+$lang['subscribe_pbi'] = 'Iscriviti per ricevere gli aggiornamenti per questo PBI';
+$lang['unsubscribe_pbi'] = 'Deiscriviti dal ricevere gli aggiornamenti per questo PBI';
+
+$lang['succesfully_subscribed'] = 'Iscrizione per ricevere gli aggiornamenti per questo PBI riuscita con successo';
+$lang['succesfully_unsubscribed'] = 'Deiscrizione dal ricevere gli aggiornamenti per questo PBI riuscita con successo';
+
+$lang['alternative'] = 'Questo PBI puo\' essere utilizzato come alternativa a';
 ?>
\ No newline at end of file

Modified: websites/pbidir.com/bibivu/lib/pbi.php
===================================================================
--- websites/pbidir.com/bibivu/lib/pbi.php	2008-02-27 02:03:16 UTC (rev 1459)
+++ websites/pbidir.com/bibivu/lib/pbi.php	2008-02-27 02:32:41 UTC (rev 1460)
@@ -1,402 +1,427 @@
-<?php  if (!defined('BASEPATH')) exit('No direct script access allowed');
-// ------------------------------------------------------------------------
-class pbi extends table_prototype{
-	/**
-	 * Initialize the default class
-	 *
-`	 * @access	private
-	 * @return	void
-	 */ 
-	public function __construct(){
-		parent::__construct();
-		$this->set_table_name('pbi');
-		$this->format =& load_library('format');
-	}
-	
-	public function get_related_tables(){
-		//this is the table that relate all the tables with each other
-		
-		if($this->related==array()){
-			$related = array();
-/*
-			$related[] = array(		'table'			=> 'user',
-									'field'			=> 'id',
-									'main_field'	=> 'id',
-									'show'			=> 'field',		//field, list	- field not working yet
-									'name'			=> 'Users',
-									'relation_table'=> array(
-															'name'			=> 'pbi_user',
-															'field_from'	=> 'pbi_id',
-															'field_to'		=> 'user_id',
-															),
-							  );
-*/
-			$related[] = array(		'table'			=> 'pbi_release',
-									'field'			=> 'pbi_id',
-									'main_field'	=> 'id',
-									'show'			=> 'list',		//field, list
-									'name'			=> 'Releases',
-									'autoopen'		=> false,
-									'relation_table'=> array(),
-							  );
-
-			$related[] = array(		'table'			=> 'pbi_image',
-									'field'			=> 'pbi_id',
-									'main_field'	=> 'id',
-									'show'			=> 'list',		//field, list
-									'name'			=> 'Images',
-									'autoopen'		=> false,
-									'relation_table'=> array(),
-							  );
-
-			$related[] = array(		'table'			=> 'status',
-									'field'			=> 'id',
-									'main_field'	=> 'current_status_id',
-									'show'			=> 'list',		//field, list
-									'name'			=> 'Statuses',
-									'autoopen'		=> false,
-									'relation_table'=> array(
-															'table'			=> 'pbi_status',
-															'field'			=> 'pbi_id',
-															'main_field'	=> 'id',
-															),
-							  );
-			$related[] = array(		'table'			=> 'user',
-									'field'			=> 'id',
-									'main_field'	=> 'user_id',
-									'show'			=> 'list',		//field, list
-									'name'			=> 'Subscriptions',
-									'autoopen'		=> false,
-									'relation_table'=> array(
-															'table'			=> 'subscriptions',
-															'field'			=> 'pbi_id',
-															'main_field'	=> 'id',
-															),
-							  );
-			$this->related = $related;
-		}
-		return $this->related;
-	}
-
-	public function get_fields(){
-		if($this->fields==array()){
-
-			$fields['id'] = array(		'show'	=> false,
-										'view_link'	=> false,
-										'edit'	=> false,
-										'type'	=> 'number',
-										'length'=> NULL,
-										'values'=> NULL,
-										'text'	=> 'id',
-										'required' => NULL,
-										'post'	=> true,
-										'default' => NULL,
-										'image'	=> false,
-								);
-			$fields['name'] = array(	'show'	=> true,
-										'view_link'=>true,
-										'edit'	=> true,
-										'type'	=> 'string',
-										'length'=> 40,
-										'values'=> NULL,
-										'text'	=> 'Name',
-										'required' => true,
-										'post'	=> true,
-										'default' => NULL,
-										'image'	=> false,
-								);
-			$filters = array();
-			$filters[] = array('field'=>'active', 'operator'=>'=', 'value'=>'y');
-			$tmps = $this->get_raw($filters, array('name'),array(), '','category');
-			$values = array();
-			foreach($tmps as $tmp){
-				$values[] = $tmp['id'].','.$tmp['name'];
-			}
-			$fields['category_id'] = array(	'show'	=> true,
-										'view_link'	=> false,
-										'edit'	=> true,
-										'type'	=> 'enum',
-										'length'=> NULL,
-										'values'=> implode('|',$values),
-										'text'	=> 'Category',
-										'required' => NULL,
-										'post'	=> true,
-										'default' => 'y',
-										'image'	=> false,
-								);
-			$filters = array();
-			$filters[] = array('field'=>'active', 'operator'=>'=', 'value'=>'y');
-			$tmps = $this->get_raw($filters, array('name'),array(), '','licence');
-			$values = array();
-			foreach($tmps as $tmp){
-				$values[] = $tmp['id'].','.$tmp['name'];
-			}
-			$fields['licence_id'] = array(	'show'	=> false,
-										'view_link'	=> false,
-										'edit'	=> true,
-										'type'	=> 'enum',
-										'length'=> NULL,
-										'values'=> implode('|',$values),
-										'text'	=> 'Licence',
-										'required' => NULL,
-										'post'	=> true,
-										'default' => 'y',
-										'image'	=> false,
-								);
-			$filters = array();
-			$filters[] = array('field'=>'status', 'operator'=>'=', 'value'=>'active');
-			$tmps = $this->get_raw($filters, array('name'),array(), '','user');
-			$values = array();
-			foreach($tmps as $tmp){
-				$values[] = $tmp['id'].','.($tmp['name']!=''?$tmp['name']:$tmp['user']);
-			}
-			$fields['user_id'] = array(	'show'	=> false,
-										'view_link'	=> false,
-										'edit'	=> true,
-										'type'	=> 'enum',
-										'length'=> NULL,
-										'values'=> implode('|',$values),
-										'text'	=> 'User',
-										'required' => NULL,
-										'post'	=> true,
-										'default' => 'y',
-										'image'	=> false,
-								);
-			$fields['summary'] = array(	'show'	=> true,
-										'view_link'	=> false,
-										'edit_link'=>false,
-										'edit'	=> true,
-										'type'	=> 'string',
-										'length'=> 255,
-										'values'=> NULL,
-										'text'	=> 'Summary',
-										'required' => false,
-										'post'	=> true,
-										'default' => NULL,
-										'image'	=> false,
-								);
-			$fields['description'] = array(	'show'	=> false,
-										'view_link'	=> false,
-										'edit_link'=>false,
-										'edit'	=> true,
-										'type'	=> 'text',
-										'length'=> 255,
-										'values'=> NULL,
-										'text'	=> 'Description',
-										'required' => false,
-										'post'	=> true,
-										'default' => NULL,
-										'image'	=> false,
-								);
-			$fields['vendor_name'] = array(	'show'	=> false,
-										'view_link'	=> false,
-										'edit_link'=>false,
-										'edit'	=> true,
-										'type'	=> 'string',
-										'length'=> 255,
-										'values'=> NULL,
-										'text'	=> 'Vendor Name',
-										'required' => false,
-										'post'	=> true,
-										'default' => NULL,
-										'image'	=> false,
-								);
-			$fields['vendor_url'] = array(	'show'	=> false,
-										'view_link'	=> false,
-										'edit_link'=>false,
-										'edit'	=> true,
-										'type'	=> 'string',
-										'length'=> 40,
-										'values'=> NULL,
-										'text'	=> 'Vendor URI',
-										'required' => false,
-										'post'	=> true,
-										'default' => NULL,
-										'image'	=> false,
-								);
-			$fields['keep_versions'] = array(	'show'	=> false,
-										'view_link'	=> false,
-										'edit'	=> true,
-										'type'	=> 'enum',
-										'length'=> NULL,
-										'values'=> '0,All|1|2|3|4|5|6|7|8|9|10',
-										'text'	=> 'Versions to Keep',
-										'required' => NULL,
-										'post'	=> true,
-										'default' => 'y',
-										'image'	=> false,
-								);
-			$fields['active'] = array(	'show'	=> true,
-										'view_link'	=> false,
-										'edit'	=> true,
-										'type'	=> 'enum',
-										'length'=> NULL,
-										'values'=> 'y,Yes|n,No',
-										'text'	=> 'Active',
-										'required' => NULL,
-										'post'	=> true,
-										'default' => 'y',
-										'image'	=> false,
-								);
-			$fields['date_last_status_id'] = array(		'show'	=> 'field',
-										'view_link'	=> false,
-										'edit'	=> false,
-										'type'	=> 'date',
-										'length'=> NULL,
-										'values'=> NULL,
-										'text'	=> 'Last Updated',
-										'required' => NULL,
-										'post'	=> true,
-										'default' => NULL,
-										'image'	=> false,
-								);
-			$fields['date_last_modified'] = array(		'show'	=> 'field',
-										'view_link'	=> false,
-										'edit'	=> false,
-										'type'	=> 'date',
-										'length'=> NULL,
-										'values'=> NULL,
-										'text'	=> 'Last Modified',
-										'required' => NULL,
-										'post'	=> true,
-										'default' => NULL,
-										'image'	=> false,
-								);
-			$fields['date_added'] = array(		'show'	=> false,
-										'view_link'	=> false,
-										'edit'	=> false,
-										'type'	=> 'date',
-										'length'=> NULL,
-										'values'=> NULL,
-										'text'	=> 'Date Added',
-										'required' => NULL,
-										'post'	=> true,
-										'default' => NULL,
-										'image'	=> false,
-								);
-			$fields['status'] = array(		'show'	=> 'view',
-										'view_link'	=> false,
-										'edit'	=> false,
-										'type'	=> 'enum',
-										'length'=> NULL,
-										'values'=> NULL,
-										'text'	=> 'Status',
-										'required' => NULL,
-										'post'	=> false,
-										'default' => NULL,
-										'image'	=> false,
-								);
-			$fields['icon'] = array(		'show'	=> true,
-										'view_link'	=> false,
-										'edit'	=> true,
-										'type'	=> 'file',
-										'length'=> 255,
-										'values'=> NULL,
-										'text'	=> 'Icon',
-										'required' => false,
-										'post'	=> true,
-										'default' => NULL,
-										'image'	=> true,
-										'image_width' => 40,
-										'image_heigth' => NULL,
-								);
-			$this->fields = $fields;
-		}
-		return $this->fields;
-	}
-	
-	public function vote_pbi($pbi_id,$vote){
-		if(is_numeric($vote) && $vote>0){
-			$filters = array(
-							array('field'=>'active', 'operator'=>'=', 'value'=>'y'),
-							array('field'=>'id', 'operator'=>'=', 'value'=>$pbi_id)
-						);
-			$ret = $this->update()->set('total_votes','total_votes+1',true)->set('total_points','total_points + '.$vote,true)->where($filters)->do_db();
-			if($ret!==false){
-				$_SESSION['votes'][$pbi_id] = $vote;
-				return true;
-			}
-		}
-		return false;
-	}
-	
-	public function get_vote($pbi_id){
-		$filters = array(
-						array('field'=>'id', 'operator'=>'=', 'value'=>$pbi_id)
-					);
-		$ret = $this->select()->fields(array('total_points','total_votes'))->where($filters)->do_db()->db->fetch_array($this->last_result());
-		if($ret!==false){
-			return (($ret['total_points']+5)/($ret['total_votes']+1));
-		} else {
-			return 'Error Retrieving Vote!!';
-		}
-	}
-	
-	public function get_info(){
-		//I only format all the output
-		$return = parent::get_info();
-		if(!isset($return['status'])){		//do this only once
-			$return['id']					= $this->get('id');
-//			$return['name']					= $this->get('name').$this->get('version');
-//			$return['date_last_status_id']	= $this->format->date($this->get('date_last_status_id'));
-//			$return['date_last_modified']	= $this->format->date($this->get('date_last_modified'));
-//			$return['date_added']			= $this->format->date($this->get('date_added'));
-			$return['rating']				= $this->format->number_format(($this->get('total_points')+5)/($this->get('total_votes')+1),2);
-//			$return['total_download']		= $this->format->number_format($this->get('total_download'));
-			$return['licence']				= isset($return['licence_id'])? $this->get_record($return['licence_id'],'licence')->get('name'):'';
-			$return['status']				= isset($return['current_status_id'])? $this->get_record($return['current_status_id'],'status')->get('name'):'';
-			if(isset($return['user_id'])){
-				$user = $this->get_record($return['user_id'],'user');
-				$return['contributor_name']		= $user->get('name');
-				$return['contributor_email']	= $user->get('email');
-			} else {
-				$return['contributor_name']		= '';
-				$return['contributor_email']	= '';
-			}
-			$this->current = $return;
-		}
-		return $return;
-	}
-	
-	public function add_comment($pbi_id, $comment, $user_id=0, $user='', $IP=NULL){
-		if(trim($comment)!=''){
-			if(is_null($IP)){
-				$IP = $_SERVER['REMOTE_ADDR'];
-			}
-			$ret = $this->insert()->from('pbi_comment')->set('pbi_id',$pbi_id)->set('user_id',$user_id)->set('user',$user)->set('comment',$comment)->set('ip',$IP)->do_db();
-			if($ret!==false){
-				return $this->db->insert_id();
-//				return true;
-			}
-		}
-		return false;
-	}
-	
-	public function delete_comment($pbi_id, $id){
-		$filters = array();
-		$filters[] = array('field'=>'active', 'operator'=>'=', 'value'=>'y');
-		$filters[] = array('field'=>'pbi_id', 'operator'=>'=', 'value'=>$pbi_id);
-		$filters[] = array('field'=>'id', 'operator'=>'=', 'value'=>$id);
-		return $this->update()->from('pbi_comment')->set('active','n')->where($filters)->do_db();
-//		return $this->delete()->from('pbi_comment')->where($filters);
-	}
-
-	public function add($tt_post){
-		$tt_post['date_added'] = strftime('%Y-%m-%d %T');
-//		$tt_post['date_added'] = date('Y-m-d');
-		return parent::add($tt_post);
-	}
-/*
-	public function get_all($where=array(), $orders=array(), $group=array(), $limit='', $from='', $join = array(), $xtrfields = array()){
-		$fields = $this->get_fields();
-		$str = '^('.implode('|', array_keys($fields)).').?(ASC|DESC)?$';
-		foreach($orders as $key=>$order){
-			if(!eregi($str,$order)){
-				$orders[$key] = 'name';
-			}
-		}
-		return parent::get_all($where, $orders, $group, $limit, $from, $join, $xtrfields);
-	}
-*/
-}
+<?php  if (!defined('BASEPATH')) exit('No direct script access allowed');
+// ------------------------------------------------------------------------
+class pbi extends table_prototype{
+	/**
+	 * Initialize the default class
+	 *
+`	 * @access	private
+	 * @return	void
+	 */ 
+	public function __construct(){
+		parent::__construct();
+		$this->set_table_name('pbi');
+		$this->format =& load_library('format');
+	}
+	
+	public function get_related_tables(){
+		//this is the table that relate all the tables with each other
+		
+		if($this->related==array()){
+			$related = array();
+/*
+			$related[] = array(		'table'			=> 'user',
+									'field'			=> 'id',
+									'main_field'	=> 'id',
+									'show'			=> 'field',		//field, list	- field not working yet
+									'name'			=> 'Users',
+									'relation_table'=> array(
+															'name'			=> 'pbi_user',
+															'field_from'	=> 'pbi_id',
+															'field_to'		=> 'user_id',
+															),
+							  );
+*/
+			$related[] = array(		'table'			=> 'pbi_release',
+									'field'			=> 'pbi_id',
+									'main_field'	=> 'id',
+									'show'			=> 'list',		//field, list
+									'name'			=> 'Releases',
+									'autoopen'		=> false,
+									'relation_table'=> array(),
+							  );
+
+			$related[] = array(		'table'			=> 'pbi_image',
+									'field'			=> 'pbi_id',
+									'main_field'	=> 'id',
+									'show'			=> 'list',		//field, list
+									'name'			=> 'Images',
+									'autoopen'		=> false,
+									'relation_table'=> array(),
+							  );
+
+			$related[] = array(		'table'			=> 'status',
+									'field'			=> 'id',
+									'main_field'	=> 'current_status_id',
+									'show'			=> 'list',		//field, list
+									'name'			=> 'Statuses',
+									'autoopen'		=> false,
+									'relation_table'=> array(
+															'table'			=> 'pbi_status',
+															'field'			=> 'pbi_id',
+															'main_field'	=> 'id',
+															),
+							  );
+			$related[] = array(		'table'			=> 'user',
+									'field'			=> 'id',
+									'main_field'	=> 'user_id',
+									'show'			=> 'list',		//field, list
+									'name'			=> 'Subscriptions',
+									'autoopen'		=> false,
+									'relation_table'=> array(
+															'table'			=> 'subscriptions',
+															'field'			=> 'pbi_id',
+															'main_field'	=> 'id',
+															),
+							  );
+			$this->related = $related;
+		}
+		return $this->related;
+	}
+
+	public function get_fields(){
+		if($this->fields==array()){
+
+			$fields['id'] = array(		'show'	=> false,
+										'view_link'	=> false,
+										'edit'	=> false,
+										'type'	=> 'number',
+										'length'=> NULL,
+										'values'=> NULL,
+										'text'	=> 'id',
+										'required' => NULL,
+										'post'	=> true,
+										'default' => NULL,
+										'image'	=> false,
+								);
+			$fields['name'] = array(	'show'	=> true,
+										'view_link'=>true,
+										'edit'	=> true,
+										'type'	=> 'string',
+										'length'=> 40,
+										'values'=> NULL,
+										'text'	=> 'Name',
+										'required' => true,
+										'post'	=> true,
+										'default' => NULL,
+										'image'	=> false,
+								);
+			$filters = array();
+			$filters[] = array('field'=>'active', 'operator'=>'=', 'value'=>'y');
+			$tmps = $this->get_raw($filters, array('name'),array(), '','category');
+			$values = array();
+			foreach($tmps as $tmp){
+				$values[] = $tmp['id'].','.$tmp['name'];
+			}
+			$fields['category_id'] = array(	'show'	=> true,
+										'view_link'	=> false,
+										'edit'	=> true,
+										'type'	=> 'enum',
+										'length'=> NULL,
+										'values'=> implode('|',$values),
+										'text'	=> 'Category',
+										'required' => NULL,
+										'post'	=> true,
+										'default' => 'y',
+										'image'	=> false,
+								);
+			$filters = array();
+			$filters[] = array('field'=>'active', 'operator'=>'=', 'value'=>'y');
+			$tmps = $this->get_raw($filters, array('name'),array('name'), '','licence');
+			$values = array();
+			foreach($tmps as $tmp){
+				$values[] = $tmp['id'].','.$tmp['name'];
+			}
+			$fields['licence_id'] = array(	'show'	=> false,
+										'view_link'	=> false,
+										'edit'	=> true,
+										'type'	=> 'enum',
+										'length'=> NULL,
+										'values'=> implode('|',$values),
+										'text'	=> 'Licence',
+										'required' => NULL,
+										'post'	=> true,
+										'default' => 'y',
+										'image'	=> false,
+								);
+			$filters = array();
+			$filters[] = array('field'=>'status', 'operator'=>'=', 'value'=>'active');
+			$tmps = $this->get_raw($filters, array('name'),array(), '','user');
+			$values = array();
+			foreach($tmps as $tmp){
+				$values[] = $tmp['id'].','.($tmp['name']!=''?$tmp['name']:$tmp['user']);
+			}
+			$fields['user_id'] = array(	'show'	=> false,
+										'view_link'	=> false,
+										'edit'	=> true,
+										'type'	=> 'enum',
+										'length'=> NULL,
+										'values'=> implode('|',$values),
+										'text'	=> 'User',
+										'required' => NULL,
+										'post'	=> true,
+										'default' => 'y',
+										'image'	=> false,
+								);
+			$fields['summary'] = array(	'show'	=> true,
+										'view_link'	=> false,
+										'edit_link'=>false,
+										'edit'	=> true,
+										'type'	=> 'string',
+										'length'=> 255,
+										'values'=> NULL,
+										'text'	=> 'Summary',
+										'required' => false,
+										'post'	=> true,
+										'default' => NULL,
+										'image'	=> false,
+								);
+			$fields['description'] = array(	'show'	=> false,
+										'view_link'	=> false,
+										'edit_link'=>false,
+										'edit'	=> true,
+										'type'	=> 'text',
+										'length'=> 255,
+										'values'=> NULL,
+										'text'	=> 'Description',
+										'required' => false,
+										'post'	=> true,
+										'default' => NULL,
+										'image'	=> false,
+								);
+			$fields['vendor_name'] = array(	'show'	=> false,
+										'view_link'	=> false,
+										'edit_link'=>false,
+										'edit'	=> true,
+										'type'	=> 'string',
+										'length'=> 255,
+										'values'=> NULL,
+										'text'	=> 'Vendor Name',
+										'required' => false,
+										'post'	=> true,
+										'default' => NULL,
+										'image'	=> false,
+								);
+			$fields['vendor_url'] = array(	'show'	=> false,
+										'view_link'	=> false,
+										'edit_link'=>false,
+										'edit'	=> true,
+										'type'	=> 'string',
+										'length'=> 40,
+										'values'=> NULL,
+										'text'	=> 'Vendor URI',
+										'required' => false,
+										'post'	=> true,
+										'default' => NULL,
+										'image'	=> false,
+								);
+			$fields['alternative_for'] = array(	'show'	=> true,
+										'view_link'	=> false,
+										'edit_link'=>false,
+										'edit'	=> true,
+										'type'	=> 'string',
+										'length'=> 50,
+										'values'=> NULL,
+										'text'	=> 'Alternative For',
+										'required' => false,
+										'post'	=> true,
+										'default' => NULL,
+										'image'	=> false,
+								);
+			$fields['use_wine'] = array(	'show'	=> true,
+										'view_link'	=> false,
+										'edit'	=> true,
+										'type'	=> 'enum',
+										'length'=> NULL,
+										'values'=> 'y,Yes|n,No',
+										'text'	=> 'Use Wine',
+										'required' => NULL,
+										'post'	=> true,
+										'default' => 'n',
+										'image'	=> false,
+								);
+			$fields['keep_versions'] = array(	'show'	=> false,
+										'view_link'	=> false,
+										'edit'	=> true,
+										'type'	=> 'enum',
+										'length'=> NULL,
+										'values'=> '0,All|1|2|3|4|5|6|7|8|9|10',
+										'text'	=> 'Versions to Keep',
+										'required' => NULL,
+										'post'	=> true,
+										'default' => 'y',
+										'image'	=> false,
+								);
+			$fields['active'] = array(	'show'	=> true,
+										'view_link'	=> false,
+										'edit'	=> true,
+										'type'	=> 'enum',
+										'length'=> NULL,
+										'values'=> 'y,Yes|n,No',
+										'text'	=> 'Active',
+										'required' => NULL,
+										'post'	=> true,
+										'default' => 'y',
+										'image'	=> false,
+								);
+			$fields['date_last_status_id'] = array(		'show'	=> 'field',
+										'view_link'	=> false,
+										'edit'	=> false,
+										'type'	=> 'date',
+										'length'=> NULL,
+										'values'=> NULL,
+										'text'	=> 'Last Updated',
+										'required' => NULL,
+										'post'	=> true,
+										'default' => NULL,
+										'image'	=> false,
+								);
+			$fields['date_last_modified'] = array(		'show'	=> 'field',
+										'view_link'	=> false,
+										'edit'	=> false,
+										'type'	=> 'date',
+										'length'=> NULL,
+										'values'=> NULL,
+										'text'	=> 'Last Modified',
+										'required' => NULL,
+										'post'	=> true,
+										'default' => NULL,
+										'image'	=> false,
+								);
+			$fields['date_added'] = array(		'show'	=> false,
+										'view_link'	=> false,
+										'edit'	=> false,
+										'type'	=> 'date',
+										'length'=> NULL,
+										'values'=> NULL,
+										'text'	=> 'Date Added',
+										'required' => NULL,
+										'post'	=> true,
+										'default' => NULL,
+										'image'	=> false,
+								);
+			$fields['status'] = array(		'show'	=> 'view',
+										'view_link'	=> false,
+										'edit'	=> false,
+										'type'	=> 'enum',
+										'length'=> NULL,
+										'values'=> NULL,
+										'text'	=> 'Status',
+										'required' => NULL,
+										'post'	=> false,
+										'default' => NULL,
+										'image'	=> false,
+								);
+			$fields['icon'] = array(		'show'	=> true,
+										'view_link'	=> false,
+										'edit'	=> true,
+										'type'	=> 'file',
+										'length'=> 255,
+										'values'=> NULL,
+										'text'	=> 'Icon',
+										'required' => false,
+										'post'	=> true,
+										'default' => NULL,
+										'image'	=> true,
+										'image_width' => 40,
+										'image_heigth' => NULL,
+								);
+			$this->fields = $fields;
+		}
+		return $this->fields;
+	}
+	
+	public function vote_pbi($pbi_id,$vote){
+		if(is_numeric($vote) && $vote>0){
+			$filters = array(
+							array('field'=>'active', 'operator'=>'=', 'value'=>'y'),
+							array('field'=>'id', 'operator'=>'=', 'value'=>$pbi_id)
+						);
+			$ret = $this->update()->set('total_votes','total_votes+1',true)->set('total_points','total_points + '.$vote,true)->where($filters)->do_db();
+			if($ret!==false){
+				$_SESSION['votes'][$pbi_id] = $vote;
+				return true;
+			}
+		}
+		return false;
+	}
+	
+	public function get_vote($pbi_id){
+		$filters = array(
+						array('field'=>'id', 'operator'=>'=', 'value'=>$pbi_id)
+					);
+		$ret = $this->select()->fields(array('total_points','total_votes'))->where($filters)->do_db()->db->fetch_array($this->last_result());
+		if($ret!==false){
+			return (($ret['total_points']+5)/($ret['total_votes']+1));
+		} else {
+			return 'Error Retrieving Vote!!';
+		}
+	}
+	
+	public function get_info(){
+		//I only format all the output
+		$return = parent::get_info();
+		if(!isset($return['status'])){		//do this only once
+			$return['id']					= $this->get('id');
+//			$return['name']					= $this->get('name').$this->get('version');
+//			$return['date_last_status_id']	= $this->format->date($this->get('date_last_status_id'));
+//			$return['date_last_modified']	= $this->format->date($this->get('date_last_modified'));
+//			$return['date_added']			= $this->format->date($this->get('date_added'));
+			$return['rating']				= $this->format->number_format(($this->get('total_points')+5)/($this->get('total_votes')+1),2);
+//			$return['total_download']		= $this->format->number_format($this->get('total_download'));
+			$return['licence']				= isset($return['licence_id'])? $this->get_record($return['licence_id'],'licence')->get('name'):'';
+			$return['status']				= isset($return['current_status_id'])? $this->get_record($return['current_status_id'],'status')->get('name'):'';
+			if(isset($return['user_id'])){
+				$user = $this->get_record($return['user_id'],'user');
+				$return['contributor_name']		= $user->get('name');
+				$return['contributor_email']	= $user->get('email');
+			} else {
+				$return['contributor_name']		= '';
+				$return['contributor_email']	= '';
+			}
+			$this->current = $return;
+		}
+		return $return;
+	}
+	
+	public function add_comment($pbi_id, $comment, $user_id=0, $user='', $IP=NULL){
+		if(trim($comment)!=''){
+			if(is_null($IP)){
+				$IP = $_SERVER['REMOTE_ADDR'];
+			}
+			$ret = $this->insert()->from('pbi_comment')->set('pbi_id',$pbi_id)->set('user_id',$user_id)->set('user',$user)->set('comment',$comment)->set('ip',$IP)->do_db();
+			if($ret!==false){
+				return $this->db->insert_id();
+//				return true;
+			}
+		}
+		return false;
+	}
+	
+	public function delete_comment($pbi_id, $id){
+		$filters = array();
+		$filters[] = array('field'=>'active', 'operator'=>'=', 'value'=>'y');
+		$filters[] = array('field'=>'pbi_id', 'operator'=>'=', 'value'=>$pbi_id);
+		$filters[] = array('field'=>'id', 'operator'=>'=', 'value'=>$id);
+		return $this->update()->from('pbi_comment')->set('active','n')->where($filters)->do_db();
+//		return $this->delete()->from('pbi_comment')->where($filters);
+	}
+
+	public function add($tt_post){
+		$tt_post['date_added'] = strftime('%Y-%m-%d %T');
+//		$tt_post['date_added'] = date('Y-m-d');
+		return parent::add($tt_post);
+	}
+/*
+	public function get_all($where=array(), $orders=array(), $group=array(), $limit='', $from='', $join = array(), $xtrfields = array()){
+		$fields = $this->get_fields();
+		$str = '^('.implode('|', array_keys($fields)).').?(ASC|DESC)?$';
+		foreach($orders as $key=>$order){
+			if(!eregi($str,$order)){
+				$orders[$key] = 'name';
+			}
+		}
+		return parent::get_all($where, $orders, $group, $limit, $from, $join, $xtrfields);
+	}
+*/
+}
 ?>
\ No newline at end of file

Modified: websites/pbidir.com/bibivu/tpl/css/pbidir.css
===================================================================
--- websites/pbidir.com/bibivu/tpl/css/pbidir.css	2008-02-27 02:03:16 UTC (rev 1459)
+++ websites/pbidir.com/bibivu/tpl/css/pbidir.css	2008-02-27 02:32:41 UTC (rev 1460)
@@ -1,696 +1,703 @@
-body {
-	font: 0.75em Verdana, Helvetica, sans-serif;
-	background: #f2f2f2;
-	margin: 0;
-	padding: 0;
-}
-
-a:link, a:visited {
-	color: #005dab;
-}
-
-a:hover {
-	color: #00325d;
-}
-
-.dp, .dp a {
-	color: #ccc;
-}
-
-ul {
-	list-style: none;
-}
-
-.clear {
-	clear: both;
-}
-
-.mirrors li {
-}
-
-#container {
-	width: 100%;
-	text-align: center;
-}
-
-#main {
-	width: 750px;
-	text-align: left;
-	margin: 0 auto;
-	background: #fff;
-	border-left: 1px solid #7397ab;
-	border-right: 1px solid #7397ab;
-}
-
-#header {
-	height: 100px;
-	background: url(/bibivu/tpl/pbidir/images/top.png) repeat-x;
-}
-
-#header p {
-	padding: 0;
-	margin: 10px 0 0 15px;
-}
-
-#logo {
-	margin: 0;
-	padding: 0;
-	width: 250px;
-	height: 55px;
-	background: url(/bibivu/tpl/pbidir/images/pbidir.png) no-repeat;
-	font-size: 1px;
-}
-
-#logo a {
-	display: block;
-	width: 150px;
-	height: 55px;
-	text-decoration: none;
-	color: #fff;
-}
-
-form {
-	margin: 0;
-	padding: 0;
-}
-
-a img {
-	border: none;
-}
-
-#banner {
-	text-align: center;
-}
-
-#banner img {
-	padding: 1px;
-	border: 1px solid #ddd;
-	margin: 10px auto;
-}
-
-input, select, textarea {
-	vertical-align: middle;
-	border:1px solid #000000;
-	padding:2px;
-}
-input.required, select.required, textarea.required{
-	border:1px solid #FF0000;
-}
-
-h1 {
-	font: bold 1.8em "Arial Narrow", Helvetica, sans-serif;
-	color: #0075d8;
-	margin: 0.2em 0;
-	padding: 0;
-}
-
-h2 {
-	font: bold 1.1em Verdana, Helvetica, sans-serif;
-	color: #a20000;
-	margin: 0.2em 0;
-	padding: 0;
-}
-
-#popular h1 {
-	margin-left: 10px;
-}
-
-#softicons {
-	height: 85px;
-	background: url(/bibivu/tpl/pbidir/images/shadow.png) repeat-x;
-	padding: 5px 0;
-}
-
-#softicons ul {
-	list-style: none;
-	padding: 0;
-	margin: 0;
-}
-
-#softicons li {
-	display: block;
-	float: left;
-	voice-family: "\"}\"";
-	voice-family: inherit;
-	border-left: 1px solid #a8a8a8;
-}
-
-#softicons li.first {
-	voice-family: "\"}\"";
-	voice-family: inherit;
-	border-left: none;
-}
-
-#content {
-/*	clear: left;*/
-	padding: 1em;
-	vertical-align:top;
-}
-
-#softlist {
-	width: 100%;
-}
-
-#stats {
-	float: right;
-	width: 20%;
-	padding-left: 10px;
-}
-
-#stats ol {
-	margin: 0;
-	padding: 0;
-	font-size: 0.9em;
-}
-
-#stats li {
-	padding: 0;
-	margin: 0;
-}
-
-/*			Home page: List of categs			*/
-
-#cats {
-	float: left;
-	width: 74%;
-	border-right: 1px solid #eee;
-	padding-right: 10px; 
-}
-
-#cats ul {
-	margin: 0;
-	padding: 0;
-	list-style: none;
-}
-
-html>body #cats ul {
-	width: 100%;
-}
-
-#cats li {
-	width: 100%;
-	border-bottom: 1px solid #ddd;
-	padding-bottom: 5px;
-	margin-bottom: 5px;
-}
-
-
-#cats li img {
-	float: left;
-	display: block;
-	margin: 0 5px 0 0;
-}
-
-.categ {
-	height: 50px;
-}
-
-.categname {
-	font: bold  18px Arial, Helvetica, sans-serif;
-	padding: 5px 0 0 0;
-}
-
-
-/*			Separation			*/
-
-div.separ {
-	clear: both;
-	height: 3px;
-	background: #a70000;
-	border-bottom: 2px solid #eee;
-}
-
-div.separ hr {
-	display: none;
-}
-
-div.separ_comment {
-	clear: both;
-	height: 2px;
-	background: #a70000;
-	border-bottom: 1px solid #eee;
-	margin-bottom:10px;
-}
-
-div.separ_comment hr {
-	display: none;
-}
-
-/*			Footer			*/
-
-#footer {
-	clear: both;
-	font-size: 0.85em;
-	color: #666;
-	padding:5px;
-}
-
-/*			Software list			*/
-
-.breadcrumbs {
-	list-style: none;
-	margin: 1em 0;
-	padding: 0;
-}
-
-.breadcrumbs li {
-	display: inline;
-	padding: 0 10px;
-	background: url(/bibivu/tpl/pbidir/images/bullet.gif) 0 50% no-repeat;
-}
-
-.desc {
-	background: url(/bibivu/tpl/pbidir/images/decr.gif) 0 65% no-repeat;
-	padding-left: 10px;
-}
-
-.asc {
-	background: url(/bibivu/tpl/pbidir/images/cres.gif) 0 65% no-repeat;
-	padding-left: 10px;
-}
-
-table.packages {
-	width: 100%;
-	border-collapse: collapse;
-}
-
-table.packages th {
-	background: #eee;
-	padding: 5px;
-	text-align: center;
-}
-
-table.packages td {
-	border-bottom: 1px solid #666;
-	padding: 1em 0;
-}
-
-table.packages th.name {
-	text-align: left;
-	width: 40%;
-}
-
-table.packages td.name {
-	width: 40%;
-}
-
-table.packages th.added, table.packages td.added {
-	text-align: center;
-	width: 15%;
-}
-
-table.packages th.rating, table.packages td.rating {
-	text-align: center;
-	width: 15%;
-}
-
-table.packages th.counter, table.packages td.counter {
-	text-align: center;
-	width: 15%;
-}
-
-table.packages th.links {
-	text-align: center;
-	width: 15%;
-}
-
-table.packages td.links {
-	width: 15%;
-}
-
-table.packages table {
-	width: 100px;
-	margin: 0 auto;
-}
-
-table.packages table td {
-	border: none;
-	margin: 0 10px;
-}
-
-table.packages ul {
-	list-style: none;
-	padding: 0;
-	margin: 0;
-}
-
-table.packages li {
-	padding: 0 0 0.2em 15px;
-	margin: 0;
-	background: url(/bibivu/tpl/pbidir/images/bullet.png) 0 65% no-repeat;
-	font-size: 0.9em;
-}
-
-table.packages .quickdesc {
-	font-size: 11px;
-}
-
-table.packages h1 a {
-	font: bold 12px Verdana, Helvetica, sans-serif;
-	color: #a00000;
-}
-
-/*				Details		*/
-
-tr.highlight {
-	background: #eee;
-}
-
-div.downlinks {
-	margin:0 10px 10px 0;
-}
-
-div.downlinks ul {
-	margin: 0;
-	padding: 0;
-	list-style: none;
-}
-
-div.downlinks li {
-	padding: 0.2em 0;
-	margin: 0;
-}
-
-/*			Admin			*/
-
-ul.adminbar {
-	margin: 0;
-	padding: 3px;
-	list-style: none;
-	background: #eef4f6;
-}
-
-ul.adminbar li {
-	margin: 0;
-	display: inline;
-	background: url(/bibivu/tpl/pbidir/images/separ.png) 0 75% no-repeat;
-	padding: 0 5px;
-}
-
-ul.adminbar li.first {
-	background: url(/bibivu/tpl/pbidir/images/bullet.gif) 0 75% no-repeat;
-	padding: 0 0 0 10px;
-}
-
-.search_text{
-}
-.search_button{
-}
-#search_form{
-	margin:10px;
-}
-.rating_bar{
-	height: 14px;
-	background-color: #FBFFAA;
-	border-right:1px solid #FF3300;
-	text-align:right;
-	padding:1px 2px 1px 1px;
-}
-.container_rating_bar{
-	background-color: #EAEAEA;
-	border:1px inset #B863E4;
-	width:101px;
-	text-align:left;
-}
-
-/*   votes   */
-.vote_box{
-	background-color: #EAEAEA;
-	border:1px inset #B863E4;
-	width:101px;
-	height: 14px;
-}
-.vote_vote a, .vote_vote{
-	float:left;
-	width:9px;
-	text-decoration:none;
-	text-align:right;
-	color:#000;
-}
-#vote_10{
-	width:19px;
-}
-.vote_selected{
-	border-right:1px solid #FF3300;
-}
-.vote_selected_back{
-	background-color: #FBFFAA;
-}
-.window{
-  border:1px solid #DEDEDE;
-  text-align:center;
-  background-color:#FAFAFA;
-  vertical-align:middle;
-}
-.error_message{
-	border:1px solid #FF0000;
-	background-color:#FFFFCC;
-	color:#FF0000;
-	font-size:12px;
-	padding:2px;
-	font-weight:bold;
-	margin:4px;
-}
-/*   comments   */
-#comment_form_div{
-	font-size:10px;
-}
-#submit_comment{
-}
-
-.button{
-	font-size:12px;
-	color:#797979;
-	font-weight:bold;
-	border:1px solid #EBEBEB;
-	background-color:#F5F5F5;
-	text-decoration:none;
-}
-.button:hover{
-	color:#000000;
-}
-.comment_form{
-	width:100%;
-}
-.textareabox{
-	width:100%;
-	height:100px;
-}
-.comment_message{
-	font-size:10px;
-	border: 1px solid #EBEBEB;
-	margin:4px 4px 10px 4px;
-}
-.comment_header{
-	width:100%;
-	background-color:#F5F5F5;
-	height:16px;
-	border-bottom: 1px solid #EBEBEB;
-}
-.comment_user{
-	text-align:left;
-	float:left;
-	padding:2px;
-	text-decoration:none;
-}
-.comment_user a{
-	text-decoration:none;
-}
-.comment_date{
-	text-align:right;
-	float:right;
-	padding:2px;
-}
-.comment_actions{
-	text-align:right;
-	float:right;
-	padding:2px;
-}
-.comment_body{
-	clear:both;
-	margin:2px;
-	padding:4px;
-	font-size:12px;
-}
-
-/*   admin   */
-.admin_menu{
-	border: 1px solid #EBEBEB;
-	background-color:#F5F5F5;
-/*	height:16px;	*/
-	margin:0 0 5px 0;
-	text-align:center;
-	font-weight:bold;
-}
-.admin_menu ul{
-	padding:0 0 0 10px;
-	margin:0px;
-	list-style:none;
-	font-weight:bold;
-}
-.admin_menu ul li{
-	float:left;
-	padding-left:10px;
-}
-
-.admin_menu ul li a{
-	font-weight:normal;
-}
-
-/*   list    */
-.list{
-	border:1px double #EBEBEB;
-	width:100%;
-	margin:0px;
-	padding:0px;
-	border-spacing:0px;
-}
-
-.list .row{
-	border-spacing:0px;
-	width:100%;
-	height:16px;
-	clear:both;
-}
-
-.row_odd{
-	background-color:#F3F3F3;
-}
-.row_even{
-}
-.row_hover{
-	background-color:#E1E8FF;
-}
-.row_highlight{
-	background-color:#D9D9FF;
-}
-
-.list .head{
-	font-weight:bold;
-	background-color:#F5F5F5;
-	text-align:center;
-	height:25px;
-}
-.list .head .row a{
-	color:#000000;
-}
-.list .foot{
-	font-weight:bold;
-	background-color:#F5F5F5;
-}
-
-.list .foot .field{
-	margin:0px;
-	padding:2px 0 2px 0;
-	border-top:1px solid #000;
-}
-.list .field{
-	margin:0px;
-	padding:0px 2px 0px 2px;
-}
-.list .field_edit{
-	text-decoration:none;
-}
-.list td{
-	border-left:2px solid #F5F5F5;
-}
-th.headerSortUp, th.headerSortDown{
-	background-color: #E1E8FF;
-}
-th.headerSortUp a, th.headerSortDown a{
-	color:#FFFFFF;
-	text-decoration:none;
-	padding-left: 10px;
-}
-th.headerSortDown a{
-	background: url(/bibivu/tpl/pbidir/images/decr.gif) 0 65% no-repeat;
-}
-
-th.headerSortUp a{
-	background: url(/bibivu/tpl/pbidir/images/cres.gif) 0 65% no-repeat;
-}
-.form{
-	padding:10px;
-	border:1px double #EBEBEB;
-	overflow:auto;
-}
-.form_field{
-	padding:4px;
-	border-top:1px solid #EBEBEB;
-	border-bottom:1px solid #EBEBEB;
-	clear:both;
-}
-.form_field_label{
-	width:100px;
-	float:left;
-}
-.form_field_input{
-	margin-left:100px;
-}
-
-.show_related_table{
-	cursor:pointer;
-}
-/* divBOX */
-#FP_divBOX{
-	display:block;
-	overflow:visible;
-	margin:5px 0 5px 0;
-	padding:5px;
-}
-#divBox_load {
-	position: fixed;
-	display:none;
-	height:13px;
-	width:208px;
-	z-index:103;
-	top: 50%;
-	left: 50%;
-	margin: -6px 0 0 -104px; /* -height/2 0 0 -width/2 */
-	 /* ie6 hack */
-	position: absolute;
-	margin-top: expression(0 - parseInt(this.offsetHeight / 2) + (TBWindowMargin = document.documentElement && document.documentElement.scrollTop || document.body.scrollTop) + 'px');
-}
-
-
-.pbi_images{
-	float:right;
-	width:102px;
-	border:1px solid #EBEBEB;	
-	height:125px;
-	overflow:hidden;
-	padding:1px;
-	float:left;
-}
-.pbi_image{
-	border:none;
-	max-width:100px;
-	max-height:100px;
-	vertical-align:baseline;
-	border:1px solid #EBEBEB;
-}
-.pbi_description{
-	margin-bottom:20px;
-}
-.pbi_releases{
-	clear:both;
-	margin-bottom:20px;
-}
-.pbi_info{
-	float:right;
-	margin:5px;
-	border:1px solid #EBEBEB;
-	padding:2px;
-}
-
-#subscribe_pbi{
-	font-weight:bold;
-	text-align:center;
-}
-
-.pbi_icon{
-	float:left;
-	margin:2px;
-	border:none;
-	width:48px;
+body {
+	font: 0.75em Verdana, Helvetica, sans-serif;
+	background: #f2f2f2;
+	margin: 0;
+	padding: 0;
+}
+
+a:link, a:visited {
+	color: #005dab;
+}
+
+a:hover {
+	color: #00325d;
+}
+
+.dp, .dp a {
+	color: #ccc;
+}
+
+ul {
+	list-style: none;
+}
+
+.clear {
+	clear: both;
+}
+
+.mirrors li {
+}
+
+#container {
+	width: 100%;
+	text-align: center;
+}
+
+#main {
+	width: 750px;
+	text-align: left;
+	margin: 0 auto;
+	background: #fff;
+	border-left: 1px solid #7397ab;
+	border-right: 1px solid #7397ab;
+}
+
+#header {
+	height: 100px;
+	background: url(/bibivu/tpl/pbidir/images/top.png) repeat-x;
+}
+
+#header p {
+	padding: 0;
+	margin: 10px 0 0 15px;
+}
+
+#logo {
+	margin: 0;
+	padding: 0;
+	width: 250px;
+	height: 55px;
+	background: url(/bibivu/tpl/pbidir/images/pbidir.png) no-repeat;
+	font-size: 1px;
+}
+
+#logo a {
+	display: block;
+	width: 150px;
+	height: 55px;
+	text-decoration: none;
+	color: #fff;
+}
+
+form {
+	margin: 0;
+	padding: 0;
+}
+
+a img {
+	border: none;
+}
+
+#banner {
+	text-align: center;
+}
+
+#banner img {
+	padding: 1px;
+	border: 1px solid #ddd;
+	margin: 10px auto;
+}
+
+input, select, textarea {
+	vertical-align: middle;
+	border:1px solid #000000;
+	padding:2px;
+}
+input.required, select.required, textarea.required{
+	border:1px solid #FF0000;
+}
+
+h1 {
+	font: bold 1.8em "Arial Narrow", Helvetica, sans-serif;
+	color: #0075d8;
+	margin: 0.2em 0;
+	padding: 0;
+}
+
+h2 {
+	font: bold 1.1em Verdana, Helvetica, sans-serif;
+	color: #a20000;
+	margin: 0.2em 0;
+	padding: 0;
+}
+
+#popular h1 {
+	margin-left: 10px;
+}
+
+#softicons {
+	height: 85px;
+	background: url(/bibivu/tpl/pbidir/images/shadow.png) repeat-x;
+	padding: 5px 0;
+}
+
+#softicons ul {
+	list-style: none;
+	padding: 0;
+	margin: 0;
+}
+
+#softicons li {
+	display: block;
+	float: left;
+	voice-family: "\"}\"";
+	voice-family: inherit;
+	border-left: 1px solid #a8a8a8;
+}
+
+#softicons li.first {
+	voice-family: "\"}\"";
+	voice-family: inherit;
+	border-left: none;
+}
+
+#content {
+/*	clear: left;*/
+	padding: 1em;
+	vertical-align:top;
+}
+
+#softlist {
+	width: 100%;
+}
+
+#stats {
+	float: right;
+	width: 20%;
+	padding-left: 10px;
+}
+
+#stats ol {
+	margin: 0;
+	padding: 0;
+	font-size: 0.9em;
+}
+
+#stats li {
+	padding: 0;
+	margin: 0;
+}
+
+/*			Home page: List of categs			*/
+
+#cats {
+	float: left;
+	width: 74%;
+	border-right: 1px solid #eee;
+	padding-right: 10px; 
+}
+
+#cats ul {
+	margin: 0;
+	padding: 0;
+	list-style: none;
+}
+
+html>body #cats ul {
+	width: 100%;
+}
+
+#cats li {
+	width: 100%;
+	border-bottom: 1px solid #ddd;
+	padding-bottom: 5px;
+	margin-bottom: 5px;
+}
+
+
+#cats li img {
+	float: left;
+	display: block;
+	margin: 0 5px 0 0;
+}
+
+.categ {
+	height: 50px;
+}
+
+.categname {
+	font: bold  18px Arial, Helvetica, sans-serif;
+	padding: 5px 0 0 0;
+}
+
+
+/*			Separation			*/
+
+div.separ {
+	clear: both;
+	height: 3px;
+	background: #a70000;
+	border-bottom: 2px solid #eee;
+}
+
+div.separ hr {
+	display: none;
+}
+
+div.separ_comment {
+	clear: both;
+	height: 2px;
+	background: #a70000;
+	border-bottom: 1px solid #eee;
+	margin-bottom:10px;
+}
+
+div.separ_comment hr {
+	display: none;
+}
+
+/*			Footer			*/
+
+#footer {
+	clear: both;
+	font-size: 0.85em;
+	color: #666;
+	padding:5px;
+}
+
+/*			Software list			*/
+
+.breadcrumbs {
+	list-style: none;
+	margin: 1em 0;
+	padding: 0;
+}
+
+.breadcrumbs li {
+	display: inline;
+	padding: 0 10px;
+	background: url(/bibivu/tpl/pbidir/images/bullet.gif) 0 50% no-repeat;
+}
+
+.desc {
+	background: url(/bibivu/tpl/pbidir/images/decr.gif) 0 65% no-repeat;
+	padding-left: 10px;
+}
+
+.asc {
+	background: url(/bibivu/tpl/pbidir/images/cres.gif) 0 65% no-repeat;
+	padding-left: 10px;
+}
+
+table.packages {
+	width: 100%;
+	border-collapse: collapse;
+}
+
+table.packages th {
+	background: #eee;
+	padding: 5px;
+	text-align: center;
+}
+
+table.packages td {
+	border-bottom: 1px solid #666;
+	padding: 1em 0;
+}
+
+table.packages th.name {
+	text-align: left;
+	width: 40%;
+}
+
+table.packages td.name {
+	width: 40%;
+}
+
+table.packages th.added, table.packages td.added {
+	text-align: center;
+	width: 15%;
+}
+
+table.packages th.rating, table.packages td.rating {
+	text-align: center;
+	width: 15%;
+}
+
+table.packages th.counter, table.packages td.counter {
+	text-align: center;
+	width: 15%;
+}
+
+table.packages th.links {
+	text-align: center;
+	width: 15%;
+}
+
+table.packages td.links {
+	width: 15%;
+}
+
+table.packages table {
+	width: 100px;
+	margin: 0 auto;
+}
+
+table.packages table td {
+	border: none;
+	margin: 0 10px;
+}
+
+table.packages ul {
+	list-style: none;
+	padding: 0;
+	margin: 0;
+}
+
+table.packages li {
+	padding: 0 0 0.2em 15px;
+	margin: 0;
+	background: url(/bibivu/tpl/pbidir/images/bullet.png) 0 65% no-repeat;
+	font-size: 0.9em;
+}
+
+table.packages .quickdesc {
+	font-size: 11px;
+}
+
+table.packages h1 a {
+	font: bold 12px Verdana, Helvetica, sans-serif;
+	color: #a00000;
+}
+
+/*				Details		*/
+
+tr.highlight {
+	background: #eee;
+}
+
+div.downlinks {
+	margin:0 10px 10px 0;
+}
+
+div.downlinks ul {
+	margin: 0;
+	padding: 0;
+	list-style: none;
+}
+
+div.downlinks li {
+	padding: 0.2em 0;
+	margin: 0;
+}
+
+/*			Admin			*/
+
+ul.adminbar {
+	margin: 0;
+	padding: 3px;
+	list-style: none;
+	background: #eef4f6;
+}
+
+ul.adminbar li {
+	margin: 0;
+	display: inline;
+	background: url(/bibivu/tpl/pbidir/images/separ.png) 0 75% no-repeat;
+	padding: 0 5px;
+}
+
+ul.adminbar li.first {
+	background: url(/bibivu/tpl/pbidir/images/bullet.gif) 0 75% no-repeat;
+	padding: 0 0 0 10px;
+}
+
+.search_text{
+}
+.search_button{
+}
+#search_form{
+	margin:10px;
+}
+.rating_bar{
+	height: 14px;
+	background-color: #FBFFAA;
+	border-right:1px solid #FF3300;
+	text-align:right;
+	padding:1px 2px 1px 1px;
+}
+.container_rating_bar{
+	background-color: #EAEAEA;
+	border:1px inset #B863E4;
+	width:101px;
+	text-align:left;
+}
+
+/*   votes   */
+.vote_box{
+	background-color: #EAEAEA;
+	border:1px inset #B863E4;
+	width:101px;
+	height: 14px;
+}
+.vote_vote a, .vote_vote{
+	float:left;
+	width:9px;
+	text-decoration:none;
+	text-align:right;
+	color:#000;
+}
+#vote_10{
+	width:19px;
+}
+.vote_selected{
+	border-right:1px solid #FF3300;
+}
+.vote_selected_back{
+	background-color: #FBFFAA;
+}
+.window{
+  border:1px solid #DEDEDE;
+  text-align:center;
+  background-color:#FAFAFA;
+  vertical-align:middle;
+}
+.error_message{
+	border:1px solid #FF0000;
+	background-color:#FFFFCC;
+	color:#FF0000;
+	font-size:12px;
+	padding:2px;
+	font-weight:bold;
+	margin:4px;
+}
+/*   comments   */
+#comment_form_div{
+	font-size:10px;
+}
+#submit_comment{
+}
+
+.button{
+	font-size:12px;
+	color:#797979;
+	font-weight:bold;
+	border:1px solid #EBEBEB;
+	background-color:#F5F5F5;
+	text-decoration:none;
+}
+.button:hover{
+	color:#000000;
+}
+.comment_form{
+	width:100%;
+}
+.textareabox{
+	width:100%;
+	height:100px;
+}
+.comment_message{
+	font-size:10px;
+	border: 1px solid #EBEBEB;
+	margin:4px 4px 10px 4px;
+}
+.comment_header{
+	width:100%;
+	background-color:#F5F5F5;
+	height:16px;
+	border-bottom: 1px solid #EBEBEB;
+}
+.comment_user{
+	text-align:left;
+	float:left;
+	padding:2px;
+	text-decoration:none;
+}
+.comment_user a{
+	text-decoration:none;
+}
+.comment_date{
+	text-align:right;
+	float:right;
+	padding:2px;
+}
+.comment_actions{
+	text-align:right;
+	float:right;
+	padding:2px;
+}
+.comment_body{
+	clear:both;
+	margin:2px;
+	padding:4px;
+	font-size:12px;
+}
+
+/*   admin   */
+.admin_menu{
+	border: 1px solid #EBEBEB;
+	background-color:#F5F5F5;
+/*	height:16px;	*/
+	margin:0 0 5px 0;
+	text-align:center;
+	font-weight:bold;
+}
+.admin_menu ul{
+	padding:0 0 0 10px;
+	margin:0px;
+	list-style:none;
+	font-weight:bold;
+}
+.admin_menu ul li{
+	float:left;
+	padding-left:10px;
+}
+
+.admin_menu ul li a{
+	font-weight:normal;
+}
+
+/*   list    */
+.list{
+	border:1px double #EBEBEB;
+	width:100%;
+	margin:0px;
+	padding:0px;
+	border-spacing:0px;
+}
+
+.list .row{
+	border-spacing:0px;
+	width:100%;
+	height:16px;
+	clear:both;
+}
+
+.row_odd{
+	background-color:#F3F3F3;
+}
+.row_even{
+}
+.row_hover{
+	background-color:#E1E8FF;
+}
+.row_highlight{
+	background-color:#D9D9FF;
+}
+
+.list .head{
+	font-weight:bold;
+	background-color:#F5F5F5;
+	text-align:center;
+	height:25px;
+}
+.list .head .row a{
+	color:#000000;
+}
+.list .foot{
+	font-weight:bold;
+	background-color:#F5F5F5;
+}
+
+.list .foot .field{
+	margin:0px;
+	padding:2px 0 2px 0;
+	border-top:1px solid #000;
+}
+.list .field{
+	margin:0px;
+	padding:0px 2px 0px 2px;
+}
+.list .field_edit{
+	text-decoration:none;
+}
+.list td{
+	border-left:2px solid #F5F5F5;
+}
+th.headerSortUp, th.headerSortDown{
+	background-color: #E1E8FF;
+}
+th.headerSortUp a, th.headerSortDown a{
+	color:#FFFFFF;
+	text-decoration:none;
+	padding-left: 10px;
+}
+th.headerSortDown a{
+	background: url(/bibivu/tpl/pbidir/images/decr.gif) 0 65% no-repeat;
+}
+
+th.headerSortUp a{
+	background: url(/bibivu/tpl/pbidir/images/cres.gif) 0 65% no-repeat;
+}
+.form{
+	padding:10px;
+	border:1px double #EBEBEB;
+	overflow:auto;
+}
+.form_field{
+	padding:4px;
+	border-top:1px solid #EBEBEB;
+	border-bottom:1px solid #EBEBEB;
+	clear:both;
+}
+.form_field_label{
+	width:100px;
+	float:left;
+}
+.form_field_input{
+	margin-left:100px;
+}
+
+.show_related_table{
+	cursor:pointer;
+}
+/* divBOX */
+#FP_divBOX{
+	display:block;
+	overflow:visible;
+	margin:5px 0 5px 0;
+	padding:5px;
+}
+#divBox_load {
+	position: fixed;
+	display:none;
+	height:13px;
+	width:208px;
+	z-index:103;
+	top: 50%;
+	left: 50%;
+	margin: -6px 0 0 -104px; /* -height/2 0 0 -width/2 */
+	 /* ie6 hack */
+	position: absolute;
+	margin-top: expression(0 - parseInt(this.offsetHeight / 2) + (TBWindowMargin = document.documentElement && document.documentElement.scrollTop || document.body.scrollTop) + 'px');
+}
+
+
+.pbi_images{
+	float:right;
+	width:102px;
+	border:1px solid #EBEBEB;	
+	height:125px;
+	overflow:hidden;
+	padding:1px;
+	float:left;
+}
+.pbi_image{
+	border:none;
+	max-width:100px;
+	max-height:100px;
+	vertical-align:baseline;
+	border:1px solid #EBEBEB;
+}
+.pbi_description{
+	margin-bottom:20px;
+	clear:left;
+}
+.pbi_releases{
+	clear:both;
+	margin-bottom:20px;
+}
+.pbi_info{
+	float:right;
+	margin:5px;
+	border:1px solid #EBEBEB;
+	padding:2px;
+}
+.pbi_icon{
+	float:left;
+	margin:2px;
+	border:none;
+	width:48px;
+}
+#subscribe_pbi{
+	font-weight:bold;
+	text-align:center;
+}
+#alternative_pbi{
+	text-align:center;
+}
+.pbi_legend{
+	width:20px;
+	float:left;
+	clear:left;
 }
\ No newline at end of file

Added: websites/pbidir.com/bibivu/tpl/pbidir/images/wine.png


Property changes on: websites/pbidir.com/bibivu/tpl/pbidir/images/wine.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Modified: websites/pbidir.com/bibivu/tpl/pbidir/pbi.php
===================================================================
--- websites/pbidir.com/bibivu/tpl/pbidir/pbi.php	2008-02-27 02:03:16 UTC (rev 1459)
+++ websites/pbidir.com/bibivu/tpl/pbidir/pbi.php	2008-02-27 02:32:41 UTC (rev 1460)
@@ -1,102 +1,110 @@
-<ul class="breadcrumbs">
-	<li><a href="<?=$home_uri?>"><?=load_library('lang')->get('pbidir')?></a></li>
-	<li><a href="<?=$category_uri?>/<?=$category['web_alias']?>"><?=$category['name']?></a></li>
-	<li><?=$pbi['name']?></li>
-</ul>
-<h1><?php
-if($pbi['icon']!=''){
-	?><img src="<?=$pbi['icon']?>" alt="icon" title="icon" class="pbi_icon" /><?php
-}
-?><?=$pbi['name']?></h1><?php
-if($can_write){
-	?><a href="<?=load_class('uri')->create_uri(array(CLASS_KEY=>'admin', TASK_KEY=>'pbi','view'=>'','ajax'=>'', 'id'=>$pbi['id']))?>" class="divBox"><input type="button" value="  Edit This PBI " class="button edit divBox" /></a><?php
-}
-?>
-<script language="javascript" type="text/javascript">
-<!--
-var pbi_id = <?=$pbi['id']?>;
-<?php
-if($can_comment_delete){
-	?>var can_comment_delete = true;var delete_comment_uri = "<?=$delete_comment_uri?>";<?php
-} else {
-	?>var can_comment_delete = false;<?php
-}
-if($can_vote && $prev_vote>0){
-	?>var voted=<?=$prev_vote?>;<?php
-}
-?>
-
--->
-</script>
-<div class="pbi_info">
-<?=$this->show('/pbidir/pbi_images');?>
-<table>
-	<tbody>
-	<tr class="highlight">
-		<td><strong><?=load_library('lang')->get('pbi_vendor')?>:</strong></td>
-		<td><a target="_blank" href="<?=$pbi['vendor_url']?>"><?=$pbi['vendor_name']?></a></td>
-	</tr>
-	<tr>
-		<td><strong><?=load_library('lang')->get('pbi_avg_rate')?>:</strong></td>
-		<td><div class="container_rating_bar"><div class="rating_bar" style="width: <?=$pbi['rating']*10?>px;"><?=$pbi['rating']?></div></div></td>
-	</tr>
-	<tr><?php
-	if($can_vote){
-		?><td><strong><?=load_library('lang')->get('pbi_your_rate')?>:</strong></td><td>
-		<div class="vote_box" onmouseout="updateVote(0);"><?php
-		for($i=1; $i<=10; $i++){
-			?><div onmouseover="updateVote(<?=$i?>)" class="vote_vote <?=$i<=$prev_vote?'vote_selected_back':''?> <?=$i==$prev_vote?'vote_selected':''?>" id="vote_<?=$i?>" ><a href="javascript:void(0);" onclick="saveVote(<?=$pbi['id']?>,<?=$i?>)" ><?=$i==10 && $prev_vote>0?$prev_vote:'&nbsp;'?></a></div><?php
-		}
-		?>
-		</div>
-		</td><?php
-	} elseif($is_logged){
-		?><td colspan="2"><?=load_library('lang')->get('pbi_cannot_vote')?></td><?php
-	} else {
-		?><td colspan="2"><?=sprintf(load_library('lang')->get('pbi_login_to_vote'),$login_uri)?></td><?php
-	} ?>
-	</tr>
-	<tr class="highlight">
-		<td><strong><?=load_library('lang')->get('pbi_downloads')?>:</strong></td>
-		<td><?=load_library('format')->number_format($pbi['total_download'])?></td>
-	</tr>
-	<tr>
-		<td><strong><?=load_library('lang')->get('pbi_added')?>:</strong></td>
-		<td><?=load_library('format')->date($pbi['date_added'])?></td>
-	</tr>
-	<tr class="highlight">
-		<td><strong><?=load_library('lang')->get('pbi_licence')?>:</strong></td>
-		<td><?=$pbi['licence']?></td>
-	</tr><?php
-	if($pbi['contributor_email'].$pbi['contributor_name']!=''){
-		?><tr>
-		<td><strong><?=load_library('lang')->get('pbi_maintainer')?>:</strong></td>
-		<td><script type="text/javascript" language="javascript">mailprotect ('<?=strtok($pbi['contributor_email'],'@')?>', '<?=strtok('.')?>', '<?=strtok('')?>', '<?=htmlentities($pbi['contributor_name'])?>')</script></td>
-	</tr><?php
-	} ?>
-	</tbody>
-</table><?php
-	if($is_logged){
-		?><hr /><div id="subscribe_pbi"><a href="javascript:void(0);" onclick="subscribe_pbi('<?=$subscribe_uri?>');"><?=load_library('lang')->get($is_subscribed?'pbi_unsubscribe':'pbi_subscribe')?></a></div><?php
-	} ?>
-</div>
-<div class="pbi_description">
-<h2><?=load_library('lang')->get('pbi_description')?></h2>
-<?=nl2br($pbi['description'])?>
-</div>
-<?=$this->show('pbidir/pbi_versions')?>
-<div class="separ_comment">
-<hr/></div>
-<?php
-if(!$can_comment){
-	if($is_logged){
-		echo load_library('lang')->get('pbi_cannot_comment');
-	} else {
-		echo sprintf(load_library('lang')->get('pbi_login_to_comment'),$login_uri);
-	}
-} else {
-	?><div id="comment_form_div"><a href="javascript:void(0);" id="add_comment_link" onclick="load_comment_form('<?=$comment_form_uri?>')"><?=load_library('lang')->get('pbi_leave_comment')?></a></div><?php
-}
-?>
-<div id="comment_list">&nbsp;</div>
+<script language="javascript" type="text/javascript">
+<!--
+var pbi_id = <?=$pbi['id']?>;
+<?php
+if($can_comment_delete){
+	?>var can_comment_delete = true;var delete_comment_uri = "<?=$delete_comment_uri?>";<?php
+} else {
+	?>var can_comment_delete = false;<?php
+}
+if($can_vote && $prev_vote>0){
+	?>var voted=<?=$prev_vote?>;<?php
+}
+?>
+
+-->
+</script>
+<ul class="breadcrumbs">
+	<li><a href="<?=$home_uri?>"><?=load_library('lang')->get('pbidir')?></a></li>
+	<li><a href="<?=$category_uri?>/<?=$category['web_alias']?>"><?=$category['name']?></a></li>
+	<li><?=$pbi['name']?></li>
+</ul>
+<div class="pbi_info">
+<?=$this->show('/pbidir/pbi_images');?>
+<table>
+	<tbody>
+	<tr class="highlight">
+		<td><strong><?=load_library('lang')->get('pbi_vendor')?>:</strong></td>
+		<td><a target="_blank" href="<?=$pbi['vendor_url']?>"><?=$pbi['vendor_name']?></a></td>
+	</tr>
+	<tr>
+		<td><strong><?=load_library('lang')->get('pbi_avg_rate')?>:</strong></td>
+		<td><div class="container_rating_bar"><div class="rating_bar" style="width: <?=$pbi['rating']*10?>px;"><?=$pbi['rating']?></div></div></td>
+	</tr>
+	<tr><?php
+	if($can_vote){
+		?><td><strong><?=load_library('lang')->get('pbi_your_rate')?>:</strong></td><td>
+		<div class="vote_box" onmouseout="updateVote(0);"><?php
+		for($i=1; $i<=10; $i++){
+			?><div onmouseover="updateVote(<?=$i?>)" class="vote_vote <?=$i<=$prev_vote?'vote_selected_back':''?> <?=$i==$prev_vote?'vote_selected':''?>" id="vote_<?=$i?>" ><a href="javascript:void(0);" onclick="saveVote(<?=$pbi['id']?>,<?=$i?>)" ><?=$i==10 && $prev_vote>0?$prev_vote:'&nbsp;'?></a></div><?php
+		}
+		?>
+		</div>
+		</td><?php
+	} elseif($is_logged){
+		?><td colspan="2"><?=load_library('lang')->get('pbi_cannot_vote')?></td><?php
+	} else {
+		?><td colspan="2"><?=sprintf(load_library('lang')->get('pbi_login_to_vote'),$login_uri)?></td><?php
+	} ?>
+	</tr>
+	<tr class="highlight">
+		<td><strong><?=load_library('lang')->get('pbi_downloads')?>:</strong></td>
+		<td><?=load_library('format')->number_format($pbi['total_download'])?></td>
+	</tr>
+	<tr>
+		<td><strong><?=load_library('lang')->get('pbi_added')?>:</strong></td>
+		<td><?=load_library('format')->date($pbi['date_added'])?></td>
+	</tr>
+	<tr class="highlight">
+		<td><strong><?=load_library('lang')->get('pbi_licence')?>:</strong></td>
+		<td><?=$pbi['licence']?></td>
+	</tr><?php
+	if($pbi['contributor_email'].$pbi['contributor_name']!=''){
+		?><tr>
+		<td><strong><?=load_library('lang')->get('pbi_maintainer')?>:</strong></td>
+		<td><script type="text/javascript" language="javascript">mailprotect ('<?=strtok($pbi['contributor_email'],'@')?>', '<?=strtok('.')?>', '<?=strtok('')?>', '<?=htmlentities($pbi['contributor_name'])?>')</script></td>
+	</tr><?php
+	} ?>
+	</tbody>
+</table><?php
+	if($pbi['alternative_for']!=''){
+		?><hr /><div id="alternative_pbi"><?=load_library('lang')->get('pbi_alternative')?>: <?=$pbi['alternative_for']?></div><?php
+	}
+	if($is_logged){
+		?><hr /><div id="subscribe_pbi"><a href="javascript:void(0);" onclick="subscribe_pbi('<?=$subscribe_uri?>');"><?=load_library('lang')->get($is_subscribed?'pbi_unsubscribe':'pbi_subscribe')?></a></div><?php
+	} ?>
+</div>
+<div class="pbi_title">
+<h1><?php
+if($pbi['icon']!=''){
+	?><img src="<?=$pbi['icon']?>" alt="icon" title="icon" class="pbi_icon" /><?php
+}
+?><?=$pbi['name']?></h1><?php
+if($can_write){
+	?><a href="<?=load_class('uri')->create_uri(array(CLASS_KEY=>'admin', TASK_KEY=>'pbi','view'=>'','ajax'=>'', 'id'=>$pbi['id']))?>" class="divBox"><input type="button" value="  Edit This PBI " class="button edit divBox" /></a><?php
+}
+if($pbi['use_wine']=='y'){
+	?><img src="/bibivu/tpl/pbidir/images/wine.png" alt="uses wine" title="uses wine" class="pbi_legend" /><?php
+}
+?>
+</div>
+<div class="pbi_description">
+<h2><?=load_library('lang')->get('pbi_description')?></h2>
+<?=nl2br($pbi['description'])?>
+</div>
+<?=$this->show('pbidir/pbi_versions')?>
+<div class="separ_comment">
+<hr/></div>
+<?php
+if(!$can_comment){
+	if($is_logged){
+		echo load_library('lang')->get('pbi_cannot_comment');
+	} else {
+		echo sprintf(load_library('lang')->get('pbi_login_to_comment'),$login_uri);
+	}
+} else {
+	?><div id="comment_form_div"><a href="javascript:void(0);" id="add_comment_link" onclick="load_comment_form('<?=$comment_form_uri?>')"><?=load_library('lang')->get('pbi_leave_comment')?></a></div><?php
+}
+?>
+<div id="comment_list">&nbsp;</div>
 <?=$this->show('pbidir/comment/list')?>
\ No newline at end of file



More information about the Commits mailing list