Εισαγωγή γραμμής με identity μέσω κώδικα.

Μια από τις κλασικές χαζομάρες της Microsoft. Για να γίνει εισαγωγή id μέσω εντολής πρέπει να είναι κλειστό το ID PROTECTION. Πρέπει πρώτα να απενεργοποιηθεί, να οριστεί η στήλη στην εισαγωγή και έπειτα να ενεργοποιηθεί ξανά.

SET IDENTITY_INSERT NewCustomers ON;
INSERT INTO NewCustomers (id, datec, NewCustomerCount, NewUserCount, CustomerCategory) VALUES ('22','2018-10-13', '6367','0','2');
SET IDENTITY_INSERT NewCustomers OFF;
Δημοσιεύθηκε στη SQL | Σχολιάστε

Πως αντιγράφουμε μόνο το κεντρικό κελί από group σε excel

Πολλές φορές πρέπει να αντιγράψουμε μόνο τις κεφαλίδες από grouped κελιά από το excel σε άλλο φύλλο. Για να το κάνουμε αυτό πρέπει να επιλέξουμε την περιοχή που θέλουμε και μετά πατάμε το Find and Select που φαίνεται στην εικόνα.

Έπειτα επιλέγουμε Go to Special και στο παράθυρο που βγαίνει επιλέγουμε Visible cells only όπως φαίνεται και στο παρακάτω screenshot.

Δημοσιεύθηκε στη Microsoft Excel | Σχολιάστε

Πως σπάμε ένα μεγάλο αρχείο Excel με πολλές γραμμές σε πολλά αρχεία

Περνάμε στις μακροεντολές VB και την τρέχουμε.

Sub DigiSpot()
  Dim wb As Workbook
  Dim ThisSheet As Worksheet
  Dim NumOfColumns As Integer
  Dim RangeToCopy As Range
  Dim WorkbookCounter As Integer
  Dim RowsInFile
  Dim Prefix As String

  Application.ScreenUpdating = False

  'Initialize data
  Set ThisSheet = ThisWorkbook.ActiveSheet
  NumOfColumns = ThisSheet.UsedRange.Columns.Count
  WorkbookCounter = 1
  RowsInFile = 100                   'Κάθε πόσες γραμμές θέλουμε να σπάσει το excel
  Prefix = "DigiSpot"                    'Όνομα αρχείου

  For p = 1 To ThisSheet.UsedRange.Rows.Count Step RowsInFile
    Set wb = Workbooks.Add

    Set RangeToCopy = ThisSheet.Range(ThisSheet.Cells(p, 1), ThisSheet.Cells(p + RowsInFile - 1, NumOfColumns))
    RangeToCopy.Copy wb.Sheets(1).Range("A1")

    wb.SaveAs ThisWorkbook.Path & "\" & Prefix & "_" & WorkbookCounter
    wb.Close

    WorkbookCounter = WorkbookCounter + 1
  Next p

  Application.ScreenUpdating = True
  Set wb = Nothing
End Sub
Δημοσιεύθηκε στη Microsoft Excel | Σχολιάστε

SQL Server Σύνθετο Query από SELECT

--Πίνακας Στατιστικών σε περίοδο χρόνου με βάση τον Κωδικό Συναλλαγής. Επιστρέφει: Κωδικό Συναλλαγής, Περιγραφή Συναλλαγής, Πλήθος Συναλλαγών και Αξία Συναλλαγών
SELECT  b.transactionType_code AS 'ΚΩΔΙΚΟΣ ΣΥΝΑΛΛΑΓΗΣ', b.transactionType_name AS 'ΠΕΡΙΓΡΑΦΗ ΣΥΝΑΛΛΑΓΗΣ', 
CASE
    WHEN T.plithos IS NULL THEN 0
    ELSE T.plithos
END AS 'ΠΛΗΘΟΣ', 
CASE
    WHEN T.axia IS NULL THEN 0
    ELSE T.axia
END AS 'ΑΞΙΑ', 
CASE
    WHEN T.prom IS NULL THEN 0
    ELSE T.prom
END AS 'ΠΡΟΜΗΘΕΙΑ', 
CASE
    WHEN T.custtype IS NULL THEN '-'
    ELSE T.custtype
