Entwicklung/Entwicklersystem PL
Diese Anleitung beschreibt, wie man im Opencaching.de-Entwicklersystem auch den polnischen OC-Code einrichtet. Dies ist z.B. hilfreich für die Mitarbeit am OKAPI-Projekt, oder um polnische Features zu testen die in den deutschen Code übernommen werden könnten.
Die folgende Anleitung setzt ein funktionierendes OC.de-Entwicklersystem voraus (auf Basis CentOS 7). Für die Datenbank-Benutzer werden die Einstellungen aus dem Vagrant-System angenommen: Rootpassswort "root", OC-Benutzer "opencaching" mit Passwort "opencaching".
PHP-Setup
PDO und Tidy
Die PHP-Erweiterungen "pdo" und "tidy" sollten bereits installiert sein. Um ganz sicherzugehen:
- yum install php-tidy
- yum install php-pdo
In /etc/php.ini muss bei den "Extensions" eingetragen sein:
extension=php_tidy.dll
- service httpd restart
Code einrichten
Code auschecken
Die weitere Vorgehensweise hier hängt davon ab, wo/wie die OC-Quelltexte in der Entwickler-VM abgelegt sind. Wenn man sie direkt in der VM ablegen und verwalten möchte:
- yum install git
- cd /var/www/html
- git clone https://github.com/<meinaccount>/opencaching-pl ocpl
Wenn sie auf dem Host liegen sollen: ocpl-Source auf analoge Weise einbinden wie den ocde-Source, gemountet unter /var/www/html/ocpl.
Abschließend:
- cd /var/www/html/ocpl
- git remote add upstream https://github.com/opencaching/opencaching-pl
- git config branch.master.remote upstream
fehlende Verzeichnisse und Dateien anlegen
ocpl/docs/ocpl-data.tar irgendwo entpacken und alle darin enthaltenen Verzeichnisse und Dateien, die im ocpl-Codebaum fehlen (außer 'mp3'), dort reinkopieren (also keine vorhandenen Dateien überschreiben). Außerdem:
- ln -s /var/www/html/ocpl/var/mp3 /var/www/html/ocpl/mp3
- ln -s /var/www/html/ocpl/images/uploads /var/www/html/ocpl/upload
- mkdir /var/www/html/ocpl/var
- mkdir /var/log/ocpl
- chown apache:apache /var/log/ocpl
- mkdir /var/www/html/ocpl/var/download
- mkdir /var/www/html/ocpl/var/download/zip
- mkdir /var/www/html/ocpl/var/download/zip/ocxml11
- mkdir /var/www/html/ocpl/var/download/zip/ocxml12
In ocpl/Utils/Email die provisorische Datei OcSpamDomain.php mit folgendem Inhalt anlegen:
<?php namespace Utils\Email; class OcSpamDomain { const DB_ERRORS = 0; const GENERIC_ERRORS = 0; public function isEmailAllowed($spamDomain) { return false; } }
lokale Dateien im Git ignorieren
Folgendes in ocpl/.git/info/exclude hinzufügen:
images/uploads mp3 tpl/stdstyle/html upload var
Konfigurationsdateien einrichten
ocpl/lib/settings.inc.php:
<?php // Unicode Reminder メモ require __DIR__ . '/settingsDefault.inc.php'; //Replace localhost to you own domain site //relative path to the root directory if (!isset($rootpath)) $rootpath = './'; //default used language if (!isset($lang)) $lang = 'en'; //default used style if (!isset($style)) $style = 'stdstyle'; //pagetitle if (!isset($pagetitle)) $pagetitle = 'Geocaching Opencaching Polska'; //site name $site_name = 'local5.opencaching.pl'; //id of the node 4 for local development $oc_nodeid = 4; //OC Waypoint for your site for example OX $GLOBALS['oc_waypoint'] = 'OP'; //name of the cookie $opt['cookie']['name'] = 'ocpl'; $opt['cookie']['path'] = '/'; $opt['cookie']['domain'] = '.opencaching.pl'; //name of the cookie if (!isset($cookiename)) $cookiename = 'ocpl'; if (!isset($cookiepath)) $cookiepath = '/'; if (!isset($cookiedomain)) $cookiedomain = '.opencaching.pl'; // Coordinates hidden for not-logged-ins? global $hide_coords; $hide_coords = false; // scores range $MIN_SCORE = 0; $MAX_SCORE = 4; // display online users on footer pages off=0 on=1 $onlineusers=1; // wlaczenie blokady liczby max zakladanych skrzynek typu owncache (by Marcin stryker) $GLOBALS['owncache_limit'] = '1'; //block register new cache before first find xx nuber caches value -1 off this feature $NEED_FIND_LIMIT=0; $NEED_APPROVE_LIMIT = 0; //Debug? if (!isset($debug_page)) $debug_page = true; $develwarning = 'DEVELSITE'; //site in service? Set to false when doing bigger work on the database to prevent error's if (!isset($site_in_service)) $site_in_service = true; //if you are running this site on a other domain than staging.opencaching.de, you can set //this in private_db.inc.php, but don't forget the ending / $absolute_server_URI = 'http://local.opencaching.pl/'; // EMail address of the sender if (!isset($emailaddr)) $emailaddr = 'noreply@local.opencaching.pl'; // location for dynamically generated files $dynbasepath = '/var/www/html/ocpl/var/'; $dynstylepath = '/var/www/html/ocpl/tpl/stdstyle/html/'; // location of cache images if (!isset($picdir)) $picdir = $dynbasepath . '../images/uploads'; if (!isset($picurl)) $picurl = $absolute_server_URI . 'images/uploads'; // Thumbsize $thumb_max_width = 175; $thumb_max_height = 175; // Small thumbsize $thumb2_max_width = 64; $thumb2_max_height = 64; // location of cache mp3 files if (!isset($mp3dir)) $mp3dir = $dynbasepath . 'mp3'; if (!isset($mp3url)) $mp3url = $absolute_server_URI . 'mp3'; // maximal size of mp3 for PodCache 5 Mb ? if (!isset($maxmp3size)) $maxmp3size = 5000000; // allowed extensions of images if (!isset($mp3extensions)) $mp3extensions = ';mp3;'; // default coordinates for cachemap, set to your country's center of gravity $country_coordinates = "52.5,19.2"; // zoom at which your whole country/region is visible $default_country_zoom = 6; // Main page map parameters (customize as needed) $main_page_map_center_lat = 52.13; $main_page_map_center_lon = 19.20; $main_page_map_zoom = 5; $main_page_map_width = 250; $main_page_map_height = 260; // maximal size of images if (!isset($maxpicsize)) $maxpicsize = 152400; // allowed extensions of images if (!isset($picextensions)) $picextensions = ';jpg;jpeg;gif;png;'; // news settings $use_news_approving = true; $news_approver_email = 'root@localhost'; //local database settings $dbpconnect = false; $dbserver = 'localhost'; $dbname = 'ocpl'; $dbusername = 'opencaching'; $dbpasswd = 'opencaching'; $opt['db']['server'] = 'localhost'; $opt['db']['name'] = 'ocpl'; $opt['db']['username'] = 'opencaching'; $opt['db']['password'] = 'opencaching'; $tmpdbname = 'octmp'; // warnlevel for sql-execution $sql_errormail = 'root@localhost'; $sql_warntime = 1; // replacements for sql() $sql_replacements['db'] = $dbname; $sql_replacements['tmpdb'] = 'octmp'; // safemode_zip-binary $safemode_zip = '/var/www/bin/phpzip-pl.php'; $zip_basedir = $dynbasepath . 'download/zip/'; $zip_wwwdir = '/download/zip/'; // Your own Google map API key $googlemap_key = ""; $googlemap_type = "G_MAP_TYPE"; // alternativ: _HYBRID_TYPE $dberrormail = 'root@localhost'; // user_id of admin who have more options than COG users to remove all logs or other more options in admin_users.php $super_admin_id = ''; $cachemap_mapper = "lib/mapper_okapi.php"; //Links to blog page on oc site $blogsite_url = 'http://blog.opencaching.pl'; //links to forum page on oc site $forum_url = 'http://forum.opencaching.pl'; $wiki_url = 'http://wiki.opencaching.pl'; $wikiLinks = array( 'main' => $wiki_url, 'rules' => $wiki_url.'/index.php/Regulamin_OC_PL', 'rules_en' => $wiki_url.'/index.php/OC_PL_Conditions_of_Use', 'cacheParams' => $wiki_url.'/index.php/Parametry_skrzynki', 'cacheParams_en' => $wiki_url.'/index.php/Cache_parameters', 'ratingDesc' => $wiki_url.'/index.php/Oceny_skrzynek', 'ratingDesc_en' => $wiki_url.'/index.php/Cache_rating', 'forBeginers' => $wiki_url.'/index.php/Dla_pocz%C4%85tkuj%C4%85cych', 'placingCache' => $wiki_url.'/index.php/Zak%C5%82adanie_skrzynki', 'cacheQuality' => $wiki_url.'/index.php/Jako%C5%9B%C4%87_skrzynki', 'myRoutes' => $wiki_url.'/index.php/Moje_trasy', 'cacheNotes' => $wiki_url.'/index.php/Notatki_skrzynki', 'additionalWaypoints' => $wiki_url.'/index.php/Dodatkowe_waypointy_w_skrzynce', 'cachingCode' => $wiki_url.'/index.php/Kodeks_geocachera', 'usefulFiles' => $wiki_url.'/index.php/U%C5%BCyteczne_pliki_zwi%C4%85zane_z_OC_PL', 'ocSiteRules' => $wiki_url.'/index.php/Zasady_funkcjonowania_Serwisu_OC_PL', 'cacheTypes' => $wiki_url.'/index.php/Typ_skrzynki', 'cacheAttrib' => $wiki_url.'/index.php/Parametry_skrzynki#Atrybuty_skrzynki', 'cacheAttrib_en' => $wiki_url.'/index.php/Cache_parameters#Attributes', 'cacheLogPass' => $wiki_url.'/index.php/Parametry_skrzynki#Has.C5.82o_do_wpisu_do_Logu', 'cacheLogPass_en' => $wiki_url.'/index.php/Cache_parameters#Log_password', // optional item 'downloads' => $wiki_url.'/index.php/U%C5%BCyteczne_pliki_zwi%C4%85zane_z_OC_PL', ); $rules_url = 'http://wiki.opencaching.pl/index.php/Regulamin_OC_PL'; $cache_params_url = 'http://wiki.opencaching.pl/index.php/Parametry_skrzynki'; $rating_desc_url = 'http://wiki.opencaching.pl/index.php/Oceny_skrzynek'; $wikiLinks = array( 'forBeginers' => 'http://wiki.opencaching.pl/index.php/Dla_początkujących', 'placingCache' => 'http://wiki.opencaching.pl/index.php/Zakładanie_skrzynki', 'makingCaches' => 'http://wiki.opencaching.pl/index.php/Jakość_skrzynki', 'makingRoutes' => 'http://wiki.opencaching.pl/index.php/Moje_trasy', 'cacheNotes' => 'http://wiki.opencaching.pl/index.php/Notatki_skrzynki', 'extraWaypoints' => 'http://wiki.opencaching.pl/index.php/Dodatkowe_waypointy_w_skrzynce', 'cachingCode' => 'http://wiki.opencaching.pl/index.php/Kodeks_geocachera', ); $contact_mail = 'root (at) localhost'; // E-mail address group of people from OC Team who solve problems, verify cache $octeam_email = 'root@localhost'; // signature of e-mails send by system $octeamEmailsSignature = "Pozdrawiamy, Zespół www.opencaching.pl"; // watchlist config: $watchlistMailfrom = 'watch@local.opencaching.pl'; // email of GeoKrety developer (used in GeoKretyApi.php for error notifications) $geoKretyDeveloperEmailAddress = 'stefaniak@gmail.com'; // New caches outside country where server is: $SiteOutsideCountryString = 'poland_outside'; $countryParamNewcacherestPhp = " 'PL' "; /* power Trail module switch and settings */ // true - swithed on; false - swithed off $powerTrailModuleSwitchOn = true; // minimum cache count for power trail to be public displayed // (PT having less than $powerTrailMinimumCacheCount ) are visible only to owners. $powerTrailMinimumCacheCount = array( 'current' => 25, 'old' => array( 1 => array( 'dateFrom' => '1970-01-01 01:00', 'dateTo' => '2013-10-29 23:59:59', 'limit' => 5, ), // if limit change in future, just uncomment and place here current limit and period of time // 2 => array ( // 'dateFrom' => '2013-10-30 00:00:00', // 'dateTo' => '20??-??-?? 23:59:59', // 'limit' => 25, // ), ), ); // minimum cahes Found count of user, to alow user set new Power Trail // user who found less than $powerTrailUserMinimumCacheFoundToSetNewPowerTrail can't create new PT $powerTrailUserMinimumCacheFoundToSetNewPowerTrail = 500; // link to FAQ/info of power trail module $powerTrailFaqLink = 'http://info.opencaching.pl/node/13'; /* end of power Trail module switch and settings */ // enables/disables linkage to blog in index.php $BlogSwitchOn = true; // enable detailed cache access logging //$enable_cache_access_logs = true; // OC specific email addresses for international use. $mail_cog = 'root@localhost'; $mail_rt = 'root@localhost'; $mail_rr = 'root@localhost'; $mail_oc = 'root@localhost'; //Short sitename for international use. $short_sitename = 'OC PL'; // Contact data definition START /* Possible array entries are listed below. All the entries are optional. + groupName HTML header with a group name. Group name can be either raw, html code; or a reference to the translation file. + emailAddress E-mail address, which will be printed just below the groupName. + groupDescription Group description is an actual text of the group, which is placed under the groupName and e-mail. This entry can be in one of the following types/formats: - an array - if so, each array entry is processed as one of those two types below; - raw, html code; - reference to the translation file. + subgroup A nested array of the same structure. HTML headers for nested groups are one level lower. + other_keys They are used to substitute {other_keys} references in both groupName and groupDescription. Those keys do not propagate to subgroups. */ // Configuration for OC.PL contact page // Translated to Polish and English only :/ $contactDataPL = array( array( 'groupName' => 'contact_pl_about_title', 'groupDescription' => array( 'contact_pl_about_description_1', 'contact_pl_about_description_2' ) ), array( 'groupName' => 'OpenCaching PL Team', 'subgroup' => array( array( 'groupName' => 'Rada Rejsu', 'groupDescription' => 'contact_pl_rr_description', 'emailAddress' => 'rr at opencaching.pl', 'link' => 'http://forum.opencaching.pl/viewtopic.php?f=19&t=6297' ), array( 'groupName' => 'Rada Techniczna', 'groupDescription' => 'contact_pl_rt_description', 'emailAddress' => 'rt at opencaching.pl', 'link' => 'https://code.google.com/p/opencaching-pl/people/list' # No longer valid! ), array( 'groupName' => 'Centrum Obsługi Geocachera', 'groupDescription' => 'contact_pl_cog_description', 'emailAddress' => 'cog at opencaching.pl', 'link' => 'http://forum.opencaching.pl/viewtopic.php?f=19&t=6297' ), ), ), array( 'groupName' => 'contact_pl_other_title', 'groupDescription' => 'contact_pl_other_description' ), array( 'groupName' => 'contact_ocpl_title', 'groupDescription' => array( 'contact_ocpl_description_1', 'contact_ocpl_description_2', 'contact_ocpl_description_3', ) ) ); // Configuration from OC.DE contact page // This is only a template, to be translated/updated for OC.NL $contactDataDE = array( array( 'groupName' => 'Allgemeine Fragen zu Opencaching.de und zum Thema Geocaching', 'groupDescription' => array( 'Für Fragen rund um Opencaching und zum Thema Geocaching ist das <a href="http://wiki.opencaching.de/">Opencaching-Wiki</a> eine gute Anlaufstelle. Weitere Informationen zum Geocaching gibt es auf <a href="http://www.geocaching.de">www.geocaching.de</a>.', 'Wenn du ein spezielles Problem hast und darauf keine Antwort findest, kannst du dir unter <a href="http://forum.opencaching-network.org">forum.opencaching-network.org</a> ein passendes Forum raussuchen und dich dort erkundigen.' ) ), array( 'groupName' => 'Bedienung der Website, Anregungen und Kritik', 'groupDescription' => 'Hierfür gibt es ein eigenes Unterforum auf <a href="http://forum.opencaching-network.org/index.php?board=33.0">forum.opencaching-network.org</a>. Dort findest du auch weitere Informationen, falls du in unserem Team mitmachen möchtest.' ), array( 'groupName' => 'Sonstiges', 'groupDescription' => array( 'Sollten die oben genannten Möglichkeiten nicht ausreichen oder die Betreiber von <i>opencaching.de</i> direkt kontaktiert werden, kannst du auch eine Email an <a href="mailto:contact@opencaching.de">contact@opencaching.de</a> schreiben.', 'Bitte werde nicht ungeduldig wenn nicht sofort eine Antwort kommt, <i>opencaching.de</i> wird von Freiwilligen betreut, die leider nicht immer und sofort zur Verfügung stehen können.', ) ) ); // $contactData = $contactDataPL; // Contact data definition END // Show date and date/time correct way. $dateFormat = 'Y-m-d'; $datetimeFormat = 'Y-m-d H:i'; $defaultCountryList = array("AT", "BE", "BY", "BG", "HR", "CZ", "DK", "EE", "FI", "FR", "GR", "ES", "NL", "IE", "LT", "MD", "DE", "NO", "PL", "PT", "SU", "RO", "SK", "SI", "CH", "SE", "TR", "UA", "IT", "HU", "GB",); /** * Configuration for map v3 maps * * Two dimensional array: * * * first dimension * KEYS - internal names * * * second dimension * KEYS: * - hidden: boolean attribute to hide the map entirerly, without removing it from config * - showOnlyIfMore: show this map item only in large views (like full screen) * - attribution: the HTML snippet that will be shown in bottom-right part of the map * - imageMapTypeJS: the complete JS expression returning instance of google.maps.ImageMapType, * if set, not other properties below will work * - name: the name of the map * - tileUrl: URL to the tile, may contain following substitutions * - {z} - zoom, may include shifts, in form of i.e. {z+1}, {z-3} * - {x}, {y} - point coordinates * - tileUrlJS: the complete JS expression returning function for tileUrl retrieval, * if set, tileUrl property will not work * - tileSize: the tile size, either in form of WIDTHxHEIGHT, i.e. 256x128, or complete * JS expression returning instance of google.maps.Size * - maxZoom: maximum zoom available * - minZoom: minimum zoom available * * Other keys, will be passed as is, given that * - numerical and boolean values are passed as is to JS * - other types are passed as strings, unless they start with raw: prefix. In that case, * they are passed as JS expressions */ $mapsConfig = array( 'OSMapa' => array( 'attribution' => '© <a href="http://www.openstreetmap.org/" target="_blank">OpenStreetMap</a> contributors <a href="http://creativecommons.org/licenses/by-sa/2.0/" target="_blank">CC BY-SA</a> | Hosting:<a href="http://trail.pl/" target="_blank">trail.pl</a> i <a href="http://centuria.pl/" target="_blank">centuria.pl</a>', 'name' => 'OSMapa', 'tileUrl' => 'http://tile.openstreetmap.pl/osmapa.pl/{z}/{x}/{y}.png', 'maxZoom' => 18, 'tileSize' => '256x256', ), 'OSM' => array( 'name' => 'OSM', 'attribution' => '© <a href="http://www.openstreetmap.org/" target="_blank">OpenStreetMap</a> contributors <a href="http://creativecommons.org/licenses/by-sa/2.0/" target="_blank">CC BY-SA</a>', 'tileUrl' => 'http://tile.openstreetmap.org/{z}/{x}/{y}.png', 'maxZoom' => 18, 'tileSize' => '256x256', 'showOnlyIfMore' => true ), 'UMP' => array( 'name' => 'UMP', 'attribution' => '© Mapa z <a href="http://ump.waw.pl/" target="_blank">UMP-pcPL</a>', 'tileUrl' => 'http://tiles.ump.waw.pl/ump_tiles/{z}/{x}/{y}.png', 'maxZoom' => 18, 'tileSize' => '256x256', ), 'Topo' => array( 'attribution' => '© <a href="http://geoportal.gov.pl/" target="_blank">geoportal.gov.pl</a>', 'showOnlyIfMore' => true, 'imageMapTypeJS' => 'new google.maps.ImageMapType(new WMSImageMapTypeOptions( "Topo", "http://mapy.geoportal.gov.pl:80/wss/service/img/guest/TOPO/MapServer/WmsServer", "Raster", "", "image/jpeg"))', ), 'Orto' => array( 'attribution' => '© <a href="http://geoportal.gov.pl/" target="_blank">geoportal.gov.pl</a>', 'showOnlyIfMore' => true, 'imageMapTypeJS' => 'new google.maps.ImageMapType(new WMSImageMapTypeOptions( "Orto", "http://mapy.geoportal.gov.pl:80/wss/service/img/guest/ORTO/MapServer/WmsServer", "Raster", "", "image/jpeg"))', ), ); $config['mapsConfig'] = $mapsConfig; // map of garmin keys, // key: domain name, value: garmin key value // the map may contain only one entry $config['garmin-key'] = array( 'http://opencaching.pl' => '0fe1300131fcc0e417bb04de798c5acf', 'http://www.opencaching.nl' => 'b01f02cba1c000fe034471d2b08044c6', 'http://local.opencaching.pl' => '9eb4fbbdf63eb75be32f6467fe982f7e', ); $titled_cache_nr_found=10; $titled_cache_period_prefix='week'; // local addition date_default_timezone_set("Europe/Berlin"); $disable_google_translation = true; $mailfrom = 'local.opencaching.pl'; $mailfrom_noreply = 'noreply@local.opencaching.pl'; ?> |
Diese Beispielsettings sind Stand 4.3.2016. Aktualisierungen findet man in ocpl/lib/settings-example.inc.php (-> Änderungen).
Damit die Karten funktionieren, muss man sich noch einen Google-Map-Key besorgen ("Browser Key" für die "Google Maps JavaScript API") und in der Variable $googlemap_key eingetragen. Wer bereits einen eigenen Key für local.opencaching.de hat, kann dort in der Google-Konsole die Domain local.opencaching.pl hinzufügen, also einen Key für Beides verwenden.
Ein Key für das Garmin-Plugin ist bereits enthalten.
phpzip einrichten
- cp /var/www/html/ocpl/bin/phpzip.php /var/www/bin/phpzip-pl.php
- /var/www/bin/phpzip-pl.php bearbeiten und dort den Download-Pfad korrigieren:
- $basedir = '/var/www/html/ocpl/download/zip/'
Datenbank einrichten, Teil 1
Im phpMyAdmin eine neue Datenbank "ocpl" mit Kollation "utf8_general_ci" anlegen.
Von der phpMyAdmin-Hauptseite aus die Rechte des Benutzers "oc" editieren und ihm für die Datenbank "ocpl" die gleichen Rechte geben wie für die Datenbank "opencaching". Dann die Tabellen und Trigger anlegen lassen:
- ocpl/docs/sql/tables/ocpl.sql.gz irgendwohin kopieren und auspacken
- alle DROP-TRIGGER-Zeilen aus ocpl.sql entfernen
- mysql -uroot -proot ocpl <ocpl.sql
Fehlende Tabelle anlegen:
CREATE TABLE IF NOT EXISTS `cache_visits2` ( `cache_id` int(11) NOT NULL DEFAULT '0', `user_id_ip` varchar(15) NOT NULL DEFAULT '0', `count` int(11) NOT NULL DEFAULT '0', `visit_date` datetime DEFAULT NULL, `type` char(1) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
Webserver konfigurieren
Datei /etc/httpd/conf.d/ocpl.conf anlegen:
<VirtualHost *:80> ServerName local.opencaching.pl DocumentRoot /var/www/html/ocpl DirectoryIndex index.php index.html index.htm ErrorLog logs/ocpl_error_log CustomLog logs/ocpl_access_log combined AddDefaultCharset UTF-8 RewriteEngine On </VirtualHost> <Directory /var/www/html/ocpl> Options FollowSymLinks AllowOverride All Require all granted php_admin_value display_errors "on" php_admin_value error_reporting 22517 # all except E_WARNING, E_NOTICE, E_STRICT, E_DEPRECATED php_admin_value safe_mode "off" </Directory>
- service httpd restart
- Sowohl auf dem Host als auch in der VM muss local.opencaching.pl auf die VM umgeleitet werden (z.B. per hosts-Einträgen).
OKAPI einrichten
- Im phpMyAdmin alle okapi-Tabellen aus der ocpl-Datenbank löschen.
- Das Feld caches.okapi_syncbase löschen, und - falls vorhanden - auch cache_logs.okapi_syncbase
- http://local.opencaching.pl/okapi/update?install=true
- http://local.opencaching.pl/okapi/cron5
Datenbank einrichten, Teil 2
Da ocpl.sql meistens veraltet ist, müssen die Tabellenstrukturen noch mit denen von opencaching.pl abgeglichen werden:
- http://local.opencaching.pl/okapi/devel/dbstruct?compare_to=http://opencaching.pl/okapi/devel/dbstruct aufrufen
- Die Ausgabe in ein phpMyAdmin-SQL-Fenster kopieren und ausführen
Nun kann man die statischen Daten und Trigger einlesen bzw. aktualisieren:
- mysql -uroot -proot ocpl <ocpl/docs/sql/static-data/data.sql
- mysql -uroot -proot ocpl <ocpl/docs/sql/stored-proc/triggers-create.sql
- mysql -uroot -proot ocpl -e "INSERT IGNORE INTO news_topics (id, name) VALUES (1, 'News')"
Es gibt keine automatische Datenbankversionierung. Einzelne Diffs finden sich in ocpl/sqlAlters/. Falls die unvollständig sein sollten, siehe oben: Compare per okapi/devel/dbstruct und das Ergebnis einpflegen.
Cronjobs einrichten
- yum install wget
- In /etc/crontab Folgendes hinzufügen:
# opencaching.pl */30 * * * * apache wget -O - -q http://local.opencaching.pl/tpl/stdstyle/etc/write_newcaches.inc.php */55 * * * * apache wget -O - -q http://local.opencaching.pl/tpl/stdstyle/etc/write_newblogs.inc.php */14 * * * * apache wget -O - -q http://local.opencaching.pl/tpl/stdstyle/etc/write_onlusers.inc.php */5 * * * * apache wget -O - -q http://local.opencaching.pl/tpl/stdstyle/etc/write_totalstats.inc.php */15 * * * * apache wget -O - -q http://local.opencaching.pl/util.sec/email_sender/email_sender.php */15 * * * * apache wget -O - -q http://local.opencaching.pl/util.sec/notification/run_notify.php 0 * * * * apache wget -O - -q http://local.opencaching.pl/util.sec/publish_caches/run_publish.php */15 * * * * apache wget -O - -q http://local.opencaching.pl/util.sec/watchlist/runwatch.php 0 3 * * * apache wget -O - -q http://local.opencaching.pl/util.sec/search_index/fill_search_index.php # 30 4 * * * apache wget -O - -q http://local.opencaching.pl/util.sec/auto_arch.php # 30 * * * * apache wget -O - -q http://local.opencaching.pl/util.sec/geokrety/geokrety.new.php # */30 * * * * apache wget -O - -q http://local.opencaching.pl/util.sec/cache_locations/cache_location.class.php/ # */45 * * * * apache wget -O - -q http://local.opencaching.pl/util.sec/cron/modules/cache_npa_areas.class.php # 45 * * * * apache wget -O - -q -t 1 http://local.opencaching.pl/okapi/cron5
Die ersten vier Jobs füllen nach und nach die einzelnen Abschnitte auf der Startseite mit Inhalt.
Zu den deaktivieten Jobs:
- auto_arch: automatische Cachearchivierung, aktivieren wenn benötigt
- Geokrety-Diff-Import: braucht zunächst einen Erstimport
- Cache-Location: hier fehlen noch die statischen geographischen Daten
- NPA-Areas: hier fehlen noch die statischen geographischen Daten
Bekannte Probleme
- Die statischen Daten für die regionale Zuordnung von Caches und Naturschutzgebiete fehlen noch.
- Weitere statische Daten und Trigger fehlen; dadurch funktionieren z.B. die Status-Änderungslogs nicht.
- Die Caches auf der Cachekarte v2 erscheinen erst, wenn man die Karte scrollt oder zoomt. Das ist ein Fehler in der OC.pl-Software.
- https://github.com/opencaching/opencaching-pl/issues
Codeänderungen beitragen
Funktioniert (mittlerweile) genauso wie bei Opencaching.de: Featurebranch anlegen, in den eigenen Github-Fork hochladen und Pull Request stellen. Oder bei Kleinkram direkt im eigenen master-Branch arbeiten und darauf Pull Request stellen.