productsVotes_v 0.1

caros

Avatar: caros

2011-12-16 15:05

no u ciebie na stronie to dziala a u nas nie :(

meblelandowski.pl

boboo

Avatar: boboo

2011-12-16 15:17

<?php exit; ?>
2$39$9$
3$5$1$
1$31$11$
8$5$1$
6$5$1$
7$5$1$
4$5$1$
5$5$1$
9$29$7$

I plik bez powtórek.
Wszystko gra.
Znaczy: plugin jest OK.

http://qc-plugins.kimla.de

caros

Avatar: caros

2011-12-16 15:28

maszs werscje QC 4.2 z dodatkami ?
no nic przejże 3 raz od nowa wgram plugina ale to wieczorem

meblelandowski.pl

boboo

Avatar: boboo

2011-12-16 15:31

Sam nie wiem, jaką mam wersję. Pogubiłem się w numeracji :D
Ale nie powinno mieć żadnego wpływu.

http://qc-plugins.kimla.de

transspeed

Avatar: transspeed

2011-12-16 16:07

Czyli rozumiem, że ten zapis ( poniżej ) jest zły.
<?php exit; ?>
169$3$1$
105$5$1$
256$2$1$
105$4$1$
105$3$1$
156$2$1$
156$5$1$
156$4$1$
156$3$1$
167$3$1$
167$5$1$
167$4$1$
167$2$1$

Bo numery np 156 nie powinny się powtórzyć jedynie zmienia się kolumna pomiędzy znacznikiem:
$ ?

transspeed

boboo

Avatar: boboo

2011-12-16 16:08

Dokładnie tak jest napisane w kodzie.
Nie powinny się powtarzać.

http://qc-plugins.kimla.de

boboo

Avatar: boboo

2011-12-16 16:15

Bo pierwsza kolumna: np. 156 to numer (ID produktu).
Druga kolumna to suma! oddanych punktów (od 1 do 5) w całej historii oceniania.
Trzecia kolumna, to ilość oddanych głosów.
Czyli (przykład jednego produktu):
Ty głosowałeś na 4 gwiazdki:
-> 156$4$1$ (średnia-> 4:1=4)
Ja walnąłem 5 gwiazdek (czyli już mamy 9):
-> 156$9$2$ (średnia-> 9:2=4,5)
On kliknął na 2 gwiazdki:
-> 156$11$3$ (średnia-> 11:3=2,66...)
I tak dalej.
Pierwszy numer ma być niepowtarzalny!!!, a pozostałe to efekty klikania.

http://qc-plugins.kimla.de

transspeed

Avatar: transspeed

2011-12-16 16:17

Mam prośbę miałem wątpliwości gdzie dokładnie ma być wstawiony ten kod:
Wiem że chodzi o funkcję generateCache, ale czy to ma być przed wierszem rozpoczynającym w/w funkcję, czy wewnątrz funkcji na samym początku ?

step 10) open "core/products.php" and BEFORE code (in function generateCache()):
} // end function generateCache

paste:
if( defined( 'CUSTOMER_PAGE' ) && is_file( DB_PRODUCTS_VOTES ) ){
$aFile = file( DB_PRODUCTS_VOTES );
$iCount = count( $aFile );
$sFunction = 'products_votes';
for( $i = 1; $i < $iCount; $i++ ){
$aExp = explode( '$', $aFile[$i] );
if( isset( $this->aProducts[$aExp[0]] ) ){
$aData = $sFunction( $aExp );
$aData['fAvarageVotes'] = sprintf( '%01.2f', $aData['iVotesSummary'] / $aData['iVotesCount'] );
$aData['iAvarageVotes'] = round( $aData['iVotesSummary'] / $aData['iVotesCount'] );
$this->aProducts[$aExp[0]] = array_merge( $this->aProducts[$aExp[0]], $aData );
}
} // end for
}

transspeed

boboo

Avatar: boboo

2011-12-16 16:26

Ten kod ma być na końcu, na samym końcu!!! funkcji generateCache.
Po nim już tylko "}" nawias zamykający całą funkcję.

http://qc-plugins.kimla.de

transspeed

Avatar: transspeed

2011-12-16 21:27