END AS 'ΤΥΠΟΣ ΠΕΛΑΤΗ',
CASE
    WHEN T.chan IS NULL THEN '-'
    ELSE T.chan
END AS 'ΚΑΝΑΛΙ' 
FROM TransactionTypes b LEFT JOIN
(SELECT SUM(a.counted_transactions) AS plithos, 
SUM(a.total_ammount) AS axia, SUM(total_charges) AS prom, c.customerType_name AS custtype, d.channel_name AS chan, a.transactionType_id
FROM Transactions a
LEFT JOIN CustomerTypes c ON a.customerType_id = c.customerType_id
LEFT JOIN Channels d on a.channel_id = d.channel_id
WHERE a.transaction_date BETWEEN '2019-07-01' AND '2019-07-31'
AND a.customerType_id = 2 AND a.channel_id = 2
GROUP BY c.customerType_name, d.channel_name, a.transactionType_id

) AS T
ON b.transactionType_id = T.transactionType_id
Δημοσιεύθηκε στη SQL | Σχολιάστε

Βασικές λειτουργίες του Excel

Από εκεί και πέρα

=RIGHT(R25430;LEN(R25430)-FIND("|FIRSTNAME=";R25430))

Από εκεί και πριν

=LEFT(BH25419;FIND("|";BH25419)-1)

Match σε σχέση με μια στήλη. (Εάν Βρεις το Α12 στο Φύλλο TEO από την στήλη Β έως την στήλη ΑΑ τότε φέρε μου την 26η στήλη. Βολεύει σε search forms.)

=VLOOKUP(A12;TEO!B12:AA30010;26;FALSE)

Αναζήτηση με FIND ή SEARCH

=IF(FIND("DT_OOB";M9);"SMS";"")

Πρόσθεση μόνο εάν ισχύει συνθήκη σε στήλη. (Εάν η στήλη F είναι “Retail” τότε βγάλε το SUM της D)

=SUMIF(F:F;"RETAIL";D:D)

Αφαίρεση των Enter από τα κελιά

=SUBSTITUTE(A1,CHAR(10),", ")
Δημοσιεύθηκε στη Microsoft Excel | Σχολιάστε

Εργαλείο δημιουργίας schematic για Βάση δεδομένων

Εάν δεν είστε προγραμματιστής αγνοείστε αυτό το άρθρο. Εξαιρετικό εργαλείο για την δημιουργία σχήματος βάσης δεδομένων.

  • Μπορείς να δημιουργήσεις κώδικα και να βγει η απεικόνιση.
  • Μπορείς να κάνεις import από Mysql ή PostGre
  • Μπορείς να κάνεις export για Mysql ή PostGre
  • Μπορείς να δημιουργήσεις λογαριασμό και να αποθηκεύσεις όλα σου τα schematic.

dbdiagram.io

Δημοσιεύθηκε στη SQL | Σχολιάστε

Ταξινόμηση με βάση την τελευταία ενημέρωση άρθρου

Τοποθετήστε το παρακάτω function στο functions.php του θέματός σας. Η ταξινόμηση των άρθρων θα γίνει σε όλα τα archives. Αρχική, κατηγορία, tag και search.

add_action( 'pre_get_posts', 'orderTcpUpdate' );
function orderTcpUpdate( $query ) 
{
	$query->set('orderby','modified');
}
Δημοσιεύθηκε στη Wordpress | Σχολιάστε

Άνοιγμα φόρμας μέσα σε Panel με VB.NET

Εύκολα μετατρέπεται σε C#. Δημιουργήστε ένα module ώστε να μπορείτε να χρησιμοποιήσετε σε ανεξάρτητες φόρμες. Εγώ συνήθως την εφαρμόζω σε MenuStrip μενού.

Public Sub OpenInPanel(ByVal DaNewForm As Object)
        Main.PanelContent.Controls.Clear()
        Dim fh As Form = TryCast(DaNewForm, Form)
        fh.TopLevel = False
        fh.Dock = DockStyle.Fill
        Main.PanelContent.Controls.Add(fh)
        Main.PanelContent.Tag = fh
        fh.Show()
    End Sub

Όπου Main η κεντρική σας φόρμα και όπου PanelContent το Panel που θέλετε να φορτώσετε την φόρμα. Αφού δημιουργήσετε τo function (που είναι public προφανώς και όχι private) μπορείτε να την χρησιμοποιήσετε ως εξής:

OpenInPanel(Search)

Όπου Search η φόρμα που θέλετε να φορτώστε μέσα στο Panel.

Δημοσιεύθηκε στη .net | Σχολιάστε

Πως δημιουργούμε σχετικά άρθρα στο WordPress

function tcp_related_posts() {
	
	global $post, $wpdb;
	$backup = $post;  
	$tags = wp_get_post_tags($post->ID);
	$tagIDs = array();
	if ($tags) {
	  $tagcount = count($tags);
	  for ($i = 0; $i < $tagcount; $i++) {
	    $tagIDs[$i] = $tags[$i]->term_id;
	  }
	  $tagIDs = array_diff($tagIDs, array(364, 365, 556));
	  $showposts = get_theme_mod('related_postnum');
	  $showposts = !empty($showposts) ? $showposts : 5;
	  
	  $args=array(
	    'tag__in' => $tagIDs,
	    'post__not_in' => array($post->ID),
		'cat'=> '-5',
	    'showposts'=>$showposts,
	    'caller_get_posts'=>1
	  );
	  $my_query = new WP_Query($args);
	  if( $my_query->have_posts() ) { $related_post_found = true; ?>
		<h3>Σχετικά άρθρα</h3>
	    <?php while ($my_query->have_posts()) : $my_query->the_post(); ?> 
				<a class="title" href="<?php the_permalink() ?>" rel="bookmark"><?php the_post_thumbnail('bloview');?><br><?php the_title(); ?></a>
	    <?php endwhile; ?>
	  <?php }
	}
	
	if(!$related_post_found){ ?>
		<h3>'Δημοφιλή άρθρα</h3>
		<ul>
		<?php
		$posts = get_posts('numberposts='.$showposts.'&offset=0&cat=-5&orderby=rand');
		foreach($posts as $post) { ?>
				<a class="title" href="<?php the_permalink() ?>" rel="bookmark"><?php the_post_thumbnail('bloview');?><br><?php the_title(); ?></a>
		<?php } ?>
		</ul>
		
		<?php 
	}
	wp_reset_query();
}
Δημοσιεύθηκε στη Wordpress | Σχολιάστε

Πως κάνουμε λίστα όλους τους συνδυασμούς προϊόντων στο WooCommerce

Έτσι αντί να έχουμε σε dropdown τους συνδυασμούς των προϊόντων τις έχουμε σε λίστα με ξεχωριστό κουμπί “Προσθήκης στο καλάθι”;

function woocommerce_variable_add_to_cart() {
 global $product, $post;
 $variations = $product->get_available_variations();
 ?>
 <table class="toptcptable">
 <tbody>
 <?php 
 foreach ($variations as $key => $value) {
 ?>
 
 <tr>
<td>
 <?php foreach ($value['attributes'] as $attrKey => $attr)  
 {
$tax = str_replace('attribute_', '', $attrKey);
$term_obj = get_term_by('slug', $attr, $tax); 
?>
<td>
<?php echo $term_obj->name; ?>
</td>
 <?php } ?>
 <td>
 <?php echo $value['price_html'];?>
 </td>
 <td>
 <form action="<?php echo esc_url( $product->add_to_cart_url() ); ?>" method="post" enctype='multipart/form-data'>
 <input type="hidden" name="variation_id" value="<?php echo $value['variation_id']?>" />
 <input type="hidden" name="product_id" value="<?php echo esc_attr( $post->ID ); ?>" />
 <input type="hidden" name="add-to-cart" value="<?php echo esc_attr( $post->ID ); ?>" />
 <?php
 if(!empty($value['attributes'])){
 foreach ($value['attributes'] as $attr_key => $attr_value) {
 ?>
 <input type="hidden" name="<?php echo $attr_key?>" value="<?php echo $attr_value?>">
 <?php
 }
 }
 ?>
 <button type="submit" class="single_add_to_cart_button button alt"><i class="fas fa-cart-plus"></i></button>
 </form>
 </td>
 </tr>
 
 <?php
 }
 ?>
 </tbody>
 </table>
 <?php 
}
Δημοσιεύθηκε στη Wordpress | Σχολιάστε

