Skocz do zawartości

[Modyfikacje] Ocenianie stron i anchor texty


Rekomendowane odpowiedzi

Witam,

Na wstępie olbrzymie podziękowania dla tych którzy przyczynili się do powstania jednego z lepszych skryptów katalogów czyli oczywiście otwarty mini pl. Wspaniały skrypt - prosty, szybki i niezwykle przyjazny do "przeróbek" programistycznych. Naturalnie podziękowania również dla tych którzy stworzyli szereg modyfikacji - sam zaczerpnąłem z tego działu kilka a kilka dorobiłem sobie sam...więc upubliczniam a nuż się komuś przydadzą....

1. Ocenianie stron - polega na wystawieniu oceny strony podczas weryfikacji strony przez moderatora. Póki co tylko taki "gadżet" ale planuje dorobić później system wyświetlający wpisy w podkategorii w kolejności oceny.

Przykład > https://www.katalog.intelekt.net.pl/strona-...elektem-69.html

W pliku otwarty_admin/index.php znajdujemy linię:

				mysql_query("insert into ".$prefix."wpisy set data='".time()."', tytul='$_POST[tytul]', opis='$_POST[opis]', slowa='$_POST[slowa]', url='$url[0]', uri='$uri', pr='-9', relacji='1', akt='$_POST[akt]'");

Zmieniamy na:

				mysql_query("insert into ".$prefix."wpisy set data='".time()."', tytul='$_POST[tytul]', opis='$_POST[opis]', slowa='$_POST[slowa]', url='$url[0]', uri='$uri', pr='-9', relacji='1', akt='$_POST[akt]', ocena='$_POST[ocena]' ");

Dalej:

				mysql_query("update ".$prefix."wpisy set tytul='$_POST[tytul]', opis='$_POST[opis]', slowa='$_POST[slowa]', url='$url[0]', uri='$uri' where id='$_POST[id]'");

Zmieniamy na:

				mysql_query("update ".$prefix."wpisy set tytul='$_POST[tytul]', opis='$_POST[opis]', slowa='$_POST[slowa]', url='$url[0]', uri='$uri', ocena='$_POST[ocena]' where id='$_POST[id]'");

Dalej znajdujemy:

	echo "<form action=\"$_SERVER[REQUEST_URI]\" method=post><table width=100%>";

Dopisujemy przed pętle sprawdzającą czy strona jest już oceniona np. w taki sposób:

if ($wpis[ocena] == 0) $dodaj_ocena0 = "selected";
elseif ($wpis[ocena] == 1) $dodaj_ocena1 = "selected";
elseif ($wpis[ocena] == 2) $dodaj_ocena2 = "selected";
elseif ($wpis[ocena] == 3) $dodaj_ocena3 = "selected";
elseif ($wpis[ocena] == 4) $dodaj_ocena4 = "selected";
elseif ($wpis[ocena] == 5) $dodaj_ocena5 = "selected";

Następnie znajdujemy:

	echo "<tr><td width=130 align=right>adres:</td><td><input type=text name=url value=\"$url_k\" style=\"width:350\"></td></tr>";

Dopisujemy po:

	echo "<tr><td width=130 align=right>ocena strony:</td><td><SELECT NAME=\"ocena\">
		<OPTION VALUE=\"0\" ".$dodaj_ocena0.">0</OPTION> 
		<OPTION VALUE=\"1\" ".$dodaj_ocena1.">1</OPTION> 
		<OPTION VALUE=\"2\" ".$dodaj_ocena2.">2</OPTION>
		<OPTION VALUE=\"3\" ".$dodaj_ocena3.">3</OPTION>
		<OPTION VALUE=\"4\" ".$dodaj_ocena4.">4</OPTION>
		<OPTION VALUE=\"5\" ".$dodaj_ocena5.">5</OPTION>
		</SELECT>
		</td></tr>";

--------------------------------

W pliku otwarty_disp/szcz.php natomiast dorabiamy sobie kod wyświetlający ocenę czy to w formie obrazkowej czy numerycznej - jak sobie chcecie...ja mam obrazkowa i mój kod wygląda tak...

