Računalništvo - programska oprema

O sodobnem nepogrešljivem stroju za tiste s hudičevo dobrimi živci

Napaka v nodewords modulu - noindex,nofollow

Če ste namestili zadnjo varianto modula nodewords, takoj preverite v svojih straneh vrstico robots. V verziji nodewords-6.x-1.12-beta2 je namreč par napak, ki povzročijo generiranje napačnih robots zlogov. V glavni strani vam modul generira vrednost 'NOINDEX,NOFOLLOW', v podstraneh pa 'indexfollow'.


Napako popravite ročno kar v modulu. Odprite nodewords/nodewords_basic/includes/nodewords_basic.nodewords.tags.inc


v vrsticah 255 in 287 popravite vrednost 'noindex,nofollow' v 'index,follow'. Če je vrednost tudi v vrstici 293, popravite tudi tam.

Adobe updater

A kdo ve kako onemogočit Adobe Reader Updater? Teži vsake pol ure in sem ga sit.

Napaka: glossary ne odpre pravih povezav

Če uporabite Views - glossary, se vam bo morda zgodilo, da na klik začetnice v kazalu program ne odpre nove strani kazala s to začetnico. Težava je v ajax javaskriptu. Odprite views/js/ajax_view.js in v vrstico 125 dodajte


$.extend(viewData, Drupal.Views.parseViewArgs($(this).attr('href'), settings.view_base_path));


