jak nazywa sie zmienna odpowiadajaca nr tematu??

gariz

No avatar

2008-07-15 00:28

potrzebuje na kazdej podstronie (temacie) odwolac sie do roznych skryptow. Niestety skrypt ten ma byc wyswietlany w naglowku zeby to zrobic pomyslalem ze mozna uzyc zmiennej ktora bedzie = numerowi tematu. wtedy bede mogl uzyc czegos takiego

<script type="text/javascript" src="[odwolanie do zmiennej]logo.js"></script>



i jezeli wartosc [odwolanie do zmiennej] jest wartoscia liczbowa to moge wgrac kilka plikow np. 1logo.js 2logo.js 5logo.js 12logo.js

cos podobnego jest juz zrobione dla <title> z tym ze tam podstawiany jest tytul strony a to troche za dlugie jak na nazwe pliku

» Quick.Cms v2.x

Makaron

Avatar: Makaron

2008-07-15 08:21

Zmienna, która przechowuje informację o tym jaki temat przypisany jest do strony nazywa się $sTheme, z tym, że ta zmienna nie przechowuje numeru tematu, tylko konkretną nazwę pliku z tematem, więc chyba na nic Ci się to zda. Myślę natomiast, że w Twoim pomyślę pomocna może okazać się zmienna $iContent, która przechowuje ID strony i dla każdej strony/podstrony ten numer jest charakterystyczny.

gariz

No avatar

2008-07-15 14:32

super wlasnie o to mi chodzilo!!!!
(nieprecyzyjnie sie chyba wyrazilem)

gariz

No avatar

2008-07-16 00:32

a jak nazywa sie zmienna ktora odpowiada za nazwe tematu czyli kolumna po prawej od kolumny ID

rud3bwoy

Avatar: rud3bwoy

2011-03-29 21:37

Witam, odświeżam stary temat ponieważ mam problem związany ze zmienną $iContent.

Chciałem na każdej podstronie dodać system ocen z gwizdkami. Znalazłem i zainstalowałem odpowiedni skrypt.

Następnie stworzyłem plik pages_gwiazdki.tpl i tam wstawiłem wywołanie skryptu do oceniania:

<?php echo rating_bar('8','10'); // ID=8,  10 gwiazdek ?>



Wszystko działa jak powinno ale na każdej stronie gdzie użyłem szablonu pages_gwiazdki.tpl wyświetla się ocena strony 8.

Wstawiłem więc zamiast 8 zmienną $iContent, skrypt wyświetla się prawidłowo. Po kliknięciu na ocenę aktualizuje wartość bez odświeżania strony ale gdy ręcznie odświeżymy ocena wynosi 0 tak jakby nikt wcześniej nie zagłosował.

Jestem zielony jeśli chodzi o PHP, udało mi się stworzyć tabelę dla tego skryptu i poprawnie go zainstalować, ogarniam podstawowe sprawy ale tutaj próbowałem już wszystkiego.

Jestem pewny że coś źle robię ponieważ gdy wpiszę ID strony ręcznie to wszystko działa poprawnie.

Gdybym chciał działać tą metodą to musiał bym dla każdej podstrony gdzie chcę mieć 'gwiazdki' tworzyć plik pages_xx.tpl co jest dość czasochłonne i bardzo niewygodne przy dużej ilości podstron.

Dodam jeszcze że gdy używam zmiennej $iContent w miejscu ID w tym skrypcie, to po najechaniu na gwizdke w pasku wyświetla się link w którym widać że skrypt poprawnie odebrał wartość ID, na każdej podstronie prawidłowo pobiera wartość tzn. numer tematu.

Proszę o pomoc.

rud3bwoy

Avatar: rud3bwoy

2011-03-29 21:56

Chciałem dodać że chętnie pomogę każdemu w instalacji tego darmowego skryptu, tylko trzeba by rozwiązać problem o którym pisałem wyżej bo w innym wypadku jest bezużyteczny.

Zapomniałem że wywołanie skryptu wygląda tak:

<?php echo rating_bar('$iConent','10'); // ID=zmienna,  10 gwiazdek ?>



Było by zbyt łatwo gdyby to działało.

Może to głupie ale czy przyczyną tego może być kolejność pobierania danych wartości z bazy danych ?

Próbowałem z funkcją $_GET ale tym bardziej mi nie wychodziło, gdybym znał PHP to pewnie bym się śmiał z takiego problemu.

Przydała by się dobra rada.

Dziękuję z góry za pomoc.

rud3bwoy@o2.pl

rud3bwoy

Avatar: rud3bwoy

2011-03-30 02:34