Przyczyną amnestii był błąd w kroku 10.
teraz jak jest na końcu funkcji, wszystko gra i pamięć też.
Dzięki za pomoc

transspeed

caros

Avatar: caros

2011-12-16 23:14

jakos nie widze tego bledu mozesz podeslac swoj plik tyl;ko dla porownania
biuro@meblelandowski.pl

meblelandowski.pl

transspeed

Avatar: transspeed

2011-12-17 10:28

wieczorem ci wyślę

transspeed

jezy403

Avatar: jezy403

2011-12-18 13:20

Czy jest to możliwe by roboty również mogły głosować ??

boboo

Avatar: boboo

2011-12-18 14:33

Według kodu tylko na "1" nie mogą głosować.
Poszukaj w pluginie rel="nofollow" i wstaw odpowiednio do pozostałych ratingów.
Jednak nie wszystkie roboty przyjmują to do wiadomości. Ale większą część z nich odsuniesz od głosowania.

http://qc-plugins.kimla.de

transspeed

Avatar: transspeed

2011-12-18 16:12

Przesyłam fragment kodu - to jest tylo funkcja generateCash

public function generateCache( ){
if( !is_file( DB_PRODUCTS ) )
return null;

$oPage = Pages::getInstance( );

$aFile = file( DB_PRODUCTS_PAGES );
$iCount = count( $aFile );
for( $i = 1; $i < $iCount; $i++ ){
$aExp = explode( '$', $aFile[$i] );
if( isset( $oPage->aPages[$aExp[1]] ) ){
$aPages[$aExp[0]][$aExp[1]] = $aExp[1];
}
} // end for
$aFile = file( DB_PRODUCTS );
$iCount = count( $aFile );
$sFunction = 'products';
$iStatus = throwStatus( );
$sLanguageUrl = ( LANGUAGE_IN_URL == true ) ? LANGUAGE.LANGUAGE_SEPARATOR : null;

$this->aProducts = null;
$this->aProductsPages = null;

for( $i = 1; $i < $iCount; $i++ ){
$aExp = explode( '$', $aFile[$i] );
if( isset( $aExp[4] ) && $aExp[4] >= $iStatus && ( !defined( 'CUSTOMER_PAGE' ) || isset( $aPages[$aExp[0]] ) ) ){
$this->aProducts[$aExp[0]] = $sFunction( $aExp );
$sUrlName = !empty( $this->aProducts[$aExp[0]]['sNameUrl'] ) ? $this->aProducts[$aExp[0]]['sNameUrl'] : $this->aProducts[$aExp[0]]['sName'];
$this->aProducts[$aExp[0]]['sLinkName'] = '?'.$aExp[0].','.$sLanguageUrl.change2Url( $sUrlName );
$this->aProductsPages[$aExp[0]] = isset( $aPages[$aExp[0]] ) ? $aPages[$aExp[0]] : null;
}
} // end for
if( defined( 'CUSTOMER_PAGE' ) && is_file( DB_PRODUCTS_VOTES ) ){
$aFile = file( DB_PRODUCTS_VOTES );
$iCount = count( $aFile );
$sFunction = 'products_votes';
for( $i = 1; $i < $iCount; $i++ ){
$aExp = explode( '$', $aFile[$i] );
if( isset( $this->aProducts[$aExp[0]] ) ){
$aData = $sFunction( $aExp );
$aData['fAvarageVotes'] = sprintf( '%01.2f', $aData['iVotesSummary'] / $aData['iVotesCount'] );
$aData['iAvarageVotes'] = round( $aData['iVotesSummary'] / $aData['iVotesCount'] );
$this->aProducts[$aExp[0]] = array_merge( $this->aProducts[$aExp[0]], $aData );
}
} // end for
}
} // end function generateCache

transspeed

jezy403

Avatar: jezy403

2011-12-18 17:24

[quote]Według kodu tylko na "1" nie mogą głosować.
Poszukaj w pluginie rel="nofollow" i wstaw odpowiednio do pozostałych ratingów.[/quote]

Możesz dokładniej wyjaśnić gdzie to wstawić bobo ??

jezy403

Avatar: jezy403

2011-12-18 17:55

Już sobie poradziłem. Dzięki Bobo

Do góry
o nas | kontakt