<div class="text_body_h3">ocena moderatora:
<?
if ($li_lw[ocena] == 0) echo "<img src=\"0.jpg\" alt=\"Ocena: 0/5\">";
elseif ($li_lw[ocena] == 1) echo "<img src=\"1.jpg\" alt=\"Ocena: 1/5\">";
elseif ($li_lw[ocena] == 2) echo "<img src=\"2.jpg\" alt=\"Ocena: 2/5\">";
elseif ($li_lw[ocena] == 3) echo "<img src=\"3.jpg\" alt=\"Ocena: 3/5\">";
elseif ($li_lw[ocena] == 4) echo "<img src=\"4.jpg\" alt=\"Ocena: 4/5\">";
elseif ($li_lw[ocena] == 5) echo "<img src=\"5.jpg\" alt=\"Ocena: 5/5\">";

echo "</div>";
?>

========================

2. Anchor texty jako linki w opisie strony - to jest zdecydowanie trudniejsze do zrobienia ale da się B).

Przykład > https://www.katalog.intelekt.net.pl/strona-...lektem-189.html

W pliku otwarty_disp/funkcje.php znajdujemy:

<b>opis jaki będzie się wy¶wietlał w katalogu:</b><br /><textarea name="opis" class="formdodaj" cols="60" rows="8"><?=$desc?></textarea><br /><br />

Zmieniamy na:

<b>opis jaki będzie się wy¶wietlał w katalogu:</b><br /><textarea id="txt" name="opis" class="formdodaj" cols="60" rows="8"><?=$desc?></textarea><br />
<div style="padding-top:4px;"></div>
Możesz umie¶cić max. 3 dodatkowe anchor-texty w opisie do najciekawszych podstron swojego serwisu: <input class="button" type="button" onclick="Url()" value="Dodaj link"><br /><br />

W tym samym pliku w nagłówku <head></head> dodajemy 2 funkcje java script:

<script type="text/javascript">
D=document,S=[],T=[],C=alert,B=unescape;onload=function(){F=D.getElementById('txt')}
function bbcode(x,z){(z=s())?A('['+x+']'+z+'[/'+x+']'):R(x)}
function A(x){D.selection?(F.focus(),D.selection.createRange().text=x):(F.selectionStart||F.selectionStart=='0')?F.value=F.value.substring(0,F.selectionStart)+x+F.value.substring(F.selectionEnd,F.value.length):F.value+=x}
function s(){return D.selection?D.selection.createRange().text:F.value.substring(F.selectionEnd||0,F.selectionStart||0)}
function R(x){T[x]?'':T[x]=0;T[x]?CT(x):(S.push(x),T[x]=1,A('['+x+']'),St(x,'*'))}
function St(i,x){D.getElementById(i).value=i+x}Z='%52%4b';function emot(x){A(x)}
function CT(x,a){T[a=S.pop()]=0;A('[/'+a+']');St(a,'');a!=x?CT(x):''}
function CA(e){while(S[0]){A('[/'+(e=S.pop())+']');T[e]=0;St(e,'')}}

function Url(u,d,z){A("[url="+(u=prompt("Podaj adres strony lub pliku","https://"))+"]"+(s()?s():((d=prompt("Opis odnosnika",""))?d:u))+"[/url]")}
</script>

Trzeba jeszcze dodać 2 funkcje php kodujące i dekodujące BBcode:

function dekoder($text) {

$text = preg_replace("#\[url=(.*?)\](.*?)\[/url\]#si",'<a class="out_link_home_cat" href="\\1" alt="\\2">\\2</a>',$text);

$text = preg_replace("#\[url=(.*?)\]null\[/url\]#si",'<a class="out_link_home_cat" href="\\1">\\1</a>',$text);

return $text;
}

function koder($text) {

$text = preg_replace("#\[url=(.*?)\](.*?)\[/url\]#si",'\\2',$text);

$text = preg_replace("#\[url=(.*?)\]null\[/url\]#si",'\\1',$text);

return $text;
}

i naturalnie pozmieniać we wszystkich plikach-templatkach sposób wyświetlania opisu tzn. w plikach kategorii, podkategorii itp. zamienić: <?=$item[opis]?> na <?=koder($item[opis])?> z kolei w pliku szcz.php na <?=dekoder($item[opis])?>

To wszystko! W ramach testów (jeśli ktoś chce rzecz jasna) zapraszam do dodawania wpisów do mojego nowego Katalogu Stron Intelekt - Tylko Inteligentne Strony w Internecie z kolei tych co chcą wykorzystać powyższe skrypty we własnych katalogach bardzo proszę w miarę możliwości o wstawienie linka zwrotnego:

