Skocz do zawartości
"Idzie nowe..." - o zmianach i nie tylko ×
Przeniesienie zakupów z IPS Marketplace / Moving bought items from IPS Marketplace ×

zelo

Użytkownik
  • Postów

    61
  • Dołączył

  • Ostatnia wizyta

Odpowiedzi opublikowane przez zelo

  1. W panelu administracyjnym masz funkcje do przeliczania postów.

    ACP > Przeliczanie i przebudowa/Recount and rebuild > Przelicz liczbę postów użytkowników. Chociaż po konwersji nie zaszkodzi przeliczyć też innych danych.

    Ja musiałem jeszcze przebudowywać posty ale od czego to było zależne to już nie pamiętam. Na pewno nie zaszkodzi.

    • Lubię to 1
  2. Problem rozwiązałem przy pomocy supportu IPS. Okazało się, że IPS ma narzędzie do konwersji kodowania bazy danych znajdujące się tu:

    http://community.invisionpower.com/files/file/2929-character-set-converter/

    Konwersja trwała 3-4 godziny na lokalnej maszynie dla 300 mb bazy (wąskim gardłem była tu wydajność bazy mysql).

    Jeśli ktoś chciał by z tego korzystać to sugeruje robić to lokalnie bo ten skrypt dość mocno obciąża bazę danych (po kolei przerzuca każdy rekord ze starej bazy do nowej) i zrywa połączenie co się wiąże z edycją ustawień skryptu i ponownym uruchamianiem.

    Na koniec tylko dodam, że na prawdę warto jak najszybciej przekonwertować całą bazę do UTF-8 bo im później się tym zajmiecie tym więcej problemów i dłużej to potrwa. Dodatkowo przy stosowaniu hacków takich jak wyżej podlinkował DawPi przy każdej aktualizacji trzeba o tym pamiętać.

    • Lubię to 1
  3. Tutaj jest lokacja tej zmiennej z numerami linii w której się znajduje. Nie mogę już edytować powyższego posta a może to ułatwić komuś pomoc w problemie.

    
    extensions/sitemapPlugins/forums.php:20: $permCheck = $this->DB->buildWherePermission(array($this->settings['guest_group']), 'p.perm_view', true);
    extensions/sitemapPlugins/content_database_categories.php:22: $permCheck1 = $this->DB->buildWherePermission(array($this->settings['guest_group']), 'perm1.perm_view', true);
    extensions/sitemapPlugins/content_database_categories.php:23: $permCheck2 = $this->DB->buildWherePermission(array($this->settings['guest_group']), 'perm2.perm_view', true);
    extensions/sitemapPlugins/content_database_categories.php:24: $permCheck3 = $this->DB->buildWherePermission(array($this->settings['guest_group']), 'p.page_view_perms', true);
    extensions/sitemapPlugins/downloads_categories.php:20: $permCheck = $this->DB->buildWherePermission(array($this->settings['guest_group']), 'p.perm_view', true);
    extensions/sitemapPlugins/downloads_files.php:29: $permCheck = $this->DB->buildWherePermission(array($this->settings['guest_group']), 'p.perm_2', true);
    extensions/sitemapPlugins/blogs.php:25: 'where'  => 'g_id = ' . $this->settings['guest_group']));
    extensions/sitemapPlugins/topics.php:46: $permCheck = $this->DB->buildWherePermission(array($this->settings['guest_group']), 'p.perm_2', true);
    extensions/sitemapPlugins/nexus_products.php:22: 'where' => 'p_store=1 AND ' . $this->DB->buildWherePermission( array( $this->settings['guest_group'] ), 'p_member_groups' ),
    extensions/sitemapPlugins/calendar.php:39: 'where' => $this->DB->buildWherePermission( array( $this->settings['guest_group'] ), 'p.perm_view' )
    extensions/sitemapPlugins/calendar.php:61: 'where' => "event_end_date < {$time} AND " . $this->DB->buildWherePermission( $calendars, 'event_calendar_id', FALSE ) . ' AND ' . $this->DB->buildWherePermission( array( $this->settings['guest_group'] ), 'event_perms' ),
    extensions/sitemapPlugins/calendar.php:81: 'where' => "event_end_date > {$time} AND " . $this->DB->buildWherePermission( $calendars, 'event_calendar_id', FALSE ) . ' AND ' . $this->DB->buildWherePermission( array( $this->settings['guest_group'] ), 'event_perms' ),
    extensions/sitemapPlugins/blog_entries.php:22: 'where'  => 'g_id = ' . $this->settings['guest_group']));
    extensions/sitemapPlugins/content_pages.php:25: $permCheck = $this->DB->buildWherePermission(array($this->settings['guest_group']), 'page_view_perms', true);
    extensions/sitemapPlugins/content_database_records.php:23: $permCheck1 = $this->DB->buildWherePermission(array($this->settings['guest_group']), 'perm1.perm_2', true);
    extensions/sitemapPlugins/content_database_records.php:24: $permCheck2 = $this->DB->buildWherePermission(array($this->settings['guest_group']), 'perm2.perm_2', true);
    extensions/sitemapPlugins/content_database_records.php:25: $permCheck3 = $this->DB->buildWherePermission(array($this->settings['guest_group']), 'p.page_view_perms', true);
    
    

  4. Trochę to dziwne. Spróbuj utworzyć nową maskę tylko dla botów i sprawdź wtedy.

    Bez zmian. Stworzyłem nową grupę z nową maską uprawnień i zmieniłem ustawienia hooka. Wykrywa mnie jako Googlebota, koloruje nick jak trzeba i wyświetla to co powinno, jednak nie mogę wejść do żadnej kategorii (w masce uprawnień oczywiście ustawiłem i wyświetlanie i czytanie)

    Edit. Jednak bot dostaje maskę guest. Pomimo tego, że inne ustawienia grupy Bot są aktywne (chociażby kolorowanie nicka)

    Może ip.seo nadpisuje maskę na guest.

    Edit2. Zastanawiam się czy globalna zmiana wszystkich odwołań w kodzie IP.SEO do guest group na odwołanie do grupy botów była by bezpieczna. Tzn czy przy okazji bym czegoś nie spieprzył.

    Poniżej zamieszczam listę plików i linie w których są odwołania do tej zmiennej.

    Wszystkie ścieżki są podane relatywnie do "board/upload/admin/applications_addon/ips/ipseo"

    
    ./extensions/sitemapPlugins/forums.php: $permCheck = $this->DB->buildWherePermission(array($this->settings['guest_group']), 'p.perm_view', true);
    ./extensions/sitemapPlugins/content_database_categories.php: $permCheck1 = $this->DB->buildWherePermission(array($this->settings['guest_group']), 'perm1.perm_view', true);
    ./extensions/sitemapPlugins/content_database_categories.php: $permCheck2 = $this->DB->buildWherePermission(array($this->settings['guest_group']), 'perm2.perm_view', true);
    ./extensions/sitemapPlugins/content_database_categories.php: $permCheck3 = $this->DB->buildWherePermission(array($this->settings['guest_group']), 'p.page_view_perms', true);
    ./extensions/sitemapPlugins/downloads_categories.php: $permCheck = $this->DB->buildWherePermission(array($this->settings['guest_group']), 'p.perm_view', true);
    ./extensions/sitemapPlugins/downloads_files.php: $permCheck = $this->DB->buildWherePermission(array($this->settings['guest_group']), 'p.perm_2', true);
    ./extensions/sitemapPlugins/blogs.php: 'where'  => 'g_id = ' . $this->settings['guest_group']));
    ./extensions/sitemapPlugins/topics.php: $permCheck = $this->DB->buildWherePermission(array($this->settings['guest_group']), 'p.perm_2', true);
    ./extensions/sitemapPlugins/nexus_products.php: 'where' => 'p_store=1 AND ' . $this->DB->buildWherePermission( array( $this->settings['guest_group'] ), 'p_member_groups' ),
    ./extensions/sitemapPlugins/calendar.php: 'where' => $this->DB->buildWherePermission( array( $this->settings['guest_group'] ), 'p.perm_view' )
    ./extensions/sitemapPlugins/calendar.php: 'where' => "event_end_date < {$time} AND " . $this->DB->buildWherePermission( $calendars, 'event_calendar_id', FALSE ) . ' AND ' . $this->DB->buildWherePermission( array( $this->settings['guest_group'] ), 'event_perms' ),
    ./extensions/sitemapPlugins/calendar.php: 'where' => "event_end_date > {$time} AND " . $this->DB->buildWherePermission( $calendars, 'event_calendar_id', FALSE ) . ' AND ' . $this->DB->buildWherePermission( array( $this->settings['guest_group'] ), 'event_perms' ),
    ./extensions/sitemapPlugins/blog_entries.php: 'where'  => 'g_id = ' . $this->settings['guest_group']));
    ./extensions/sitemapPlugins/content_pages.php: $permCheck = $this->DB->buildWherePermission(array($this->settings['guest_group']), 'page_view_perms', true);
    ./extensions/sitemapPlugins/content_database_records.php: $permCheck1 = $this->DB->buildWherePermission(array($this->settings['guest_group']), 'perm1.perm_2', true);
    ./extensions/sitemapPlugins/content_database_records.php: $permCheck2 = $this->DB->buildWherePermission(array($this->settings['guest_group']), 'perm2.perm_2', true);
    ./extensions/sitemapPlugins/content_database_records.php: $permCheck3 = $this->DB->buildWherePermission(array($this->settings['guest_group']), 'p.page_view_perms', true);
    
    

  5. Czas wykonywania skryptu to rzecz marginalna.

    Rzecz która zwykle daje największy spadek wczytywania stron i wymaga bardzo mało wysiłku do implementacji to dodanie nagłówków max-age do wszystkich statycznych elementów witryny.

    Robi się to dlatego, że za każdym razem jak twoja strona (forum) jest wczytywane do przeglądarka odpytuje po kolei każdy element strony (grafiki, css, js, ...) czy nie uległ on przypadkiem zmianie, co oczywiście chwile trwa i jest zwykle zbędne.

    Najprostszym sposobem na dodanie takich nagłówków jest umieszczenie pliku .htaccess o odpowiedniej treści w katalogu gdzie przechowujemy nasze statyczne pliki. Przykład:

    <FilesMatch "\.(ico|jpg|jpeg|png|gif|js|css|swf)$">
    Header set Cache-Control "max-age=86400, public"
    </FilesMatch>
    

    Czas podajemy w sekundach. W tym wypadku 24h. Można dla różnych rozszerzeń określić różny czas.

    Cała zabawa spowoduje, że przez określony czas przeglądarki nie będą sprawdzać czy posiadana w cache wersja pliku jest aktualna.

    W sumie to jest tylko wierzchołek góry lodowej jeśli chodzi o optymalizacje www, ale jak pisałem najprościej jest to zaimplementować i daje dobre efekty.

    • Lubię to 3
  6. Próbowałem, ale wcześniej nie pomyślałem o wyczyszczeniu cache postów. Po wyczyszczeniu znaczki wyświetlają się poprawnie.

    Wygląda na to, że wszystko działa, jednak na dłuższą metę jest to tylko obejście problemu a nie jego rozwiązanie. Zastanawiam się dlaczego pomimo tego, że baza jest kodowana w UTF-8 to to nie działa. Baza cały czas rośnie, a w miarę rozrostu bazy mogą kłębić się problemy.

  7. Chciałbym zaktualizować forum do nowszej wersji ale mam problemy z bazą.

    Aktualnie forum stoi na ipb 3.1.4. Kodowanie bazy to utf8_general_cl, collation ustawione tak samo.

    Co zabawne kodowanie forum jest ustawione na iso-8859-2 (inaczej się krzaczyło). Zrobił się z tego niezły syf i postanowiłem to ogarnąć.

    Po konwersji przez iconv i podmianą krzaczków za pomocą sed'a udało mi się to ogarnąć do takiego stopnia, że prawidłowo wyświetla się to w phpmyadmin. Problem pojawił się po aktualizacji do ipb 3.2.3 gdzie wszystkie polskie znaczki (po za ó i ó) są zamieniane przez skrypt forum na pytajniki. Dzieje się to niezależnie od ustawienia kodowania w ipb.

    Zna ktoś przyczynę/rozwiązanie tego problemu?

  8. Po wejściu w profil, zawartość użytkownika po lewej w boxie jest:

    Wyświetl wszystkie tematy, w których odpowiedział %s

    Wyświetl wszystkie tematy rozpoczęte przez %s

    Wyświetl wszystkie posty napisane przez %s

    Nie jestem pewien, ale zdaje mi się, że zamiast %s powinien wyświetlać się nick użytkownika.

    Edit:

    To samo zauważyłem na forum Matma4u więc nie tylko u mnie jest problem.

  9. Xawier nie mam, ale z tego co wiem to oficjalnie google bierze pod uwagę szybkość strony (choć ludzie twierdzą, że chodzi o strony które wczytują się za długo w sensie pare/naście sekund.). Co ciekawe w narzędziach yslow (yahoo) i page speed(google) jest sprawdzane czy korzystasz z CDN i leci za to punktacja (polecam zapoznać się z tymi narzędziami bo dodatkowo yslow linkuje do obszernego materiału na temat sposobów optymalizacji stron według yahoo - osobiście uważam, że warto się z tym zapoznać, chociaż jest to bardzo obszerne).

    Co do samego CDN nie wiem czy warto jest się pchać w takie rozwiązania. Osobiście na razie nie zamierzam inwestować w prawdziwy cdn, a pewną jego namiastke (rozproszenie requestów na więcej niż jeden host). W zasadzie nie wiem nawet jakich korzyści moge się po tym spodziewać, więc ciężko mi jest powiedzieć czy warto. Na pewno warto zrobić esty i sprawdzić czy daje to jakieś wymierne efekty.

    Jeszcze ad narzędzi dodam strone:

    http://www.webpagetest.org

    Pokazuje ciekawe statystyki (ilość danych pobranych po 1 wejśćiu na strone, ilość danych po kolejnym (bierze pod uwage zcachowane pliki), czas wczytywania pojedynczych plików (z ładnym wykresem), przeprowadza także testy pod różnym kątem i linkuje pliki które ich nie zdały). Generalnie fajna sprawa, tylko sugeruje wybierać od IE6 do IE8 bo IE9 przekierowuje na jakąś inną strone. Wszystkie te dane są dostępne po otwarciu różnych obrazków w raporcie)

    Remember that 80-90% of the end-user response time is spent downloading all the components in the page: images, stylesheets, scripts, Flash, etc. This is the Performance Golden Rule. Rather than starting with the difficult task of redesigning your application architecture, it's better to first disperse your static content. This not only achieves a bigger reduction in response times, but it's easier thanks to content delivery networks.

    Źródłó Yahoo: Best Practices for Speeding Up Your Web Site (wspomniany wyżej tekst)

    • Lubię to 2
  10. Chodzi o rozproszone serwowanie statycznych treści. Ma to wiele różnych zalet np:

    - rozproszenie pobierania plików po hostach (przeglądarki pobierają średnio 2 pliki z jednego hosta na raz)

    - rozproszenie requestów na wiele maszyn

    - przyśpieszenie pobierania plików (cdn sam rozkminia najbliższą lokalizacje w stosunku do usera i serwuje z niej pliki)

    - Dodatkowo yahoo twierdzi, że roboty lubią jak treść statyczna pobierana jest z "cookieless domain" :)

    Po stronie IPB chodzi o przepisanie linków tak, aby używały linka z zewnętrznego serwera. Szukam optymalnego rozwiązania tego problemu.

  11. Po dodaniu odpowiedzi w jakimkolwiek temacie wyskakuje IPS Driver Error. Wszystko zaczęło się koło 22. Chwile wcześniej serwer leżał przez moment, ale generalnie nic przy forum grzebane nie było.

    Poniżej zamieszczam fragment logu:

    
    Date: Mon, 25 Oct 2010 20:10:53 +0000
    Error: 144 - Table './ipb_forum/amm_topic_views' is marked as crashed and last (automatic?) repair failed
    IP Address: xxxxxx - /index.php?
    ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    mySQL query error: SELECT COUNT(*) as topicviews FROM amm_topic_views WHERE views_tid=11908
    .--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.
    | File                                                                       | Function                                                                      | Line No.          |
    |----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------|
    | admin/applications/forums/sources/classes/post/classPost.php               | [classPost].updateViewCounter                                                 | 1001              |
    '----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------'
    | admin/applications/forums/modules_public/post/post.php                     | [classPost].addReply                                                          | 280               |
    '----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------'
    | admin/applications/forums/modules_public/post/post.php                     | [public_forums_post_post].saveForm                                            | 258               |
    '----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------'
    | admin/sources/base/ipsController.php                                       | [public_forums_post_post].doExecute                                           | 296               |
    '----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------'
    ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    Date: Mon, 25 Oct 2010 20:13:54 +0000
    Error: 144 - Table './ipb_forum/amm_topic_views' is marked as crashed and last (automatic?) repair failed
    IP Address: xxxxx - /index.php?
    ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    mySQL query error: SELECT COUNT(*) as topicviews FROM amm_topic_views WHERE views_tid=11903
    .--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.
    | File                                                                       | Function                                                                      | Line No.          |
    |----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------|
    | admin/applications/forums/sources/classes/post/classPost.php               | [classPost].updateViewCounter                                                 | 1001              |
    '----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------'
    | admin/applications/forums/modules_public/post/post.php                     | [classPost].addReply                                                          | 280               |
    '----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------'
    | admin/applications/forums/modules_public/post/post.php                     | [public_forums_post_post].saveForm                                            | 258               |
    '----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------'
    | admin/sources/base/ipsController.php                                       | [public_forums_post_post].doExecute                                           | 296               |
    '----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------'
    ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    
    

    Dodam jeszcze, że IPB nie radzi sobie z naprawą tabeli amm_topic_views która jest pusta.

×
×
  • 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ę.