Αφαίρεση εικόνων από το sitemap του YOAST SEO

Απλά προσθέστε αυτό το φίλτρο στο αρχείο functions.php

add_filter( 'wpseo_xml_sitemap_img', '__return_false' );
Δημοσιεύθηκε στη Wordpress | Σχολιάστε

Αριθμός των queries και χρόνος εκτέλεσης σε php

Πολλές φορές για λόγους debug χρειάζεται να δούμε τον χρόνο εκτέλεσης ενός script ή μιας σελίδας. Το παρακάτω κομμάτι κώδικα μας δίνει κάποιες πληροφορίες ώστε να βγάλουμε συμπεράσματα.

<?php echo get_num_queries(); ?> queries in <?php timer_stop(1); ?> seconds.
Δημοσιεύθηκε στη PHP | Σχολιάστε

Ρόλοι και δικαιώματα στο WordPress. Πως προσθέτουμε ή αφαιρούμε δικαιώματα σε ρόλους του WordPress.

Υπάρχουν 5 βασικές ομάδες στο WordPress. Ανάλογα με την ομάδα του WordPress στην οποία συμμετέχει ένας χρήστης έχει και τα αντίστοιχα δικαιώματα. Ορίζουμε ως ομάδα (δικαιωμάτων) τον “ρόλο” όπως αναφέρεται στο wordpress για να καταλαβαινόμαστε.

  1. Super Admin
  2. Administrator
  3. Editor
  4. Author
  5. Contributor
  6. Subscriber.

Ο πρώτος ρόλος του Super-Admin υπάρχει μόνο  στα multisites. Ως administrator ορίζονται όλοι οι έξτρα διαχειριστές που δημιουργούνται μέσω του admin panel.

Πίνακας με βάση τα δικαιώματα του κάθε ρόλου.

Capability Super Admin Administrator Editor Author Contributor Subscriber
create_sites Y
delete_sites Y
manage_network Y
manage_sites Y
manage_network_users Y
manage_network_plugins Y
manage_network_themes Y
manage_network_options Y
upload_plugins Y
upload_themes Y
upgrade_network Y
setup_network Y
Capability Super Admin Administrator Editor Author Contributor Subscriber
activate_plugins Y Y
(single site or
enabled by network setting)
create_users Y Y (single site)
delete_plugins Y Y (single site)
delete_themes Y Y (single site)
delete_users Y Y (single site)
edit_files Y Y (single site)
edit_plugins Y Y (single site)
edit_theme_options Y Y
edit_themes Y Y (single site)
edit_users Y Y (single site)
export Y Y
import Y Y
Capability Super Admin Administrator Editor Author Contributor Subscriber
install_plugins Y Y (single site)
install_themes Y Y (single site)
list_users Y Y
manage_options Y Y
promote_users Y Y
remove_users Y Y
switch_themes Y Y
update_core Y Y (single site)
update_plugins Y Y (single site)
update_themes Y Y (single site)
edit_dashboard Y Y
customize Y Y
delete_site Y Y
Capability Super Admin Administrator Editor Author Contributor Subscriber
moderate_comments Y Y Y
manage_categories Y Y Y
manage_links Y Y Y
edit_others_posts Y Y Y
edit_pages Y Y Y
edit_others_pages Y Y Y
edit_published_pages Y Y Y
publish_pages Y Y Y
delete_pages Y Y Y
delete_others_pages Y Y Y
delete_published_pages Y Y Y
delete_others_posts Y Y Y
delete_private_posts Y Y Y
edit_private_posts Y Y Y
read_private_posts Y Y Y
delete_private_pages Y Y Y
edit_private_pages Y Y Y
read_private_pages Y Y Y
unfiltered_html Y Y (single site) Y (single site)
Capability Super Admin Administrator Editor Author Contributor Subscriber
edit_published_posts Y Y Y Y
upload_files Y Y Y Y
publish_posts Y Y Y Y
delete_published_posts Y Y Y Y
edit_posts Y Y Y Y Y
delete_posts Y Y Y Y Y
Capability Super Admin Administrator Editor Author Contributor Subscriber
read Y Y Y Y Y Y

Τώρα ας πούμε ότι θέλουμε να προσθέσουμε ή να αφαιρέσουμε δικαιώματα από κάθε ομάδα. Για να προσθέσουμε χρησιμοποιούμε το παρακάτω fucntion add_cap().