Torej:


 $(this).click(function () {
+                $.extend(viewData, Drupal.Views.parseViewArgs($(this).attr('href'), settings.view_base_path));
                $(this).addClass('views-throbbing');

Težave s phpMyAdmin

Če vam zaradi kakšne napake phpMyAdmin namesto baze pokaže zobe v obliki sporočila: Cannot start session without errors, please check errors given in your PHP and/or webserver log file and configure your PHP installation properly. - se je to lahkoda zgodilo zaradi polombe dovoljenj ali venizginotja kakšne datoteke ali mapice. Meni se je to zgodilo po izginotju štroma, kar je naredilo polombo tudi v bazi.


Napako je treba odkrit, kar se lahko začne v Apače logih, malo brka po netu, na koncu pa verjetno pridete nazaj do enostavne rečitve, za katero niti ne veste, kaj ravno pomeni, važno pa je, da nuca.


Ena varianta je, da v Winsih poiščete mapo C:\Documents and Settings\YourName\Local Settings\Temp\php\ oz v temp direktoriju dodate mapo session


Druga pa je obnova administratorskih dovoljenj  tako, da odprete Win start, vklofate CMD in ko se vam odpre DOSovo okno, vklofate ti dve komandi:


icacls %windir%\serviceprofiles\networkservice\AppData\Local\Temp /grant Users:(CI)(S,WD,AD,X)


icacls %windir%\serviceprofiles\networkservice\AppData\Local\Temp /grant "CREATOR OWNER":(OI)(CI)(IO)(F)

Izdelava vozlišč z uvozom podatkov iz MS access tabele

V Drupalu se verjetno že znajdete, znate naredit strani, forum, galerije... vendar bi radi izdelali dinamično generiranje strani iz vaše stare baze, ki ste jo izdelali v MS Accessu, Excellu ali kakšni drugi vrsti tabele. Drupal sicer ne omogoča direktnega uvoza, je pa narejenih kar nekaj modulov za uvoz zunanjih podatkov. Težava je v tem, da so vsi narejeni na Drupal nivoju, ne na delu na podatkovni bazi, zato se stari mački iz sveta dBase, Clipper in MS Access ne znajdemo najbolje. Ostane nam varianta, da podatke iz stare baze enostavno uvozimo v MySQL bazo in teoretično bi morala zadeva delovat.


Stvar ni tako enostavna. Pred kakršnokoli obdelavo najprej naredimo arhiv baze. Nato si doooooooobro oglejmo tabele v MySQL bazi, ki hranijo podatke o naši Drupal strani.


Podatke bomo uvažali v tabele:


- node - osnovna tabela za vozlišča


Uredit morate zaporedja najmanj dve vrstici. Vsako vozlišče ima en "nid" in minimalno en "vid". Naslednja "nid" in "vid" vrednosti sta shranjeni v tej tabeli. Ko veste, katere vrednosti boste uporabili, vnesite v naslednji dve vrstici nadaljujoče se številke. Vrstici imata ime vrednosti "node_nid" in "node_revisions_vid"


- node_revisions - vsebina vozlišč


- po potrebi pa tudi node_comment_statistics


Če boste uvažali podatke v taksonomijo, morate obdelati tabele vocabulary, term_data, term_hierarchy, term_node in term_relation.

Popravljanje podatkov v bazi MySQL

Običajno se strani izdelujejo v Drupal okolju, vendar se včasih pojavi potreba po hitrejšem popravljanju podatkov. Nekaj osnovnih popravkov, predvsem statusov vozlišča, se lahko popravlja na Urejanju vsebine/Vsebina (admin/content/node), vendar se lahko podatke popravlja tudi v sami podatkovni bazi. Če uporabljamo phpmyadmin, se prijavimo v bazo, odpremo bazo in neko konkretno tabelo, v zgornjem okencu, kjer vidite povezave Browse, Structure, SQL..., vidite stavek SELECT * FROM `odprtatabela` WHERE 1. 'odprtatabela' je seveda ime tabele, katero ste odprli. Če stavek v tem oknu nadomestite s qverijem za zamenjavo podatkov, se seveda podatki ustrezno spremenijo. Vendar - previdno. Z nepravilnim kverijem lahko neprijetno sesujete vašo bazo, zato tega ne poskušajte brez ustreznega znanja in previdnosti, vsekakor pa najprej naredite arhiv podatkovne baze.


Opozoril sem vas! Da ne bom kriv za kakšne polomije.


Na primer, če hočete vsem zapisom v blogu zamenjati status iz 'promote' v običajne, izvedete query:


UPDATE `node` SET `promote` = '0' WHERE `type` = 'blog' AND `promote` = '1'


Rekli ste: vnesi v tabeli 'node' vrednosti 0 v polja `promote` za zapise, kjer je tip vozlišča 'blog' in trenutna vrednost polja `promote` 1.
Preden pa naredite kakšpno neumnost, si dobro oglejte strukturo baze in malo preberite stran http://www.w3schools.com/SQl/default.asp

Zamenjava administratorskega gesla

Če se vam po nesreči zgodi, da pozabite administratorsko geslo za dostop do Drupal vsebine, odprite mySQL bazo in poženite query
UPDATE `users` SET `pass` = MD5('mojenovogeslo') WHERE `uid` =1;
kjer je mojenovogeslo novo geslo, s katerim boste poslej dostopali do svojega administratorskega portala.

Uporaba dodatne podatkovne baze

Drupal v osnovi omogoča izdelavo blogov, galerij, forumov in običajnih strani. Pri izdelavi spletne trgovine si lahko pomagamo z že izdelanim paketom ubercart, ki z malo prilagajanja zadovolji skoraj vsakega uporabnika. Če pa želite na straneh izpisati podatke iz kakšne svoje podatkovne baze, pa bo treba omogočit delo z večimi bazami.


Če imate svojo podatkovno bazo v drugem formatu, jo bo treba uvozit v MySQL bazo. Accessovo bazo se da lepo uvozit z programom Bullzip MS Access to MySQL. Nato je varianta, da tabele skopirate v vašo drupal bazo, lahko pa omogočite delo z večimi bazami naenkrat.


Najprej odprite konfiguracijso datoteko settings.php


V vrstici, kjer je zapisana vaša povezava na bazo:


$db_url = 'mysql://drupal:drupal@localhost/drupal';
zamenjajte ta stavek z

Povečanje performance Drupal spletišča

Dokler obsega spletišče le nekaj deset strani, s hitrostjo podajanja strani uporabnikom ne bo težav. Ko pa se število strani poveča, na primer pri forumu, pa sčasoma postane podajanje strani prepočasno. Kaj lahko storimo?


- če imamo strežnik doma, povečajmo upload pri svojem ponudniku internetnih storitev


- še bolje je plačan zunanji strežnik; preverimo le, če ima ustrezno podporo za Drupal


Na strani admin/settings/performance lahko premenimo nastavitve:


- nastavimo odlagališče na normalno (močno lahko povzroči težave)

Postavitev FTP strežnika

Malo bilj zahtevni računalničarji si bodo v neki fazi zaželeli na svojem računalniku postavit FTP (fajl transfer protokol po damače) strežnik. S tem protokolom namreč lahko na strežniku omogočimo prenašanje datotek kateremkoli uporabniku iz kateregakoli kraja na svetu. Najprej boste rekli, da je to nevarna reč, vendar lahko rečem, da je tudi zelooooo koristna. Za postavitev strežnika potrebujemo računalnik, internetno povezavo, nek operacijski sistem in veselje do dela. Če tole beremo, vse to že imamo. Prikaži vse »

Večjezična podpora Drupal spletišč

To, da je možno platformo Drupal lepo prevesti, že vemo. Morda pa ne vemo, da je mogoče na dokaj kompliciran način, vendar s fantarsično učinkovitostjo, prevesti v večjezične verzije tudi Drupal spletne strani. Tako lahko v nekaj urah usposobimo spletišče za prevajanje in ga v primeru kakšnega manjšega spletišča v kratkem času tudi prevedemo. Za začetek si dolnapokajmo mlatilnik za večjezično podporo, modul za preklapljanje jezikov z ikonami zastav, nato pa si dobro postavimo sistem terminologije, ki pomeni naše ključne menuje in pojme. Prevode lahko potem izdelamo v tabelarični obliki.
Posebna pozornost gre menujem. Menujev ni potrebno postavit v vsakem jeziku posebej, ampak 'nabijemo' vse menujske vrstice v en sam menu, važno je, da vsebinam (vozliščem) določimo jezik. Če imate na primer angleško stran in jo označite kot večjezično, najprej izdelate kompletno spletišče, nato pa na vsaki angleški strani določite privzet jezik angleščino. Nato na isti strani ukažete še izdelavo prevoda. Prevedena stran se shrani kot novo vozlišče, kateri pa določite vse parametre s slovenskim parametrom jezika vred. Če stran preklopite na angleško verzijo, se bodo na menujih avtomatsko prikazale le povezave na angleške verzije, ne pa tudi na slovenske - in obratno.
Nekateri sicer zaradi slabe razumljivosti Drupal navodil izdelajo ločene menuje za vsak jezik posebej, vendar to ni potrebno, saj Drupal avtomatsko loči vsebine po jezikih.

Kompatibilnost Drupala 6.x s PHP 5.3

Žal verzija Drupal 6.x še ni popolnoma kompatibilna s PHP 5.3 in marsikje pri izvajanju mlatilnikov sekajo ven napake. Če tako kot jaz ne obvladate php jezika, je morda bolje, da ne namestite kompleta xampp, ampak izberete ročno posamezne komponente. V tem primeru bo morda več dela, bo pa manj težav kasneje.
V tej temi bom skušal navest nekaj napak, ki jih javlja Drupal 6.2 pri uporabi php 5.3
------------------------------------------
Napaka v Admin menu: Parameter 1 to admin_menu _ admin_menu() expected to be a reference... 
V /admin_menu/admin_menu.inc zamenjajte vrstico 112 oz .
  *   Array of links under admin/* that were removed by admin_menu_adjust_items().
  *   If one of these links is added back, it should be removed from the array.
  */
-function admin_menu_admin_menu(&$deleted) {
+function admin_menu_admin_menu($deleted) { Prikaži vse »

Izdelava domače predloge

Za začetek so Drupal predloge zelo uporabne, vendar na nek način omejujejo kreatorje strani. Zato si boste čez čas zagotovo omislili izdelavo svoje predloge. Pozor: ne uporabite iste predloge na večih Drupal Straniščih na isti Drupal inštalaciji, ker bo nastal kaos.
Bolj pametno bo, če zastavite s popolnoma novo predlogo ali če uporabite obstoječo html obliko predloge in jo predelate v Drupal predlogo. Za začetek boste izdelali mapo za predlogo na sites/all/themes/vašapredloga in vanjo shranili tekst datoteko (lahko z notepadom) z imenom vašapredloga.info in vanjo vpisali nekaj takega:
name = vašapredloga
core = 6.x
engine = phptemplate
stylesheets[all][] = style.css
/*stylesheets[all][] = icons.css*/
/*stylesheets[all][] = local.css*/
regions[sidebar_first] = sidebar first
regions[sidebar_last] = sidebar last
regions[header_middle] = header middle
regions[header_last] = header last
regions[preface_first] = preface first
regions[preface_middle] = preface middle
regions[preface_last] = preface last
regions[content_top] = content top
regions[content_bottom] = content bottom
regions[postscript_first] = postscript first
regions[postscript_middle] = postscript middle
regions[postscript_last] = postscript last
regions[footer_top] = footer top
regions[footer] = footer
regions[node_bottom] = node bottom
features[] = logo
features[] = name
features[] = slogan Prikaži vse »

Kateri program je boljši?

Kupil sem si fotkič, pa me zanima, kater program je najboljši za začetnika? Ne mislim kakšnih fotomontaž delat, tolk da barve popravim in slike obrežem.

Nekaj uporabnih php kod

Za testiranje sem uporabil nekaj uporabih php snipetov. Če koga zanima, naj me porufa, lahk pa jo sname iz kode. Lahk pa jo sname tudi iz uradne strani Drupal. Pet forumov z najbolj aktivnimi temami:

?php $num_nodes = 5; $sql = " SELECT DISTINCT(tn.tid), td.name FROM {node} n LEFT JOIN {term_node} tn ON n.nid = tn.nid LEFT JOIN {term_data} td ON tn.tid = td.tid LEFT JOIN {node_counter} nc ON n.nid = nc.nid WHERE n.type = 'forum' ORDER BY nc.totalcount ASC"; $result = db_query_range(db_rewrite_sql($sql), 0, $num_nodes); while($row = db_fetch_object($result)) { $list[] = l($row->name, "forum/$row->tid"); } print theme('item_list', $list); ?>

Rezultat:

Taksonomski pojmi po abecednem redu:

?php /** * Creates a list of taxonomy terms without description in alphabetical order. * Each term links to the corresponding edit form. */ $query = "SELECT tid, name from {term_data} WHERE description = '' ORDER BY name ASC"; $result = db_query($query); while ($term = db_fetch_object($result)) { $items[]= l($term->name, "admin/content/taxonomy/edit/term/$term->tid"); } if(count($items)) { return theme('item_list',$items); } ?>

Rezultat:

Napaka v Admin menuju

Napača 'Parameter 1 to admin_menu_admin_menu() expected to be a reference...'
A nisem to že nekajkrat popravljal? #%/&?=)($#&" prekleto... Ja, tu je patch: http: //drupal.org/files/issues/615058-adminmenu-php53-D6-1.patch Ampak napača pa še vedno seka ven.

Napake in rešitve

Kljub temu, da je Drupal fantastično orodje, s katerim se da ustvarit take aplikacije, o katerih smo tabelarji samo sanjali, ima še vedno precej napač. Težava se pogosto pojavi, ko neko drugo orodje, na primer nova verzija php, zahteva drugačne podatke, ki pri starejših verzijah niso bile težava. Sprva človek misli, da je kaj narobe v bazi ali pri inštalaciji, nato pa prej ali slej najde popravke na Drupalovi uradni strani http: //drupal.org/project/drupal. Za začetek sem navedel popravke v views.help.ini, na php 5.3 pa ne dela Views.

Izdelava več Drupal spletišč z eno Drupal namestitvijo

Po inštalaciji Drupala se boste verjetno nekaj časa zafrkavali s samim orodjem, nato boste postavili eno poskusno spletišče, produkcijsko pa boste zagotovo hoteli zagnat več Drupal Stranišč na eni sami Drupal inštalaciji.
Zadeva je sorazmerno enostavna, le da je treba bit pri kloniranju precej natančen. Recimo, da ste uporabili xampp paket, s katerim dobite Apache, MySQL, Mercury in vsa ostala potrebna jajca. Namestitev bo verjetno na c:/xammp. Drupal bo šel potem v c:/xampp/httdocs/Drupal/ Prikaži vse »

Nastavitev mail strežnika Mercury

Večinoma se testne zadeve s PHP dela na lokalnem PCju, za kar pride prav lokalni mail server. Za to se lahko uporabi Mercury mail server, s katerim lahko pošiljamo majle s pomočjo PHP skriptov preko navadnega Apache serverja. Poglejmo, kaj rabimo;

- uporabimo XAMPP za Winse, seveda za pravo verzijo.
- predvidevam, da ste nastavili Apache; pri namestitvi XAMPPja se parametri Mercury v osnovi že prednastavijo
- odprite XAMPP kontrolno ploščo, poženite Mercury in odprite Admin panel Prikaži vse »

Slovenski prevod Drupala

Pozdravljeni,

Datoteka s prevodom Drupala je na strani Prevod Drupala. Prevedenih je cca 50% osnovnega jedra. Prevedeno je direktno, zato je treba napačne prevode še posodobit. Privoščil sem si malo svojega besedja, tako da prevod ni za smrtno resne uporabnike.

Zadnja popravljena varianta s cca 54% prevedenega materiala je Prevod Drupala.
Ko bo čas, se bom pozabaval z napakami in daljšimi teksti.

Kaktus

RSS časopisni članki