ABATRANS.GR ΑΝΥΨΩΤΙΚΗ-ΜΕΤΑΚΟΜΙΣΗ ΜΕΤΑΚΟΜΙΣΗ ΟΙΚΟΣΥΣΚΕΥΩΝ
Aναλαμβάνουμε τη διαδικασία της μεταφοράς-μετακόμισης της οικοσκευής, της εταιρίας, του γραφείου και λοιπών επαγγελματικών χώρων, γρήγορα και αξιόπιστα.
6944.844.287 http://www.abatrans.gr
Θεσσαλονικη
Καλά δεν νομίζω το πρόβλημα να είναι το Flash, για να γίνει μια αντιπροσώπευση από το Drupal. Το θέμα είναι πως θα γίνει να οργανωθεί μια παρουσία και τι χρειάζεται
αλλα οταν τα χτυπαω στον browser (px mydomain.gr/cart/eurobank/success) παιρνω :
The requested page could not be found. Το url rewrite ειναι on (clear urls)
καμια ιδεα για τα paths? (μεσα στο uc_proxypay3_eurobank.module δινει τα ιδια)
Μέχρι και χθες που δοκίμαζα να το κάνω με το swfobject δεν τα κατάφερνα. Ειλικρινά μου έσπασε τα νεύρα. Θα δοκιμάσω σήμερα να το κάνω με το swf object2. Ελπίζω να τα καταφέρω. Το swf προσπαθώ να το εμφανίσω στη θέση του header πάντως. Δεν ξέρω αν αυτό αποτελεί πρόβλημα...
Κατά την άποψη μου το καλύτερο theme για να ξεκινήσεις είναι το zen, το οποίο σε συνδιασμό με το zenophile module κάνουν τη ζωή σου πολύ ευκολή για να ξεκινήσεις ένα καινούριο theme.
Δοκίμασε το firebug, είναι ένα addon για το firefox, που σου επιτρέπει να βλέπεις και κάνεις αλλαγές στον κώδικα (html, css, javascript) on the fly. Αν κάνεις inspect τα μπλοκ που έχουν πρόβλημα θα μπορέσεις να καταλάβεις που είναι το πρόβλημα. Δυστυχώς χωρίς κάποιο link προς τη σελίδα δε νομίζω ότι μπορώ να βοηθήσω περισσότερο.
Κωστα
σε απαντηση του μηνυματος σου σε ενημερωνω οτι χρησιμοποιω το drupal 6.13 με theme το waffle.
Το συγκεκριμενο site γινεται για την υπηρεσια μου που θα φιλοξενειται στο Πανελληνιο Σχολικο Δικτυο.
Απο οτι φαινεται, με την πολυτιμη συμβολη σου στις Πέμ, 11/02/2010 - 17:32, το nifty corners που ηθελα να βαλω σε καποια κειμενα του ιστοτοπου που κανουμε, ειναι οκ.
Οταν αναφερομαι στο "δε δουλευει καλα" οφειλεται στο γεγονος οτι στις συγκεκριμενες σελιδες που χρησιμοποιω τον παραπανω javascript κωδικα, στο πλευρικο μενου εξαφανιζεται το πανω και κατω border των blocks μου.
Απο οσο γνωριζω διαγραφη σχολιου με απαντησεις σημαινει και διαγραφη των απαντησεων.
Υπαρχει επιλογη για ξεχωριστη αντιμετωπιση αυτων που δεν εχουν σχολια;
δεν έχεις δώσει κάποιο link για το site που πήρες τον κώδικά, ούτε λεπτομέρειες για έκδοση drupal ή το ποιο theme χρησιμοποιείς ως βάση, ώστε να προσπαθήσω να το τεστάρω τοπικά.
Παρόλα αυτά, κάποιες πρώτες ιδέες για να βρες μία λύση:
Δοκίμασε να βάλεις τον κώδικα στην αρχή του node ή ακριβώς μετά το body, χρησιμοποιώντας τα node.tpl.php ή page.tpl.php αντίστοιχα.
Πρόσθεσε κάποιο alert μέσα στον κώδικα javascript για να δεις τι εκτελείται και τι όχι.
Κωστα,
ευχαριστω για τη βοηθεια, ΑΛΛΑ για καποιο λογο δε μου δουλευει καλα (ακολουθωντας τα βηματα που μου ειπες).
Μηπως φταιει ο τροπος που το καλω μεσα στο node?
Βαζω στο τελος του node
τον εξης κωδικα:
< script type= "text/javascript" > Rounded('rounded', 10, 10); < / script >
Να χαιρετήσω και εγώ την ελληνική κοινότητα του drupal!
Μαζί με τον Κώστα πάνω δουλεύουμε ενεργά με το drupal ως υποδομή για διαφόρων ειδών sites εδώ και μερικά χρόνια, αν και ζεστά το πιάσαμε εδώ και 1 χρόνο περίπου. Είναι μια επαναστατική πλατφόρμα λόγω τόσο της πληθώρας έτοιμης λειτουργικότητας όσο και των δυνατοτήτων επεκτασιμότητάς της, και θα χαιρόμασταν να μοιραστούμε τη γνώση που έχουμε αποκομίσει σχετικά με το αντικείμενο.
Με την ευκαιρία της Fosscom είπαμε να δραστηριοποιηθούμε και στον χώρο της ελληνικής drupal κοινότητας. Θα είναι σημαντικό να υπάρχει μια ισχυρή παρουσία του drupal, και με αυτό το στόχο θέλουμε να αλιεύσουμε τη διάθεση και τις προτιμήσεις των άλλων drupalάδων. Αν υπάρχει οποιοσδήποτε που θέλει να βοηθήσει στο να στηθεί μια καλή παρουσίαση, ή αν καποιος έχει προτιμήσεις ή εμπειρίες από αντίστοιχα παλαιότερα events να μοιραστεί, θα χαρούμε να το ακούσουμε!
Σχετικά με το drupal+flash, ήθελα να επεξηγήσω σε τι αναφέρεται ο Κώστας, μήπως και αλλάξουμε την άποψη του error, παραπάνω. Στις δυναμικές ιστοσελίδες που παρουσιάζονται με flash front end υπάρχει πάντα το μεγάλο ζήτημα του πώς παραδίδεις στον πελάτη ένα εύχρηστο και ευέλικτο διαχειριστικό. Όταν υλοποιούσαμε τα πάντα σε flash (front + admin), ο χρόνος παραγωγής μοιραζόταν περίπου 50-50 στις 2 πλευρές. Σε κάποια στιγμή ξεκινήσαμε να υλοποιούμε το admin σε drupal, παρέχοντας xml feeds με την πληροφορία προς το flash. Ως αποτέλεσμα ο χρόνος ανάπτυξης του admin side μειώθηκε δραστικά, παρέχοντας παράλληλα μια πλήρως ευχάριστη και usable εμπειρία στον εκάστοτε διαχειριστή. Επίσης, με το drupal μπορεί κανείς να στήσει ένα πλήρες διαχειριστικό χωρίς να ακουμπήσει ούτε μια γραμμή κώδικα, κάτι που τουλάχιστον για εμάς ήταν μια μικρή επανάσταση.
Κατανοώ πλήρως την δυσπιστία της open source κοινότητας απέναντι στο flash. Είναι δικαιολογημένη, αλλά (τουλάχιστον ως την επικράτηση της HTML5 και των νέων δυνατοτήτων της) το flash παραμένει ως σήμερα η νο.1 πλατφόρμα για rich media interactions. Μέσα σε ένα τέτοιο πλαίσιο σκεφτόμασταν αυτό το κομμάτι της παρουσίασης, αν και φυσικά είμαστε ανοικτοί στο να αναθεωρήσουμε ή να προσαρμόσουμε την ιδέα.
function Rounded(className, sizex, sizey, sizex_b, sizey_b) {
var bk;
if (!NiftyCheck()) return;
if (typeof(sizex_b) == 'undefined')
sizex_b = sizex;
if (typeof(sizey_b) == 'undefined')
sizey_b = sizey;
var v = getElements(className);
var l = v.length;
for (var i = 0; i < l; i++) {
color = get_current_style(v[i],"background-color","transparent");
bk = get_current_style(v[i].parentNode,"background-color","transparent");
AddRounded(v[i], bk, color, sizex, sizey, true);
AddRounded(v[i], bk, color, sizex_b, sizey_b, false);
}
}
function AddRounded(el, bk, color, sizex, sizey, top) {
if (!sizex && !sizey)
return;
var i, j;
var d = document.createElement("div");
d.style.backgroundColor = bk;
var lastarc = 0;
for (i = 1; i <= sizey; i++) {
var coverage, arc2, arc3;
// Find intersection of arc with bottom of pixel row
arc = Math.sqrt(1.0 - Math.sqr(1.0 - i / sizey)) * sizex;
// Calculate how many pixels are bg, fg and blended.
var n_bg = sizex - Math.ceil(arc);
var n_fg = Math.floor(lastarc);
var n_aa = sizex - n_bg - n_fg;
// Create pixel row wrapper
var x = document.createElement("div");
var y = d;
x.style.margin = "0px " + n_bg + "px";
x.style.height='1px';
x.style.overflow='hidden';
// Make a wrapper per anti-aliased pixel (at least one)
for (j = 1; j <= n_aa; j++) {
// Calculate coverage per pixel
// (approximates circle by a line within the pixel)
if (j == 1) {
if (j == n_aa) {
// Single pixel
coverage = ((arc + lastarc) * .5) - n_fg;
}
else {
// First in a run
arc2 = Math.sqrt(1.0 - Math.sqr((sizex - n_bg - j + 1) / sizex)) * sizey;
coverage = (arc2 - (sizey - i)) * (arc - n_fg - n_aa + 1) * .5;
// Coverage is incorrect. Why?
coverage = 0;
}
}
else if (j == n_aa) {
// Last in a run
arc2 = Math.sqrt(1.0 - Math.sqr((sizex - n_bg - j + 1) / sizex)) * sizey;
coverage = 1.0 - (1.0 - (arc2 - (sizey - i))) * (1.0 - (lastarc - n_fg)) * .5;
}
else {
// Middle of a run
arc3 = Math.sqrt(1.0 - Math.sqr((sizex - n_bg - j) / sizex)) * sizey;
arc2 = Math.sqrt(1.0 - Math.sqr((sizex - n_bg - j + 1) / sizex)) * sizey;
coverage = ((arc2 + arc3) * .5) - (sizey - i);
}
x.style.backgroundColor = Blend(bk, color, coverage);
if (top)
y.appendChild(x);
else
y.insertBefore(x, y.firstChild);
y = x;
var x = document.createElement("div");
x.style.height='1px';
x.style.overflow='hidden';
x.style.margin = "0px 1px";
}
x.style.backgroundColor = color;
if (top)
y.appendChild(x);
else
y.insertBefore(x, y.firstChild);
lastarc = arc;
}
if (top)
el.insertBefore(d, el.firstChild);
else
el.appendChild(d);
}
function getElements(className) {
var elements = [];
var el = document.getElementsByTagName('DIV');
var regexp=new RegExp("\\b"+className+"\\b");
for (var i = 0; i < el.length; i++)
{
if (regexp.test(el[i].className))
elements.push(el[i]);
}
return elements;
}
function get_current_style(element,property,not_accepted)
{
var ee,i,val,apr;
try
{
var cs=document.defaultView.getComputedStyle(element,'');
val=cs.getPropertyValue(property);
}
catch(ee)
{
if(element.currentStyle)
{
apr=property.split("-");
for(i=1;i -1 || val==not_accepted) && element.parentNode)
{
if(element.parentNode != document)
val=get_current_style(element.parentNode,property,not_accepted);
else
val = '#FFFFFF';
}
if (val.indexOf("rgb") > -1 && val.indexOf("rgba") == -1)
val = rgb2hex(val);
if (val.length == 4)
val = '#'+val.substring(1,1)+val.substring(1,1)+val.substring(2,1)+val.substring(2,1)+val.substring(3,1)+val.substring(3,1);
return val;
}
function rgb2hex(value)
{
var x = 255;
var hex = '';
var i;
var regexp=/([0-9]+)[, ]+([0-9]+)[, ]+([0-9]+)/;
var array=regexp.exec(value);
for(i=1;i<4;i++) hex += ('0'+parseInt(array[i]).toString(16)).slice(-2);
return '#'+hex;
}
όπου αργότερα θα καλώ μέσω του script
Rounded('rounded', 6, 6);
σε οποιοδήποτε node θέλω.
Μπορεί κάποιος να με βοηθήσει με το τι βήματα ακολουθούμε στο drupal ώστε να επιτύχω την εισαγωγή javascript ώστε να το χρησιμοποιώ σε οποιαδήποτε σελίδα (node) θέλω;
Ευχαριστώ εκ των προτέρων
Καλημερα,
ως νεος στη δημιουργια websites με τη χρηση του drupal, ζητω απεγνωσμενα, τα φωτα σας...
Θελω να βαλω ενα javascript που δημιουργει rounded boxes στο content του theme που χρησιμοποιω, ωστε σε καποιες σελιδες του ιστοτοπου να μπορω μεσα στο rounded box να βαζω κειμενο.
Any ideas? Και πως το πετυχαινω αυτο;
Πολύ ενδιαφέρον το ποστ μια κι εγώ αγνοούσα παντελώς το επερχόμενο Fosscomm
Φυσικά και θα είμαι εκεί και φυσικά θα ήθελα να δω και το drupal εκεί.
Όλα τα θέματα μου φαίνονται πολύ καλά (μια που είμαι newbie ακόμα στο drupal)
Εκτός ίσως από το drupal+flash (ή τουλάχιστον μέχρι να κυκλοφορήσει το flash για linux :p)
Υπαρχει καποιο module που να βαζει απευθειας ολες της available γλωσσες και να μπορει αναλογα με το που ειναι ο καθενας η σε τη γλωσσα εχει το λειτουργικο του να του εμφανιζεται και αναλογα?
Ναι υπάρχει ένας συνδυασμός modules που κάνει αυτή τη δουλειά το Locale (core) και το i18n (contrib). Χρησιμοποιούνται μαζί. Αυτά μπορούν να καθορίζουν τι γλώσσα βλέπει ο χρήστης από μία πλειάδα επιλογών όπως:
Path prefix: διαφορετική γλώσσα ανάλογα με το url πχ mydrupal.gr/el -> ελληνικά mydrupal.gr/en -> english
Path prefix with language fallback: Ψάχνει για path (όπως παραπανω και αν δεν το βρεί ψάχνει να βρει ρυθμίσεις γλώσσας από το My Account page, ή από τις ρυθμίσεις γλώσσας του browser
Domain name only: Το domain ή subdomain name καθορίζει τη γλώσσα πχ helenic.mydrupal.gr ή english.mydrupal.gr
Δηλ εαν καποιος γραφει σε ελληνικα μπορει αυτοματα να μεταφραζεται σε αγγλικα ας πουμε?
Πως αυτο μπορει να γινει πιο αναιμακτα και πιο ευκολο για τον τελικο χρηστη?
Αυτό είναι κάπως πιο δύσκολο. Η κατάσταση της τεχνολογίας της αυτόματης μετάφρασης κειμένου δεν είναι ακόμη τέτοια ώστε να μπορεί να χρησιμοποιείται σε ζωντανα sites. Έτσι η λύση είναι να μεταφράζεται από κάποιον άνθρωπο. Υπάρχει ένα module που κάνει αυτή τη δουλειά αυτόματα (Δηλ στέλνει το κείμενο στους μεταφραστές, αυτοί το μεταφράζουν και ποστάρεται αυτόματα) αλλά έχει κόστος (0.08$ άνα λέξη). Είναι το ICanLolize
Αν θέλεις παρόλαυτα να χρησιμοποιήσεις κάποια αυτόματη μετάφραση δοκίμασε το i18n Auto Translate. Σου ετοιμάζει μια αυτόματη μετάφραση που βοηθάει τον μεταφραστή στην τελική μετάφραση.
Αυτό που προσπαθώ να κάνω είναι να κάνω Upload ένα .swf αρχείο σε ένα φάκελο που μου τον δημιούργησε ένα module του drupal μέσα στον φάκελο files και δεν μπορώ λόγω Permissions....
ABATRANS.GR ΑΝΥΨΩΤΙΚΗ-ΜΕΤΑΚΟΜΙΣΗ ΜΕΤΑΚΟΜΙΣΗ ΟΙΚΟΣΥΣΚΕΥΩΝ
Aναλαμβάνουμε τη διαδικασία της μεταφοράς-μετακόμισης της οικοσκευής, της εταιρίας, του γραφείου και λοιπών επαγγελματικών χώρων, γρήγορα και αξιόπιστα.
6944.844.287
http://www.abatrans.gr
Θεσσαλονικη
Καλά δεν νομίζω το πρόβλημα να είναι το Flash, για να γίνει μια αντιπροσώπευση από το Drupal. Το θέμα είναι πως θα γίνει να οργανωθεί μια παρουσία και τι χρειάζεται
Τα default που δινει το module της eurobank ειναι πχ του στυλ:
cart/eurobank/validate
cart/eurobank/success
κτλπ.
αλλα οταν τα χτυπαω στον browser (px mydomain.gr/cart/eurobank/success) παιρνω :
The requested page could not be found. Το url rewrite ειναι on (clear urls)
καμια ιδεα για τα paths? (μεσα στο uc_proxypay3_eurobank.module δινει τα ιδια)
Μέχρι και χθες που δοκίμαζα να το κάνω με το swfobject δεν τα κατάφερνα. Ειλικρινά μου έσπασε τα νεύρα. Θα δοκιμάσω σήμερα να το κάνω με το swf object2. Ελπίζω να τα καταφέρω. Το swf προσπαθώ να το εμφανίσω στη θέση του header πάντως. Δεν ξέρω αν αυτό αποτελεί πρόβλημα...
Kostask ευχαριστώ πολύ για την απάντηση...
Διάβασε το Drupal 6 theme guide.
Κατά την άποψη μου το καλύτερο theme για να ξεκινήσεις είναι το zen, το οποίο σε συνδιασμό με το zenophile module κάνουν τη ζωή σου πολύ ευκολή για να ξεκινήσεις ένα καινούριο theme.
Πώς βάζεις το flash (swf) στη σελίδα;
Δοκίμασε το swftools module με το SWF Object 2. Και μην παραλείψεις να διαβάσεις το documentation. Δε θα σου πάρει πάνω από 10-15 λεπτά να το στήσεις.
ΘΑ ΤΟ ΑΝΕΒΑΣΩ ΚΑΠΟΙΑ ΣΤΙΓΜΗ ΣΕ ΚΑΠΟΙΟ ΑΛΛΟ ΧΩΡΟ ΓΙΑΤΙ ΑΚΟΜΗ ΟΡΓΑΝΩΝΩ ΤΟΝ ΙΣΤΟΤΟΠΟ. ΟΤΑΝ ΓΙΝΕΙ ΑΥΤΟ ΘΑ ΣΕ ΕΝΗΜΕΡΩΣΩ.
Δοκίμασε το firebug, είναι ένα addon για το firefox, που σου επιτρέπει να βλέπεις και κάνεις αλλαγές στον κώδικα (html, css, javascript) on the fly. Αν κάνεις inspect τα μπλοκ που έχουν πρόβλημα θα μπορέσεις να καταλάβεις που είναι το πρόβλημα. Δυστυχώς χωρίς κάποιο link προς τη σελίδα δε νομίζω ότι μπορώ να βοηθήσω περισσότερο.
Μαλλον, απο οτι φαινεται και με τις λιγες γνωσεις που εχω σχετικα με το drupal...
Πιθανον θα προσανατολιστω στο link που μου εδωσες στο post 4.
thnx anyway
Αυτό μοιάζει με κάποιο css πρόβλημα. Μήπως τα css αρχεία για το nifty corners κάνουν override τα css του theme σου;
Κωστα
σε απαντηση του μηνυματος σου σε ενημερωνω οτι χρησιμοποιω το drupal 6.13 με theme το waffle.
Το συγκεκριμενο site γινεται για την υπηρεσια μου που θα φιλοξενειται στο Πανελληνιο Σχολικο Δικτυο.
Απο οτι φαινεται, με την πολυτιμη συμβολη σου στις Πέμ, 11/02/2010 - 17:32, το nifty corners που ηθελα να βαλω σε καποια κειμενα του ιστοτοπου που κανουμε, ειναι οκ.
Οταν αναφερομαι στο "δε δουλευει καλα" οφειλεται στο γεγονος οτι στις συγκεκριμενες σελιδες που χρησιμοποιω τον παραπανω javascript κωδικα, στο πλευρικο μενου εξαφανιζεται το πανω και κατω border των blocks μου.
Απο οσο γνωριζω διαγραφη σχολιου με απαντησεις σημαινει και διαγραφη των απαντησεων.
Υπαρχει επιλογη για ξεχωριστη αντιμετωπιση αυτων που δεν εχουν σχολια;
Δεσ στις ρυθμισεις του θεματος σου ή σε αυτες των μπλοκ του θεματος
Το πρώτο το βρήκα για το άλλο ακόμα τπτ
δεν έχεις δώσει κάποιο link για το site που πήρες τον κώδικά, ούτε λεπτομέρειες για έκδοση drupal ή το ποιο theme χρησιμοποιείς ως βάση, ώστε να προσπαθήσω να το τεστάρω τοπικά.
Παρόλα αυτά, κάποιες πρώτες ιδέες για να βρες μία λύση:
Δοκίμασε να βάλεις τον κώδικα στην αρχή του node ή ακριβώς μετά το body, χρησιμοποιώντας τα node.tpl.php ή page.tpl.php αντίστοιχα.
Πρόσθεσε κάποιο alert μέσα στον κώδικα javascript για να δεις τι εκτελείται και τι όχι.
Επίσης ρίξε μια ματιά στο http://drupal.org/node/70635 , ίσως σε βοηθήσει
Τέλος αν παίρνεις κάποιο μήνυμα λάθους πόσταρε το εδώ ή εξήγησε μας λίγο καλύτερα τι σημαίνει το 'δε μου δουλεύει καλά'.
Κωστα,
ευχαριστω για τη βοηθεια, ΑΛΛΑ για καποιο λογο δε μου δουλευει καλα (ακολουθωντας τα βηματα που μου ειπες).
Μηπως φταιει ο τροπος που το καλω μεσα στο node?
Βαζω στο τελος του node
τον εξης κωδικα:
Ψαχνουν για "IT". Αποκλειστικα. Το συμπληρωνω... για να ειναι πιο ξεκαθαρο, μιας και δεν αναφερεται η λεξη "ΙΤ".
Να χαιρετήσω και εγώ την ελληνική κοινότητα του drupal!
Μαζί με τον Κώστα πάνω δουλεύουμε ενεργά με το drupal ως υποδομή για διαφόρων ειδών sites εδώ και μερικά χρόνια, αν και ζεστά το πιάσαμε εδώ και 1 χρόνο περίπου. Είναι μια επαναστατική πλατφόρμα λόγω τόσο της πληθώρας έτοιμης λειτουργικότητας όσο και των δυνατοτήτων επεκτασιμότητάς της, και θα χαιρόμασταν να μοιραστούμε τη γνώση που έχουμε αποκομίσει σχετικά με το αντικείμενο.
Με την ευκαιρία της Fosscom είπαμε να δραστηριοποιηθούμε και στον χώρο της ελληνικής drupal κοινότητας. Θα είναι σημαντικό να υπάρχει μια ισχυρή παρουσία του drupal, και με αυτό το στόχο θέλουμε να αλιεύσουμε τη διάθεση και τις προτιμήσεις των άλλων drupalάδων. Αν υπάρχει οποιοσδήποτε που θέλει να βοηθήσει στο να στηθεί μια καλή παρουσίαση, ή αν καποιος έχει προτιμήσεις ή εμπειρίες από αντίστοιχα παλαιότερα events να μοιραστεί, θα χαρούμε να το ακούσουμε!
Σχετικά με το drupal+flash, ήθελα να επεξηγήσω σε τι αναφέρεται ο Κώστας, μήπως και αλλάξουμε την άποψη του error, παραπάνω. Στις δυναμικές ιστοσελίδες που παρουσιάζονται με flash front end υπάρχει πάντα το μεγάλο ζήτημα του πώς παραδίδεις στον πελάτη ένα εύχρηστο και ευέλικτο διαχειριστικό. Όταν υλοποιούσαμε τα πάντα σε flash (front + admin), ο χρόνος παραγωγής μοιραζόταν περίπου 50-50 στις 2 πλευρές. Σε κάποια στιγμή ξεκινήσαμε να υλοποιούμε το admin σε drupal, παρέχοντας xml feeds με την πληροφορία προς το flash. Ως αποτέλεσμα ο χρόνος ανάπτυξης του admin side μειώθηκε δραστικά, παρέχοντας παράλληλα μια πλήρως ευχάριστη και usable εμπειρία στον εκάστοτε διαχειριστή. Επίσης, με το drupal μπορεί κανείς να στήσει ένα πλήρες διαχειριστικό χωρίς να ακουμπήσει ούτε μια γραμμή κώδικα, κάτι που τουλάχιστον για εμάς ήταν μια μικρή επανάσταση.
Κατανοώ πλήρως την δυσπιστία της open source κοινότητας απέναντι στο flash. Είναι δικαιολογημένη, αλλά (τουλάχιστον ως την επικράτηση της HTML5 και των νέων δυνατοτήτων της) το flash παραμένει ως σήμερα η νο.1 πλατφόρμα για rich media interactions. Μέσα σε ένα τέτοιο πλαίσιο σκεφτόμασταν αυτό το κομμάτι της παρουσίασης, αν και φυσικά είμαστε ανοικτοί στο να αναθεωρήσουμε ή να προσαρμόσουμε την ιδέα.
Στο theme που χρησιμοποιείς πρόσθεσε την παρακάτω γραμμή στο αρχείο [το ονόμα του theme σου].info:
scripts[] = rdbx.js (αν το αρχείο rdbx.js είναι στον φάκελο του theme ) ή καλύτερα
scripts[] = scripts/rdbx.js (για το αρχείο rdbx.js σε ένα φάκελο scripts μέσα στον φάκελο του theme σου)
Πιο συγκεκριμένα θέλω να συμπεριλάβω τον παρακάτω κώδικα (πρόκειται για το αρχείο rdbx.js)
// Contributors
// Ilkka Huotari at http://www.editsite.net
// Mathieu 'p01' HENRI at http://www.p01.org/
// http://seky.nahory.net/2005/04/rounded-corners/
// Steven Wittens at http://www.acko.net/anti-aliased-nifty-corners
// Original Nifty Corners by Alessandro Fulciniti at http://pro.html.it/esempio/nifty/
function NiftyCheck() {
if(!document.getElementById || !document.createElement) {
return false;
}
var b = navigator.userAgent.toLowerCase();
if (b.indexOf("msie 5") > 0 && b.indexOf("opera") == -1) {
return false;
}
return true;
}
function Rounded(className, sizex, sizey, sizex_b, sizey_b) {
var bk;
if (!NiftyCheck()) return;
if (typeof(sizex_b) == 'undefined')
sizex_b = sizex;
if (typeof(sizey_b) == 'undefined')
sizey_b = sizey;
var v = getElements(className);
var l = v.length;
for (var i = 0; i < l; i++) {
color = get_current_style(v[i],"background-color","transparent");
bk = get_current_style(v[i].parentNode,"background-color","transparent");
AddRounded(v[i], bk, color, sizex, sizey, true);
AddRounded(v[i], bk, color, sizex_b, sizey_b, false);
}
}
Math.sqr = function (x) {
return x*x;
};
function Blend(a, b, alpha) {
var ca = Array(
parseInt('0x' + a.substring(1, 3)),
parseInt('0x' + a.substring(3, 5)),
parseInt('0x' + a.substring(5, 7))
);
var cb = Array(
parseInt('0x' + b.substring(1, 3)),
parseInt('0x' + b.substring(3, 5)),
parseInt('0x' + b.substring(5, 7))
);
return '#' + ('0'+Math.round(ca[0] + (cb[0] - ca[0])*alpha).toString(16)).slice(-2).toString(16)
+ ('0'+Math.round(ca[1] + (cb[1] - ca[1])*alpha).toString(16)).slice(-2).toString(16)
+ ('0'+Math.round(ca[2] + (cb[2] - ca[2])*alpha).toString(16)).slice(-2).toString(16);
return '#' + ('0'+Math.round(ca[0] + (cb[0] - ca[0])*alpha).toString(16)).slice(-2).toString(16)
+ ('0'+Math.round(ca[1] + (cb[1] - ca[1])*alpha).toString(16)).slice(-2).toString(16)
+ ('0'+Math.round(ca[2] + (cb[2] - ca[2])*alpha).toString(16)).slice(-2).toString(16);
}
function AddRounded(el, bk, color, sizex, sizey, top) {
if (!sizex && !sizey)
return;
var i, j;
var d = document.createElement("div");
d.style.backgroundColor = bk;
var lastarc = 0;
for (i = 1; i <= sizey; i++) {
var coverage, arc2, arc3;
// Find intersection of arc with bottom of pixel row
arc = Math.sqrt(1.0 - Math.sqr(1.0 - i / sizey)) * sizex;
// Calculate how many pixels are bg, fg and blended.
var n_bg = sizex - Math.ceil(arc);
var n_fg = Math.floor(lastarc);
var n_aa = sizex - n_bg - n_fg;
// Create pixel row wrapper
var x = document.createElement("div");
var y = d;
x.style.margin = "0px " + n_bg + "px";
x.style.height='1px';
x.style.overflow='hidden';
// Make a wrapper per anti-aliased pixel (at least one)
for (j = 1; j <= n_aa; j++) {
// Calculate coverage per pixel
// (approximates circle by a line within the pixel)
if (j == 1) {
if (j == n_aa) {
// Single pixel
coverage = ((arc + lastarc) * .5) - n_fg;
}
else {
// First in a run
arc2 = Math.sqrt(1.0 - Math.sqr((sizex - n_bg - j + 1) / sizex)) * sizey;
coverage = (arc2 - (sizey - i)) * (arc - n_fg - n_aa + 1) * .5;
// Coverage is incorrect. Why?
coverage = 0;
}
}
else if (j == n_aa) {
// Last in a run
arc2 = Math.sqrt(1.0 - Math.sqr((sizex - n_bg - j + 1) / sizex)) * sizey;
coverage = 1.0 - (1.0 - (arc2 - (sizey - i))) * (1.0 - (lastarc - n_fg)) * .5;
}
else {
// Middle of a run
arc3 = Math.sqrt(1.0 - Math.sqr((sizex - n_bg - j) / sizex)) * sizey;
arc2 = Math.sqrt(1.0 - Math.sqr((sizex - n_bg - j + 1) / sizex)) * sizey;
coverage = ((arc2 + arc3) * .5) - (sizey - i);
}
x.style.backgroundColor = Blend(bk, color, coverage);
if (top)
y.appendChild(x);
else
y.insertBefore(x, y.firstChild);
y = x;
var x = document.createElement("div");
x.style.height='1px';
x.style.overflow='hidden';
x.style.margin = "0px 1px";
}
x.style.backgroundColor = color;
if (top)
y.appendChild(x);
else
y.insertBefore(x, y.firstChild);
lastarc = arc;
}
if (top)
el.insertBefore(d, el.firstChild);
else
el.appendChild(d);
}
function getElements(className) {
var elements = [];
var el = document.getElementsByTagName('DIV');
var regexp=new RegExp("\\b"+className+"\\b");
for (var i = 0; i < el.length; i++)
{
if (regexp.test(el[i].className))
elements.push(el[i]);
}
return elements;
}
function get_current_style(element,property,not_accepted)
{
var ee,i,val,apr;
try
{
var cs=document.defaultView.getComputedStyle(element,'');
val=cs.getPropertyValue(property);
}
catch(ee)
{
if(element.currentStyle)
{
apr=property.split("-");
for(i=1;i -1 || val==not_accepted) && element.parentNode)
{
if(element.parentNode != document)
val=get_current_style(element.parentNode,property,not_accepted);
else
val = '#FFFFFF';
}
if (val.indexOf("rgb") > -1 && val.indexOf("rgba") == -1)
val = rgb2hex(val);
if (val.length == 4)
val = '#'+val.substring(1,1)+val.substring(1,1)+val.substring(2,1)+val.substring(2,1)+val.substring(3,1)+val.substring(3,1);
return val;
}
function rgb2hex(value)
{
var x = 255;
var hex = '';
var i;
var regexp=/([0-9]+)[, ]+([0-9]+)[, ]+([0-9]+)/;
var array=regexp.exec(value);
for(i=1;i<4;i++) hex += ('0'+parseInt(array[i]).toString(16)).slice(-2);
return '#'+hex;
}
όπου αργότερα θα καλώ μέσω του script
Rounded('rounded', 6, 6);
σε οποιοδήποτε node θέλω.
Μπορεί κάποιος να με βοηθήσει με το τι βήματα ακολουθούμε στο drupal ώστε να επιτύχω την εισαγωγή javascript ώστε να το χρησιμοποιώ σε οποιαδήποτε σελίδα (node) θέλω;
Ευχαριστώ εκ των προτέρων
Καλημερα,
ως νεος στη δημιουργια websites με τη χρηση του drupal, ζητω απεγνωσμενα, τα φωτα σας...
Θελω να βαλω ενα javascript που δημιουργει rounded boxes στο content του theme που χρησιμοποιω, ωστε σε καποιες σελιδες του ιστοτοπου να μπορω μεσα στο rounded box να βαζω κειμενο.
Any ideas? Και πως το πετυχαινω αυτο;
Πολύ ενδιαφέρον το ποστ μια κι εγώ αγνοούσα παντελώς το επερχόμενο Fosscomm
Φυσικά και θα είμαι εκεί και φυσικά θα ήθελα να δω και το drupal εκεί.
Όλα τα θέματα μου φαίνονται πολύ καλά (μια που είμαι newbie ακόμα στο drupal)
Εκτός ίσως από το drupal+flash (ή τουλάχιστον μέχρι να κυκλοφορήσει το flash για linux :p)
Σου απαντάω αναλυτικά στα ερωτήματα που θέτεις:
Υπαρχει καποιο module που να βαζει απευθειας ολες της available γλωσσες και να μπορει αναλογα με το που ειναι ο καθενας η σε τη γλωσσα εχει το λειτουργικο του να του εμφανιζεται και αναλογα?
Ναι υπάρχει ένας συνδυασμός modules που κάνει αυτή τη δουλειά το Locale (core) και το i18n (contrib). Χρησιμοποιούνται μαζί. Αυτά μπορούν να καθορίζουν τι γλώσσα βλέπει ο χρήστης από μία πλειάδα επιλογών όπως:
Δηλ εαν καποιος γραφει σε ελληνικα μπορει αυτοματα να μεταφραζεται σε αγγλικα ας πουμε?
Πως αυτο μπορει να γινει πιο αναιμακτα και πιο ευκολο για τον τελικο χρηστη?
Αυτό είναι κάπως πιο δύσκολο. Η κατάσταση της τεχνολογίας της αυτόματης μετάφρασης κειμένου δεν είναι ακόμη τέτοια ώστε να μπορεί να χρησιμοποιείται σε ζωντανα sites. Έτσι η λύση είναι να μεταφράζεται από κάποιον άνθρωπο. Υπάρχει ένα module που κάνει αυτή τη δουλειά αυτόματα (Δηλ στέλνει το κείμενο στους μεταφραστές, αυτοί το μεταφράζουν και ποστάρεται αυτόματα) αλλά έχει κόστος (0.08$ άνα λέξη). Είναι το ICanLolize
Αν θέλεις παρόλαυτα να χρησιμοποιήσεις κάποια αυτόματη μετάφραση δοκίμασε το i18n Auto Translate. Σου ετοιμάζει μια αυτόματη μετάφραση που βοηθάει τον μεταφραστή στην τελική μετάφραση.
μαλλον δεν ειναι ενεργοποιημενη η
Php-suexec στον σερβερ που σε φιλοξενει.
Μιλα με την υποστηριξη και ρωτα τους αν ειναι ενεργοποιημενη.
Λογικα τωρα τα δικαιωματα στους φακελους σου ανηκουν στον user nobody
Αυτό που προσπαθώ να κάνω είναι να κάνω Upload ένα .swf αρχείο σε ένα φάκελο που μου τον δημιούργησε ένα module του drupal μέσα στον φάκελο files και δεν μπορώ λόγω Permissions....