Plik odpowiedzialny za wyświetlanie i dodawanie głosów wygląda następująco:


<?php
function rating_bar($id,$units='',$static='') { 

require(
'_config-rating.php'); // połączenie z bazą
    
//ustawiamy zeminne
$ip $_SERVER['REMOTE_ADDR'];
if (!
$units) {$units 10;}
if (!
$static) {$static FALSE;}

// pobieramy wartości dla bieżącego ID
$query=mysql_query("SELECT total_votes, total_value, used_ips FROM $rating_dbname.$rating_tableName WHERE id='$id' ")or die(" Error: ".mysql_error());


// wstawiamy id w baze jeśli jeszcze go tam nie ma
if (mysql_num_rows($query) == 0) {
$sql "INSERT INTO $rating_dbname.$rating_tableName (`id`,`total_votes`, `total_value`, `used_ips`) VALUES ('$id', '0', '0', '')";
$result mysql_query($sql);
}

$numbers=mysql_fetch_assoc($query);


if (
$numbers['total_votes'] < 1) {
    
$count 0;
} else {
    
$count=$numbers['total_votes']; //    Ile jest głosów oddanych
}
$current_rating=$numbers['total_value']; //łączna liczba ocen
//ustawiamy polskie nazewnictwo
if($count==1$tense="głos";
else if(
$count>1&&$count<5$tense="głosy";
else 
$tense="głosów";


// określamy czy użytkownik głosował
$voted=mysql_num_rows(mysql_query("SELECT used_ips FROM $rating_dbname.$rating_tableName WHERE used_ips LIKE '%".$ip."%' AND id='".$id."' ")); 

// teraz rysujemy całosć
$rating_width = @number_format($current_rating/$count,2)*$rating_unitwidth;
$rating1 = @number_format($current_rating/$count,1);
$rating2 = @number_format($current_rating/$count,2);


if (
$static == 'static') {

        
$static_rater = array();
        
$static_rater[] .= "\n".'<div class="ratingblock">';
        
$static_rater[] .= '<div id="unit_long'.$id.'">';
        
$static_rater[] .= '<ul id="unit_ul'.$id.'" class="unit-rating" style="width:'.$rating_unitwidth*$units.'px;">';
        
$static_rater[] .= '<li class="current-rating" style="width:'.$rating_width.'px;">Currently '.$rating2.'/'.$units.'</li>';
        
$static_rater[] .= '</ul>';
        
$static_rater[] .= '<p class="static">'.$id.'. Średnia: <strong> '.$rating1.'</strong>/'.$units.' ('.$count.' '.$tense.' ) <em>\'Statyczna\'.</em></p>';
        
$static_rater[] .= '</div>';
        
$static_rater[] .= '</div>'."\n\n";

        return 
join("\n"$static_rater);


} else {

      
$rater ='';
      
$rater.='<div class="ratingblock">';

      
$rater.='<div id="unit_long'.$id.'">';
      
$rater.='  <ul id="unit_ul'.$id.'" class="unit-rating" style="width:'.$rating_unitwidth*$units.'px;">';
      
$rater.='     <li class="current-rating" style="width:'.$rating_width.'px;">Currently '.$rating2.'/'.$units.'</li>';

      for (
$ncount 1$ncount <= $units$ncount++) { // loop from 1 to the number of units
           
if(!$voted) { // if the user hasn't yet voted, draw the voting stars
              
$rater.='<li><a href="db.php?j='.$ncount.'&amp;q='.$id.'&amp;t='.$ip.'&amp;c='.$units.'" title="'.$ncount.' out of '.$units.'" class="r'.$ncount.'-unit rater" rel="nofollow">'.$ncount.'</a></li>';
           }
      }
      
$ncount=0// resets the count

      
$rater.='  </ul>';
      
$rater.='  <p';
      if(
$voted){ $rater.=' class="voted"'; }
      
$rater.='>'.$id.' Średnia: <strong> '.$rating1.'</strong>/'.$units.' ('.$count.' '.$tense.' )';
      
$rater.='  </p>';
      
$rater.='</div>';
      
$rater.='</div>';
      return 
$rater;
 }
}
?>



Może w tym pliku odwołać się do zmiennej $iContent ?

Próbowałem podmieniać $id na $iContent ale zapewne to nie o to chodzi, nie mogę się połapać w tym.

Troszkę pospamowałem, liczę na waszą pomoc, przymierzam się do kupna cms.ext ale dopóki nie rozwiąże problemów z takimi gwiazdkami i innymi gadżetami niedostępnymi w płatnej wersji a tym bardziej w darmowej.

rud3bwoy@o2.pl

Do góry
o nas | kontakt