<?php
   $editor = get_role('editor');
   $editor->add_cap('manage_options');
?> 

Εάν θέλουμε να αφαιρέσουμε χρησιμοποιούμε το remove_cap().

<?php
   $editor = get_role('editor');
   $editor->remove_cap('manage_options');
?>
Δημοσιεύθηκε στη Wordpress | Σχολιάστε

Διαγραφή προγράμματος από το Start Up των Windows 10

Πολλές φορές απεγκαθιστούμε ένα πρόγραμμα αλλά αυτό παραμένει στο startup στα Windows 10. Για παράδειγμα το buildbox ναι μεν έχει shortcut απεγκατάστασης αλλά τα φιντάνια εκεί δεν το διαγράφουν αλλά στο αφήνουν μέσα στο σύστημα σου προφανώς για λόγους marketing. Ε όχι ρε φίλε δεν γουσταρίζω. Τότε λοιπόν τι κάνουμε;

  • Διαγράφουμε τον φάκελο του προγράμματος από το Program Files.
  • Κατεβάζουμε το Autoruns και το διαγράφουμε από την εκκίνηση. Δεν το απενεργοποιούμε απλά. https://docs.microsoft.com/en-us/sysinternals/downloads/autoruns
Δημοσιεύθηκε στη Software | Σχολιάστε

Πάντα redirect http to https


Options -Indexes
ErrorDocument 403 https://%{HTTP_HOST}

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Δημοσιεύθηκε στη Linux | Σχολιάστε

Προσθήκη πεδίου default ομάδας στο Prestashop ή έξτρα πεδία στην εγγραφή

Πάμε στο authentication.tpl που βρίσκεται στο φάκελο του θέματος και προσθέτουμε ένα checkbox μέσα στην φόρμα.

<div class="checkbox">
<input type="checkbox" name="nautiko" value="1">
<label for="nautiko">ΑΝΗΚΩ ΣΤΟ ΠΟΛΕΜΙΚΟ ΝΑΥΤΙΚΟ:</label>
</div>

Έπειτα ανοίγουμε το Controllers/front/AuthController.php. Αρχικά παίρνουμε την μεταβλητή από το post κάτω από την δημιουργία του πελάτη.

// Preparing customer
     $customer = new Customer();
     $nautiko = $_POST['nautiko'];

Ψάχνουμε στο αρχείο πιο κάτω έχει τα default groups. Προσθέτουμε αυτό.

if ($nautiko == 1) 
	{
	$customer->addGroups(array(4));
	$customer->id_default_group = 4;
	}
Δημοσιεύθηκε στη Prestashop | Σχολιάστε

Σύνδεση του προγράμματος με Windows Forms (VB.NET) σε MySql

Ενοείται βάζουμε το lib


Imports MySql.Data.MySqlClient

Τώρα τοποθετούμε τα connection strings και όλους τους βασικούς μας ορισμούς

Dim myConnectionString As String
myConnectionString = "server=127.0.0.1;" & "uid=root;" & "pwd=OKWDIKOSMAS;" & "database=IVASIDEDOMENWNMAS"
Dim conn As New MySql.Data.MySqlClient.MySqlConnection(myConnectionString)
Δημοσιεύθηκε στη .net | Σχολιάστε

Απλή λύση για τον GDPR

Το παρακάτω αποτελεί μια απλή λύση για τον νέο GDPR νόμο. Δεν είναι απόλυτη η χρήση του σε όλες τις περιπτώσεις. Πρέπει να συμβουλευτείτε τον νομικό σας σύμβουλο σε κάθε περίπτωση. Το κομμάτι κώδικα μπαίνει στο head.

 

<link rel="stylesheet" type="text/css" href="//cdnjs.cloudflare.com/ajax/libs/cookieconsent2/3.0.3/cookieconsent.min.css" />
<script src="//cdnjs.cloudflare.com/ajax/libs/cookieconsent2/3.0.3/cookieconsent.min.js"></script>
<script>
window.addEventListener("load", function(){
window.cookieconsent.initialise({
  "palette": {
    "popup": {
      "background": "#eaf7f7",
      "text": "#5c7291"
    },
    "button": {
      "background": "transparent",
      "text": "#56cbdb",
      "border": "#56cbdb"
    }
  },
  "content": {
    "message": "Η Ιστοσελίδα χρησιμοποιεί cookies.  ",
    "dismiss": "Ενημερώθηκα",
    "link": "Μάθετε τι είναι τα cookies."
  }
})});
</script>
Δημοσιεύθηκε στη T-Edit | Ετικέτες: | Σχολιάστε

Πως βρίσκουμε ποια αρχεία πιάνουν χώρο σε linux

Το πρώτο βλέπουμε τον χώρο στον δίσκο. Το δεύτερο ποιοι φάκελοι ή αρχεία πιάνουν τον χώρο. Το τρίτο τον χώρο σε κάθε δίσκο.

du -sh

du -sh /var/lib/mysql/*

 df -h

Δημοσιεύθηκε στη Linux | Σχολιάστε

Προεπιλεγμένες στοιχίσεις στο WordPress

/*
 * Default WP Alignment Classes
 *****************************************************************************/

.aligncenter,.alignleft,.alignright {
    display: block;
    padding: 0;
}

.aligncenter {
    float: none;
    margin: .5em auto 1em;
}

.alignright {
    float: right;
    margin: .5em 0 1em 1em;
}

.alignleft {
    float: left;
    margin: .5em 1em 1em 0;
}

.wp-caption {
    padding: 5px 0;
    border: 1px solid #555;
    background: #444;
    text-align: center;
}

.wp-caption img {
    display: inline;
}

.wp-caption p.wp-caption-text {
    margin: 5px 0 0;
    padding: 0;
    text-align: center;
    font-size: 75%;
    font-weight: 100;
    font-style: italic;
    color: #ddd;
}
Δημοσιεύθηκε στη Wordpress | Σχολιάστε

Ειδοποίηση όταν περνάμε μικρή εικόνα στο WordPress

Προσθέστε το παρακάτω κομμάτι κώδικα στο functions.php.

add_filter('wp_handle_upload_prefilter','tcp_eidopoisiphoto');
function tcp_eidopoisiphoto($file)
{
    $img=getimagesize($file['tmp_name']);
    $minimum = array('width' => '640', 'height' => '480');
    $width= $img[0];
    $height =$img[1];

    if ($width < $minimum['width'] )
        return array("error"=>"ΒΑΛΕ ΜΕΓΑΛΗ ΦΩΤΟΓΡΑΦΙΑ!!! ΤΟΥΛΑΧΙΣΤΟΝ {$minimum['width']} σε μήκος. Αυτη που ανέβασες είναι: $width px");
    else
        return $file; 
}
Δημοσιεύθηκε στη Wordpress | Σχολιάστε

Εισαγωγή recaptcha σε Prestashop

Όταν οι smammers μας σπάνε τα νεύρα στο prestashop τότε χρησιμοποιούμε το recapcha της Google. Στις περισσότερες περιπτώσεις θα μας προστατέψει από ενοχλητικά μηνύματα.

1. Στο contact-form.tpl του template μας πάμε ακριβώς πριν το submit button. Κάτι σαν το κάτω κομμάτι κώδικα.

<div class="submit">
 <button type="submit" name="submitMessage" id="submitMessage" class="button"><span>{l s='Send'}<i class="icon-chevron-right right"></i></span></button>
 </div>
 </form>

Προσθέτουμε τις δύο γραμμές (όπου key το key από το recaptcha)

<script src='https://www.google.com/recaptcha/api.js'></script>
<div class="g-recaptcha" data-sitekey="key"></div>


2. Πηγαίνουμε στο controllers/front/ContactController.php ή στο αντίστοιχο override.
if (Tools::isSubmit('submitMessage')) {
 $extension = array('.txt', '.rtf', '.doc', '.docx', '.pdf', '.zip', '.png', '.jpeg', '.gif', '.jpg');
 $file_attachment = Tools::fileAttachment('fileUpload');
 $message = Tools::getValue('message'); // Html entities is not usefull, iscleanHtml check there is no bad html tags.
 $id_order = (int)$this->getOrder();
 if (!($from = trim(Tools::getValue('from'))) || !Validate::isEmail($from)) {
 $this->errors[] = Tools::displayError('Invalid email address.');
//ΠΡΟΣΘΕΤΟΥΜΕ ΑΥΤΟ ΤΟ ΚΟΜΜΑΤΙ  ΑΠΟ ΕΔΩ
 } elseif (!($gcaptcha = (int)(Tools::getValue('g-recaptcha-response')))) {
 $this->errors[] = Tools::displayError('Captcha error');
// ΜΕΧΡΙ ΕΔΩ
 
Δημοσιεύθηκε στη Prestashop | Σχολιάστε

Πως αλλάζουμε domain μέσω του wp-config

Το προσθέτουμε στο wp-config.php στον γονικό φάκελο.

define('RELOCATE',true);
define('WP_HOME','http://neodomain.com');
define('WP_SITEURL','http://neodomain.com');
Δημοσιεύθηκε στη Wordpress | Σχολιάστε

Αλλάζει text editor το WordPress. Το όνομα αυτού Gutenberg

O text editor που χρησιμοποιεί το WordPress τα τελευταία χρόνια, μένει λίγο πολύ ο ίδιος. Οι όποιες αλλαγές γίνονται, είναι συνήθως για την διόρθωση μικροσφαλμάτων. Ενώ λοιπόν αυτό δεν είναι απαραίτητα κακό, οι ιθύνοντες αποφάσισαν να κάνουν μια μεγάλη αλλαγή με στόχο να κάνουν πιο εύκολη την δημιουργία και επεξεργασία άρθρων. Αν και προσωπικά δεν βλέπω το πρόβλημα.

Γιατί το Gutenberg;
Επειδή η χρήση smartphones για την δημιουργία άρθρων αυξάνει, υπήρχε η ανάγκη για αλλαγή στο styling.Το gutenberg γενικά προσαρμόζεται καλύτερα σε μικρότερες οθόνες σε σχέση με τον τρέχοντα text editor.  Μέχρι στιγμής η beta έκδοση του Gutenberg αριθμεί περισσότερες από 70.000 ενεργές εγκαταστάσεις. Ο ιδρυτής Matt Mullenweg δήλωσε πως θα ενσωματωθεί στο WordPress όταν ξεπεράσεις τις 100.000.

Πώς να εγκαταστήσετε Gutenberg
Στα plugins πατάτε Νέο Plugin και αναζητάτε το Gutenberg.

Κάθε αρχή και δύσκολη. Πάρτε μια γεύση.

Η μορφοποίηση του κειμένου γίνεται αφού έχετε επιλέξει το κομμάτι του κειμένου που θέλετε να κάνετε edit. Πλέον μπορείτε να βάλετε πίνακες αλλά και να φτιάξετε blocks με διαφορετικό style. Γενικώς υπάρχουν πολλά ωραία καινούργια πραγματάκια όπως font-size και background colors.

Δημοσιεύθηκε στη T-Edit | Σχολιάστε

Νέα έκδοση του Google Search Console

Το Search Console παρουσιάζει ένα ανασχεδιασμένο προϊόν, για να σας βοηθήσει να διαχειριστείτε την παρουσία σας στην Αναζήτηση Google. Το νέο Search Console δημιουργήθηκε ξανά από την αρχή, για να παρέχει τα εργαλεία και τις πληροφορίες που ζητούν οι κάτοχοι ιστοτόπων και οι SEO. Μπορείτε πλέον να επιβεβαιώσετε ποιες από τις σελίδες σας έχουν ευρετηριαστεί και να λαμβάνετε πληροφορίες σχετικά με τον τρόπο επιδιόρθωσης των σφαλμάτων ευρετηρίασης. Μπορείτε επίσης να παρακολουθήσετε την απόδοσή σας στην Αναζήτηση Google με 16 μήνες δεδομένων (για την ενεργοποίηση συγκρίσεων από έτος σε έτος).

Μπορείτε να δείτε το νέο Google Search Console εδώ.

Δημοσιεύθηκε στη T-Edit | Σχολιάστε

Πως βάζουμε έξτρα πεδία στους συντάκτες του WordPress

Εισάγουμε την παρακάτω συνάρτηση στο functions.php. Έτσι θα προσθέσουμε τέσσερα πεδία URL για Facebook, Twitter, Google Plus και Ιδιότητα.

function tcp_extra_fields_author($profile_fields) {
$profile_fields['twitter'] = 'Twitter URL';
$profile_fields['facebook'] = 'Facebook URL';
$profile_fields['gplus'] = 'Google+ URL';
$profile_fields['idiot'] = 'Ιδιότητα';
return $profile_fields;
}
add_filter('user_contactmethods', 'tcp_extra_fields_author');

Για να καλέσουμε καθένα από αυτά τα πεδία στο θέμα μας χρησιμοποιούμε τα παρακάτω.

the_author_meta('facebook');
the_author_meta('twitter');
the_author_meta('gplus');
the_author_meta('idiot');
Δημοσιεύθηκε στη Wordpress | Σχολιάστε

Function για την διαγραφή των transient στο WordPress

Χρησιμοποιούμε το παρακάτω function για την διαγραφή προσωρινών δεδομένων από την βάση μας του WordPress, τα οποία πολλές φορές δημιουργούν καθυστερήσεις και μικροπροβλήματα.

function clear_transients(){
        global $wpdb;
        $sql ="DELETE  FROM {$wpdb->options} WHERE option_name like '\_transient\_namespace\_%' OR option_name like '\_transient\_timeout\_namespace\_%'";
		$wpdb->query($sql);
}
Δημοσιεύθηκε στη Wordpress | Σχολιάστε

Πως αλλάζουμε domain στο WordPress μέσω SQL ή phpMyAdmin

Στην κονσόλα γράφουμε τις παρακάτω εντολές:

UPDATE wp_posts SET guid = replace(guid, 'https://www.palio','http://www.neo');
UPDATE wp_posts SET guid = replace(guid, 'https://palio','http://neo');
UPDATE wp_posts SET post_content = replace(post_content, 'https://www.palio', 'http://www.neo');
UPDATE wp_posts SET post_content = replace(post_content, 'https://palio', 'http://neo');
UPDATE wp_postmeta SET meta_value = replace(meta_value,'https://www.palio','http://www.neo');
UPDATE wp_postmeta SET meta_value = replace(meta_value,'https://palio','http://neo');
Δημοσιεύθηκε στη SQL | Σχολιάστε

Πως κάνουμε symlink φακέλους σε Linux

Αν θέλουμε να δημιουργήσουμε symlink (σκεφτείτε το ως συντόμευση) σε έναν φάκελο χρησιμοποιούμε την παρακάτω εντολή.

ln -s  /home/onomaxristi/public_html/folderpoupairnoumetadedomena/* /home/onomaxristi/neosfolder/folderpoudinoumetadedomena

Για να διαγράψουμε την συντόμευση πατάμε:

unlink folderpoudinoumetadedomena
Δημοσιεύθηκε στη Linux | Σχολιάστε

Εισαγωγή διαφήμισης μετά την δεύτερη παράγραφο στο WordPress

Αν θέλουμε να εισάγουμε διαφήμιση μέσα στο κείμενο αυτόματα χρησιμοποιούμε την παρακάτω συνάρτηση. Στον ορισμό $ad_code βάζουμε τον κώδικα της διαφήμισής μας, ενώ στο $closing_p βάζουμε το tag που ορίζουμε ως delimiter. Στην περίπτωσή μας το

Το && !in_category(array(9,71)) μπορεί να αγνοηθεί. Στην πραγματικότητα πρόκειται περί συνθήκης για την εξαίρεση σε συγκεκριμένες κατηγορίες.

add_filter( 'the_content', 'diafimisi' );

function diafimisi( $content ) {

$ad_code = '';

if ( is_single() && !in_category(array(9,71))) {
return vale_meta_tin_deuteri_paragrafo( $ad_code, 2, $content );
}

return $content;
}


function vale_meta_tin_deuteri_paragrafo( $insertion, $paragraph_id, $content ) {
$closing_p = '

'; $paragraphs = explode( $closing_p, $content ); foreach ($paragraphs as $index => $paragraph) { if ( trim( $paragraph ) ) { $paragraphs[$index] .= $closing_p; } if ( $paragraph_id == $index + 1 ) { $paragraphs[$index] .= $insertion; } } return implode( '', $paragraphs ); }
Δημοσιεύθηκε στη Wordpress | Σχολιάστε