<a href="https://www.katalog.intelekt.net.pl" target="_blank" alt="Katalog Stron Intelekt - Tylko Inteligentne Strony w Internecie" title="Katalog Stron Intelekt - Tylko Inteligentne Strony w Internecie"><strong>Katalog Stron Intelekt</strong></a>

iDir - skrypt na katalog stron lub firm - następca projektu SEOKatalog, dostosowany do dzisiejszych standardów, w pełni responsywny, na nowoczesnym frameworku.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 4 tygodnie później...

Hej.

Nareszcie znalazł się Ktoś, kto rozwija możliwości tego skryptu (widziałem też późniejszy mod seo-url) - dobra robota :rolleyes:

I tyle wazelinki styknie.

Mam pytanie dotyczące mod'a 2 tj. Anchor texty jako linki w opisie strony

Jest możliwość dopisania jeszcze takiego bajeru, żeby funkcja dodatkowych linków była aktywna dopiero po przekroczeniu odpowiedniej ilości znaków opisu?

Np. jeśli opis bedzie miał co najmniej 500 znaków, dopiero wówczas będzie można dodać linki - jako bonus za długi opis.

Odnośnik do komentarza
Udostępnij na innych stronach

Jest możliwość dopisania jeszcze takiego bajeru, żeby funkcja dodatkowych linków była aktywna dopiero po przekroczeniu odpowiedniej ilości znaków opisu?

Np. jeśli opis bedzie miał co najmniej 500 znaków, dopiero wówczas będzie można dodać linki - jako bonus za długi opis.

Hej - dobrze że teraz o tym napisałeś. Dziś właśnie chciałem się zabrać za modyfikacje do otwarty mini wprowadzającą ograniczenie liczby znaków opisu np. 500 < x < 3000. Przy okazji tego moda dorobię więc funkcję javascript ujawniającą przycisk do dodania anchor textów tylko wtedy gdy tekst osiągnie wyznaczona ilość znaków.

iDir - skrypt na katalog stron lub firm - następca projektu SEOKatalog, dostosowany do dzisiejszych standardów, w pełni responsywny, na nowoczesnym frameworku.

Odnośnik do komentarza
Udostępnij na innych stronach

General'e - jesteś wielki.

Jak tylko otrzeźwieję po weekendzie, zabiorę się za instalowanie modów.

Ostatnim moim życzeniem (prośbą) byłby następujący mod.

Mam pokaźną bazę e-maili, z których jest zgłaszany ewidentny syf do katalogu. Jak tylko widzę taki e-mail kilkam wpis do zablokowanych stron.

Można prosić o moda który zapisywałby zgłaszane strony od razu do "zablokowanych" stron po rozpoznaniu adresu e-mail spamera? (a najlepiej żeby blokowało domenę wraz z subdomenami - *.domena.pl - bo tego typu śmieci jest najwięcej)

Poza piwkiem :P postaram Ci się to wynagrodzić dobrymi linkami do Twojego katalogu.

Odnośnik do komentarza
Udostępnij na innych stronach

Modyfikacje ok, za wszystkie wielkie brawa.

Gdzieś w sieci widziałem katalog mini z przypisanymi do wpisu tagami, np.: [firma] - podaje wyniki dla: adres_katalogu.search-firma-0.html. W szczegółach wpisu słowa kluczowe stałyby się tagami, albo dodać dodatkowo tagi.

Może taki modzik? Site katalogu by się potroił.

Ale tak najbardziej to potrzeba czegoś by lepiej zabezpieczyć katalogi przed spamem (dodawarki w nieodpowiednich rękach to ... ), token nic nie daje.

Odnośnik do komentarza
Udostępnij na innych stronach

"Zainstalowałem" anchor-texty. Działa :)

Ale nasunęło mi się kilka pytań i spostrzeżeń.

1. Czy można wrzucić funkcje <script> do oddzielnego pliku, żeby bardzej zoptymalizować kod strony? (chodzi mi o już istniejący plik js_blank)

2. Wydaje mi się, że któraś funkcja nie trzyma limitu dodatkowych linków tj. można dodać więcej niż trzy anchor-texty.

3. Czy funkcje dekodujące bbcode nie trzeba objąć?

<?
?>

(ja na wszelki wypadek tak zrobiłem)

4. Również w pliku home.php trzeba podmienić <?=$item[opis]?> na <?=koder($item[opis])?> (chyba, że ktoś nie wyświetla nowych wpisów na głównej)

Odnośnik do komentarza
Udostępnij na innych stronach

Gdzieś w sieci widziałem katalog mini z przypisanymi do wpisu tagami, np.: [firma] - podaje wyniki dla: adres_katalogu.search-firma-0.html. W szczegółach wpisu słowa kluczowe stałyby się tagami, albo dodać dodatkowo tagi.

Może taki modzik? Site katalogu by się potroił.

To jest jak najbardziej do zrobienia i postaram zająć tym kiedy będę miał znów trochę czasu wolnego.

Ale tak najbardziej to potrzeba czegoś by lepiej zabezpieczyć katalogi przed spamem (dodawarki w nieodpowiednich rękach to ... ), token nic nie daje.

Hehe to już nie będzie modyfikacja ale poważna zmiana i nie wiem czy mająca rację bytu - toć otwarty mini powstał właśnie po to by jak najbardziej uprościć procedurę dodawania linków i mam tu na myśli zarówno ręczne dodawania jak i adderem.

1. Czy można wrzucić funkcje <script> do oddzielnego pliku, żeby bardzej zoptymalizować kod strony? (chodzi mi o już istniejący plik js_blank)

Naturalnie wtedy dajesz w <head> tylko odwołanie do tego pliku w javascript.

2. Wydaje mi się, że któraś funkcja nie trzyma limitu dodatkowych linków tj. można dodać więcej niż trzy anchor-texty.

Nie napisałem żadnej funkcji sprawdzającej czy są dokładnie 3 linki - moim zdaniem szkoda czasu bo i tak swoje katalogi moderuję ręcznie i szczerze mówiąc od wprowadzani modu jeszcze nikt więcej niż 3 linków nie wkleił...

3. Czy funkcje dekodujące bbcode nie trzeba objąć?

<?
?>

(ja na wszelki wypadek tak zrobiłem)

Masz rację - zapomniałem tego dopisać w pierwszym poście.

4. Również w pliku home.php trzeba podmienić <?=$item[opis]?> na <?=koder($item[opis])?> (chyba, że ktoś nie wyświetla nowych wpisów na głównej)

Tak - generalnie wszędzie tam gdzie chcemy czysty opis.

iDir - skrypt na katalog stron lub firm - następca projektu SEOKatalog, dostosowany do dzisiejszych standardów, w pełni responsywny, na nowoczesnym frameworku.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 4 tygodnie później...
Pytanie dotyczy oceny moderatora. Coś mi nie działa, w PA wyświetla się wszystko pięknie, zapisuje do bazy również ale wyświetla 0/5.

Sory jak coś przegapiłem. Ważne jest miejsce gdzie to wkleić (w pliku szcz.php)?

Hej no musi być po zapytaniu:

$li_lw = mysql_fetch_assoc(mysql_query("select * from ".$prefix."wpisy where id='$_GET[id]' and akt='1'"));

które w zasadzie jest na samym początku szcz.php...

hmmm...a jesteś pewny że zapisuje ocenę w bazie gdy edytujesz wpis w panelu adm. ?

iDir - skrypt na katalog stron lub firm - następca projektu SEOKatalog, dostosowany do dzisiejszych standardów, w pełni responsywny, na nowoczesnym frameworku.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 1 miesiąc temu...

Nie mogę edytować już postu dlatego jeden pod drugim.

Problem rozwiązałem inaczej, zamiast ostatniego kodu do oceny moderatora (plik szcz.php) dałem

$links[$li_lw[id]]['ocena'] = $li_lw[ocena];

i

<div class="text_link">Ocena moderatora: <img src="otwarty_img/ocena/<?=$item[ocena]?>.gif" alt="<?=$item[ocena]?>" /></div>
Odnośnik do komentarza
Udostępnij na innych stronach

  • 7 miesięcy temu...
a da się wprowadzić oceny przez użytkowników ? Oczywście ze strony szczegułów wpisu. Na innych stronach było by tylko widoczna ocena.

Wszystko się da :-). Ja np. w katalogu Polskie-Strony.org zaadoptowałem skrypt "Unobtrusive AJAX Star Rating Bar" dostępny na stronie https://www.masugadesign.com/the-lab/script...tar-rating-bar/

demo_miniacz_468x60.gif

Polecam projektowanie stron Łódź, oraz moderowany, podrasowany katalog, w którym znajdziesz dobre polskie strony, o niebagatelnej treści.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 2 miesiące temu...

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności