Call [fuction]

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
Άβαταρ μέλους
Basilakis
PHP Moderator
Δημοσιεύσεις: 8574
Εγγραφή: 17 Νοέμ 2003 13:03
Τοποθεσία: Womans' Brain
Επικοινωνία:

Call [fuction]

Δημοσίευση από Basilakis » 21 Νοέμ 2008 18:54

Καλησπέρα

Ψάχνω να βρώ με ποίο τρόπο μπορώ να δημιουργώ μία fuction Την οποία να την κάνω print όχι με php αλλά με ένα [tag]

Στο wordpress για παράδειγμα κάποια plugins δίνουνε την δυνατότητα στα posts μέσα να κάνεις include ένα τέτοιο tag αφου δεν μπορείς να τρέξεις php...

So κάποιος έχει κάποια ιδέα πως γίνεται;

Άβαταρ μέλους
tsiger
Honorary Member
Δημοσιεύσεις: 1431
Εγγραφή: 11 Νοέμ 2002 13:40
Τοποθεσία: Thessaloniki Observation Center
Επικοινωνία:

Call [fuction]

Δημοσίευση από tsiger » 22 Νοέμ 2008 00:47

an example?

Άβαταρ μέλους
Basilakis
PHP Moderator
Δημοσιεύσεις: 8574
Εγγραφή: 17 Νοέμ 2003 13:03
Τοποθεσία: Womans' Brain
Επικοινωνία:

Call [fuction]

Δημοσίευση από Basilakis » 22 Νοέμ 2008 01:13

Sure...

το wp-download plugin κάνει το εξής.

Βάζεις ένα download και πέρνει ID αύξων αριθμό.

Όταν θέλεις να το κάνεις include Μέσα στην σελίδα βάζεις απλώς, [download id=1]

βρήκα την λύση νομίζω με το http://bueltge.de/wp-addquicktags-de-plugin/120/

παρόλα αυτά πρέπει να βρώ πως θα το ταιρίαξω μέσα σε script... γιατί το tag αυτό καλεί κάτι, αλλά πως θα το καλώ δυναμικά.. :S

Άβαταρ μέλους
Basilakis
PHP Moderator
Δημοσιεύσεις: 8574
Εγγραφή: 17 Νοέμ 2003 13:03
Τοποθεσία: Womans' Brain
Επικοινωνία:

Call [fuction]

Δημοσίευση από Basilakis » 22 Νοέμ 2008 17:48

Καμία ιδέα κάποιος κάτι... :S

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6231
Εγγραφή: 30 Νοέμ 2004 03:09

Call [fuction]

Δημοσίευση από fafos » 22 Νοέμ 2008 18:39

an exo katalavei kala... prepei na xrhsimopoihseis mia templates engine (p.x. smarty)

Άβαταρ μέλους
dik_
Δημοσιεύσεις: 476
Εγγραφή: 07 Ιουν 2007 11:28

Call [fuction]

Δημοσίευση από dik_ » 23 Νοέμ 2008 14:29

Ένας απλός τρόπος:

Κώδικας: Επιλογή όλων

function test(){
        $str = "xzfgsdfg sdfgsd [download id=1] asfgsdf";
        $str = preg_replace&#40;"#\&#91;download id=&#40;\d+&#41;\&#93;#", "<a href=\"http&#58;//www.exaple.com/download.php?id=$1\">download</a>", $str&#41;;
        echo $str;
    &#125;
Αν θέλεις να πάρεις δεδομένα από τη βάση σου σχετικά με το download (π.χ. filename, τύπο αρχείου κτλ για να βάλεις κάνα ωραίο icon), τότε δες κάτι τέτοιο:

Κώδικας: Επιλογή όλων

function test&#40;&#41;&#123;
        $str = "xzfgsdfg sdfgsd &#91;download id=1&#93; asfgsdf";
        
        $str = preg_replace_callback&#40;"#\&#91;download id=&#40;\d+&#41;\&#93;#", array&#40;&$this, 'replaceme'&#41;, $str&#41;;
        echo $str;
    &#125;

    function replaceme&#40;$txt&#41;&#123;
        // kanonika edo kaneis to query&#58; $file -> "SELECT * FROM downloads WHERE d_id=".$txt&#91;1&#93;
        $file = array&#40;"filename" => "list.txt", "mime" => "txt"&#41;;
        return "<a class=\"".$file&#91;'mime'&#93;."\" href=\"http&#58;//www.example.com/files/".$file&#91;'filename'&#93;."\">".$file&#91;'filename'&#93;."</a>";
    &#125;

Άβαταρ μέλους
Basilakis
PHP Moderator
Δημοσιεύσεις: 8574
Εγγραφή: 17 Νοέμ 2003 13:03
Τοποθεσία: Womans' Brain
Επικοινωνία:

Call [fuction]

Δημοσίευση από Basilakis » 23 Νοέμ 2008 14:42

Δεν είναι αυτό...

κάνεις echo $str; για να εκτυπώσεις...

εγώ θέλω αντί για echo $str; να βάζω [download] και να κάνει αυτό που κάνει το echo...

Άβαταρ μέλους
dik_
Δημοσιεύσεις: 476
Εγγραφή: 07 Ιουν 2007 11:28

Call [fuction]

Δημοσίευση από dik_ » 24 Νοέμ 2008 14:27

Το echo το έβαλα ως παράδειγμα. Αν κατάλαβα καλά, εσύ θέλεις να parsάρεις συγκεκριμένα tags, κάτι σαν BBCode, και να τα αντικαταστήσεις με λινκ.

Αποθηκεύεις λοιπόν το ποστ σου κανονικά στη βάση, ώστε να περιέχει το [download id=X]. Όταν εμφανίζεις το ποστ, πρώτα το σκανάρεις να δεις αν έχει τέτοια tags, κι αν έχει, τα αλλάζεις σε λινκ, κι επιστρέφεις το αλλαγμένο ποστ, όπως περίπου σου έδειξα.

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες