Tag Αρχεία: plugins

Πώς να αποθηκεύσετε ένα string σε ένα τοπικό αρχείο στο PHP?

Αυτή η θέση είναι η δεύτερη στη σειρά geek μου.

Ενώ προγραμματισμού Θέμα Tweaker μου, Ήρθα σε αυτό το πρόβλημα. Είχα μια χορδή στο server μου στο πρόγραμμα php μου (το πειραγμένο στυλ, όντως), και θα ήθελα να δώσει στο χρήστη τη δυνατότητα να αποθηκεύσετε σε ένα αρχείο του υπολογιστή του. Θα ήθελα να έχω σκεφτεί αυτό ήταν ένα κοινό πρόβλημα, και όλα τα κοινά προβλήματα μπορούν να επιλυθούν με Googling. Αλλά, ιδού, Απλά δεν μπορούσε να βρει μια ικανοποιητική λύση. Βρήκα το δικό μου, και σκέφτηκα ότι θα το μοιραστώ εδώ, προς όφελος όλων των μελλοντικών της Google ακόμα να έρθει και να πάει.

Πριν πάμε στο διάλυμα, ας καταλάβουμε ποιο είναι το πρόβλημα. Το πρόβλημα είναι στον καταμερισμό της εργασίας μεταξύ των δύο υπολογιστών — ένας είναι ο διακομιστής, όπου WordPress και PHP σας είναι σε λειτουργία; η άλλη είναι ο υπολογιστής του πελάτη όταν η προβολή γίνεται. Η σειρά μιλάμε είναι στο διακομιστή. Θέλουμε να το αποθηκεύσετε σε ένα αρχείο στον υπολογιστή του πελάτη. Ο μόνος τρόπος για να γίνει αυτό είναι με τη σειρά που υπηρετούν ως html απάντηση.

Με την πρώτη ματιά, Αυτό δεν μοιάζει με ένα μεγάλο πρόβλημα. Μετά από όλα, servers στέλνουν τακτικά χορδές και τα δεδομένα για τους πελάτες — αυτό είναι το πώς βλέπουμε τίποτα σχετικά με το πρόγραμμα περιήγησης, συμπεριλαμβανομένου του τι διαβάζετε. Αν ήταν ένα οποιοδήποτε πρόγραμμα PHP που θέλει να σώσει το string, δεν θα είναι ένα πρόβλημα. Θα μπορούσατε να πετάξεις απλά το string σε ένα αρχείο στον server και να εξυπηρετήσει το αρχείο.

Αλλά τι θα κάνεις αν δεν θέλετε να δώσει ολόκληρο τον κόσμο έναν τρόπο χορδές ντάμπινγκ για τα αρχεία στον server σας? Καλά, θα μπορούσατε να κάνετε κάτι σαν αυτό:

<?php
header('Content-Disposition: attachment; filename="style.css"');
header("Content-Transfer-Encoding: ascii");
header('Expires: 0');
header('Pragma: no-cache');
print $stylestr ;
?>

Έτσι, μόλις τοποθετήσετε αυτόν τον κώδικα σε foo.php σας που υπολογίζει το string $ stylestr και είστε έτοιμοι. Αλλά το πρόβλημα μας είναι ότι εργαζόμαστε στο πλαίσιο plugin WordPress, και δεν μπορούν να χρησιμοποιήσουν την κεφαλίδα() κλήσεις. Όταν προσπαθείτε να το κάνετε αυτό, θα λάβετε το μήνυμα λάθους λέγοντας ότι η επικεφαλίδα έχει ήδη γίνει μάγκα. Γι 'αυτό το πρόβλημα, Βρήκα την έξυπνη λύση σε ένα από τα plugins που χρησιμοποιώ. Ξεχάσατε το οποίο ένα, αλλά υποθέτω ότι είναι μια κοινή τεχνική. Η λύση είναι να ορίσετε ένα άδειο iFrame και να ορίσετε την πηγή της σε ό, τι η λειτουργία PHP θα γράψω. Από iFrame αναμένει μια πλήρη πηγαίο κώδικα HTML, σας επιτρέπεται (όντως, υποχρεωμένος) για να δώσει την κεφαλίδα() οδηγίες. Το απόσπασμα κώδικα μοιάζει κάτι σαν:

<iframe id="saveCSS" src="about:blank" style="visibility:hidden;border:none;height:1em;width:1px;"></iframe>
<script type="text/javascript">
var fram = document.getElementById("saveCSS");
<?php echo 'fram.src = "' . $styleurl .'"' ;
?>

Τώρα το ερώτημα είναι, τι θα πρέπει να είναι η πηγή? Με άλλα λόγια, τι είναι $ styleurl? Σαφώς, δεν πρόκειται να είναι ένα στατικό αρχείο στον server σας. Και ο σκοπός αυτής της θέσης είναι να δείξει ότι δεν πρέπει να είναι ένα αρχείο στον κεντρικό υπολογιστή σε όλα. Είναι μια απάντηση σε δύο μέρη. Θα πρέπει να θυμάστε ότι εργάζεστε στο πλαίσιο WordPress, και δεν μπορείτε να κάνετε αυτόνομο αρχεία php. Το μόνο πράγμα που μπορείτε να κάνετε είναι να προσθέσετε τα επιχειρήματα με τα υπάρχοντα αρχεία php, ή τα plugins που έχετε δημιουργήσει. Έτσι, μπορείτε να κάνετε πρώτα ένα κουμπί υποβάλει ως εξής:

<form method="post" action="<?php echo $_SERVER["REQUEST_URI"]?>">
<div class="submit">
<input type="submit" name="saveCSS" title="Download the tweaked stylesheet to your computer" value="Download Stylesheet" />
</div>

Σημειώστε ότι η ιδιότητα όνομα του κουμπιού είναι “saveCSS.” Τώρα, στο τμήμα του κώδικα που χειρίζεται submits, κάνετε κάτι σαν:

<?php
if (isset($_POST['saveCSS']))
$styleurl = get_option('siteurl') . '/' . "/wp-admin/themes.php?page=theme-tweaker.php&save" ;

?>

Αυτό είναι το $ styleurl που θα δώσει ως πηγή iFrame σας, προς τα εμπρός. Σημειώστε ότι είναι το ίδιο με pluging διεύθυνση URL της σελίδας σας, εκτός από το ότι καταφέρατε να προσθέσετε “?εκτός” στο τέλος του. Το επόμενο κόλπο είναι να συλλάβει αυτό το επιχείρημα και να το χειριστούμε. Γι 'αυτό, μπορείτε να χρησιμοποιήσετε τη λειτουργία WordPress API, add_action ως:

<?php
if (isset($_GET['save'] ))
add_action('init', array(&$thmTwk, 'saveCSS'));
else
remove_action('init', array(&$thmTwk, 'saveCSS'));
?>

Αυτό προσθέτει ένα saveCSS λειτουργία στο τμήμα init του plugin σας. Τώρα πρέπει να ορίσετε αυτή τη λειτουργία:

<?php
function saveCSS() {
header('Content-Disposition: attachment; filename="style.css"');
header("Content-Transfer-Encoding: ascii");
header('Expires: 0');
header('Pragma: no-cache');
$stylestr = "Whatever string you want to save";
ob_start() ;
print $stylestr ;
ob_end_flush() ;
die() ;
}
?>

Τώρα είμαστε σχεδόν σπίτι δωρεάν. Το μόνο πράγμα που πρέπει να κατανοήσουμε είναι ότι σας του Χρειάζεται τη μήτρα(). Εάν η λειτουργία σας δεν πεθαίνει, θα διασπείρουν το υπόλοιπο του WordPress που δημιουργείται πράγματα σε αποθηκεύσετε το αρχείο σας, προσαρτώντας το σε string $ stylestr σας.

Μπορεί να φαίνεται περίπλοκη. Καλά, Υποθέτω ότι είναι λίγο περίπλοκο, αλλά τη στιγμή που θα το εφαρμόσει και να πάρει το τρέξιμο, μπορείτε να (και να κάνουμε) ξεχάσουμε αυτό. Τουλάχιστον, Κάνω. Γι 'αυτό δημοσιεύτηκε εδώ, έτσι ώστε την επόμενη φορά που θα χρειαστεί να το κάνουμε, Μπορώ να κοιτάζω προς τα πάνω.

Geeks

I have been doing a bit of geeky stuff lately — writing WordPress plugins. Εντάξει, it is because I’m suffering from a terrible writer’s block.

Μπορείτε να δείτε, I’m supposed to be working on my next book. I foolishly promised a couple of chapters of Οι Αρχές της Ποσοτικής Ανάπτυξης to my commissioning editor at John Wiley & Sons within a month; now I find myself writing everything other than those darned chapters! Including plugins. Ερχόμενοι να σκεφτούμε ότι, writing those chapters wouldn’t be any less geeky, θα είναι?

That made me wonder… We all started off as geeks, didn’t we? No use denying it. Remember how our teachers loved us, and the sexy cheerleaders, καλά, didn’t? Later in life, due to exigencies of circumstances, we may have tried to lose our techie halo and simulate a managerial posture. Αλλά, in our moments of panic, we go back to our geek roots. Τουλάχιστον, Κάνω.

You think you don’t? Καλά, check out these geek jokes. If you find them funny, chances are your roots are not too different from mine.

Heisenberg was driving down the highway when he was pulled over for speeding. The officer says, “Do you know how fast you were going?” Heisenberg says, “Μη, but I do know where I am!”

Two Hydrogen atoms walk into a bar. One says, “I’ve lost my electron!” The other says, “Are you sure?” The first replies, “Ναι, I’m positive…”

Geek Pickup Lines:

  • Tell me of this thing you humans call [dramatic pause] love.
  • If you turn me down now, I will become more drunk than you can possibly imagine.
  • They don’t call me Bones because I’m a doctor.
  • Your name is Leslie? Κοιτάξτε, I can spell your name on my calculator!
  • What’s a nice girl like you doing in a wretched hive of scum and villainy like this?
  • You must be Windows 95 because you got me so unstable.
  • My ‘up-time’ is better than BSD.
  • I can tell by your emoticons that you’re looking for some company.
  • Is that an iPod mini in your pocket or are you just happy to see me.
  • Want to see my Red Hat?
  • If you won’t let me buy you a drink, at least let me fix your laptop.
  • You had me at “Hello World.”
  • Mind if I run a sniffer to see if your ports are open?
  • You make me want to upgrade my Tivo.
  • By looking at you I can tell you’re 36-25-36, which by the way are all perfect squares.
  • Jedi Mind Trick: “This is the geek you’re looking for.” [Waves hand]
  • You can put a Trojan on my Hard Drive anytime.
  • Have you ever Googled yourself?
  • How about we do a little peer-to-peer saliva swapping?
  • With my IQ and your body we could begin a race of genetic superchildren to conquer the earth.
  • What’s a girl like you doing in a place like this when there’s a Farscape marathon on right now on the Sci Fi channel.
  • I’m attracted to you so strongly, scientists will have to develop a fifth fundamental force.

What Makes 100%?

What does it mean to give MORE than 100%? Ever wonder about those people who say they are giving more than 100%? We have all been to those meetings where someone wants you to give over 100%. How about achieving 103%? What makes up 100% in life? Here’s a little mathematical formula that might help you answer these questions:

Αν:

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z are represented as:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26

then H-A-R-D-W-O-R-K = 8+1+18+4+23+15+18+11 = 98%

and K-N-O-W-L-E-D-G-E = 11+14+15+23+12+5+4+7+5 = 96%

but A-T-T-I-T-U-D-E = 1+20+20+9+20+21+4+5 = 100%

and B-U-L-L-S-H-I-T = 2+21+12+12+19+8+9+20 = 103%

but look how far ass kissing will take you.

A-S-S-K-I-S-S-I-N-G = 1+19+19+11+9+19+19+9+14+7 = 118%

Έτσι, one can conclude with mathematical certainty that While Hard work and Knowledge will get you close, and Attitude will get you there, it’s the Bullshit and Ass kissing that will put you over the top.